数据链路层:网络世界的 “数据快递员”

以太网

以太网(Ethernet)是一种计算机局域网技术。它规定了包括物理层和数据链路层在内的一系列协议标准。

以太网帧

  1. 目的地址(Destination Address)长度为 6 个字节,用于标识接收帧的目的节点的物理地址(MAC 地址)。
  2. 源地址(Source Address)长度同样为 6 个字节,是发送帧的源节点的物理地址。
  3. 类型 / 长度(Type/Length)长度为 2 个字节。当这个字段的值小于等于 1500 时,表示数据字段的长度;当这个字段的值大于 1500 时,表示上层协议的类型,例如 0x0800 表示 IP 协议。
  4. 数据(Data)长度在 46 - 1500 字节之间。它承载着上层协议传递下来的有效信息。如果数据部分不足 46 字节,会进行填充(Padding)以达到最小长度要求。
  5. 帧校验序列(FCS,Frame Check Sequence)长度为 4 个字节,用于对帧进行差错检测。它是通过对帧的其他部分(不包括前导码和帧起始定界符)进行循环冗余校验(CRC)计算得到的。

MAC地址

MAC 地址(Media Access Control Address),也称为物理地址或硬件地址。它是网络设备在数据链路层的唯一标识符。

MAC 地址是一个 48 位(6 个字节)的二进制数,通常用 12 位十六进制数字表示(例如:08:00:27:03:fb:19)

MAC地址在出厂时就确定了,不能修改,MAC地址通常是唯一的.

MAC地址的作用:

在以太网等基于 MAC 地址的网络中,MAC 地址用于在数据链路层实现设备到设备的通信。当设备发送数据时,数据帧中包含源 MAC 地址(发送设备的 MAC 地址)和目的 MAC 地址(接收设备的 MAC 地址),网络中的交换机等设备根据这些 MAC 地址来转发数据帧,确保数据能够准确地从源设备传输到目的设备。

MAC地址和IP地址的区别:

一、地址性质方面

MAC 地址是物理地址,由网络设备的硬件决定,烧录在网络设备的网卡中,具有唯一性且不可更改(部分特殊情况除外)。

IP 地址是逻辑地址,是基于网络拓扑结构和网络管理分配给设备的,它可以根据网络的配置和管理需求进行更改。

二、地址格式方面

MAC 地址长度为 48 位,通常用 12 位十六进制数字表示,例如:00 - 1A - 2B - 3C - 4D - 5E。

IP 地址有 IPv4 和 IPv6 两种格式。IPv4 地址是 32 位,通常用点分十进制表示,如 192.168.1.1;IPv6 地址是 128 位,用冒号分隔的十六进制数表示。

三、网络分层方面

MAC 地址工作在数据链路层,用于在同一链路(如以太网段)上直接标识和定位设备,实现数据链路层的数据帧传输。

IP 地址工作在网络层,用于在不同的网络之间进行路由和寻址,实现跨网络的数据分组传输。

四、地址分配方面

MAC 地址前 24 位由 IEEE 分配给设备制造商,后 24 位由制造商自行分配给生产的网络设备。

IP 地址IPv4 地址由互联网数字分配机构(IANA)分配给各个地区的互联网注册管理机构,再由这些机构分配给网络服务提供商和企业等用户;IPv6 地址的分配方式类似,但地址空间更为丰富。

五、广播方式方面

MAC 地址广播地址是 FF - FF - FF - FF - FF - FF,当设备发送广播帧时,同一链路中的所有设备都会收到该帧。

IP 地址广播地址根据网络类型和子网掩码确定,例如在一个 C 类网络 192.168.1.0/24 中,广播地址是 192.168.1.255,该网络中的所有设备都会收到发往此广播地址的数据报。

认识MTU

MTU(Maximum Transmission Unit)即最大传输单元,它是指在网络中可以传输的最大数据包大小。

MTU相当于发快递时对包裹尺寸的限制, 这个限制是不同的数据链路对应的物理层,产生的限制.

  • 以太网帧中的数据长度规定最小 46 字节,最大 1500 字节,ARP数据包的长度不够 46 字节,要在后面补上填充位        
  • 最大值 1500 称为以太网的最大传输单元(MTU), 不同的网络类型有不同的MTU.
  • 如果数据包从以太路由到拨号链路上,数据包的长度大于拨号链路的MTU,则需要对数据包进行分片
  • 不同的数据链路层的标准的MTU是不同的

