Advertisement

数据链路层--以太网协议

阅读量:

目录

以太网协议

认识以太网

以太网帧格式

认识MAC地址

认识MTU

数据跨网络传输的过程

ARP协议

ARP概念

ARP数据的格式

ARP协议的工作流程

ARP请求的过程

ARP应答的过程

ARP缓存表


在系统性地学习完IP协议之后, 我们清楚地认识到, 网络层的主要任务是确保数据能够跨越不同网络传输. 相比之下, 在链路层所处理的则是连接在同一局域网内的两台主机之间的通信问题.

以太网协议

认识以太网

ethernet并不是一个具体的网络体系,而是采用的技术标准.它涵盖了数据链路层的内容,并包含了一些物理层的相关知识.

规范了网络的物理架构以及相应的访问权限控制机制; 规划了网络的主要传输速度参数; 网络介质的具体传输速率包括10兆、100兆以及1000兆等多种规格;

目前应用最为广泛的局域网络协议是基于以太网的标准,并与之同时使用的还有令牌环网络和无线局域网(WLAN)等技术。

尽管不同局域网所采用的通信技术可能存在差异,在这种情况下IP协议依然能够有效地屏蔽这些底层差异。从协议层面上看,在处理数据时所有参与方都无需关注具体使用的局域网技术类型

  • 数据会在发送前先完成打包处理,在链路层阶段为打包后的数据添加相应的本地网络报头。
  • 要实现跨网络传输的数据必须经过路由器的转发操作。
  • 当数据到达路由器准备向上级节点传送时会剥离其本地网络报头。
  • 在路由器准备将数据转发至下一跳节点之前会负责添加目标下一跳网络对应的本地网络报头。

但在以太网架构中,所有主机共享一个通信信道,并非独立传输

受限于以太网中的所有主机共享一个通信信道这一事实,在同一时刻不同主机无法同时发送数据。如果它们同时发送数据的话,则会导致信息相互干扰。为此而存在一种名为'冲突避免协议'的机制来解决这一问题。冲突避免协议通过让主机在检测到冲突后等待一段时间后再尝试发送数据。同时,在这种情况下所采用的重传机制与局域网中的情况有所不同。

以太网帧格式

  • 源地址与目的地址表示网卡的硬件身份标识(即MAC address),长度为48位,并在网卡生产过程中预先设定。
  • 帧协议类型字段包含三种值,分别代表IP protocol、ARP protocol以及RARP protocol。
  • 帧末尾位置设有CRC校验码这一机制,在通信过程中起到确保数据传输准确性和完整性的作用。

MAC帧如何决定将有效载荷交付给上层的哪一个协议?

由于MAC帧具有固定长度特性,在底层接收一个完整的MAC帧时可以直接提取出其中固定长度的帧头与帧尾字段内容,则剩余部分即为有效负载数据。当一个局域网中的主机接收到该MAC帧时,则会识别其目的MAC地址并与本地主机的MAC地址进行比对验证。若验证通过,则会将之前提取的有效负载数据传递给上层IP层进行后续处理;而未成功匹配的其他主机则会丢弃该数据包。

认识MAC地址

该独特数字序列用于标识连接在以太网帧头中的设备。
长度设定为48位,并占用了6个十六进制字节;通常采用十六进制表示法,并以冒号分隔各个部分的形式书写。
由网卡在出厂阶段预先配置其唯一标识符;该标识符不可更改;绝大多数情况下都是唯一的;但虚拟机环境中生成的MAC地址并非真实的设备ID,在某些情况下可能导致冲突;此外,部分网络适配器支持用户自定义设置。

可以通过ifconfig命令来查看我们的MAC地址

认识MTU

MTU(Maximum Transmission Unit)表示底层数据帧一次最多能传输的数据量。这一限制是由不同数据链路层对应的物理层所决定的。
在不同的网络环境中, MTU有所差异。
根据以太网的规定, 在MAC帧中至少要有46字节的数据字段。
如果发送的数据量少于46字节, 则需要在其后填充足够的零值位来满足最低要求。

例如,在数据通信领域中,TCP被视为传输控制协议。它规定单次向下发送的数据量不得超过特定的最大报文段长度,并附带其定义:MSS全称为Maximum Segment Size(最大报文段长度)。此外,请注意:
MAC帧的有效载荷最大可达MTU。
而TCP与IP一般情况下会使用固定大小的报头部分(通常为20字节),因此:
MSS = MTU - 20 - 20
其中:
MTU的通常取值为1500字节。

数据跨网络传输的过程

例如:有两台主机分别标记为A和B,并且这两台主机位于不同的局域网内。当主机A向主机B传输数据时(此处仅涉及网络层与数据链路层):

  1. 主机A必须将封装好的MAC帧发送至自己的局域网络内。
  2. 因此,在主机A的局域网络内的所有其他主机都能够接收到这个MAC帧。
  3. 路由器检查发现该MAC帧的目的MAC地址与自身的MAC地址一致。
  4. 路由器将解包后的IP数据报传递给IP层处理流程。
  5. 路由器提取并解析IP报头中的目的IP地址。
  6. 通过路由表查询后确定将数据转发至下一个 hop 的目标节点。
  7. 路由器重新封装后的 MAC 帧头和尾部分别对应的是路由器 A 和 routers B 的 MAC 地址。
  8. 这一过程会持续下去直至将数据传输至最终的目的节点——主机 B。
  9. 不过需要注意的是,在最初的阶段中主机 A 并不具备直接访问宿主 B 的 MAC 地址信息。

