网络基础-数据包

 更新时间:2021年08月27日 15:52:30   作者:李柱明  
本文主要讲解数据包在网络中的生命履历来引出一些网络基础知识,介绍的比较详细,需要了解的小伙伴可以自己参考一下

前言

本笔记通过记录 数据包 在网络中的生命履历来引出一些网络基础知识,如:

MAC、ARP、IP、子网掩码、网关、集线器、交换机、路由器这些概念都是在链路层和网络层。
这些都不做严谨的说明,只是为了更好的了解而表达的个人描述

数据包简要生命周期

浏览本小节的时候遇到疑问点可以可以跳到理解区 check 一下有没有答案

数据包:

简单路径:源主机 -> 目标主机。可能路径:源主机 -> 交换机A -> 路由器A -> 路由器B -> 交换机B -> 目标主机。

参考图:

源主机视角:

  • 需要知道 本地IP 和 目标IP。
  • 通过子网掩码判断是否在同一个子网中。
  • 同一子网,则直接获取目标主机的MAC地址,发送出去。
  • 不同子网,获取默认网关的 MAC,把数据包发给默认网关设备。

交换机视角:

  • 收到的数据包必须有目标 MAC 地址。
  • 通过 MAC 地址表查映射关系。
  • 查到了就按照映射关系从我的指定端口发出去。
  • 查不到就所有端口都发出去。

路由器视角:

  • 收到的数据包必须有目标 IP 地址。
  • 通过路由表查映射关系。
  • 查到了就按照映射关系从我的指定端口发出去(不在任何一个子网范围,走其路由器的默认网关也是查到了)。
  • 查不到则返回一个路由不可达的数据包。

三张表:

  • arp 缓存表 是不断通过 arp 协议的请求逐步完善起来的。
  • 交换机中的 MAC 地址表,用于映射 MAC 地址和它的端口。
  • 路由器中的 路由表 用于映射 IP 地址(段)和它的端口。

理解区

数据包

