IP报文格式详解
IP报文是在网络层传输的数据单元,也叫IP数据报。(图源网络)
版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
服务类型:Type Of Service。
总长度:IP报文的总长度。报头的长度和数据部分的长度之和。
标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。
标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。
协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.
首部校验和:计算IP头部的校验和,检查IP报头的完整性。
源IP地址:标识IP数据报的源端设备。
目的IP地址:标识IP数据报的目的地址。
ip报文分析
wireshark使用方法参考添加链接描述
输入过滤条件进行过滤
流水号 通常作为封包产生的顺序;此封包的流水号为 93。
时间 除上述的流水号外,此项为该封包产生的时间;此封包产生的时间为25.482027秒。
来源IP地址 发出此封包的终端的IP地址;此封包的源IP地址为 114.250.66.38。
目的IP地址 所要接受此封包的终端的IP地址;此封包的目的IP地址为 10.133.245.165。
通讯协议 这个封包所使用的通讯协议;此封包使用TCP协议。
资讯 此封包的大略信息。
点击流水编号为93的信息后,会显示如所下图所示的层层封装信息。
Frame 表示为第几个封包,后面括号里面的数字表示封包的大小
Ethernet II Src 来源设备网卡名称及网卡位置;源MAC地址为 04:f9:38:99:ea:cb。 Dst:接受端设备的网卡名称(目的MAC地址)及网卡位置。
Internet Protocol Src 来源设备的IP地址, Dst :接收设备的IP地址,展开后会看到,如图4所示为IP包的更多信息。对照着实验基本原理中的IP协议格式,读者大致会清楚该IP包的信息。例如version:4 ,是IP V4协议;Header length:20 bytes;IP数据包头20字节为固定值。
Transmission Control Protocol Src Port:源端口为 1034,Dst Port:目的端口为80。 展开后更会看到sequence number、acknowledgement 、number,header length、标志位和拥塞窗口大小等有关的信息。具体请参考TCP实验一节。
Hypertext Transfer Protocol 该包应用层协议为HTTP协议。