您好,欢迎访问三七文档
IPv4分析IPv4的头部格式:1.Version版本号,默认是4。2.IHL(InternetHeaderLength)就是IPv4头部长度。这个长度的单位是32bit,一般是5,那么头部的长度就是5x32bit=160bit。3.DSCP(DifferentiatedServicesCodePoint),ECN(ExplicitCongestionNotification)原来这8字节是被定义成TOS(TypeofService),现在被RFC2474定义成Differentiatedservices(差异化服务)和ECN。背景:随着互联网的发展,各种各样的服务被提供,比如语音、视频、流音乐、网页、邮件等等。原来的TOS定义已经跟不上时代的需要,所以在1998年,IETF发布了RFC2474,将原来的TOS替换成DSCP和ECN。4.TotalLength整个数据包的长度,含头部,单位为Byte。5.Identification数据包标识,用来区分相同的包,比如ping包。6.Flagsbit0:保留,总是0bit1:Don’tFragment,DF。表示不分片。当需要发送的数据大于最长数据包限制的时候,数据需要分片发送。如果这位置1,IP模块将不会对数据报进行分片。这种情况下,如果IP数据报长度超过MTU,IP模块将丢弃数据报并返回一个ICMP差错报文。bit2:MoreFragment,MF。表示更多分片,除了数据报的最后一个分片外,其他分片都要把它置1.7.FragmentOffset分片的位移。(2^13–1)x8=65528bytes,也就是说,最大的IP数据报长度为65528+20=65548字节。8.TimetoLive,TTL防止数据拥塞用的,有一个初始值,比如64,每经过一个路由器自动-1,到0的时候就被销毁。9.Protocol上层协议号,比如ICMP是1,TCP是6,UDP是17.10.HeaderChecksum头部CRC校验,详细可以看这里:源IP地址12.DestinationIPAddress目标IP地址13.Options可选,不常用,后面再详细分析。抓包测试:用tcpdump抓包,sudotcpdump–ntx–ieth0icmp上面一个包是发送,下面的包是返回。0x4协议版本,v40x5包头长度,5x32bit0x00参照RFC2474,00是默认包类型0x0054包总长为0x54=840x59b0ID0x4000不分片,不分包0x40TTL=640x01ICMP协议,ping属于ICMP协议0xbbbcCheckSum0xc0a82c81SourceIP=192.168.44.1290xc64a71c8DestinationIP=198.74.113.2000x0800~0x3637Options
本文标题:IPv4报文格式
链接地址:https://www.777doc.com/doc-2879309 .html