14IP数据转发

Posted stephanie-boke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了14IP数据转发相关的知识,希望对你有一定的参考价值。

1、Fragmenting of an IPv4 Fragment

为什么这个可以节省CPU时间

因为当部分数据报达到的时候就已经可以重组数据了,比如1,3,2这样就可以将数据进行排序了,不用等到所有数据达到再排序,但是必须等4,当在设定的时间里没有等到4,这个Fragment就丢掉。

2、Reassembly

为什么要把数据报碎片化,在主机中实现

因为:这样能减少路由负担,最重要的是路由选址是动态变化的,碎片化的数据报,可能经过了不同的路由传送,

IP数据转发

1、网络服务规范

  • TCP / IP支持无连接和面向连接的服务
  • 基本交付服务在Internet层(第3层)无连接
  • 可选的可靠的,面向连接的服务在运输层(第4层)

2、IP数据报

  • 数据包通过路由器跨多个物理网络发送
  • Internet协议定义了通用虚拟数据包-IP数据报
  • IPv4数据报最多为64K八位字节,包括头部和数据
  • IPv6最多可包含64K八位字节有效负载和报头

2.1、IPv4数据报头格式

技术图片

2.2、 IPv6数据报

技术图片

技术图片

3、IP数据报转发

  • 每个路由器都使用本地转发表转发虚拟数据包
  • 每个条目对应一个网络,而不是一个主机
    •因此表中的条目数与网络数成正比
  • 每个条目包含:
    •目的地址
    •make地址
    •下一跳:路由器的IP地址或直接交付
  • 然后进行地址解析

技术图片

3.1、 最长前缀匹配

  • 现实中转发算法更复杂
  • 转发表可以包含默认条目
  • 网络管理员可以指定主机特定的路由
    •例如 沿与网络上其他主机的流量不同的路径引导特定主机的流量
  • 对于特定于主机的路由:
    •转发表条目包含覆盖整个地址的掩码(IPv4为32位,IPv6为128位)
    •地址掩码可以重叠!!
  • 考虑一个转发表,其中包含IPv4网络前缀的条目:
    •128.10.0.0/16
    •128.10.2.0/24
  • 如果数据报到达目的地128.10.2.3,则两者都将匹配!
    •因此,Internet转发使用最长的前缀匹配

3.2、最大努力交付

  • IPv4和IPv6尝试尽力而为的传递,并且不保证处理: •数据报复制
    •延迟或无序交货
    •数据损坏
    •数据报丢失
  • 这些问题由其他协议层处理

4、封装形式

  • 通过物理网络发送IP数据报时,它将放置在帧的数据区域中,并且帧类型设置为IP

技术图片

技术图片

5、最大传输单元(MTU)和数据报大小

  • 最大传输单元-帧可以在给定网络上承载的最大数据量
  • 数据包可能需要处理不同的MTU大小,因为它们通过Internet传递
  • 数据报必须分段
  • IPv4和IPv6的做法不同

技术图片

技术图片

5.1、IPv6片段大小

  • 选择分片作为基础网络的MTU
  • 但必须在原始来源完成,而不是在路由器上完成 •主机应选择不需要分段的数据报大小
    •如果沿途的路由器收到的数据报大于MTU,它将丢弃并发送错误消息
  • 因此,主机必须沿到达目的地的路径学习每个网络的MTU!
    •path MTU是沿路径的最小MTU
    •path MTU discovery 是学习路径MTU的过程
  • 尝试大小并查看是否返回错误的迭代过程!

为什么要在主机中实现数据碎片化?

因为:这样能减少路由负担,最重要的是路由选址是动态变化的,碎片化的数据报,可能经过了不同的路由传送,若由路由器实现,则较为复杂

5.2、 重新组装

  • 在最终主机处完成 •路由器需要较少的状态信息 •片段可以采取不同的路线
  • 头部字段指示数据何时是片段以及其所属位置
  • 每个数据报都包含一个片段
  • 如果丢失任何片段,整个数据报将丢失

5.3、收集碎片数据报

  • 碎片可以采取不同的路线
  • 特定的发送方可以将多个数据报发送到同一目的地,因此多个片段可能会乱序到达并散布
  • 需要能够识别碎片
  • 识别字段
    •与IP源地址一起使用以确定该片段属于哪个原始数据报
  • 片段偏移字段
    •允许接收者确定片段的有效载荷在原始数据报中的位置

5.4、 碎片丢失

  • 接收方收到片段时,它将启动计时器 •重新组装计时器
  • 如果丢失任何片段,则整个数据报都会丢失
  • 接收器必须在内存中缓冲片段,直到所有片段到达或计时器到期
  • 如果计时器在接收到所有片段之前已过期,则已接收的片段将被丢弃
  • 全有或全无的方法
  • 在有损网络上,如果数据报是分段的,则丢失数据报的可能性更高
    •因此,通常应尽可能避免碎片化

5.5、 IPv4片段的片段

  • 碎片可以碎片化
    •但是子片段的形成方式相同
  • Destination无需等待片段的所有子片段到达即可重新组合整个原始数据报
    •减少CPU时间
    •意味着需要更少的数据存储在片段头中
  • 在Internet中,设计人员试图避免按减少的MTU顺序排列网络

为什么这个可以节省CPU时间

因为当部分数据报达到的时候就已经可以重组数据了,比如1,3,2这样就可以将数据进行排序了,不用等到所有数据达到再排序,但是必须等4,当在设定的时间里没有等到4,这个Fragment就丢掉。

6、22章

以上是关于14IP数据转发的主要内容,如果未能解决你的问题,请参考以下文章

14DNS正反向解析主从复制子域授权区域转发 学习笔记

ClearML 服务器 IP 地址未与 localhost 和 SSH 端口转发一起使用

iptables转发规则改变源地址无效?

计算机网络—— 网络层(45):IP数据报的发送和转发过程静态路由配置及其可能产生的路由环路问题

f5转发模式

从私有 NIC 访问时,Rails 显示 IP 为 127.0.0.1,但 Nginx 显示正确的 IP。公共 IP 可以正常转发