IP报文头详解以及定义.docx_第1页
IP报文头详解以及定义.docx_第2页
IP报文头详解以及定义.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IP报文头详解以及定义IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。 下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。 版本:占4位(bit),指IP协议的版本号。目前的主要版本为IPV4,即第4版本号,也有一些教育网和科研机构在使用IPV6。在进行通信时,通信双方的IP协议版本号必须一致,否则无法直接通信。 首部长度:占4位(bit),指IP报文头的长度。最大的长度(即4个bit都为1时)为15个长度单位,每个长度单位为4字节(TCP/IP标准,DoubleWord),所以IP协议报文头的最大长度为60个字节,最短为上图所示的20个字节。 服务类型:占8位(bit),用来获得更好的服务。其中的前3位表示报文的优先级,后面的几位分别表示要求更低时延、更高的吞吐量、更高的可靠性、更低的路由代价等。对应位为1即有相应要求,为0则不要求。 总长度:16位(bit),指报文的总长度。注意这里的单位为字节,而不是4字节,所以一个IP报文的的最大长度为65535个字节。 标识(identification):该字段标记当前分片为第几个分片,在数据报重组时很有用。 标志(flag):该字段用于标记该报文是否为分片(有一些可能不需要分片,或不希望分片),后面是否还有分片(是否是最后一个分片)。 片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段的偏移量,即在原数据报中的相对位置。 生存时间:TTL(Time to Live)。该字段表明当前报文还能生存多久。每经过1ms或者一个网关,TTL的值自动减1,当生存时间为0时,报文将被认为目的主机不可到达而丢弃。使用过Ping命令的用户应该有印象,在windows中输入ping命令,在返回的结果中即有TTL的数值。 协议:该字段指出在上层(网络7层结构或TCP/IP的传输层)使用的协议,可能的协议有UDP、TCP、ICMP、IGMP、IGP等。 首部校验和:用于检验IP报文头部在传播的过程中是否出错,主要校验报文头中是否有某一个或几个bit被污染或修改了。 源IP地址:32位(bit),4个字节,每一个字节为0255之间的整数,及我们日常见到的IP地址格式。 目的IP地址:32位(bit),4个字节,每一个字节为0255之间的整数,及我们日常见到的IP地址格式。 由于Delphi里面没有位域这个概念,所以定义结构的时候只能整字节了,挺怀恋C+或者Erlang的,有位域定义出来和使用起来都很方便了 /IP包 TIPHeader = packed record iph_verlen: byte; / 版本和长度 iph_tos: byte; / 服务类型 iph_length: word; / 总长度,2个无符号字节所以只能65535 iph_id: word; / 标识 iph_offset: word; / 标志和片偏移 iph_ttl: byte; / 生存时间 iph_protocol: byte; / 协议 iph_xsum: word; / 头校验和 iph_src: longword; / 源地址 iph_dest: longword; / 目的地址 end;这个结构体有什么用呢?其实在嗅探的时候就很有用了.报文详解最少20字节 即 5个“32bits字” (一般的word是2types即16bits)IP协议定义了一种高效、不可靠和无连接的传输方式。传输层将报文分成若干数据报,每个数据报最长不超过64K字节。在传输过程中,网络层可能将数据报分成更小的单位,当数据报全部到达目的地后,传输层将它们重新组装成原来的报文。数据报在网络层传输时无需连接和确认,所以不能保证传输的可靠性。一个数据报可能丢失,或延时,或发生传输顺序错误。传输设备并不检测这些情况,也不通知通信双方。同时,每个数据报的传递与其他数据报是相互独立的,到达顺序与发送顺序不一定相同。这些差错控制和流量控制由上层(传输层)来完成。IP协议定义了通过TCP/IP网络传输的数据的格式。IP数据报由报头和数据两部分组成。报头部分包含了目的地址和源地址,数据的类型等信息。IP报头格式如图1.2所示。图1.2 IP报头格式下面解释各字段的含义:(1) 版本字段:记录数据报文符合协议的哪一个版本协议。版本号表示发送者、接收者和路由器对该数据的处理都要按所示的版本进行。现在的版本号是4。(2) 首部长度:指明报头的长度。(3) 服务类型:一共8个比特,前3个比特表示优先级,第4个比特表示要求有更低的时延,第5个比特表示要求有更高的吞吐量,第6个比特表示要求更高的可靠性,第7个比特表示选择价格更低廉的路由,最后一个比特未用。(4) 总长度包括报头长度和数据长度,最大长度=216 = 65536字节。(5) 标识符:用于数据分段,一个数据报在传输过程中可能分成若干段,标识符可以区分某分段属于某报文,一个数据报的所有分段具有相同的标识符。(6) DF:该位置1时表示不分段,置0时允许分段。(7) MF:表示后面还有一分段,除了最后一个分段,所有分段的MF置为1。(8) 段偏移:指明此分段在当前数据报中的位置。(9) 生存周期:限定分段生存期的计数器,当它为0时该分段被抛弃

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论