网络中两个设备是如何传递数据包的?
网络中两个设备是如何传递数据包的?
当我们在局域网中从一台电脑向另一台电脑发送数据时,这个看似简单的动作,实际上经历了多个设备、多个协议的协作。从最底层的电信号传输,到高层的数据路由转发,每一步都有专门的“角色”参与。
1. 集线器(Hub)
集线器工作在 OSI模型的物理层(第一层)。
把多个计算机或网络设备连接在一起,使它们组成一个局域网(Local Area Network, LAN)。
当一个设备向集线器发送数据帧时,集线器会:将该数据原封不动地广播到所有端口(除了发送者的端口)。
接收方通过帧中的目的🔗MAC地址判断数据是否是发给自己的。
1.1 作用
集线器 把多个计算机或网络设备连接在一起,组成一个共享的局域网。当一个设备发送电信号(数据帧)时,集线器会把信号放大、再生,然后广播到所有其他端口。这意味着所有设备都能收到这份数据,但只有目标设备会识别并接收它。 | 功能 | 说明 | | ————– | —————————————— | | 信号放大与转发 | 接收电信号后再生、放大,用于延长传输距离。 | | 多设备互连 | 连接多台计算机或打印机,构建基础网络。 | | 构建小型局域网 | 适用于简单的办公或实验环境。 |
1.2 缺点
这种方式虽然简单,但存在明显问题: 所有端口共享同一个带宽和冲突域,如果多台设备同时发送数据,就会造成数据冲突(Collision),影响通信效率。
| 局限 | 说明 |
|---|---|
| 冲突多 | 所有端口共享带宽,容易发生冲突。 |
| 效率低 | 采用广播通信,浪费带宽资源。 |
| 无智能转发 | 无法识别MAC地址,不能隔离广播域。 |
针对这些缺点,就有了交换机。
2. 交换机(Switch)
交换机(Switch)工作在 数据链路层(OSI 模型第二层),是集线器的智能升级版。它不再盲目广播,而是能够识别设备的MAC地址,实现点对点的数据传输。
交换机内部维护一张MAC地址表,用于记录每个端口对应的设备MAC地址。当交换机接收到一个数据帧时,会读取帧头中的源MAC地址和目的MAC地址。
- 如果目的地址在MAC表中,交换机会只将该数据帧转发到对应端口。
- 如果目的地址不在表中,交换机会将数据广播到所有端口。
- 交换机会不断学习数据帧的源地址,更新MAC地址表,从而逐渐减少广播。
通过这种 “学习+转发” 的机制,交换机可以实现点对点的数据传输,使每个端口拥有独立的带宽和冲突域。
2.1 作用
- 实现多台设备之间的高效互连,构建局域网。
- 根据MAC地址进行定向转发,减少广播,提升网络效率。
- 每个端口独立工作,消除冲突,保证通信的稳定性。
- 支持全双工通信,提高带宽利用率。
- 一些高级交换机还具备VLAN划分、端口管理和流量控制等功能。
2.2 缺点
- 成本比集线器高,结构复杂。
- 无法识别IP层信息,对跨网段通信需要依赖路由器。
- 当网络规模过大或广播风暴发生时,性能可能下降。
- 在配置不当或环路未控制的情况下,可能造成数据帧无限循环。
交换机的出现,使局域网通信更像是“私密对话”,每次只在发送者和接收者之间进行。但如果我们要与其他网段甚至互联网通信,仅靠交换机还不够,这就需要路由器的帮助。
3. 路由器(Router)
路由器是一种工作在网络层(OSI模型第三层)的设备,它的主要作用是连接不同的网络,实现数据包在不同子网或不同网络之间的转发。与交换机不同,路由器不仅能识别MAC地址,还能识别和处理IP地址。
每个路由器都维护一张路由表,记录各个目标网络应通过哪个接口或下一跳转发。当数据包到达路由器时,它会:
- 当数据包的目标IP与当前网络在同一子网时,直接转发给目标主机。
- 当目标IP属于其他网段时,路由器会根据路由表选择最佳路径,将数据包发送到对应的下一跳。
- 路由表可以通过手动配置(静态路由)或动态学习(动态路由协议,如OSPF、RIP、BGP)获得。
- 数据包在多个路由器之间逐跳传输,最终到达目标网络。
3.1 作用
- 连接不同网络或子网,实现跨网段通信。
- 根据IP地址进行路径选择和数据转发。
- 隔离广播域,减少网络中无效的广播流量。
- 提供网络地址转换(NAT)功能,使多个内网设备共享一个公网IP访问互联网。
- 提供防火墙、访问控制等安全管理功能。
3.2 缺点
- 价格相对较高,配置复杂。
- 转发速度一般比交换机慢,因为要进行IP层的分析与决策。
- 若路由表设计不当,可能导致路由环路或路径不通。
- 维护成本较高,需要定期更新和管理路由策略。
当数据包要离开局域网时,它需要知道出口在哪里——这就涉及到 “默认网关”。
4. 默认网关(Default Gateway)
默认网关(Default Gateway) 是计算机网络中的一个重要概念,指的是当一台主机要访问不同网段的设备时,用来转发数据包的路由器地址。它相当于主机访问外部网络的“出口”。
- 当主机与目标设备在同一局域网内时,数据包可以直接通过交换机发送到目标设备,不需要经过网关。
- 但如果目标设备不在同一网段,主机就无法直接找到对方的MAC地址,这时主机会将数据包发送给默认网关,由网关代为转发。
4.1 工作过程
- 主机要发送一个数据包,先通过 🔗子网掩码 判断目标IP是否与自己在同一子网。
- 如果在同一子网,主机通过ARP(Address Resolution Protocol,地址解析协议)解析目标IP对应的MAC地址,直接通信。
- 如果不在同一子网,主机会将数据包的目的MAC地址设置为默认网关的MAC地址,并把数据发给网关。
- 默认网关收到数据包后,根据自己的路由表,决定该将数据转发到哪个接口或下一个路由器。
- 数据包在经过多个路由器的转发后,最终抵达目标网络。
4.2 作用
- 作为局域网设备访问外部网络的中转站。
- 负责跨网段数据包的转发。
- 连接内网与外网,实现不同网络之间的通信。
如果主机未设置默认网关或网关配置错误,那么主机只能与同一局域网内的设备通信,无法访问其他网段或互联网。
5. ARP(Address Resolution Protocol)
ARP(Address Resolution Protocol,地址解析协议)是网络中用于将IP地址解析为MAC地址的一种协议,工作在OSI模型的数据链路层和网络层之间。
在以太网中,设备之间实际通信依赖的是MAC地址,而不是IP地址。IP地址用于逻辑寻址,MAC地址则是物理寻址。ARP的作用就是在已知目标IP地址的情况下,找到对应的MAC地址,从而完成通信。
5.1 工作过程
- 当主机A要向主机B发送数据时,A会先检查自己的ARP缓存表中是否已有B的IP与MAC对应关系。
- 如果有,就直接使用该MAC地址封装数据帧并发送。
- 如果没有,A会向所在局域网广播一条ARP请求,内容包括“谁是IP地址为X.X.X.X的主机,请告诉我你的MAC地址”。
- 局域网上所有设备都能收到这条ARP请求,只有拥有该IP地址的主机会回应,发送一条ARP应答,告诉A自己的MAC地址。
- A收到应答后,将该IP-MAC映射关系存入ARP缓存表,以便下次直接使用。
5.2 作用
- 实现IP地址到MAC地址的映射。
- 支持局域网内基于以太网的通信。
- 减少重复查询,通过ARP缓存提高通信效率。
5.3 缺点
- ARP请求是广播形式,过多的ARP广播会造成网络负担。
- 缓存表容易被恶意伪造,可能导致ARP欺骗攻击。
简单来说,ARP就像“查通讯录”的过程,IP地址是名字,MAC地址是具体住址,只有知道住址,数据才能准确送达。
6. 缩写对照表
| 全称 | 缩写 | 中文翻译 |
|---|---|---|
| Local Area Network | LAN | 局域网 |
| Media Access Control | MAC | 媒体访问控制地址 |
| Address Resolution Protocol | ARP | 地址解析协议 |
| Network Address Translation | NAT | 网络地址转换 |
| Open Systems Interconnection | OSI | 开放系统互连模型 |