2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > wireshark以太网协议分析

wireshark以太网协议分析

时间:2019-10-15 01:40:48

相关推荐

wireshark以太网协议分析

一、关键术语和协议码

1、关键术语

最大传输单元(Maximum Transmission Unit,MTU)

最大报文段长度(Maximum Segment Size,MSS)

循环冗余校验(Cyclic Redundancy Check,CRC)

帧检验序列(Frame Check Sequence,FCS)

2、协议码

ICMP:1

IGMP:2

TCP:6

UDP:17

EIGRP:88

OSPF:89

二、报文分析

前同步码:第一个字段是7个字节的前同步码,1和0交替,作用是用来使接收端的适配器在接收MAC帧时能够迅速调整时钟频率,使它和发送端的频率相同。帧开始定界符:第二个字段是1个字节的帧开始定界符,前六位1和0交替,最后的两个连续1表示告诉接收端适配器:“帧信息要来了,你准备接收把。MAC 目的地址:第三个字段是6字节(如:FF,FF,FF,FF,FF),发送方的网卡(MAC)地址,用处是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同则会进一步处理,不同则直接丢弃。源MAC地址:发送端的MAC地址同样占6个字节。类型:该字段在网络协议栈分解中及其重要,考虑当PDU(协议数据单元)来到某一层时,它需要将PDU交付给上层,而上层协议众多,所以在处理数据的时候,必须要一个字段标识我这个交付给谁。数据:数据也叫有效载荷,除过当前层协议需要使用的字段外,即需要交付给上层的数据,以太网帧数据长度规定最小为46字节,最大为1500字节,如果有不到46字节时,会用填充字节填充到最小长度。帧检验序列FCS(使用CRC校验法):检测该帧是否出现差错。

三、MTU

根据 [RFC894] 的说明,以太网封装IP数据包的最大长度是1500字节,最小长度是46字节,再加上各层封装和校验码(CRC校验计算得到的FCS),总字节应该为 72~1526 字节。

最大字节

= 前导同步码(7字节) + 帧开始定界符(1字节) + 目的MAC(6字节) + 源MAC(6字节) + 帧类型(2字节) + 数据(46~1500) + FCS(4字节)

= 72~1526 字节

按照上述,最大帧应该是 1526 字节,但是实际上我们抓包得到的最大帧是 1514 字节,为什么呢?

原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和出错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交给“设备驱动程序”做进一步处理。这时我们抓包的软件才能抓到数据,因此,抓包wireshark软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据。

数据帧字节 = 目的MAC(6字节) + 源MAC(6字节) + 帧类型(2字节) + 数据(46~1500) + FCS(4字节)

计算最大帧 = 1518,wireshark抓取最大帧 = 1514

计算最小帧 = 64,wireshark抓取最小帧 = 60

四、wireshark抓包分析

采取最简单且有效的方式——ping,简单有效控制报文长度。ping 是基于 IP 协议的 ICMP 报文格式。

1、ICMP报文格式

2、ping 命令

目的MAC(6字节)、 源MAC(6字节)、帧类型(2字节)、 FCS(4字节)、IP 首部(20字节)、ICMP 首部(8字节) ,这里就占了 46 字节。

最小帧为 64 字节,抓包就为 60,我们就以分别发送 10、50 字节查看分组;

最大帧为 1518 字节,抓包就为 1514,我们就以分别发送 1472、1473 字节查看分组。

# 以学校网址为例,不跟后面的默认32ping www. -l 5ping www. -l 50ping www. -l 1472ping www. -l 1473

前三个结果没有分片

不足 60 字节,填充 0(根据各自设备驱动程序规则)直到 60 字节

超过1500字节的会分片,1473 + 8 + 20 = 1501,所以分为 1480 和 1,第二片在第一片后面就没有 ICMP 首部,分别为 1480 + 34 = 1514 和 1 + 34 = 35

可以看到不为 60 字节,就会填充到 60 字节,而超过 1514 字节,就会分片。

但是有时 ping 网络上网址,抓包小于 60,例如自己宽带

由于填充数据是由 MAC 子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到 64 字节帧的时候,已经捕获了数据,导致有 60 字节也有小于 60 字节的情况

