正文:
1.概述
数据链路层是计算机网络体系结构中的第二层,负责实现数据在物理层上的传输。在数据链路层中,数据被组织成帧(frame),并且通过MAC地址来进行寻址,以确保数据包能够被正确地发送到目标主机。
数据链路层的主要功能包括帧的封装和解封装、数据传输的错误检测和校正、流量控制和访问控制等。通过数据链路层的工作,可以实现高效可靠的数据传输,保证网络通信的稳定性和顺畅性。
2.以太网帧格式
"以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理
层的内容。以太网帧格式是数据链路层中用于在网络上发送数据的一种标准格式。它定义了数据包的结构,包括了目标地址、源地址、数据段以及一些控制信息。
-
帧起始标记(Preamble):以太网帧的开始是一个7字节的前导码,用来同步接收方的时钟,并提供足够的时间让接收方准备好接收数据。
-
目的地址(Destination MAC Address):占6个字节,指明数据包要传送到的目标设备的MAC地址。
-
源地址(Source MAC Address):也占6个字节,指明数据包的发送者的MAC地址。
-
类型/长度(Type/Length):占2个字节,标识了数据部分的协议类型或者数据长度。当数值大于等于0x600时,表示该字段是类型字段,指示上层协议的类型。当数值小于等于0x5DC时,表示该字段是长度字段,指示数据字段的长度。
-
数据(Data):占46-1500个字节,包含了实际传输的数据。如果数据少于46个字节,则需要填充数据字段,使其达到46个字节的最小长度。
-
帧校验序列(Frame Check Sequence, FCS):占4个字节,用CRC校验算法计算的数据包的帧检验序列。接收方会用这个校验序列来验证数据包的完整性是否受到破坏。
-
帧结束标记(Inter-Frame Gap, IFS):占12个字节,用于表示帧的结束,同时提供足够的时间让网络设备准备好接收下一个帧。
3.MAC地址
MAC地址(Media Access Control Address)是在以太网网络中用来唯一标识网络设备的硬件地址,也被称为物理地址。它是一个48位的二进制地址,通常以十六进制表示,由6个字节组成,每个字节用冒号或连字符分隔。
MAC地址是在硬件层面上固定的,无法被修改。每个网络设备都有一个唯一的MAC地址,类似于每个设备的身份证号码,用来在以太网网络中进行唯一标识和通信。
MAC与IP的区别:
- 层次结构:MAC地址是数据链路层(第二层)中使用的地址。它是在硬件层面上唯一标识网络设备的地址。IP地址是网络层(第三层)中使用的地址。它是逻辑地址,用于在全球互联网络上唯一标识设备以便进行通信。
- 标识范围:MAC地址是每个网络设备的全局唯一硬件地址,由设备的制造商固化在硬件中,无法在网络中被修改。IP地址是逻辑地址,标识网络中的主机或路由器。IP地址可以在网络中分配和修改,允许灵活管理设备之间的通信。
- 格式:MAC地址是48位的二进制地址,通常以十六进制表示,用它来在局域网中唯一标识网络设备。IPv4地址是32位地址,通常以点分十进制表示(如192.168.1.1),IPv6地址是128位地址,以冒号分隔(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
- 作用:MAC地址用于数据链路层的信令和物理层的数据传输,帮助网络设备在局域网中进行直接通信。IP地址用于在网络层确定数据包的路由路径,帮助数据包在广域网中进行跨网络的传输。
MAC地址是硬件层面上固定的、局域网络中唯一标识设备的地址,用于局域网的数据链路层通信;而IP地址是逻辑的、在全球网络范围内唯一标识设备的地址,用于实现跨网络的数据包传输。
4.MTU
MTU(Maximum Transmission Unit)它指的是网络中能够一次传输的数据包的最大大小。MTU的大小限制了在网络中传输的数据包的大小,超过MTU大小的数据包需要被分片(在发送端分为多个较小的数据包)才能在网络中传输。
MTU大小: MTU大小通常是根据网络设备的传输介质和协议确定的。在以太网中,常见的MTU大小是1500字节,这是大多数以太网网络的默认MTU值。在其他网络类型中,MTU大小可能有所不同。
MTU的作用:
-
避免分片:通过设置合适的MTU值,可以减少或避免数据包在传输过程中的分片现象。分片是指当一个数据包大于网络的最大传输能力时,该数据包被拆分成更小的片段以便传输。
-
提高效率:如果MTU设置得过大,可能会导致频繁的分片和重组,从而降低网络传输效率。相反,如果MTU设置得过小,则会限制数据的有效载荷,导致更多的数据包传输,增加网络拥塞。
-
适应不同网络环境:不同的网络类型和设备可能有不同的MTU限制。设置合适的MTU可以确保数据包在不同网络环境中顺利传输。
Path MTU Discovery(PMTUD): 为了避免数据包分片和提高数据传输效率,网络中使用Path MTU Discovery(PMTUD)技术来动态确定网络路径上的最大MTU,并根据这个值来调整数据包的大小。PMTUD通过不断发送带有不同大小的数据包来探测路径上的最大MTU,以确保数据传输在不引发分片的情况下能够正常进行。
MTU是网络通信中一个重要的参数,控制了能够一次传输的数据包的最大大小,影响着网络通信的效率和性能。
5.ARP协议
ARP(Address Resolution Protocol)是一种用于在局域网中将IP地址映射到MAC地址的协议。在IPv4网络中,当一台设备需要与另一台设备通信时,需要知道目标设备的MAC地址,而ARP协议就是用来解析目标IP地址对应的MAC地址的。
ARP的工作原理:
- 设备A需要发送数据包到设备B,但只知道设备B的IP地址,不知道它的MAC地址。设备A将发送一个ARP请求广播包,询问整个局域网中谁拥有目标IP地址对应的MAC地址。
- 设备B接收到ARP请求后,会发送一个ARP响应包,包含自己的MAC地址。设备A收到响应包后,就会知道设备B的MAC地址,然后可以直接发送数据包到设备B。
- ARP请求和响应包都是在数据链路层(二层)进行广播的,以确保局域网中的所有设备都能接收到。一旦设备A缓存了设备B的IP地址和MAC地址的映射关系,它就可以直接使用该映射,无需再发送ARP请求。
ARP的工作流程:
- 发送方检查自己的ARP缓存,查找接收方的IP地址对应的MAC地址。
- 如果找不到,发送方在局域网内广播ARP请求。
- 接收方接收到ARP请求,并识别出请求中的IP地址与自己的IP地址匹配。
- 接收方发送ARP响应,提供自己的MAC地址。
- 发送方接收到ARP响应,更新ARP缓存,并使用新的MAC地址发送数据。
ARP缓存: 为了提高效率,设备会在本地维护一个ARP缓存,用于存储IP地址与MAC地址之间的映射关系。当设备需要发送数据包时,首先检查本地的ARP缓存,如果找到目标IP地址对应的MAC地址映射,则直接使用缓存中的映射,不需要再发送ARP请求。
ARP的局限性
- 广播限制:ARP请求是广播的,这意味着它只能在同一局域网内工作,不能跨越路由器。
- 安全性问题:ARP协议本身没有认证机制,容易受到ARP欺骗攻击,攻击者可以伪造ARP响应,导致网络流量被重定向。
- 动态性:ARP缓存条目不是永久的,通常会在一定时间后过期,需要定期更新。
ARP是网络通信中一个基础但非常关键的协议,它使得设备能够在局域网内通过IP地址找到对应的MAC地址,从而实现数据的传输。
总结:
数据链路层是OSI模型中的第二层,负责在直接相连的两个节点之间传输数据。数据链路层通过定义数据帧格式、数据传输、MAC地址和碰撞检测等功能,实现了在直接相连的节点之间安全、可靠地传输数据的功能。