转发:在数据平面实现,在路由器中配置转发表;
路由(选路):在控制平面实现,在路由器中配置路由表;
ICMP(互联网控制报文协议)
说明:PING工作在应用层,它直接使用网络层的ICMP,而未使用传输层的TCP或UDP。Traceroute/Tracert工作在网络层,也使用ICMP协议!
控制平面的两种实现方法
1、每路由器控制:(传统路由算法,路由器中实现)
每台路由器中都包含转发和路由选择功能。每台路由器有一个路由选择组件,用于与其他路由器中的路由选择组件通信,以计算其转发表的值。这种每路由器控制的方法在因特网中已经使用了几十年。将在5. 3节和5. 4节中学习的OSPF和BGP协议都是基于这种每路由器的方法进行控制的。
2、逻辑集中式控制:(SDN,远程服务实现)
图5.2显示了逻辑集中式控制器计算并分发转发表以供每台路由器使用的情况。如我们在4.4节中所见,通用的“匹配加动作”抽象允许执行传统的IP转发以及其他功能(负载共享、防火墙功能和NAT)的丰富集合,而这些功能先前是在单独的中间盒中实现的。该控制器经一种定义良好的协议与每台路由器中的一个控制代理(CA)进行交互 ,以配置和管理该路由器的转发表。CA 一般具有最少的功能,其任务是与控制器通信并且按控制器命令行事。与图5.1中的路由选择算法不同,这些CA既不能直接相互交互,也不能主动参与计算转发表。这是每路由器控制和逻辑集中式控制之间的关键差异。
SDN采用了逻辑集中式控制器的概念,而这种方法在生产部署中得到了越来越多的应用。
控制平面:传统的方法:路由器中物理上存在的所有转发表的内容是由人类网络操作员直接配置的!
控制平面:SDN方法:远程控制器计算和分发转发表以供每台路由器所使用!SDN:软件定义网络
路由选择算法及其分类
主机和路由器中都有路由表!!!!
目的是从发送方到接收方的过程中确定一条通过路由器网络的好的路径(等价于路由)。
通常,一条好路径指具有最低开销的路径。
我们注意到无论网络控制平面采用每路由器控制方法,还是采用逻辑集中式控制方 法,必定总是存在一条定义良好的一连串路由器,使得分组从发送主机到接收主机跨越网络“旅行”。
注意到若在图中的所有边具有相同的开销,则最低开销路径也就是最短路径(shortest path),即在源和目的地之间的具有最少链路数量的路径。
路由选择算法分类:
1、路由选择算法的第一种分类方式是根据该算法是集中式还是分散式来划分。
集中式路由选择算法(centralized routing algorithm):用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。也就是说,该算法以所有节点之间的连通性及所有链路的开销为输入。这就要求该算法在真正开始计算以前,要以某种方式获得这些信息。
集中式算法具有关于连通性和链路开销方面的完整信息。具有全局状态信息的算法常被称作链路状态(Link State, LS)算法,因为该算法必须知道网络中每条链路的开销。
在分散式路由选择算法(decentralized routing algorithm):路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。 相反,每个节点仅有与其直接相连链路的开销知识即可开始工作。然后,通过迭代计算过程以及与相邻节点的信息交换,一个节点逐渐计算出到达某目的节点或一组目的节点的最低开销路径。
距离向量 (Distance-Vector, DV)算法(分散式路由选择算法),之所以叫作DV算法,是因为每个节点维护到网络中所有其他节点的开销(距离)估计的向量。
2、路由选择算法的第二种广义分类方式是根据算法是静态的还是动态的进行分类。
静态路由选择算法(static routing algorithm):路由随时间的变化非常缓慢,通常是人工进行调整(如人为手工编辑一条链路开销)。
动态路由选择算法(dynamic routing algorithm) :随着网络流量负载或拓扑发生变化而改变路由选择路径。一个动态算法可周期性地运行或直接响应拓扑或链路开销的变化而运行。虽然动态算法易于对网络的变化做出反应,但也更容易受诸如路由选择循环、路由振荡之类问题的影响。
路由、路由协议、路由算法的联系?
路由选择:
路由选择是指选择通过互连网络从源节点向目的节点传输信息的通道,而且信息至少通过一个中间节点。
路由协议:
路由协议是在路由指导IP数据包发送过程中事先约定好的规定和标准。
路由算法:
路由算法是提高路由协议功能,尽量减少路由时所带来开销的算法。
联系:
总的来说:路由选择依赖于各种路由协议,而各种路由协议又依赖于路由算法。
各种路由协议之间采取不同的路由算法进行路由选择。
3、路由选择算法的第三种分类方式是根据它是负载敏感的还是负载迟钝的进行划分。
负载敏感算法(load-sensitive algorithm): 链路开销会动态地变化以反映出底层链路的当前拥塞水平。如果当前拥塞的一条链路与高开销相联系,则路由选择算法趋向于绕开该拥塞链路来选择路由。
当今的因特网路由选择算法(如RIP、OSPF和BGP),都是负载迟钝的(load-insensitive),因为某条链路的开销不明确地反映其当前(或最近)的拥塞水平。
链路状态路由选择与距离矢量
链路状态路由选择算法
距离向量算法
说明:采取LS(链路状态路由算法)的协议:OSPF;采取DV(距离向量路由算法)的协议:RIP。
距离向量路由算法
说明:c(x,m)指的是从x到邻居(m-即某一个,但要遍历所有可能),dm(y)指的是从邻居m到达目的地y的费用(距离)(也是要遍历)
说明:
Dy(x)=min{c(y,x)+Dx(x),c(y,z)+Dz(x)}=min{2+0,1+7}=2(之后同理)
说明:LS算法是一种全局算法,在于它要求每个节点在运行Dijkstra算法之前,首先获得该网络的完整信息。DV算法是分布式的,它不使用这样的全局信息。
自治系统(AS-autonomous systems)
说明:正是因为采用了AS,所以会产生AS内部与AS外部,进而又产生了两种路由协议自治系统内部路由协议(内部网关协议)、自治系统外部路由协议(外部网关协议)。
RIP协议(Routing Information Protocol,路由信息协议)基于DV距离向量算法
转发表和路由表区别
注意:区别 转发表 和 路由表
- 路由表:路由器将获得的最佳路径信息以表的形式保存在路由器的RAM中,该表即是路由表。属于网络范围动作(用于:路由选择),与选路算法有关。
- 转发表: 当一个分组到达某个路由器的输入链路时,该路由器将该分组从路由器的一个输入链路接口转移到一个合适的输出链路接口,属于本地操作。
说明:RIP将距离定义为跳数。跳数指从源端口到达目的端口所经过的路由个数,每经过一个路由器,跳数加1。
说明:保证所有分路径是花销最小的!
说明:
路由表更新怎么求???
例:
假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)
N1 7 A
N2 2 C
N6 8 F
N8 4 E
N9 4 D
现在收到从C发来的路由信息(这两列分别表示“目的网络”和“距离” ):
N2 7
N3 2
N4 8
N8 2
N7 4
试求出路由器B更新后的路由表。并说明理由
答案:
N1 7 A
N2 2 C
N3 3 C 新的目的网络,跳数加1
N4 9 C 同上
N6 8 F
N7 5 C 新的目的网络,跳数加1
N8 3 C 路由器原的D值减1比C的还要大,更新,并加1(跳数)
N9 4 D
说明:注意新来的网络要加到路由表中并且跳数加1,之后再看如果有比当前路由表项距离更短的就替换成它,跳数加1
OSPF(Open Shortest Path First,开放式最短路径优先,基于LS链路状态)
-OSPF分层
-区边界路由器
说明:区边界路由器(ABR-Area Border Routers)即把网络分为区(Area)和边界(Border)。