ICMP协议
ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。在实际传输中的数据包结构:20字节IP首部 + 8字节ICMP首部+ 1472字节<数据大小>38字节。
ICMP报文格式如图,IP首部(20字节)+8位类型+8位代码+16位校验和+(不同的类型和代码,格式也有所不同)。
让wireshark开始抓包,用icmp过滤,打开cmd窗口,输入ping目的域名,ping默认发4个请求报文,所以这里会抓取到8个报文
1.protocol为协议类型,ICMP;
2.Type:8 类型8, 占一字节,标识ICMP报文的类型,此处为请求报文
3.Code:0 占一字节,表示对应ICMP报文的代码。它与类型字段一起共同表示了ICMP报文的详细类型
4.Checksum(校验和):0x4d24[correct];是对包括ICMP报文数据部分在内的人整个ICMP数据包的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与IP报头中的校验和计算方法是一样的
5.Identifier:1 (0x0001) 两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0
6.Sequence number:3553 (0x0dcd)序列号
数据链路层分析
MAC帧格式
MAC帧的帧头包括三个字段。前两个字段分别为6字节长的目的地址字段和源地址,目的地址字段包含目的MAC地址信息,源地址字段包含源MAC地址信息。第三段为2字节的类型字段,里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。
Interface.id #接口id
Encapsulation.ype:Ethernet #封装类型
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1402449138.469086000 seconds
[Time delta from previous captured frame: 0.025257000 seconds] #此包与前一包的时间间隔
[Time.since.reference.or.first.frame: seconds] #此包与第一帧的时间间隔
Frame.Number: #帧序号
Frame.Length: #帧长度
Capture.Length: #捕获长度
[Frame.is.marked:False] #此帧是否做了标记:否
[Frame.is.ignored:False] #此帧是否被忽略:否
[Protocols.in..frame:eth:ip:tcp:http] #帧内封装的协议层次结构
MAC地址分析
EthernetII,Src:AsustekC_a3:76:68(d0:17:c2:a3:76:68),Dst:AsustekC_48:38:38(78:24:af:46:38:51
为以太网协议版本II,源地址:厂名_序号:(网卡地址),目的地址:厂名_序号(网卡地址)
Destination:AsustekC_46:38:38(78:24:af:46:38:38)为 目的地址:厂名_序号(网卡地址)
Source: AsustekC_a3:76:68(d0:17:c2:a3:76:68) 为源地址:厂名_序号(网卡地址)
Type: IP (0x0800) 帧内封装的上层协议类型为IP