TCP/IP(3.2) — IP的构成

IP是TCP /IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输

IP提供不可靠,无连接的数据传送服务

  不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
  无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。

IP数据报由首部和数据构成的,首部格式如下:


IP首部

  普通的IP首部长为20个字节,除非含有选项字段。

  版本(一般)号是4,因此IP有时也称作IPv4

  首部长度指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节(15×4)。当IP首部字段不是4的倍数时,必须使用最后的填充字段(选项字段中)进行填充。因此数据部分永远在4字节整数倍开始

  总长度字段是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。所以IP数据报最长可达65535字节(2^16-1)。当数据报被分片时,该字段的值也随着变化。

  在IP层下面每一种数据链路层都有自己的帧格式,其中包括帧字段最大的数据长度,称为最大传送单元(MTU)。一个IP数据报的总长度不能超过MTU值

  有关IP文档规定,所有主机和路由器必须能够处理IP数据报长度不得小于576字节。这也是最小的IP数据报长度。实际上使用的数据报长度很少有超过1500字节的,当数据报长度超过MTU时,就要进行分片(使用片偏移字段)。这样首部中的总长度就不是指未分片前的数据报长度。

  标识字段 IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但是这个标识不是序号,因为IP数据报是无连接服务,数据报不存在按序接收的问题。当数据报需要分片时,原标识字段就会被复制到每一个分片中。这样具有相同标识的分片最后就能组成原来的数据报

  标志 占三位,但目前只有两位有意义。

  最低位记为MF(More Fragment).MF=1说明后面还有分片。MF=0说明是最后一片

  中间一位是DF (Don't Fragment)意思是不能分片,只有当DF=0才能分片

  片偏移 13位 较长的分组在分片后,某片在原分组的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位,也就是说每个分片的长度必须是8字节(64位)的整数倍。(总共13位,每位3字节(3位)为单位,是不是和总字段长度为16位有关系)

  举例:
  一个数据报总长度3820字节,其数据部分3800字节(使用固定首部),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分长度分别为1400,1400和1000字节。原始数据报首部被复制为各个数据报片的首部,但必须修改有关字段的值。

  TTL(time - to - live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。可以防止无法交付的数据在互联网中无限制的兜圈子。

数据报在因特网经过最多的路由器条数是255,TTL如果设置为1,就只能在本局域网传送。

  协议 占8位 协议字段指出此数据报携带的数据是何种协议,以便使目的主机的IP层知道应该将数据部分上交给哪个处理。

  首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。

  最后一个字段是任选项,是数据报中的一个可变长的可选信息。目前,这些任选项定义如下:
    • 安全和处理限制(用于军事领域,详细内容参见RFC 1108[Kent 1991])
    • 记录路径(让每个路由器都记下它的IP地址)
    • 时间戳(让每个路由器都记下它的IP地址和时间)  
    • 宽松的源站选路(为数据报指定一系列必须经过的IP地址)
    • 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址)。
  这些选项很少被使用,并非所有的主机和路由器都支持这些选项。选项字段一直都是以32 bit作为界限,在必要的时候插入值为0的填充字节。这样就保证IP首部始终是32 bit的整数倍(这是首部长度字段所要求的)。


IP路由选择

  在一般的体制中,IP可以从TCP、UDP、ICMP和IGMP接收数据报(即在本地生成的数据报)并进行发送(主机中),

或者从一个网络接口接收数据报(待转发的数据报)并进行发送(路由器中)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值