抓包工具的不同: wireshark 抓到的可能没有填充数据段,而 sniffer 抓到的就有填充数据段。

使用的网络不用宽带抓到的可能没有填充数据段,校园网抓到的就有填充数据段。

3、wireshark抓包分析

v Frame 2: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface 0v Interface id: 0 (\Device\NPF_{258BB613-5DA9-4E92-923E-8CDBC68345B0})Interface name: \Device\NPF_{258BB613-5DA9-4E92-923E-8CDBC68345B0}Interface description: WLANEncapsulation type: Ethernet (1)Arrival Time: Dec 7, 19:32:00.332245000 中国标准时间[Time shift for this packet: 0.000000000 seconds]Epoch Time: 1575718320.332245000 seconds[Time delta from previous captured frame: 0.044843000 seconds][Time delta from previous displayed frame: 0.044843000 seconds][Time since reference or first frame: 0.044843000 seconds]Frame Number: 2Frame Length: 60 bytes (480 bits)Capture Length: 60 bytes (480 bits)[Frame is marked: False][Frame is ignored: False][Protocols in frame: eth:ethertype:ip:icmp:data][Coloring Rule Name: ICMP][Coloring Rule String: icmp || icmpv6]v Ethernet II, Src: RuijieNe_5f:b2:32 (58:69:6c:5f:b2:32), Dst: Cybertan_83:22:81 (60:14:b3:83:22:81)v Destination: Cybertan_83:22:81 (60:14:b3:83:22:81)#目的地 MAC 地址,6字节Address: Cybertan_83:22:81 (60:14:b3:83:22:81).... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)v Source: RuijieNe_5f:b2:32 (58:69:6c:5f:b2:32)#源 MAC 地址,6字节Address: RuijieNe_5f:b2:32 (58:69:6c:5f:b2:32).... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)Type: IPv4 (0x0800)#类型,2字节Padding: 002198530000380130a0246ed5#填充数据,13字节v Internet Protocol Version 4, Src: 36.110.213.45, Dst: 10.16.80.850100 .... = Version: 4#版本号,4比特 = 1/2字节.... 0101 = Header Length: 20 bytes (5)#首部长度,4比特 = 1/2字节v Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) #服务类型,1字节0000 00.. = Differentiated Services Codepoint: Default (0).... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)Total Length: 33#数据总长度,2字节Identification: 0x9853 (38995)#识别码,2字节v Flags: 0x0000#偏移量,2字节0... .... .... .... = Reserved bit: Not set.0.. .... .... .... = Don't fragment: Not set..0. .... .... .... = More fragments: Not set...0 0000 0000 0000 = Fragment offset: 0Time to live: 54#TTL,1字节Protocol: ICMP (1)#类型码,1字节Header checksum: 0x9888 [validation disabled]#首部校验和,只是检验数据,2字节[Header checksum status: Unverified]Source: 36.110.213.45#源IP,4字节Destination: 10.16.80.85#目的地IP,4字节v Internet Control Message ProtocolType: 0 (Echo (ping) reply)#类型,1字节Code: 0#符号,1字节Checksum: 0xd2e7 [correct]#ICMP校验和,2字节[Checksum Status: Good]Identifier (BE): 1 (0x0001)#ID,2字节Identifier (LE): 256 (0x0100)Sequence number (BE): 848 (0x0350)#序号,2字节Sequence number (LE): 20483 (0x5003)[Request frame: 1]#响应分组 1[Response time: 44.843 ms]v Data (5 bytes)#5个数据,16进制Data: 6162636465[Length: 5]

五、其它

1、查看网络接口MTU的方法(Windows):

(1)详细查看:netstat -e -v

(2)初略查看:netsh interface ip show interface

3、wireshark抓不到FCS(CRC校验)

六、参考

(1)以太网帧结构以及CRC校验

/a1414345/article/details/72781130

(2)以太网最大帧和最小帧、MTU

/shennongzhaizhu/article/details/5183

(3)如何计算icmp校验和

/zhj082/article/details/80518322

(4)wireshark提问官网

/questions/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。