Post

网络中两个设备是如何传递数据包的?

网络中两个设备是如何传递数据包的?

网络中两个设备是如何传递数据包的?

当我们在局域网中从一台电脑向另一台电脑发送数据时,这个看似简单的动作,实际上经历了多个设备、多个协议的协作。从最底层的电信号传输,到高层的数据路由转发,每一步都有专门的“角色”参与。

1. 集线器(Hub)

集线器工作在 OSI模型的物理层(第一层)。

把多个计算机或网络设备连接在一起,使它们组成一个局域网(Local Area Network, LAN)。

当一个设备向集线器发送数据帧时,集线器会:将该数据原封不动地广播到所有端口(除了发送者的端口)。

接收方通过帧中的目的🔗MAC地址判断数据是否是发给自己的。

1.1 作用

集线器 把多个计算机或网络设备连接在一起,组成一个共享的局域网。当一个设备发送电信号(数据帧)时,集线器会把信号放大、再生,然后广播到所有其他端口。这意味着所有设备都能收到这份数据,但只有目标设备会识别并接收它。 | 功能 | 说明 | | ————– | —————————————— | | 信号放大与转发 | 接收电信号后再生、放大,用于延长传输距离。 | | 多设备互连 | 连接多台计算机或打印机,构建基础网络。 | | 构建小型局域网 | 适用于简单的办公或实验环境。 |

1.2 缺点

这种方式虽然简单,但存在明显问题: 所有端口共享同一个带宽和冲突域,如果多台设备同时发送数据,就会造成数据冲突(Collision),影响通信效率。

局限说明
冲突多所有端口共享带宽,容易发生冲突。
效率低采用广播通信,浪费带宽资源。
无智能转发无法识别MAC地址,不能隔离广播域。

针对这些缺点,就有了交换机。

2. 交换机(Switch)

交换机(Switch)工作在 数据链路层(OSI 模型第二层),是集线器的智能升级版。它不再盲目广播,而是能够识别设备的MAC地址,实现点对点的数据传输。

交换机内部维护一张MAC地址表,用于记录每个端口对应的设备MAC地址。当交换机接收到一个数据帧时,会读取帧头中的源MAC地址和目的MAC地址。

  1. 如果目的地址在MAC表中,交换机会只将该数据帧转发到对应端口。
  2. 如果目的地址不在表中,交换机会将数据广播到所有端口。
  3. 交换机会不断学习数据帧的源地址,更新MAC地址表,从而逐渐减少广播。

通过这种 “学习+转发” 的机制,交换机可以实现点对点的数据传输,使每个端口拥有独立的带宽和冲突域。

2.1 作用

  1. 实现多台设备之间的高效互连,构建局域网。
  2. 根据MAC地址进行定向转发,减少广播,提升网络效率。
  3. 每个端口独立工作,消除冲突,保证通信的稳定性。
  4. 支持全双工通信,提高带宽利用率。
  5. 一些高级交换机还具备VLAN划分、端口管理和流量控制等功能。

2.2 缺点

  1. 成本比集线器高,结构复杂。
  2. 无法识别IP层信息,对跨网段通信需要依赖路由器。
  3. 当网络规模过大或广播风暴发生时,性能可能下降。
  4. 在配置不当或环路未控制的情况下,可能造成数据帧无限循环。

交换机的出现,使局域网通信更像是“私密对话”,每次只在发送者和接收者之间进行。但如果我们要与其他网段甚至互联网通信,仅靠交换机还不够,这就需要路由器的帮助。

3. 路由器(Router)

路由器是一种工作在网络层(OSI模型第三层)的设备,它的主要作用是连接不同的网络,实现数据包在不同子网或不同网络之间的转发。与交换机不同,路由器不仅能识别MAC地址,还能识别和处理IP地址。

每个路由器都维护一张路由表,记录各个目标网络应通过哪个接口或下一跳转发。当数据包到达路由器时,它会:

  1. 当数据包的目标IP与当前网络在同一子网时,直接转发给目标主机。
  2. 当目标IP属于其他网段时,路由器会根据路由表选择最佳路径,将数据包发送到对应的下一跳。
  3. 路由表可以通过手动配置(静态路由)或动态学习(动态路由协议,如OSPF、RIP、BGP)获得。
  4. 数据包在多个路由器之间逐跳传输,最终到达目标网络。

