数据链路层

目录

以太网

以太网帧格式

MTU

MTU与IP、UDP\TCP的影响

IP

UDP

TCP

ARP协议

ARP工作流程

ARP数据报的格式 


以太网

"以太网" 不是一种具体的网络, 而是一种技术标准

以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线 LAN 等

以太网帧格式

帧格式如下图所示:

数据链路层_第1张图片

目的地址:接收方的MAC地址,用于标识帧的目的地。

源地址:发送方的MAC地址,用于标识帧的来源。

类型:这个字段指示帧中封装的网络层协议类型。

0800表示封装的是IPv4数据报。

0806表示封装的是ARP请求或应答。

8035表示封装的是RARP请求或应答。

CRC: 循环冗余校验码,用于检测帧在传输过程中是否出现错误。

MTU

MTU指的是在以太网中,一个网络帧可以传输的最大数据量,不包括帧头(目的地址、源地址、类型/长度字段)和帧尾(帧检验序列,FCS)。

以太网帧中的数据长度规定最小46字节,最大1500字节,ARP 数据包的长度不够46字节,要在后面补填充位

最大值 1500 称为以太网的最大传输单元(MTU),不同的网络类型有不同的 MTU

如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的 MTU 了,则需要对数据包进行分片

不同的数据链路层标准的MTU是不同的

MTU与IP、UDP\TCP的影响

IP

由于数据链路层 MTU 的限制, 对于较大的 IP 数据包要进行分包

将较大的 IP 包分成多个小包, 并给每个小包打上标签,每个小包 IP 协议头的 16 位标识都是相同的,每个小包的 IP 协议头的 3 位标志字段中, 第 2 位置为 0, 表示允许分片, 第 3 位 来表示结束标记,到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层,一旦这些小包中任意一个小包丢失, 接收端的重组就会失败

UDP

一旦 UDP 携带的数据超过 1472(1500 - 20(IP 首部) - 8(UDP 首部)), 那么就会在网络层分成多个 IP数据报

这多个 IP 数据报有任意一个丢失, 都会引起接收端网络层重组失败。那么这就意味着, 如果 UDP 数据报在网络层被分片, 整个数据被丢失的概率就大大增加了

TCP

TCP 的一个数据报也不能无限大, 还是受制于 MTU。TCP 的单个数据报的最大 消息长度, 称为 MSS,TCP 在建立连接的过程中, 通信双方会进行 MSS 协商

最理想的情况下, MSS 的值正好是在 IP 不会被分片处理的最大长度
双方在发送 SYN 的时候会在 TCP 头部写入自己能支持的 MSS 值,然后双方得知对方的 MSS 值

之后, 选择较小的作为最终 MSS

MSS 的值就是在 TCP 首部的 40 字节变长选项中(kind=2)

ARP协议

ARP是一种网络层协议,用于将网络层的IP地址解析为数据链路层的MAC地址

由于数据包是被网卡接收到再去处理上层协议的,在网络通讯时,源主机的应用程序知道目的主机的 IP 地址和端口号,却不知道目的主机的硬件地址,所以我们需要知道目的主机的硬件地址

ARP 协议建立了主机 IP 地址 和 MAC 地址 的映射关系,所以它可以将IP地址解析为数据链路层的MAC地址

ARP工作流程

源主机发出 ARP 请求,询问IP 地址是 192.168.0.1 的主机的硬件地址是多少,并将这个请求广播到本地网段,目的主机接收到广播的 ARP 请求,发现其中的 IP 地址与本机相符,则发送一个 ARP 应答数据包给源主机,将自己的硬件地址填写在应答包中。

ARP数据报的格式 

格式如图所示:

数据链路层_第2张图片

目的地址:接收方的MAC地址。

源地址:发送方的MAC地址。

帧类型:上层协议类型,对于ARP请求和应答,帧类型通常为0x0806。

硬件类型:硬件地址类型,以太网的值为1。

协议类型:协议地址类型,对于IPv4,值为0x0800

硬件地址长度:硬件地址长度,以太网地址长度为6。

协议地址长度:协议地址长度,IPv4地址长度为4。

操作码(op):ARP操作类型,1表示ARP请求,2表示ARP应答。

发送端以太网地址:发送ARP请求或应答的设备的MAC地址。

发送端IP地址:发送ARP请求或应答的设备的IP地址。

目的以太网地址:目标设备的MAC地址。在ARP请求中,这个字段通常为0,表示未知,在ARP应答中,这个字段包含目标设备的MAC地址。

目的IP地址: 目标设备的IP地址。


完 

你可能感兴趣的:(网络,MTU,ARP)