Fork me on GitHub

IP协议

简介

IP协议是网络层协议,目前主要有两种架构,IPV4和IPV6,IPV4是目前应用广泛的互联网协议。

工作原理

  • 分片

当IP数据报的长度超过帧的MTU时,它将被分片传输。分片可能发生在发送端,也可能发生在中转路由器上,而且可能在传输过程中多次分片,但只有在最终的目标机器上,这些分片才会被内核中的IP模块重新组装。
image

  • 增加协议头
    image
    • Type Of Service:服务的类型,是为了响应不同的用户诉求,用来选择延迟、吞吐量和丢包率之间的关系。
    • IHL(Internet Header Length):IP协议头的大小。
    • Total Length:报文(封包datagram)的长度。
    • Identification:报文的ID,发送方分配,代表顺序。
    • Fragment offset:描述是否要分包(拆分),和如何拆分。
    • Time To Live:封包存活的时间。
    • Protocol:描述上层的协议,比如TCP=6,UDP=17
    • Options:可选项
    • Checksum:检验封包的正确性
  • 寻址

给一个地址,然后找到这个东西,IPv4地址(32位):逐级寻址。

  • 路由

若寻找的IP地址不在局域网中,需要路由找到去往对应网络的路径;IP地址和子网掩码位与的过程是由路由算法实现的。

IP服务的特点

  • 无状态

IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。这种服务最大的缺点就是无法处理乱序和重复的IP数据报。面向连接的协议,比如TCP协议,能够自己处理乱序的、重复的报文段,它递交给上层协议的内容绝对是有序的、正确的。无状态服务的优点也很明显:简单、高效。我们无需为保持通信的状态而分配一些内核资源,也无需每次传输数据时都携带状态信息。

  • 无连接

IP通信双方都不长久地维持对方的任何信息。这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。

  • 不可靠

IP协议不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力。很多情况都可以导致IP数据报发送失败。比如,某个中转路由器发现IP数据报在网络上存活地时间太长,那么它将丢弃该报文,并返回一个ICMP错误消息给发送端。因此,使用IP服务地上层协议需要自己实现数据确认、超时重传等机制以达到可靠传输的目的。

IPv6和IPV4的区别

  • 地址

IPv4长度为32位,文本格式为 nnn.nnn.nnn.nnn,总数为 4 294 967 296;IPv6长度为 128 位(16个字节),文本格式为 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,IPv6 地址的数目比 IPv4 地址的数目大 1028(79 228 162 514 264 337 593 543 950 336)倍。

  • 寻址

IPv4通过子网掩码计算网络地址;
IPv6有固定的计算方式划分网络。如下:
image
站点前缀(Site Prefix):48bit,一般是由ISP(Internet Service Providor,运营商)或者RIR(Regional Internet Registry, 地区性互联网注册机构)。RIR将IP地址分配给运营商。
子网号(Subnet ID):16bit,用于站点内部区分子网。
接口号(Interface ID):64bit,用于站点内部区分设备。

posted @ 2020-02-23 16:21  晨度  阅读(386)  评论(0编辑  收藏  举报