技术笔试面试

计算机网络协议包头赏析-以太网

本原创文章属于《Linux大棚》博客。

博客地址为http://roclinux.cn

文章作者为roc

==

一年一度的大规模校招就要开始了,我也将作为面试官投入到毕业生招聘活动中去,

对于互联网公司来说,网络知识是经常会被考到的知识点,借此机会,和大家一起重温。

本文会介绍以太网帧格式,后续会陆续介绍IP/TCP/UDP/ICMP等。

==

【以太网协议帧结构】

说到以太网帧结构,它的历史演变稍显混乱。我们将介绍一下以太网标准的演变历史。

1980年那年,DEC、施乐和Intel共同制定了Ethernet I的标准,首次定义了以太网帧格式。

在1982年,三家公司对第一版本进行了更新,主要是修改了物理接口,帧格式没有变化。此更新版本被命名为Ethernet II标准。

与此同时,IEEE开始把目光转移到了Ethernet标准的制定上来,并计划推出以太网的802.3国际标准。

3年后,也就是1985年,IEEE正式推出了IEEE802.3标准规范,从此以太网有了权威的国际标准,此版本和Ethernet II标准的主要区别在于其将原来的协议类型字段替换为了帧长度字段,并加入802.2 LLC头用以标识上层协议。

而后来所产生的802.3/802.2 SNAP,则是IEEE为了更好的支持IP协议而发布的以太网标准。它和802.3标准相比,扩展了LLC头,新增了2字节的协议类型域。

目前我们最经常使用的其实是1982年发布的Ethernet II标准,因此,我把Ethernet II标准的帧格式列在这里:

其中类型字段,为2字节,用来标识上一层所使用的协议类型,如IP协议(0x0800)等。

数据字段,长度范围为46到1500,这是为什么呢?因为以太网包最小规定为64字节,不足的也会填充到64字节。而以太网帧格式的其他部分加起来是6+6+2+4=18字节,所以数据部分的最小长度为64-18=46字节;而以太网包的最大长度是1518字节,因此1518-18=1500字节。

最后的FCS字段是帧校验字段,即Frame Check Sequence,用来保存CRC校验值。

谢谢!

1条评论

发表您的评论

请您放心,您的信息会被严格保密。必填项已标识 *