3.1 作用

  1. 连接不同网络或子网,实现跨网段通信。
  2. 根据IP地址进行路径选择和数据转发。
  3. 隔离广播域,减少网络中无效的广播流量。
  4. 提供网络地址转换(NAT)功能,使多个内网设备共享一个公网IP访问互联网。
  5. 提供防火墙、访问控制等安全管理功能。

3.2 缺点

  1. 价格相对较高,配置复杂。
  2. 转发速度一般比交换机慢,因为要进行IP层的分析与决策。
  3. 若路由表设计不当,可能导致路由环路或路径不通。
  4. 维护成本较高,需要定期更新和管理路由策略。

当数据包要离开局域网时,它需要知道出口在哪里——这就涉及到 “默认网关”。

4. 默认网关(Default Gateway)

默认网关(Default Gateway) 是计算机网络中的一个重要概念,指的是当一台主机要访问不同网段的设备时,用来转发数据包的路由器地址。它相当于主机访问外部网络的“出口”。

  • 当主机与目标设备在同一局域网内时,数据包可以直接通过交换机发送到目标设备,不需要经过网关。
  • 但如果目标设备不在同一网段,主机就无法直接找到对方的MAC地址,这时主机会将数据包发送给默认网关,由网关代为转发。

4.1 工作过程

  1. 主机要发送一个数据包,先通过 🔗子网掩码 判断目标IP是否与自己在同一子网。
  2. 如果在同一子网,主机通过ARP(Address Resolution Protocol,地址解析协议)解析目标IP对应的MAC地址,直接通信。
  3. 如果不在同一子网,主机会将数据包的目的MAC地址设置为默认网关的MAC地址,并把数据发给网关。
  4. 默认网关收到数据包后,根据自己的路由表,决定该将数据转发到哪个接口或下一个路由器。
  5. 数据包在经过多个路由器的转发后,最终抵达目标网络。

4.2 作用

  1. 作为局域网设备访问外部网络的中转站。
  2. 负责跨网段数据包的转发。
  3. 连接内网与外网,实现不同网络之间的通信。

如果主机未设置默认网关或网关配置错误,那么主机只能与同一局域网内的设备通信,无法访问其他网段或互联网。

5. ARP(Address Resolution Protocol)

ARP(Address Resolution Protocol,地址解析协议)是网络中用于将IP地址解析为MAC地址的一种协议,工作在OSI模型的数据链路层和网络层之间。

在以太网中,设备之间实际通信依赖的是MAC地址,而不是IP地址。IP地址用于逻辑寻址,MAC地址则是物理寻址。ARP的作用就是在已知目标IP地址的情况下,找到对应的MAC地址,从而完成通信。

5.1 工作过程

  1. 当主机A要向主机B发送数据时,A会先检查自己的ARP缓存表中是否已有B的IP与MAC对应关系。
  2. 如果有,就直接使用该MAC地址封装数据帧并发送。
  3. 如果没有,A会向所在局域网广播一条ARP请求,内容包括“谁是IP地址为X.X.X.X的主机,请告诉我你的MAC地址”。
  4. 局域网上所有设备都能收到这条ARP请求,只有拥有该IP地址的主机会回应,发送一条ARP应答,告诉A自己的MAC地址。
  5. A收到应答后,将该IP-MAC映射关系存入ARP缓存表,以便下次直接使用。

5.2 作用

  1. 实现IP地址到MAC地址的映射。
  2. 支持局域网内基于以太网的通信。
  3. 减少重复查询,通过ARP缓存提高通信效率。

5.3 缺点

  1. ARP请求是广播形式,过多的ARP广播会造成网络负担。
  2. 缓存表容易被恶意伪造,可能导致ARP欺骗攻击。

简单来说,ARP就像“查通讯录”的过程,IP地址是名字,MAC地址是具体住址,只有知道住址,数据才能准确送达。

6. 缩写对照表

全称缩写中文翻译
Local Area NetworkLAN局域网
Media Access ControlMAC媒体访问控制地址
Address Resolution ProtocolARP地址解析协议
Network Address TranslationNAT网络地址转换
Open Systems InterconnectionOSI开放系统互连模型

7. References

  1. 【大白话半小时理解网络!】
This post is licensed under CC BY 4.0 by the author.