以太网帧格式
最大传输单元----MTU
1)是什么
- 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
- 其中,最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,不同的数据链路层标准的MTU是不同的。
2)MTU对IP协议的影响
- 将较大的IP包分成多个小包,并给每个小包打上标签;
- 每个小包IP协议头的16位标识(id) 都是相同的,每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置为1,否则置为0);
- 到达对端时再将这些小包,会按顺序重组,拼装到一起返回给传输层;
- 一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据,导致数据报丢失。
3)MTU对UDP协议的影响
- 一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个IP数据报;
- 多个IP数据报有任意一个丢失,都会引起接收端在网络层重组失败,意味着,如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了。
4)MTU对于TCP协议的影响
- TCP的一个数据报也不能无限大,还是受制于MTU;
- TCP的单个数据报的最大消息长度,称为MSS,TCP在建立连接的过程中,通信双方会进行MSS协商,最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度。
ARP协议
1)是什么?
- ARP协议建立了主机 IP地址和MAC地址 之间的映射关系;
2)为什么?
- 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;数据包首先是被网卡接收到,再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;因此在通讯前必须获得目的主机的硬件地址。
3)工作流程
- 在局域网中,发起方构建ARP请求,以广播的方式发送给局域网中的每一台主机;每台主机都能识别,然后根据以太网首部的帧类型0x0806交付给每个主机的arp层;其他不相关的主机会根据目的ip地址,在自己arp协议的内部丢弃arp请求;目标主机构建好ARP应答后,以1对1的形式把ARP应答数据返回给源主机;源主机根据op字段判定是ARP请求还是应答,如果是应答,就提取ARP应答中的发送端mac地址和ip地址。