码迷,mamicode.com
首页 > 其他好文 > 详细

14、IP数据转发

时间:2020-01-10 01:24:17      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:计时   延迟   通用   匹配   类型   方式   字段   地址解析   负载   

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章

14、IP数据转发

标签:计时   延迟   通用   匹配   类型   方式   字段   地址解析   负载   

原文地址:https://www.cnblogs.com/Stephanie-boke/p/12173925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!