MTU对IP协议的影响

由于MTU 的影响,对于较大的IP数据包要进行分包

对于IP数据包的拆包组包,要用到IP协议头中的 16位标识,3位标志和13位片偏移(一旦分片的数据包中任意一个小包丢失,那么接收端的重组就会失败,但是IP层不会负责重新传输数据)

MTU对UDP协议的影响

  • 当UDP数据包的大小超过MTU时,数据包在传输过程中被分片
  • 分片会增加网络设备处理数据包的复杂度,容易导致数据包丢失,其中一个分片丢失,整个数据包都将丢失
  • 过小的MTU会导致UDP数据包被过度分片,产生较多的数据包头部开销,降低传输效率
  • 过大的MTU可能在某些网络环境中无法正常传输,导致数据包丢失或者传输失败

MTU对TCP协议的影响

  • TCP一个数据包也不能无限大,还是受制于MTU.TCP的单个数据报的最大长度称为MSS(最大报文段长度),TCP在建立连接的过程中,会进行MSS协商,最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度. 
  • 例如在以太网中,MTU 为 1500 字节,如果 TCP 报文头部长度为 40 字节,那么 MSS 理论上最大为 1460 字节(1500 - 40),当 TCP 数据超过 1460 字节就可能需要分片.
  • 双方在发送syn时会在TCP头部写入自己能支持的MSS值. 双方在得知对方的MSS值时,会选择较小的MSS值作为最终的MSS值
  • MSS的值就是在TCP首部的40字节变长选项中
  • 虽然在建立连接时进行了 MSS 协商,但如果网络路径发生变化,例如从以太网切换到其他 MTU 较小的网络链路,之前协商的 MSS 值可能不再适用,仍然可能导致数据包分片。不过,TCP 可以通过动态调整窗口大小和拥塞控制机制来适应这种变化,但这也会在一定程度上影响传输性能
  • 当由于 MTU 导致的分片丢失时,TCP 会触发重传机制。但由于分片的存在,接收端可能无法及时判断数据包是否丢失,需要等待所有分片到达后才能进行重组和确认。这可能导致重传的延迟增加,特别是在网络拥塞或链路质量较差的情况下,会进一步影响传输效率。

MSS和MTU的关系

ARP协议

ARP不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层之间的协议.

ARP(Address Resolution Protocol)即地址解析协议,是一种用于将 IP 地址解析为 MAC 地址的网络协议

ARP协议作用

ARP协议建立了主机IP地址和MAC地址的映射关系

地址解析

IP地址到MAC地址的转换:在网络通信中,IP地址用于在网络层表示设备的逻辑地址,而MAC地址用于在数据链路层标识网络设备的物理地址. 当一个设备知道了目标设备的IP地址,但不知道其MAC地址时,就需要使用ARP协议来获取目标设备的MAC地址, 以便能够在局域网内进行数据帧的传输.  

例如: 主机A 要向 主机B 发送数据,只知道主机B 的IP 地址,通过ARP协议就能得到主机B的MAC地址.

建立和维护映射关系

ARP缓存机制: 设备在成功获取到目标设备的 IP 地址和 MAC 地址映射关系后,会将这些信息存储在本地的 ARP 缓存中。当下次再需要与该目标设备通信时,设备会先在 ARP 缓存中查找对应的 MAC 地址,如果存在,就直接使用,无需再次发送 ARP 请求,提高了通信效率。同时,ARP 缓存中的表项有一定的生存时间(如 20 分钟),超过时间没有使用的表项会被删除,以保证缓存信息的有效性和准确性。

网络故障检测与诊断

地址冲突检测:通过发送免费 ARP报文,设备可以检测网络中是否存在其他设备使用了与自己相同的 IP 地址。当一个设备发送免费 ARP 请求时,如果收到了响应,就表明网络中存在 IP 地址冲突。

例如,当一台计算机重新启动并接入网络时,它会发送免费 ARP 请求,以确保自己的 IP 地址没有被其他设备占用。

支持不同网络层协议与数据链路层交互

协议适配: ARP 协议作为网络层(IP 协议)和数据链路层(如以太网)之间的桥梁,使得基于 IP 地址的网络通信能够在使用 MAC 地址的物理网络上进行。它将网络层的 IP 数据包封装成数据链路层的数据帧,并通过 MAC 地址在物理网络中传输,实现了不同网络层次之间的通信衔接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值