得先了解 TCP/IP 网络七层级及各级的作用和数据封装。

  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层(本节需要了解
  • 数据链路层(本节需要了解
  • 物理层

应用层的数据一层一层通过包装下来,通过物理层的物理设备发出去,到最终目的主机后,又像扒洋葱一样,一层一层扒开,最终到达应用层后的数据和源主机应用层的数据一样。如图:


名词说明:

IP:主机地址。属于网络层地址。

一般用于源主机和最终目标主机中。

MAC:设备地址。属于数据链路层地址。

一般用于当前设备和下一设备中(不一定是最终设备)。

子网掩码:用于判断 IP 处于哪个网段。

一般用于比较两个 IP 是否处于同一个子网中。

默认网关:

若发送的数据不在本子网,就丢给默认网关处理。

一般用于与外网通信。

默认网关IP一般都设为路由器IP,因为一般都是通过路由器与外网通信。

ARP:

是一种地址解析协议。根据IP地址来获取MAC地址的。

源主机携带IP数据广播给通过支持ARP设备连接起来的多主机,若目标IP对于,则该主机返回携带MAC数据给源主机。

集线器:

字面理解即可,如何一台主机数据发到集线器,都广播到所有出口。

作用在物理层(第一层),不对MAC操作。

交换机:

比集线器高级,不再是广播到所有出口,而是只转发到目标MAC的出口。

作用在数据链路层(第二层),参考MAC,只转发到目标MAC的出口。

工作在局域网内。

路由器:

比交换机高级。

具有路由功能。

作用在网络层(第三层),参考IP。

连接局域网和外网。

MAC

MAC:设备地址。属于数据链路层地址。
一般用于当前设备和下一设备中(不一定是最终设备)。

IP

IP:主机地址。属于网络层地址。

一般用于源主机和最终目标主机中。

子网

子网掩码 & 判断是否在同一子网:
IP 与 子网掩码 做 按位与 ,就可以得出该 IP 的子网网段。
如:

子网掩码:255.255.255.0

IP-1: 192.168.1.2 & 255.255.255.0 = 192.168.1.0

IP-2: 192.168.1.123 & 255.255.255.0 = 192.168.1.0

IP-3: 192.168.2.123 & 255.255.255.0 = 192.168.2.0

因为 192.168.1.0 = 192.168.1.0,所以IP-1与IP-2处于同一子网。

因为 192.168.1.0 != 192.168.2.0,所以IP-1与IP-3不在同一子网。

在发数据包时,子网的作用:

  • 若源IP和目标IP在同一子网:直接获取目标IP主机的MAC,然后把数据包丢出去。
  • 若源IP和目标IP不在同一子网:获取默认网关的 MAC ,然后把数据包丢给默认网关那边。

ARP

ARP:

  • 是一种地址解析协议。根据IP地址来获取MAC地址的。
  • 源主机携带IP数据广播给通过支持ARP设备连接起来的多主机,若目标IP对于,则该主机返回携带MAC数据给源主机。如图:

集线器

字面理解即可,如何一台主机数据发到集线器,都广播到所有出口。
作用在物理层(第一层),不对MAC操作。
如图:

交换机

比集线器高级,不再是广播到所有出口,而是只转发到目标MAC的出口。
作用在数据链路层(第二层),参考MAC,只转发到目标MAC的出口。
工作在局域网内。

交换机连接:
左边交换机的地址表:

MAC 地址 端口
bb-bb-bb-bb-bb-bb 1
cc-cc-cc-cc-cc-cc 3
aa-aa-aa-aa-aa-aa 4
dd-dd-dd-dd-dd-dd 5
ee-ee-ee-ee-ee-ee 6
ff-ff-ff-ff-ff-ff 6
gg-gg-gg-gg-gg-gg 6
hh-hh-hh-hh-hh-hh 6

路由器

作用在网络层(第三层),参考IP。
路由器的每一个端口,都有独立的 MAC 地址。
连接局域网和外网。
转发时,根据路由表转发,实际出口是根据MAC来发送到下一个设备。下一个设备判断数据包目标IP是否是本设备,若不是,就又找出下一个MAC地址把数据包丢出去。

到此这篇关于网络基础-数据包的文章就介绍到这了,更多相关数据包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 适合后台管理系统开发的12个前端框架(小结)

    适合后台管理系统开发的12个前端框架(小结)

    当你写项目的时候,如何快速的完成一个项目的搭建,这个时候就需要借助到一些模板了,前端开发的一个好处就是,各类UI模板都是相当的齐全的,本文就介绍几个前端框架,感兴趣的可以了解一下
    2021-06-06
  • Security安装 Elastic SIEM 和 EDR的超详细教程

    Security安装 Elastic SIEM 和 EDR的超详细教程

    这篇文章主要介绍了Security安装 Elastic SIEM 和 EDR的超详细教程,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 一文讲清base64编码原理

    一文讲清base64编码原理

    本文主要介绍了一文讲清base64编码原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • VSCode Web IDE Coder 安装及使用

    VSCode Web IDE Coder 安装及使用

    Coder是VS Code的Web IDE,分Code Server 和 Coder,Code Server安装在服务器上,通过浏览器打开地址后可以使用一个web版的VS Code,也就是Coder,但VS Code的插件无法使用。这篇文章主要介绍了VSCode Web IDE Coder 安装及使用,需要的朋友可以参考下
    2021-12-12
  • 阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

    阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

    距离 Dragonwell JDK 第一个正式版本 8.0.0-GA 发布已经过去 3 个月了,项目在 Github 上的 stars 继续攀升达到了 1900。今天我们带来了最新版本 8.1.1-GA 的发布,包含了全新的特性和更新,需要的朋友可以参考下
    2019-10-10
  • IntelliJ IDEA下的SVN使用(傻瓜式教学)

    IntelliJ IDEA下的SVN使用(傻瓜式教学)

    这篇文章主要介绍了IntelliJ IDEA下的SVN使用(傻瓜式教学),文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解SHA-256算法的原理以及C#和JS的实现

    详解SHA-256算法的原理以及C#和JS的实现

    SHA-256 是 SHA-2 下细分出的一种算法。截止目前(2023-03)未出现“碰撞”案例,被视为是绝对安全的加密算法之一,本文主要介绍了SHA-256算法的原理以及C#和JS的实现,希望对大家有所帮助
    2023-03-03
  • prometheus之Pushgateway安装和使用方法

    prometheus之Pushgateway安装和使用方法

    Pushgateway是prometheus的一个组件,prometheus server默认是通过exporter主动获取数据,本文给大家介绍prometheus之Pushgateway安装和使用教程,感兴趣的朋友一起看看吧
    2024-05-05
  • 如何将ChatGPT整合到Word中

    如何将ChatGPT整合到Word中

    使用ChatGPT修改语言时,需要将文本复制到网页版的chatGPT中,省掉复制粘贴的过程,能提升效率,这篇文章主要介绍了如何将ChatGPT整合到Word中,需要的朋友可以参考下
    2023-02-02
  • 什么是RPC及RPC 和 HTTP 对比分析

    什么是RPC及RPC 和 HTTP 对比分析

    这篇文章主要介绍了什么是RPC及RPC 和 HTTP 对比分析,需要的朋友可以参考下
    2007-02-02

最新评论