数据链路层之以太网协议

网络基础 同时被 2 个专栏收录
7 篇文章 3 订阅
6 篇文章 0 订阅

在 IP 数据包交付的过程中,在数据链路层会对数据包进行添加报头信息。以太网协议就是数据链路层的一个重要协议。这样说其实不太准确,因为以太网协议是一个规定数据链路层及物理层的协议,不能说它是数据链路层的一个协议。

以太网帧

以太网帧就是将网络层交付的数据添加报头信息后,此时的数据以帧的形式传递。以太网帧的格式如下:

这里写图片描述

在这里,目的地址与源地址这里都指的是 MAC 地址。每一个主机对应唯一的一个 MAC 地址,是由网卡决定的,长度是 48 位,所以这里的目的地址与源地址都是 6 个字节,也就是 48 个比特位。

在以太网帧的最后,还有一个 CRC 校验码,来校验数据是否异常。

在中间,有一个两个字节的类型标识。这个类型字段有三种值,分别是 : IP、ARP、RARP。

IP

这里写图片描述

如果类型码为 0800 那么在数据链路层解包完毕后,将该数据交付给网络层的 IP 协议来处理该报文。

ARP

这里写图片描述

如果类型码是 0806 , 那么在向上层交付的时候就交付给 ARP 协议,这里要说的是 ARP 协议是处于数据链路层与网络层之间的一种协议,也叫作地址解析协议。它将 IP 地址转换为 MAC 地址。

RARP

这里写图片描述

RARP 协议,就是 Reverse ARP,与 ARP 协议相同,是将 MAC 地址转换为 IP 地址的协议。


一般来说,数据第一次发送给目的主机时,在这之前应该发送 ARP 协议,根据目的主机的 IP 地址来确定目的主机的 MAC 地址,从而为后面的数据发送与接收提供便利。

MAC地址与IP地址

在数据发送传输的过程中,目的 IP 地址与源 IP 地址是永远不会变的,这是这个数据的起始与终点,而 MAC 地址是一直在变化的,由于数据在传输的过程中会经历很多的主机等,所以在这个过程中 MAC 地址一直在变。类似于我们坐车,要坐车从 A 出发,目的地是 D。这个过程中我们会经过 B C,在到达 B 的时候,此时的 MAC 地址相当于我们上一站是 A , 下一站是 C。而目的 IP 地址与 源 IP 地址 分别是 D 与 A,这样说的话就很好理解了。

MAC 地址与 IP 地址,一个代表的目的与终点,一个代表着途中的经过。所以在到达目的局域网后,数据包并不知道要传输给哪台主机,因为 MAC 地址的变化,但是目的 IP 地址一直没有变化,所以此时就需要 ARP 协议来确定目的主机的 MAC 地址。

MTU

在谈 IP 协议的时候说到, IP数据报的长度受数据链路层的 MTU 影响。数据链路层要求在网络层传输过来的数据包必须在 MTU 范围内,以太网帧中的数据长度必须在 46字节到1500字节当中去。也就是说在 IP 层在添加报头信息之前,要判断此时由传输层传输过来的数据段是否超过了 1480 个字节(以太网帧中的数据包括 IP 协议的报头信息,IP 协议的报头信息为 20 字节),如果超过了,那么则对该数据段进行分片,所有被分片的数据的 IP 报头信息当中,它们的 16 位标识都是相同的,并且报头信息中的标志字段中第二位为 0 ,第三位如果为 1 ,代表着报文的结束。

接收端在接收到这里分片数据后,根据 IP 报头信息的 16 为标识信息、三位标志位、13位偏移量信息进行组装。

如果分片后的数据在接收端丢失某一片,那么就组装失败。即使组装失败, IP 层也不负责重新传输的功能。这是传输层所该做的事情。

我们发现 ARP 协议与 RARP 协议它们的实际数据只有 28 个字节,于是在它的报文后进行补位,其中 PAD 就是用来填充的,使 ARP / RARP 协议的长度达到 MTU 的最小字节数。

对于 UDP 传输的影响

一旦 UDP 携带的数据超过了 1472 (MTU - IP报头 - UDP报头 = 1500 - 20 - 8),那么在 IP 层就会对该数据分片,一旦分片就意味着增加了 UDP 传输丢包的可能性。 由于 UDP 协议传输本身就不负责可靠性,再加上分片,那么丢包的可能性就大大增加。

对 TCP 传输的影响

TCP 协议在传输时也收到 MTU 的影响。一个 TCP 数据报的最大长度为 MSS 。MSS 处于 TCP 报头信息选项中。在 TCP 进行链接的时候,双方在发送 SYN 与 SYN + ACK 时就会在选项内对 MSS 进行设置。在双方都得到对方的 MSS 时,选择较小的 MSS 的值作为最终的 MSS 。

再说明白点,MSS 的大小其实就是应用层给传输层的交付的数据的大小。不包括传输层的报头信息。所以在计算 MSS 的时候,用 MTU 减去网络层报头长度以及传输层报头长度即可。

这里写图片描述


欢迎大家共同讨论,如有错误及时联系作者指出,并改正。谢谢大家!

  • 4
    点赞
  • 0
    评论
  • 38
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值