• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2021-09-04 15:59 Aet 隐藏边栏 |   抢沙发  5 
文章评分 1 次,平均分 5.0

IP协议

概述

  1. IP协议是TCP/IP协议族的核心协议,也是socket网络编程的基础之一。
  2. IP头部信息出现在每个IP数据报中,用于指定IP通信的源端IP地址、目标端IP地址,指导IP分片和重组,以及指定部分通信行为。
  3. IP数据报的路由和转发发生在除目标机器之外的所有主机和路由器上。它们决定了数据报是否应该转发以及如何转发。

特点

  1. IP协议为上层协议提供无状态、无连接、不可靠的服务。
    1. 无状态,指IP通信双方不同步传输数据的状态信息,因此所有IP数据的发送、传输和接收都是相互独立、没有上下文关系的。
      虽然IP数据报头部提供了一个标识字段用以标识一个IP数据报,但它是被用来处理IP分片和重组的,而不是用来指示接收顺序的。
    2. 无连接,指IP通信双方都不长久维持双方的任何信息。这样,上层协议每次发送数据的时候,都必须明确指定对方的IP地址。
    3. 不可靠,指IP协议不保证IP数据报准确地到达接收端,它只是承诺尽最大努力。然而有很多情况都能导致IP数据报发送失败。
      无论是哪种情况导致了IP数据报发送失败了,发送端的IP模块一旦检测到IP数据报发送失败了,就通知上层协议发送失败,而不会试图重传。
      因此,使用IP服务的上层协议,就需要自己实现数据确认、超时重传等机制以达到可靠传输的目的。

IPv4

  1. ipv4的头部通常为20个字节,除非含有可变长的选项部分。

  1. 格式:
    1. 4位版本号:对IPv4来说,是4。
    2. 4位头部长度:标识该IP头部有多少个32位字(也就是多少个4字节)。4位能表示的最大是15,即IP头部最长是60字节。
    3. 8位服务类型:包括3位优先权,4位TOS,1位保留(0)。其中,4位TOS分别表示:最小延时,最大吞吐量,最高可靠性和最小费用。
    4. 16位总长度:整个IP数据报的长度,最大65535。长度超过MTU的数据报都将被分片传输。
    5. 16位标识:唯一地标识主机发送的每一个数据报(初始值随机,每次加1)。
    6. 3位标志:第一位保留,第二位标识禁止分片,第三位标识更多分片。
    7. 13位片偏移:分片相对原始IP数据报开始处的偏移。
    8. 8位生存时间:数据报到达目的地之前允许经过的路由器跳数。
    9. 8位协议:区分上层协议。ICMP是1,TCP是6,UDP是17。
    10. 16位头部校验和:由发送端填充,接收端使用CRC校验数据报头部(仅校验头部)。
    11. 32位源端IP地址:数据报的发送端。
    12. 32位目的端IP地址:数据报的接收端。
    13. 选项:最多包含40个字节。包括记录路由、时间戳、松散源路由选择,严格源路由选择。

IP分片

  1. 当Ip数据报的长度超过帧的MTU时,它将被分片传输。
  2. 一个IP数据报的每个分片都具有自己的IP头部,它们具有相同的标识值,但具有不同的片偏移。
    并且除了最后一个分片外,其他分片都将设置MF标志。
    此外,每个分片的IP头部的总长度字段将被设置为该分片的长度。
  3. 以太网的MTU是1500字节。因此它携带的IP数据报的数据部分最多是1480字节。

  1. IP层传递给数据链路层的数据可能是一个完整的IP数据报,也可能是一个IP分片,它们统称为IP分组。

IP路由

  1. IP数据报应该发送至哪个下一跳路由(或目标机器),以及经过哪个网卡来发送,就是IP路由过程。
  2. IP模块实现数据报路由的核心数据结构是路由表。这个表按照数据报的目标IP地址分类,同一类型的IP数据报将被发往相同的下一跳路由器。
  3. IP路由策略
    1. 通过路由协议后者route命令调整路由表,使之更适应最新的网络拓扑结构,称为IP路由策略。
  4. 可以使用route或者netstat查看路由表。route也可以修改路由表。
  5. 关于IP地址分类:
    1. 查找路由表中和数据报的目标IP地址完全匹配的主机IP地址。如果找到,就使用该路由项。没找到就走第二步。
    2. 查找路由表中和数据报的目标IP地址具有相同网络ID的网络IP地址。如果找到,就使用该路由项。没找到就走第三步。
    3. 选择默认路由项,这通常意味着数据报的下一跳路由是网关。
  6. 通过route命令或其他工具手工修改路由表,是静态的路由更新方式。
    通过BGP、OSPF等协议来发现路径,并更新字节的路由表,是动态的、自动的更新方式。

ICMP重定向

  1. 一般来说,主机只能接收ICMP重定向报文,二路由器只能发送ICMP重定向报文。

IPv6

  1. 头部由40个字节的固定头部和可变长的扩展头部组成。

  1. 格式:
    1. 4位版本号:对IPv6来说,是6。
    2. 8位通信类型:指示数据流通信类型或优先级
    3. 20流标签:用于对某些连接的服务质量有特殊要求的通信,比如音频或视频等实时数据传输。
    4. 16位净荷长度:Ipv6扩展头部和应用程序数据长度之和,不包括固定头部长度。
    5. 8位下一个包头:紧跟IPv6固定头部后的包头类型。
    6. 8位跳数限制:数据报到达目的地之前允许经过的路由器跳数。
    7. 128位地址:IPv6用128位表示IP地址。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-19
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享