Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1347744
  • 博文数量: 244
  • 博客积分: 10311
  • 博客等级: 上将
  • 技术积分: 3341
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-14 21:50
文章分类

全部博文(244)

文章存档

2013年(6)

2012年(5)

2011年(16)

2010年(11)

2009年(172)

2008年(34)

分类: LINUX

2009-05-27 08:33:49

简单说,IPV4报头是把上一层的数据加上了源IP地址和目标IP地址,详见如下

IPV4报头有12个必需的字段和可选IP选项字段,位于要发送的数据之前。如果使用IP层已有的库或其他组件,一般不必考虑报头中的大多数字段,但程序代码需要提供源端和目的端地址。
1、版本(4比特)
IP协议版本已经经过多次修订,1981年的RFC0791描述了IPV4,RCF2460中介绍了IPV6。
2、报头长度(4比特)
报头长度是报头数据的长度,以4字节表示,也就是以32字节为单位。报头长度是可变的。必需的字段使用20字节(报头长度为5,IP选项字段最多有40个附加字节(报头长度为15)。
3、服务类型(8比特)
该字段给出发送进程建议路由器如何处理报片的方法。可选择最大可靠性、最小延迟、最大吞吐量和最小开销。路由器可以忽略这部分。
4、数据报长度(16比特)
该字段是报头长度和数据字节的总和,以字节为单位。最大长度为65535字节。
5、标识符(16比特)
原是数据的主机为数据报分配一个唯一的数据报标识符。在数据报传向目的地址时,如果路由器将数据报分为报片,那么每个报片都有相同的数据标识符。
6、标志(3比特)
标志字段中有2为与报片有关。
位0:未用。
位1:不是报片。如果这位是1,则路由器就不会把数据报分片。路由器会尽可能把数据报传给可一次接收整个数据报的网络;否则,路由器会放弃数据报,并返回差错报文,表示目的地址不可达。IP标准要求主机可以接收576字节以内的数据报,因此,如果想把数据报传给未知的主机,并想确认数据报没有因为大小的原因而被放弃,那么就使用少于或等于576字节的数据。
位2:更多的报片。如果该位为1,则数据报是一个报片,但不是该分片数据报的最后一个报片;如果该位为0,则数据报没有分片,或者是最后一个报片。
7、报片偏移(13比特)
该字段标识报片在分片数据报中的位置。其值以8字节为单位,最大为8191字节,对应65528字节的偏移。
例如,将要发送的1024字节分为576和424字节两个报片。首片的偏移是0,第二片的偏移是72(因为72×8=576)。
8、生存时间(8比特)
如果数据报在合理时间内没有到达目的地,则网络就会放弃它。生存时间字段确定放弃数据报的时间。
生存时间表示数据报剩余的时间,每个路由器都会将其值减一,或递减需要数理和传递数据报的时间。实际上,路由器处理和传递数据报的时间一般都小于1S,因此该值没有测量时间,而是测量路由器之间跳跃次数或网段的个数。发送数据报的计算机设置初始生存时间。
9、协议(8比特)
该字段指定数据报的数据部分所使用的协议,因此IP层知道将接收到的数据报传向何处。TCP协议为6,UDP协议为17。
10、报头检验和(16比特)
该字端使数据报的接收方只需要检验IP报头中的错误,而不校验数据区的内容或报文。校验和由报头中的数值计算而得,报头校验和假设为0,以太网帧和TCP报文段以及UDP数据报中的可选项都需要进行报文检错。
11、源IP地址(32比特)
表示数据报的发送方。
12、目的IP地址(32比特)
表示数据报的目的地。
阅读(2901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~