实际数据在路由过程中会存在两种类型的网络参数配置:一种是基于源端口信息与目标端口信息的参数设置;另一种则是依据本地机器物理位置与远程机器物理位置的相关信息进行的数据传输配置。(其中,在动态 NAT 网络环境中,默认情况下所有 MAC 地址都发生变更;但对应的 IP 信息并未发生变动)(具体而言,在动态 NAT 网络中运行时的实际数据传输中,则会根据网络拓扑关系自动完成相关 IP 地址转换工作)

ARP协议

ARP概念

基于IP地址的MAC地址解析机制(ARP)是一种将IP地址转换为对应MAC地址的技术,并且属于TCP/IP协议家族的一员。

在介绍数据跨网络传输过程的地方,在下面段落中详细描述了该过程的相关内容。
【在介绍数据跨网络传输过程的地方,
【该协议可用来解决相关问题,
【基于IP地址获取目标主机的MAC地址。

补充:APR协议也是属于数据链路层的,不过它在MAC协议上面。

ARP数据的格式

各个字段解释:

在链路层中定义的网络类型为硬件类型。
目标地址类型的协议类别称为协议类型。
由于MAC地址是48位的特性,在以太网中使用6字节表示硬件地址长度。
IP地址所占位数为4字节的特点决定了协议地址长度。
op字段值1代表ARP请求行为;op字段值2则表示对应的ARP应答过程。

ARP属于MAC帧协议的上层协议,在其数据格式中包含前三个字段以及最后一个字段来构成以太网头部。然而,在将这些数据包封装为MAC帧时需要补充18字节填充字段以满足要求。

ARP协议的工作流程

以如上所述的数据跨网络传输(即主机A与主机B之间的通信)为例:仅限于介绍网络安全中的网络层和数据链路层的相关内容。

路由器D负责将数据转发给同一局域网当中的主机B。但此时路由器D仅知道该主机的IP地址,并不知其MAC地址。因此路由器D需向该主机发送ARP查询报文,并等待其响应以确定其MAC地址。

ARP请求的过程

路由器D需要先构建ARP请求。过程如下:

路由器D生成了一个ARP请求。
因此在该ARP请求中设置了op字段为1。
通过以太网进行通信。
所以在该ARP请求中设置了硬件类型字段为1。
ARP请求中的协议类型字段被设定为0800。
因路由器需根据主机B的IP地址获取其MAC地址。
在该ARP请求中分别设置了发送端以太网地址和IP地址。
它们分别对应于路由器D自身的MAC地址和IP地址。
目的是为了发送到主机B所在的网络内。
在此过程中由于路由器D无法获取主机B的具体MAC地址信息,
它会将目的以太网地址的二进制序列设定全置高电平,
实现仅限于局域网内的广播机制运行。

此时还要进行向下交付,将数据封装成MAC帧。

主机B所在的局域网内的所有主机都可以接收到这条数据,并且该MAC帧是以广播的形式发送出去的。因此,在局域网内所有的主机都会对这条数据进行解包处理。当这些主机检测到MAC帧中的帧类型字段值为0806时(这里的"0806"表示的是一个特定的字段值),它们就会意识到这是一个ARP请求或响应的数据包,并会将MAC帧的有效载荷传递给下一层的ARP层进行处理。最后,在所有的主机中只有主机B能够检测到ARP数据包中的目的IP地址与自己的IP地址相同的情况发生时(这里的"目的IP地址"指的是目标设备的IP地址),因此只有主机B会对这个ARP请求做出应答回应;而整个局域网内的其他主机在识别到 ARP 数据包中的目的 IP 地址与自己的不匹配时(这里的"不匹配"指的是目标设备 IP 地址与本地 IP 地址不符),就会直接将这个 ARP 请求报文丢弃。(这里是在 ARP 层次丢弃)

ARP应答的过程

这一过程同样遵循类似的模式,在接收到此消息后的情况也是如此:当主机B接收到此消息时,则明确了解路由器D的IP地址和MAC地址。

过程:

主机B生成的是ARP响应。

在该类ARP响应中OP字段被指定为数值2。

其中,在ARP响应中提到的各项参数(如硬件类型等)与相应的ARP请求参数值一致。

在该类ACP响应中所列发包方(即主机B)的MAC寻址与IP寻址与目标设备(即路由器D)所列发包方的信息一致。

因为路由器D发送的该类ACP请求告知了主机B其MAC寻址和IP寻址配置信息的原因是由于该设备已向主机B发送过此类ACP请求

同样也要向下交付,封装为MAC帧

特别注意:当Mac帧中的目的Mac地址并非全部为1时,在接收到该数据后,在本局域网内的其他主机会发现此Mac帧对应的以太网目标地址与自身不同,并因此丢弃此Mac帧而不将其发送给ARP层。

ARP缓存表

无需每次都主动发起ARP请求以获取目标主机的MAC地址,在此过程中会建立目标主机对应的IP地址与MAC地址映射关系。所有运行网络设备的主机均维护有独立的ARP缓存表,并可通过执行arp -a命令查看当前系统中的 ARP 映射状态。其中 ARP缓存表中的条目具有过期时间设置,并可通过执行arp -a命令进一步确认当前状态信息。

全部评论 (0)

还没有任何评论哟~