IPv4分析

IPv4的头部格式:html

image12

1. Versiontcp

版本号,默认是4。测试

2. IHL(Internet Header Length)spa

就是IPv4头部长度。这个长度的单位是32bit,通常是5,那么头部的长度就是5x32bit=160bit。视频

3. DSCP(Differentiated Services Code Point),ECN(Explicit Congestion Notification)htm

原来这8字节是被定义成TOS(Type of Service),如今被RFC2474定义成Differentiated services(差别化服务)和ECNblog

背景:随着互联网的发展,各类各样的服务被提供,好比语音、视频、流音乐、网页、邮件等等。原来的TOS定义已经跟不上时代的须要,因此在1998年,IETF发布了RFC 2474,将原来的TOS替换成DSCP和ECN。ip

4. Total Lengthci

整个数据包的长度,含头部,单位为Byte。路由

5. Identification

数据包标识,用来区分相同的包,好比ping包。

6. Flags

bit 0 : 保留,老是0

bit 1 : Don’t Fragment, DF。表示不分片。当须要发送的数据大于最长数据包限制的时候,数据须要分片发送。若是这位置1,IP模块将不会对数据报进行分片。这种状况下,若是IP数据报长度超过MTU,IP模块将丢弃数据报并返回一个ICMP差错报文。

bit 2 : More Fragment,MF。表示更多分片,除了数据报的最后一个分片外,其余分片都要把它置1.

7. Fragment Offset

分片的位移。(2^13 – 1) x 8 = 65528 bytes, 也就是说,最大的IP数据报长度为65528+20=65548字节。

8. Time to Live, TTL

防止数据拥塞用的,有一个初始值,好比64,每通过一个路由器自动-1,到0的时候就被销毁。

9. Protocol

上层协议号,好比ICMP是1,TCP是6,UDP是17.

10. Header Checksum

头部CRC校验,详细能够看这里:http://en.wikipedia.org/wiki/IPv4_header_checksum

11. Source IP Address

源IP地址

12. Destination IP Address

目标IP地址

13. Options

可选,不经常使用,后面再详细分析。

 

抓包测试:

用tcpdump抓包,  sudo tcpdump –ntx –i eth0 icmp

抓一下ping数据包,我这里ping一下本身的主机craftor.org

image13

上面一个包是发送,下面的包是返回。

0x4 协议版本,v4
0x5 包头长度,5x32bit
0x00 参照RFC2474,00是默认包类型
0x0054 包总长为0x54=84
0x59b0 ID
0x4000 不分片,不分包
0x40 TTL=64
0x01 ICMP协议,ping属于ICMP协议
0xbbbc CheckSum
0xc0a82c81 SourceIP=192.168.44.129
0xc64a71c8 DestinationIP=198.74.113.200
0x0800~0x3637 Options
相关文章
相关标签/搜索