TCP/IP 协议族 - IP 分组的交付和转发笔记

Apr 18, 2016


交付

直接交付

分组的重点和交付者在同一个网络上。只要判断一下网络地址是否相同即可。 在直接交付时,发送方通过目的 IP 地址找出目的物理地址,然后 IP 软件把目的 IP 地址和目的物理地址一起交付给数据链路层。

间接交付

间接交付的时候,发送方通过分组的目的 IP 地址和路由表查找分组应当被交付的下一个路由器的 IP 地址,再用 ARP 协议找出下一个路由器的物理地址。

转发

转发也就是把分组交付给下一跳。

当 IP 作为无连接协议时,转发的基础是 IP 数据报的目的地址。

当 IP 作为面向连接协议时,基础是附加在 IP 数据报上的标记。

转发技术

###下一跳

这种技术只在路由表中保留下一跳地址。

特定网络方法

路由表对网络设置成一个表项。

特定主机方法

为主机指定下一跳。一般用在检查路由环境下。

默认方法

使用分类编址时的转发

无子网划分的转发

一个典型的转发模块需要使用三张表(A,B,C),每个表至少要有下面三列:

  • 目的网络地址
  • 下一跳地址
  • 接口号

转发模块按照下列步骤工作:

  1. 提取出分组的目的地址。
  2. 提取出地址的类别。
  3. 得到目的网络地址。
  4. 在对应的表里查找下一跳信息。
  5. 用 ARP 协议找出下一个物理地址,交付给数据链路层。

有子网划分的转发

这样的路由器都有一个掩码。

分类编址
  1. 提取分组目的地址。
  2. 如果有特定主机路由,走这个路由。
  3. 使用目的地址和掩码来提取子网地址。
  4. 使用子网地址来搜索路由表,如果不匹配就搜默认的。
  5. 把下一跳地址和接口号给 ARP。
无分类编址

无分类编址的路由表多了一项掩码,在查表的时候需要对着掩码检查看看是不是属于这个网络。

掩码 网络地址 下一跳 接口
/26 180.80.80.80 - m2

当在表中找不到网络地址时,就通过默认路由。因为这个分组可能是发往外面的。

地址聚合

就是把地址聚合起来。。。

最长掩码匹配

路由表应该把掩码按从大到小的顺序排列,这样才能正确转发。

多级路由选择

简单地说就是把大的网络分成一个个小的网络,这样路由表项就会减少,因为一些网络不用关心其他的网络的情况。

地理区域化路由选择

把多级路由选择进一步眼神,以包括地理区域化的路由选择, 比如说划分成美洲、欧洲等等。其实也就是一种多级路由。

路由表查找算法

使用分类编址时的查找

每个路由器一般有三张表,分组到达时,找出网络对应哪张表,然后在那张表里搜索。

在无分类编址中的查找

一般是按掩码从大到小排序,然后一个个找下来。 可以用 Trie 优化。

基于标记的转发

因为在面向连接的协议中,分组都会有个标记,那么直接在路由表里找标记对应的接口就行了,很快。

MPLS

Multi-Protocol Label Switching,这个标准可以让分组携带标记,它是对 IPv4 分组的封装。

路由器的结构

构件

输入端口

输入端口执行路由器的物理层和数据链路层的功能。

输出端口

和输入端口顺序相反。

路由选择处理器

执行网络层的功能,查表。

交换结构

把分组从输入队列搬移到输出队列中。

纵横交换结构

榕树交换结构

根据接口的二进制来选路。

Batcher 榕树交换结构

因为榕树交换结构会碰撞,即使两个报文不去同一个接口。