4.IP分组的交付和转发

1 交付

网络层监视底层物理网络对分组的处理过程,定义为分组的交付。完成一个分组交付给最后终点的任务,需要使用两种不同的交付方法:直接交付和间接交付

1.1 直接交付

直接交付时,分组的终点是一台与交付者连接在同一个网络上的主机。直接交付发生在两种情况:一种是分组的源点和终点都在同一个物理网络。另一种是最后一个路由器与目的主机之间进行的交付。发送方通过提取终点的网络地址,然后与自己所连接的网络地址进行比较。

4.IP分组的交付和转发

 

1.2 间接交付

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

4.IP分组的交付和转发

 

2 转发

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

2.1 基于目的地址的转发

一种传统的方法,要求主机或路由器有一张路由表才能进行转发。当主机有分组要进行发送,或路由器收到分组要进行转发时,搜索路由表获取到达最后终点的路由。然而,这种方法因为路由表的表项数量过多导致路由表的查找效率非常低。下面描述一些转发技术:


下一跳方法:可以减少路由表的内容。路由表中只保留下一跳的地址,而不是保留完整路由的信息

4.IP分组的交付和转发


特定网络方法:路由表不是对连接在同一个物理网络上的每一台主机都设置一个表项,而只用一个表项来定义目的网络本身的地址。换言之,连接在同一个网络上的所有主机看成是一个表项

4.IP分组的交付和转发


默认方法:主机的路由表不必把整个因特网所有的网络列出来,使用一个默认表项

4.IP分组的交付和转发


无子网划分的转发:使用分类编址时,全球因特网中的绝大多数路由器没有涉及到子网划分,子网划分是在一个组织内部进行的。这样情况下,典型的转发模块使用三张表,每个单播类别ABC对应一张表。如果路由器支持多播,需要增加一张处理D类地址的表。每张路由表至少包括三列:目的网络的网络地址、下一跳地址和接口号

4.IP分组的交付和转发

最简单的情况下,转发模块处理步骤:1.提取出分组的目的地址 2.目的地址的一个副本用来查找地址的类别,具体做法:地址的副本右移28,得到一个0~15之间的4位数(0~7 A类 0111、8~11 B类 1011、12~13 C类 1101、14 D类 1110、15 E类 1111) 3.根据步骤2得到的结果和目的地址,可以用来提取目的网络地址 4.根据地址的类别和目的网络地址查找下一跳地址和输出端的接口号。如果没有发现匹配,使用默认的 5.ARP模块根据下一跳地址和接口号找出下一个路由器的物理地址,然后请求数据链路层把分组交付到下一跳


有子网划分的转发:固定长度子网划分的简化模块:1.模块提取分组的目的地址 2.如果目的地址与路由表任意一个特定主机表项相匹配,提取下一跳地址和接口号 3.通过目的地址和掩码提取子网地址 4.根据子网地址搜索路由表,获取下一跳地址和接口号。如果没有匹配,使用默认的 5.下一跳地址和接口号传送给ARP

4.IP分组的交付和转发


2.2 基于标记的转发

在一个面向连接的网络,交换机根据附加在分组上的标记转发分组。路由选择通常基于对路由表内容的搜索,而交换可以用一个索引访问交换表来完成。路由选择涉及到搜索过程,交换涉及到直接的访问

4.IP分组的交付和转发

4.IP分组的交付和转发

多协议标记交换MPLS

MPLS既可以用作路由器,也可以用作交换机。当用作路由器使用时,可以根据目的地址转发分组;当用作交换机使用时,可以基于标记转发分组


3 路由器的结构

一个路由器有四个构件:输入端口、输出端口、路由选择处理器和交换结构

4.IP分组的交付和转发

输入端口:执行路由器的物理层和数据链路层的功能。它从接收到的信号中得到比特流,并把帧拆装后得到分组,同时进行差错的检测和纠正。分组准备就绪后,可以通过网络层进行转发。缓存队列用来在分组被传送到交换结构之前进行暂存

4.IP分组的交付和转发

输出端口:首先,向外发送的分组需要进行排队,然后将分组封装成帧,最后使用物理层的功能,把帧变成发送到线路的信号

4.IP分组的交付和转发

路由选择处理器:路由选择处理器执行网络层的功能。通过目的地址找出下一跳地址,同时找出分组发送出去的端口号。一些较新的路由器,路由选择处理器功能被转移到输入端口,为了使这个过程更容易更快地进行

交换结构:路由器最困难的任务就是把分组从输入队列搬移到输出队列。完成的速度直接影响到输入/输出队列的大小和分组交付的总延时。

a.纵横交换结构

4.IP分组的交付和转发

b.榕树交换结构

4.IP分组的交付和转发


转载于:https://my.oschina.net/keeplearn/blog/345293