互联网协议IP是Internet Protocol的缩写,中文缩写是网协
互联网协议也就是为计算机相互连接进行通信而设计的协议。
IP地址协议报文首部
版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
服务类型:优先级标志位和服务类型标志位,被路由器用来进行流量的优先排序。
总长度: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选项
数据:使用IP传递的实际数据
抓获的IP协议报文
# 帧数据 Frame 12: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) on interface wlp4s0, id 0 # 以太网帧头部信息 Ethernet II, Src: Chongqin_e1:18:a9 (40:23:43:e1:18:a9), Dst: HIWIFI_65:b0:40 (d4:ee:07:65:b0:40) Destination: HIWIFI_65:b0:40 (d4:ee:07:65:b0:40) Source: Chongqin_e1:18:a9 (40:23:43:e1:18:a9) Type: IPv4 (0x0800) # IPv4 包头部信息 Internet Protocol Version 4, Src: 192.168.199.235, Dst: 192.168.199.1 # 版本号为 4 0100 .... = Version: 4 # 首部长度 .... 0101 = Header Length: 20 bytes (5) # 服务类型 Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) # 总长度 Total Length: 84 # 标识符 Identification: 0x420a (16906) # 标志 Flags: 0x4000, Don't fragment # 分段偏移 Fragment offset: 0 # TTL Time to live: 64 # 协议类型 Protocol: ICMP (1) # 首部校验和 Header checksum: 0xe860 [validation disabled] [Header checksum status: Unverified] Source: 192.168.199.235 Destination: 192.168.199.1 Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 Checksum: 0x0fae [correct] [Checksum Status: Good] Identifier (BE): 10 (0x000a) Identifier (LE): 2560 (0x0a00) Sequence number (BE): 2 (0x0002) Sequence number (LE): 512 (0x0200) [Response frame: 24] Timestamp from icmp data: Oct 3, 2020 19:21:22.000000000 CST [Timestamp from icmp data (relative): 0.767224513 seconds] Data (48 bytes)在Linux ping大于 1500字节的包
-c ping的次数
-s每个包的大小
ping -c 4 -s 1600 {{ip_address}}