IP协议详解【IP报文头部结构、IP分片、IP路由、IP转发】

目录

IP协议:全称:Internet Protocol(网际互连协议)

IP协议的特点:

IP头部结构:

IP分片:

IP路由:

IP转发


IP协议:全称:Internet Protocol(网际互连协议)

IP协议的特点:

    IP协议是TCP/IP协议族的动力,它为上层协议提供无状态,无连接,不可靠的服务。
    无状态是指IP通信不同步传输数据,发送、传输和接收都是相互独立、没有上下文的。接收方只要收到了完整的IP数据包,就要交付上层协议,所以这些数据包可能是无序的、重复的。IP数据包虽然也有唯一标识,但是不是用来指示接收顺序的,而是用来处理IP分片和重组的。这种无状态的优点是:简单,高效。无需为保持通信状态而分配内核资源,传输数据也无需携带状态信息。
    无连接是指IP通信不维持对方的信息。但在每次发送数据时,必须明确对方的IP地址。
    不可靠是指IP协议不能保证数据包准确到达。发送失败的原因很多,比如:某个中转路由器发现IP数据包的存活时间太长(TTL),就丢弃此数据包,并返回一个ICMP超时错误给发送端;再比如接收端通过校验机制发现数据包不正确,就丢弃,并返回一个ICMP错误信息给发送端。 发送端IP模块检测到IP数据包发送失败,就通知上层协议发送失败,而不会试图重传。所以传输层协议需要自己实现数据确认、超时重传等机制,已达到可靠传输的目的。

IP头部结构:

4位版本号指定IP协议的版本,有IPv4,SIP,PIP。
4位头部长度是指该IP头部有多少个4字节,因为4位能表示的最大数是15,所以IP头部最长60字节。
8位服务类型,说明了IP数据包的服务需求,包括:最小延时、最大吞吐量、最高可靠性和最小费用。比如ssh和telent这样的登录程序需要的是最小延时服务,文件传输ftp需要最大吞吐量服务。
16为总长度指IP总长度。 MTU(帧的最大传输单元)绝对了1500字节内。
16位标识能唯一标识主机发送的每一个数据报,初值随机,每发送一个,其值就加一,用于分片和重组。同一个数据报的所有分片具有相同的标识值。
3位标志字段,第一位保留,第二位可以设置禁止分片DF,第三位标识数据报的更多分片MF。
13位分片偏移是指相对于原数据报的偏移。
8位生存时间TTL是数据报到达目的地之前允许经过的路由器跳数。
8位协议用来区分上层协议: 1是ICMP 6是TCP 17是UDP
16位头部校验和由发送端填充,接收端用来检查头部是否损坏。
32位源端IP地址和目的端IP地址,传输过程中保持不变。
选项字段: 记录路由(记录途径的路由器)、时间戳(测量途径路由器之前数据报传输的时间)松散源路由选择和严格源路由选择(必须经过这些和仅能通过这些)

IP分片:

分片可能发生在发送端,也可能发生在中转路由器,但是只有在目标机器上才会重组。
一个数据报的每个分片都具有自己的头部信息,其中有相同的标识,不同的片偏移。
帧的最大传输单元是1500字节,IP头部20字节,所以数据部分最多1480字节。

如下一个1501字节的IP数据报的分片示意图:

IP路由:

IP的路由是指决定发送数据报到目标机器的路径

IP模块的工作流程:

从右往左看,收到来自数据链路层的IP数据报时,先检验,在查看是发送本机的,还是需要转发的。IP输出队列中等待发送的数据报除了转发的,还有本机上层协议(ICMP、TCP、UDP)的IP数据报。

路由表:
路由表按照数据报的目标IP地址分类,同一类型的IP数据报将被发送相同的下一跳路由器。

IP路由机制:
    1.查找路由表中和数据报的目标IP地址完全匹配的主机IP地址,如果找到,就是用该路由项,没找到转步骤2.
    2.查找路由表中和数据报的目标IP地址具有相同网路ID的网络IP地址(比如局域网),如果找到,就使用该路由项,否则转步骤3.
    3.选择默认路由项,这通常意味着数据报的下一跳路由是网关。

路由表的更新:
    静态更新:通过route命令修改路由表。
    动态更新:使用OSPF(开放最短路径优先)等协议来自动更新路由表。ICMP重定向报文更新路由表。

IP转发:

       1.检查数据头部的TTL值。如果TTL值已经是0,则丢弃该数据报。
  2.检查数据报头部的严格路由选择选项。如果该选项被设置,则检测数据报的目标IP地址是否是本机的某个IP地址。如果不是,发送一个ICMP源站选路失败报文给发送端。
  3.如果有必要,则给源端发送一个ICMP重定向报文,以告诉它一个更合理的下一跳路由器。
  4.将TTL值减一
  5.处理IP头部选项
  6.如果有必要,则执行IP分片操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值