下面是由希赛小编提供的中级通信交换技术知识点精讲之IP层转发分组的流程,希望对学友们有所帮助。具体内容如下:
IP层转发分组的流程
在互联网中路由器的作用和第5章分组网中的节点交换机非常相似,它们都要实现分组的存储转发,但路由器和节点交换机还是有区别的。这些区别是:
路由器用来连接不同的网络,而节点交换机只在一个特定的网络中工作;
路由器是专门用来转发分组的,而节点交换机还可接上许多个主机;
路由器使用统一的IP,而节点交换机使用所在分组网的特定协议;
路由器根据目的网络地址找出下一跳(即下一个路由器),而节点交换机则根据目的节点地址找出下一跳(即下一个节点)。
所示为一个路由表的简单的例子。有4个A类网络通过3个路由器连接在一起。每一个网络上都可能有成千上万个主机。可以想像,若按査找目的主机号来制作路由表,则所得出的路由表就会过于庞大。但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目。以路由器112的路由表为例,由于R2同时连接在网络2和网络3上,因此只要目的站在这两个网络上,都可通过接口0或1由路由器112直接交付(当然还要利用地址解析协议(ARP)才能找到这些主机相应的硬件地址)。若目的站在网络1中,则下一跳路由器应为R,,其1P地址为20.0.0.7。路由器R1和R2,由于同时连接在网络2上,因此从路由器R2将分组转发到路由器R,是很容易的。同理,若目的站在网络4中,则路由器112应将分组转发给IP地址为30.0.0.1的路由器R3。
可以将整个的网络拓扑简化为那样6在简化图中,网络变成了一条链路,但每一个路由器旁边都注明其IP地址。使用这样的简化图,可以使我们不用关心某个网络内部的拓扑以及连接在该网络上有多少台计算机,因为这些对于研究分组转发问题并没有什么关系。这样的简化图强调了在互联网上转发分组时,是从一个路由器转发到下一个路由器。
总之,在路由表中,对每一条路由最主要的是以下两项:目的网络地址,下一跳地址。
于是,我们就根据目的网络地址来确定下一跳路由器,这样做的结果是:
IP分组首先要设法找到目的主机所在目的网络上的路由器(间接交付);
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即对特定的目的主机指明一个路由。这种路由叫做特定主机路由。采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主初(路由。在对网络的连接或路由表进行排错时,指明到某一个主机的特殊路由就十分有用。
与节点交换机路由表的情况相似,路由器也可采用驮认路由以减少路由表所占用的空间和搜索路由表所用的时间。
根据以上所讲的,在互联网中某一个路由器的IP层所执行的分组转发算法如下。
从数据报的首部提取目的站D的IP地址,得出目的网络地址为况。
若/V就是与此路由器直接相连的某个网络地址,则这种交付为直接交付,即不需要再经过其他的路由器。这时就直接通过该网络将分组交付给目的站D(这里包括将目的主机地址D转换为具体的硬件地址,将分组封装为MAC帧,再发送此帧);否则就是间接交付,执行(3)。
若路由表中有目的地址为D的特定主机路由,则将分组传送给路由表中所指明的下一跳路由器;否则,执行(4)。
若路由表中有到达网络W的路由,则将分组传送给路由表中所指明的下一跳路由器;否则,执行(5)。
若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
报告转发分组出错。
这里再强调指出,在1P分组的首部中没有地方可以用来指明“下一跳路由器的IP地址”。在IP分组的首部写上的IP地址是源地址和目的地址,而没有中间路由器的IP地址。既然如此,那么待转发的IP分组又怎样能够找到下一跳路由器呢?
当路由器收到一个待转发的分组时,先从路由表得出下一跳路由器的IP地址,不是将下一跳路由器的IP地址填入IP分组,而是将下一跳路由器的IP地址转换成硬件地址(使用ARP),并将此硬件地址放在链路层MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。由此可见,当发送一连串的分组时,上述的这种查找路由表、计算硬件地址、写人MAC帧的首部等过程,将不断地重复进行,需要占用一定的时间。
上面所讨论的是IP层怎样根据路由表的内容进行分组转发,而没有涉及路由表一开始是如何建立的以及路由表中的内容应如何进行更新。为了回答这个问题,就需要讨论路由选择协议,但是在进一步讨论路由选择问题之前,我们还要先介绍无分类编址与最长前缀匹配这两个非常重要的概念。
相关推荐: