(文/阿群)
本文随手记录一些底层网络协议的细节, 假定读者已经熟悉如何使用抓包工具 Wireshark 并且对以太网通讯协议有兴趣.
(以下正文)
--
打开Wireshark主程序, 指定一块网卡, 开始抓包.
这里我抓到一个典型HTTP网页请求包, 作为例子
MAC地址报头14字节
00 ec ac ce 91 37---f4 4d 30 1b bd b7---08 00
无论抓到哪种包, 从抓包记录中肯定能看见自己的网卡MAC地址.
MAC地址长度是6字节, 每一块网卡都有独一无二的MAC地址.
抓包记录中, 自己网卡的MAC地址和对方主机的MAC地址同时出现, 一共是12字节.
顺序是destination MAC在前, source MAC在后.
接下来还有2字节代表以太网数据类型.
EtherType=0x0800指明按照IPv4协议解析后续数据
EtherType 是以太帧里的一个int16字段,用来指明应用于帧数据字段选择的协议。
为了能够向前兼容早期实验阶段的以太网, 当EtherType的值>=0x0600即1536时这个桢才是以太网II型数据桢. 这个值小于1500时是兼容早期的以太网报文格式, 作为报文长度.
通过以太网层的MAC header里面的这个EtherType字段标记出接下来应该采用哪种具体的第三层协议解析报文, 第三层协议包括IPv4/ARP/PPPoE/802.1X等协议
参考: https://en.wiki