链路层 : 以太网和IEEE802封装
IEEE802很少见,主要是以太网协议。
头部有6个字节的目的地址MAC和源地址MAC。
以太网协议接着是2个字节的类型。
类型0x0800后面接着IP协议头,0x0806接着ARP协议头。
下面是一个普通的以太网协议的包结构:
以太网协议包结构
环回接口
传给环回地址(一般是127.0.0.1)的任何数据,直接作为IP输入回来。
几种情况:
1、IP是环回地址则直接回来,不经过以太网
2、IP是广播或多播地址,先复制一份给环回接口,然后作为IP输入。然后再传输给以太网。即无需经过以太网转发,我自己就已经收到该广播的消息了。
3、IP地址就是自己的地址,则也直接传给环回接口,无需传给以太网。
MTU
MTU:Max Transfer Unit
为啥以太网数据包数据最大是1500字节呢?MTU=1500byte
https://www.zhihu.com/question/21524257
如果IP层有个数据长度比MTU大,那就需要分片。
点到点的链路层MTU并非物理限制,而是逻辑限制,是为了交互提供足够快的相应时间。
MTU是从发送的时候检查的,发送时就不能大于MTU。
在整个传输过程中,经过各个路由器,都有MTU,其中路径上最小的MTU被称为路径MTU。
路径MTU在两个方向上不一定相同。A->B是500,B->A可能是400.
网友评论