IP协议

152 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情

1 基本概念

IP协议(Internet Protocol):网络层协议

1.1 IP协议可能遇到的问题

  • 封包损坏:在传输过程中数据发生损坏
  • 丢包:在传输过程中发生数据丢失
  • 重发:通过不同的路由发行了相同的数据,并且都到达目的地
  • 乱序:到达目的地的数据顺序和发送的数据是不一致的 但这些问题都不在网络层解决

1.2 网络层需要解决的3个问题

  • 延迟
  • 吞吐量
  • 丢包率

1.3 IP协议的架构

IP协议目前主要有两种架构,IPv4IPv6,IPv4是目前应用最广泛的互联网协议。

2 IP协议的工作原理

2.1 分片(Fragmentation)

  • 把数据切分成片
  • 为了适配底层传输网络

2.2 增加协议头(IP Header)

IPV4协议的协议头参数:

  • Type Of Service:服务的类型,是为了响应不同的用户诉求,用来选择延迟、吞吐量和丢包率之间的关系。
  • IHL(Internet Header Length):IP协议头的大小。 最大的协议头部就是60个字节
  • Total Length:报文(封包datagram)的长度
  • Identification:报文的ID,发送方分配,代表顺序
  • Fragment offset:描述是否要分包(拆分),和如何拆分。
  • Time To Live:封包存活的时间。
  • Protocol:描述上层的协议,比如TCP=6,UDP=17
  • Options:可选项
  • Checksum:检验封包的正确性,若是被篡改或者损坏,则直接丢弃
  • Source adress:源IP 32位
  • Destination address:目的地IP 32位

2.3 延迟、吞吐量、丢包率

  • 延迟:1bit的数据从网络的1个终端传送到另一个终端需要的时间
    • 包括发送前的准备时间和发送时间
  • 吞吐量:单位时间内可以传输的平均数据量。
  • 丢包率:发送出去的封包没有到达目的地的比例。

Type of Service字段:低延迟,高吞吐量,低丢包率,低成本

2.4 寻址(Addressing)

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

2.5 路由(Routing)

  • 若寻找的IP地址不在局域网中,需要路由找到去往对应网络的路径。
  • IP地址和子网掩码位与的过程是由路由算法实现的。 路由算法:
  • 寻找路由编号
    • 根据子网掩码&去算
  • 查询路由记录
  • 数据转发

3 IPv6协议

3.1 背景

IPv4只能支持43亿设备,不够用。

3.2 IPv6的工作原理

IPv6和IPv4两者工作原理相似,为切片、增加封包头、路由(寻址)几个阶段。

3.3 IPv6和IPv4的主要区别

3.3.1 地址

  • 地址数量
    • IPv4有4个8位,共16位,IPv6有8个16位,共128位
  • 分割符号
    • IPv4的地址用 . 分割,如 103.28.7.35 。每一个是8位,用0-255的数字表示。
    • IPv6的地址用 : 分割,如 0123:4567:89ab:cdef:0123:4567:89ab:cdef 。每个是一个16位的16进制数字,就是4个符。

3.3.2 寻址

全局单播

  • 站点前缀(Site Prefix):48bit,一般是由ISP(Internet Service Providor,运营商)或者RIR(Regional Internet Registry, 地区性互联网注册机构)。RIR将IP地址分配给运营商。
  • 子网号(Subnet ID):16bit,用于站点内部区分子网。
  • 接口号(Interface ID):64bit,用于站点内部区分设备。

本地单播

  • 给定地址,本地网定位设备

分组多播

  • 需要以8个1,也就是 ff00 开头,后面跟上一个分组的编号。
  • 所在的网络中已经定义了该分组编号,而且有设备可以识别这个编号。
  • 拥有分组下设备的完整清单,并把数据发送给对应的设备们。
  • IPv4也支持分组多播,但需要网络配置整体配合。

3.3.3 新设备接入

新设备接入IPv6后,会使用IPv6的邻居发现协议(Neighbour Discover Protocol)为自己申请一个IP地址。当新设备需要发送信息到目的地时,还可以通过ND协议广播查询目标设备。然后如果需要路由,还可以通过ND查找路由器。

3.3.4 Ipv6的主要优势

  • 解决了IP地址耗尽的问题
  • 解决了网络区域、站点划分的问题。
  • 协议层支持多播。Ipv6可以有专门的地址用作多播。
  • 支持邻居发现协议,自动分配地址,做到了无状态接入设备。