总结数据链路层

上一篇文章说到:网络层实现的是直至目的地址(主机A到主机B)的通信,而具体的实现某一个跳转的通信,是由数据链路层实现的,如图:
这里写图片描述
具体附链接:
https://blog.csdn.net/han8040laixin/article/details/81354588

数据链路层的作用:用于两个设备(同一种数据链路节点)之间进行传递。

一:简单了解以太网
以太网不是一种具体的网络,而是一种技术标准;
以太网是一种应用于数据链路层,同时包含物理传输线路和数据报文格式两方面的一个标准,比如规定了网络拓扑结构,访问控制方式,传输速率等。

二:以太网帧格式
这里写图片描述

是定长报头来分离报头和有效载荷。

目的地址:指这个报文即将发往的下个主机的网卡地址;
源地址:指本机的网卡地址。

这个网卡地址就是MAC地址,通常是一个6字节48位,用来标示数据链路层中相连的节点;是在出厂时已经固化,是惟一的。
—————————————————————————————————————————————————

类型:交付给上层的哪个协议,用于分用。

数据:包括应用层头部+传输层头部+网络层头部+有效载荷,最少得有46字节,不得超过1500字节。不够46字节,要在后面补填充位;如果大于1500字节,就需要提前在网络层分片,这个具体在后文详细说。

CRC:检验码。

帧协议类型字段有三种值,分别对应IP,ARP,RARP。

扫描二维码关注公众号,回复: 2763113 查看本文章

三:MTU(以太网的最大传输单元)

MTU相当于快递包裹的尺寸限制,这个限制是不同的数据链路对应的物理层产生的限制;
以太网帧中数据长度最小为46字节,最大为1500字节;不够46字节,要在后面补填充位;如果大于1500字节,就需要网络层分片;
这个最大值1500就称为以外网的MTU(最大传输单元);
不同的数据链路层标准的MTU是不同的。

MTU对网络层IP协议的影响
因为数据链路层的MTU限制,所以对于较大的IP数据报要进行分片,这牵扯到IP协议的16位标识(id),3位标志位,13位片偏移量:
将一个较大的IP数据包分成多个小包,通过16位标识,经过分片的报文主机标识是一样的;
每个小包的IP协议报头有三位标志位,第二位为0表示允许分片,第三位相当于结束标记,最后一个分片置为1,其他为0;
到达对端时,会根据分片相对于原始报文开始处的偏移量,按偏移量进行排序组装。

MTU对传输层的影响
①对UDP的影响
由于MTU的影响,一旦UDP携带的数据超过1500-20(IP首部)-8(UDP)首部 = 1472字节,那么就会在网络层中分成多个IP数据报;
这些IP数据报有一个丢失,就会引起接收端网络层重组失败,所以UDP数据报一旦在网络层分片,那个整个数据就可能丢失。

②对TCP的影响
TCP的一个数据报长度也受限于MTU,TCP的单个数据报最大长度叫MSS;
TCP在建立连接时,还会进行协商MSS(最大段尺寸);理想情况MSS的值为在IP不会被分片处理的最大长度;
双方在三次握手发送SYN的时候会在TCP首部写入能支持的MSS,最终取较小值;MSS在TCP头部的选项中。

使用ifconfig可以查看MTU:
这里写图片描述

三:ARP协议

ARP协议是一个介于数据链路层和网络层之间的协议。
它的作用是当找到目标网络,将IP地址转换为MAC地址,从而找到目标主机;它建立了主机IP地址和MAC地址的映射关系。

ARP的必要性
在一个网络通信中,源主机的进程知道目的主机的IP地址(网段和主机)和端口号(进程),但是不知道目的主机的MAC地址;而数据包是先被网卡接收到再去处理的上层协议的,如果接收到的数据包的MAC地址与本机器不符,就直接丢弃了,所以在网络通信中必须知道目的主机的MAC地址。

ARP协议的工作流程:
这里写图片描述
1.源主机发送ARP请求,询问目的主机的MAC地址是多少,并将该请求广播到本地网段(目的MAC地址设置为全1为广播);
2.目的主机收到广播的ARP请求,发现目的IP地址与自己相符,就发送一个ARP应答数据包给源主机(含有它的MAC地址)

每台主机都维护一个ARP缓存表,用来记录已经知道的映射关系,该表有过期时间为20分钟,20分钟内如果没有使用该表则失效。使用arp -a查看。

ARP数据报格式
这里写图片描述
接下来以发送端和应答端的两个角度来解析:

①发送端
以太网目的地址:全1,为广播形式
以太网源地址:自己的MAC地址
帧类型:0800
硬件类型:指链路层网络类型,1代表以太网
协议类型:0800位IP地址
硬件地址长度:对于MAC地址为6字节
协议地址长度:对于IP地址为4字节
op:1(表示ARP请求)
发送端以太网地址和发送端IP地址:自己的MAC地址和IP地址
目的以太网地址和目的IP地址:目的以太网地址为全1,表示广播;目的IP地址为对端IP地址

②应答端
以太网目的地址:对方MAC地址
以太网源地址:自己的MAC地址,把自己的MAC地址告诉对端
……
op:2(表示ARP应答)
……

第一步看的是op,要知道这个报文是ARP请求还是ARP应答。

猜你喜欢

转载自blog.csdn.net/han8040laixin/article/details/81385996