发布时间: 2018-10-21 15:53:39
IP报数据字段格式
数据报格式各个字段所定义的功能如下:
闲言少叙,直奔主题,在上一篇软文中,我们解读到总体长度字段。后面我们继续把其他字段解读完。
( 5 ) 标识号
长度16 位, 标识号字段惟一地标识主机发送的每一份数据报。是一个递增序号, 通常每发送一份报文, 它的值就会加1, 主要用于数据报的分段与重组被分段传送的IP 数据报具有相同的标识号。RFC 791 认为标识字段应该由让IP 发送数据报的上层来选择。假设有两个连续的IP 数据报, 其中一个是由TCP 生成的, 而另一个是由UDP 生成的, 那么它们可能具有相同的标识字段。
( 6 ) 分段标志
长度3 位, 是数据报是否分段的标志。该值为0 , 表示未分段, 一旦分段, 除最后一段是为0 外, 其余段的该标志均为1。
( 7 ) 分段号
长度13 位, 这是赋予每个相连数据报段的一个数值。用于表明被分段的数据报在原始数据报中的质量, 用64 位的倍数表示。目的地的IP 协议软件使用该分段号, 将数据报段重新组合成正确的数据报。
( 8 ) 生存期
长度8 位, 允许数据报在网间传输的时间( 以秒或路由器划分的跳为单位) 。当IP 数据报经过每个路由器时, 路由器查看该值并且至少将它减1, 或减去该数据报在路由器内延迟的秒数。当该字段的值达到0 时, 该数据报即被删除。
( 9 ) 协议
长度8 位, 指出发送数据报的上层协议的代码。如1 代表ICMP, 6 代表TCP, 17 代表UDP 等。根据它可以识别是哪个协议向IP 传送的数据。
( 10) 报头校验和
长度16 位, 用于对报头的正确性检查。对于IP 报头的校验和应注意以下二点。
① 由于报头中含“ 生存期”字段, 而该字段每经过一个路由器时, 其值减1, 因此每经过一个路由器时, 该报头校验和必须重新进行计算。
② 接受端通过校验和实现报头有错时, 就会丢弃该数据报, 但不生成差错报文, 由上层
去实现丢失后, 进行重新处理。
( 11) 源IP 地址
长度32 位, 发送数据报的源主机IP 地址。
( 12) 目的IP 地址
长度32 位, 接收数据报的目的主机IP 地址。
( 13) 任选项
可变长度, 用于提供任选服务, 如时间戳、错误报告和特殊路由等。最后一个字段是任
选项, 是数据报中的一个可变长的可选信息。目前, 这些任选项定义如下。
安全和处理限制: 用于军事领域, 详细内容参见RFC 1108( Kent 1991) 。
记录路径: 让每个路由器都记下它的IP 地址。
时间戳: 让每个路由器都记下它的IP 地址和时间。
宽松的源站选路: 为数据报指定一系列必须经过的IP 地址。
严格的源站选路: 与宽松的源站选路类似, 但是它要求只能经过指定的这些地址, 不
能经过其他的地址。
这些选项很少被使用, 并非所有的主机和路由器都支持这些选项。
( 14) 填充
可变长度, 由于选项字段一直都是以32 位作为界限, 在必要的时候插入值为0 的填充
字节。这样就保证IP 报头始终是32 位的整数倍( 这是报头长度字段所要求的) 。
( 15) IP 数据报有效负载
通常包含传输层中的TCP, UDP 数据信息, 或是同层的ICMP 等的数据。其长度可变
( 但不能超过较大传输单位) 。
小结:
至此,我们完成了对IP数据报中的字段含义的初步解读。具体细节也可以参考TCP/IP卷一中的描述。了解了IP数据包的字段含义和结构,对于IP的功能,就如虎添翼,也更能深入了解IP层的运作机制。
上一篇: {HCNA-AI TensorFlow编程基础}之Hello, TensorFlow!
下一篇: 浅谈IP数据报字段含义_1