首页 > 代码库 > IP分组交付和转发

IP分组交付和转发

1:交付

网络层监视底层物理网络对分组的处理过程叫做交付,分为直接交付和间接交付

 

1.1:直接交付

直接交付时,分组的终点是一台与交付着连接在同一个网络上的主机,发生在俩种情况下,分组的源点和终点都在同一个物理网络上,或者是在最后一个路由器与目的主机之间进行交付.

发送方提取终点的网络地址(用掩码与分组内目的IP地址进行与运算),然后与自己所连接的网络地址比较.若匹配,交付就是直接的。

1.2:间接交付

目的主机和交付者不在同一网络上,在间接交付时,分组经过一个又一个路由器,最后到达与终点连接在同一个网络上的路由器。

 

2:转发

转发意味者让分组踏上通往终点的路途。转发就是将分组交付给下一跳(下一跳可能是终点,也有可能是一个中间的连接设备).

当IP作为无连接的协议时,转发的基础是IP数据报的目的地址,而当IP作为面向连接的协议时,转发的基础是附加在IP数据报上的标记(IP面向连接协议时在进行发送IP分组之前需要先打通一个链路,此时每个分组经过的路由器都是相同的,发完后需要把这链接拆了)。

 

2.1基于目的地址的转发

这是一种传统的方式,目前的主流方式,这种转发方式要求主机或者路由器具有一张路由表。当主机有分组要转发时,或者路由器收到分组要进行转发时,就要搜索路由表找到最后终点的路由.这样是十分低效的,因为路由表的表项数量过多导致路由器的查找效率非常低.

2.1.2转发技术

  1:下一跳方法

    下一跳的技术可以减少路由表中的内容,这种技术就是在路由表中只保留下一跳地址,而不是保留完整的路由信息.

    如下

    技术分享

 

   2:特定网络法

    此时路由表不是对连接在同一个物理网络上的每一台主机都设置一个表项,而是用一个表项来定义目的网络本身的地址,也就是我们把连接在同一个网络上的所有主机看成是一个表项.如下

    技术分享

  3:特定主机法

    使用特定主机方法,目的主机的地址在路由表中要给出,用牺牲效率换取其他优点,比如管理人员想染所有到达主机B的分组都经过路由器某个路由器

    特定主机的路由选择主要用在检查路由或者提供安全措施这样的特殊情况下。

  4:默认方法

    主机S所连接的网络上有俩个路由器.通过R1可以把分组转发到N2,但是对于因特网其他部分,使用R2

    技术分享

 

3:使用分类编址时的转发

分类编址有一些缺点(造成IP地址浪费很严重),但是在分类地址中存在默认掩码.这就使得转发过程比较简单。

  3.1:无子网划分的转发

    转发模块要使用三张表,每个单播类别(A,B,C)对应一张表,如果路由器支持多播,那么还要增加一张处理D类地址的表。每张路由表要有下面三列

    1.目的网络的网络地址,它告诉我们主机的位置.

    2.下一跳的地址,在间接交付时它告诉我们分组应当交付到那个路由器,在直接交付时是空的.

    3.接口号,它定义了分组从那个输出端口发送出去(一个路由器经常会连接到多个网络,每一个连接就有一个不同的端口号或者接口)

  技术分享

  3.2:有子网划分的转发

  子网划分发生在组织的内部,处理子网划分的路由器不是在该组织站点的边界上,就是在站点边界的里面。如果组织使用了可变长度的子网划分,那么我们就需要多张表,要不然就只要一张表,

  技术分享

 

    技术分享

4:使用无分类编址时的转发

  使用无分类编址时,整个地址空间是完整的,没有划分类别,分组的目的地址中得不到有关网络地址的线索.为了解决这个问题,我们需要在路由表中包含掩码(/n),

技术分享

 

IP分组交付和转发