我一直以为IP数据包,到物理层发送这之间不再有什么操作性了。因为在平常的交流中谈协议,谈到IP这一层基本就止住了,仿佛IP打包后就可以直接发送了是的。然而当我读了《TCP/IP详解卷一:协议》后,我才发现其中并没有那么简单。也许是因为接近真实世界的原因,不同的网络连接方式最终封装的IP都不太一样。
以太网和IEEE 802
以太网和IEEE 802是最常见的两种协议,它们的数据报如下:
目的地址和原地址指的就是物理地址(MAC地址),它们是通过ARP协议获取的(下文会介绍)。
我们将目光放到封装的数据部分,可以看到封装的三种报文(IP、ARP、RARP)类型是一致的,但是后面的数据长度范围并不一致。IEEE802的最小值是36字节(PAD 代表填充字节的意思),而以太网的是46。
在观察除了数据以外的部分,会发现他们源地址、目的地址都在开头并占据相同长度,尾部都是4字节的CRC(检验码),不一样的是IEEE802比以太网多占用了8个字节(长度+几个不明就里的固定字段)。
在我看来以太网应该是IEEE 802的升级版(因为减少了一些不需要的固定字节的占用),然而以太网出现的时间比IEEE 802提前,也就是说IEEE 802才是升级版。更神奇的是RFC标准规定,以太网必须支持而IEEE选择支持。然而我查找了半天资料没有发现两个同时存在