1、6-5 因特网的路由协议,主要内容,基本概念内部网关协议 RIP内部网关协议 OSPF外部网关协议 BGP,路由表,路由表(routing table)是每个路由结点用某个特定的路由协议建立和维护的、利用TCP/IP协议在通信中交互的路由信息。IP协议根据路由表中的信息对数据报进行路由,它只是使用者。路由协议是路由表的生成者和维护者,路由表必须时时更新,以准确地反映当前的网络状态,存在静态和动态两种维护方式。路由表包含的主要信息有:目的地址、网关地址、距离接口等。目的地址:可以是某台主机地址、某个子网网络地址、某个网络地址、缺省路由(Default)。网关地址:下一跳的IP地址。接口:一个本地
2、接口,通过它IP数据报将被发送出去。,例:G1的路由表,G4,G2,40.0.0.11,60.0.0.1,30.0.3.2,40.0.0.3,50.0.0.1,30.0.1.1,20.0.1.5,30.0.0.1,10.0.0.12,G1,G3,目的网络 网关地址 10.0.0.0 直接路径 20.0.0.0 直接路径 30.0.0.0 直接路径 40.0.0.0 30.0.3.2 50.0.0.0 30.0.1.1 60.0.0.0 30.0.3.2,路由表的特殊表项,默认路径(default routing):路由表前面的所有路径无效时选用,可进一步缩小路由表;特定主机路由(host-sp
3、ecific routing):针对特定主机指定特别的路径。特定主机路由技术是相对于现有的IP网络中的网络前缀路由而言的,它在路由器中为每一个主机建立一个路由表项,根据每一个特定主机的IP地址对数据包进行选路,数据报路由的工作流程,网络结点接收并暂存分组A。读取分组A中的目的IP地址,通过IP地址“与”网络/子网掩码,抽取出其网络/子网地址信息。查询路由表:如果该网络地址位于网络结点直接连接的网络上,就将该分组通过相应的端口发送到目的地址所在的网络中。否则,将得到一个更接近目的地址的指示,继续查询路由表,直至能够从路由器的一个端口发出分组为止。如果都不能匹配,就使用缺省路由。数据报路由是基于网
4、络地址,而不是IP地址的。,理想的路由算法,算法必须是正确的和完整的。 算法在计算上应简单。 算法应能适应通信量和网络拓扑的变化,有自适应性。 算法应具有稳定性。 算法应是公平的。 算法应是最佳的。,关于“最佳路由”,不存在一种绝对的最佳路由算法。所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。实际的路由选择算法,应尽可能接近于理想的算法。 路由选择是个非常复杂的问题它是网络中的所有结点共同协调工作的结果。路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。,从路由算法的自适应性考虑,静态路由选择策略即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的
5、变化。 动态路由选择策略即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。,分层次的路由选择协议,因特网采用分层次的路由选择协议。因特网的规模非常大,各路由器都不可能有所有网络的路由信息。许多连网单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议。,自治系统 AS(Autonomous System),自治系统 AS 的定义:在单一的技术管理下的一组路由器,使用同种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,并用同种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。尽管一个 AS 使用了多种内部路由选择协
6、议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。,AS自治系统举例,内部网关协议 IGP (Interior Gateway Protocol) 即在一个AS内部使用的路由选择协议。如 RIP 和 OSPF 协议。外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自AS中,当数据报传到一个AS的边界时,就需要使用外部网关协议将路由选择信息传递到另一个自治系统中。在外部网关协议中目前使用最多的是 BGP-4。,自治系统和内部网关协议、外部网关协议,用内部网关协议(例如,RIP),自治系统 B,自治系统 A,
7、用外部网关协议(例如,BGP-4),R1,R2,用内部网关协议(例如,OSPF),自治系统之间的路由选择也叫做域间路由选择(interdomain routing),在自治系统内部的路由选择叫做域内路由选择(intradomain routing),说明,因特网的早期 RFC 文档中未使用“路由器”而是使用“网关”这一名词。但是在新的 RFC 文档中又使用了“路由器”这一名词。IGP 和 EGP 是协议类别的名称。但 EGP既是外部网关协议的统称,又是最早的一个具体外部网关协议的名字。,因特网的路由选择协议,内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。外部网关协议 E
8、GP:目前使用的协议就是 BGP。,2 内部网关协议 RIP (Routing Information Protocol),1) 工作原理路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。RIP 是一种分布式的基于距离向量的路由选择协议。RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。,“距离”的定义,从一路由器到直接连接的网络的距离定义为 1。从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。这里的“距离”实际上指的是“最短
9、距离”,,“距离”的定义,RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。,RIP 协议的三个要点,仅和相邻路由器交换信息。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 按固定的时间间隔交换路由信息,例如,每隔 30 秒。,路由表的建立,路由器开始工作时,只知道到直接连接的网络的距离(此距离定
10、义为1)。以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。,2)向量距离路由算法,属于动态路由算法,最初用于ARPANET,DECnet等网络。基本思想:每个路由器维护一张表,表中列出了到每个目的地址的最佳距离和线路,并通过与邻居结点交换信息来更新表。表(路由表)的构成:以子网中其它路由器为表的索引,到达目的结点的最佳输出线路,和到达目的结点所需时间或距离。路由器需
11、要知晓自己到邻居结点的“距离”。所用的度量标准可以为站点、估计的时间延迟等。如果为站点,本路由器到每个邻居结点的距离都为1。如果是延迟,本路由器就发送一个要对方立即响应的ECHO分组,用来回时间除以2即得到延迟时间,每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。,向量距离(vector-distance)算法,每隔一段时间,路由器向所有邻居结点发送包含若干(V,D)序偶组成的表,同时它也接收每个邻居结点发来的距离表。V:向量,表示该路由器可以到达的目的网络或主机D:距离,表示该路由器到信宿V的距其他路由器收到某路由器的(V,D)报文后,据
12、此按照最短路径原则刷新自己的路由表。,各路由器根据邻节点信息不断刷新自己的路由表,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,Routing Table,10.2.0.0,10.3.0.0,0,0,Routing Table,10.3.0.0,S0,0,10.4.0.0,E0,0,Routing Table,10.1.0.0,10.2.0.0,0,0,例1 VD算法如何发现路由,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,Routing Tab
13、le,10.1.0.0,10.2.0.0,10.3.0.0,Routing Table,10.2.0.0,10.3.0.0,10.4.0.0,10.1.0.0,0,0,1,1,Routing Table,10.3.0.0,S0,0,10.4.0.0,E0,0,10.2.0.0,1,1,0,0,例1 VD算法如何发现路由,各路由器根据邻节点信息不断刷新自己的路由表,例1 VD算法如何发现路由,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,Routing Table,10.1.0.0,10.2.0.0,10.3.0.0,10
14、.4.0.0,Routing Table,10.2.0.0,10.3.0.0,10.4.0.0,10.1.0.0,0,0,1,1,Routing Table,10.3.0.0,S0,0,10.4.0.0,E0,0,10.2.0.0,S0,10.1.0.0,1,2,1,2,0,0,各路由器根据邻节点信息不断刷新自己的路由表,V-D算法,路由器启动时,初始化V-D路由表,包含所有去往与本机直接相连的网络的路径;,G1,G2,G1的初始路由表:信宿网 距离 路径,10.0.0.0 0 直接20.0.0.0 0 直接,G2的初始路由表:信宿网 距离 路径,20.0.0.0 0 直接30.0.0.0 0
15、 直接40.0.0.0 0 直接,V-D算法(2),各路由器周期性广播其V-D路由表的内容,与之直接相连的其他路由器收到报文后,据此刷新本地路由表:Gj列出的某表目Gi路由表中没有。Gi增加相应表目,Vi-r=Vj-r,Di-r=Dj-r+1,路径=Gj;Gj到某信宿的Dj-r41.0.0.0,例: V-D算法,10.0.0.0 0 直接30.0.0.0 5 Gj40.0.0.0 3 Gj41.0.0.0 4 Gj45.0.0.0 4 G1180.0.0.0 6 Gj190.0.0.0 10 Gm,Gi刷新后的路由表:信宿网 距离 路径,优点:易于实现;缺点:不适应路径剧烈变化或大型网络环境,
16、可能导致不一致性;要交换的信息量极大。,路由的收敛,收敛指直接或间接交换路由信息的一组路由器在网络的拓扑结构方面或者说在网络的路由信息方面达成一致路由协议必须通过某种算法使各路由器尽快达到收敛状态要实现收敛,必须解决路由器之间的路由环路(Routing Loops)问题,路由循环问题,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,Routing Table,10.3.0.0,S0,E0,S0,S0,1,2,10.1.0.0,10.2.0.0,10.4.0.0,0,0,Routing Table,10.1.0.0,E0,S
17、0,S0,S0,1,2,10.4.0.0,10.3.0.0,10.2.0.0,0,0,Routing Table,10.2.0.0,S0,S1,S1,S0,1,1,10.1.0.0,10.4.0.0,10.3.0.0,0,0,慢收敛导致不一致性问题,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,X,Routing Table,10.3.0.0,S0,E0,S0,S0,1,2,10.1.0.0,10.2.0.0,10.4.0.0,0,Down,Routing Table,10.1.0.0,E0,S0,S0,S0,1,2,1
18、0.4.0.0,10.3.0.0,10.2.0.0,0,0,Routing Table,10.2.0.0,S0,S1,S1,S0,1,1,10.1.0.0,10.4.0.0,10.3.0.0,0,0,路由循环问题,Router C 认为可以经过 Router B 到达10.4.0.0,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,X,路由循环问题,Router A 修改表项,仍是错误的,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,X,Routin
19、g Table,1,2,0,2,Routing Table,1,4,0,0,Routing Table,3,1,0,0,路由循环问题,结果:无穷计算问题,目的地为10.4.0.0 的分组在路由器A, B, C之间循环到 10.4.0.0 的距离值逐渐增至无穷,A,B,C,10.1.0.0,10.2.0.0,10.3.0.0,10.4.0.0,E0,S0,S0,S1,S0,E0,X,Routing Table,10.3.0.0,1,2,10.1.0.0,10.2.0.0,10.4.0.0,0,4,Routing Table,1,6,0,0,Routing Table,5,1,0,0,V-D算法的
20、无穷计算问题,对好消息反应迅速:在最长路径为N各结点的子网中,在N次交换之内,所有的路由器都会指导新增的线路和路由器。对坏消息反应迟钝:对于已经消失的结点,相互欺骗。,A B C D E, 初始 1 1st交换后 1 2 2nd交换后 1 2 3 3rd交换后 1 2 3 4 4th交换后,好消息:A连入网络,最长路径为N个节点的子网中,在N次交换后,所有路由器都会知道新增的线路和路由器,V-D算法的无穷计算问题,A B C D E,1 2 3 4 初始 3 2 3 4 1st交换后 3 4 3 4 2nd交换后 5 4 5 4 3rd交换后 5 6 5 6 4th交换后 7 6 7 6 5t
21、h交换后 ,坏消息: A下网了,无穷大如何取值?, ,水平分裂算法基本思想工作过程与距离向量算法相同,区别在于到X的距离不向真正通向X的邻居结点报告。从而使得坏消息以每次一个结点的速度传播。举例:如右图。在路由信息的交换中,B知道可以直达A,并告诉C,通过B到A路径为1。C得到B发来的路由信息后,告诉D通过C到达A距离为2,告诉B通过C到达A为无穷。D得到C发来的路由信息后,告诉E通过D到达A距离为3,告诉C通过D到达A为无穷。当A下网后,第一次交换:B发现到达A的直达路线没有了,而且C也向B说到达A为无穷,故B将其到达A的距离设置为无穷。第二次交换:C得到B的通知,B到达A为无穷;同时D也告
22、诉C,通过D到达A为无穷,故C将其到达A的距离设置为无穷。以次类推,在第四次交换的时候,E也知道A不可达了。,解决方案之一水平分裂,水平分裂不能解决所有的问题,水平分裂虽然广泛使用,但有时候会失败。如右图。开始时,A和B到D的举例都为2,C到D的举例为1。假设CD线路断了,使用水平分裂,A和B都告诉C,它们不能到达D,同时C自己也发现直达D的线路断了,于是C很快认定D不可达了。但是,A认为B有一条通向D长度为2的路径,通过B经过3个结点可到达D。类似,B也这样认为。于是两个结点每交换一次信息,到达D的距离就增加1,直至加大无穷。,A,B,C,D,4 字节,RIP 报文,3) RIP2 协议的报
23、文格式,路由信息(20 字节/路由)可重复出现最多 25 个,IP 数据报,路由标记,网络地址,地址族标识符,距离 (1-16),IP 首部,UDP 首部,首部,路由部分,必为 0,版本,命令,4 字节,子网掩码,下一跳路由器地址,UDP 用户数据报,RIP2,RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。,RIP 协议的优缺点,RIP 协议的优点是实现简单,开销较小。当网络出现故障时,RIP要经过较长时间才能将此
24、信息传送到所有路由器。 RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。,3 内部网关协议 OSPF (Open Shortest Path First),1) OSPF 协议的基本特点“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPFOSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。OSPF是分布式的链路状态协议。,三个要点,向本自治系统中所有路由器发送信息,OSP
25、F使用洪泛法。发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。,链路状态数据库(link-state database),各路由器之间交换链路状态信息,一段时间后所有路由器最终都能建立链路状态数据库。这个数据库实际上是全网的拓扑结构图,在全网范围内一致(称为链路状态数据库的同步)。OSPF 的链路状态数据库能较快地更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。,OSPF 的
26、区域(area),为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。区域不能太大,在一个区域内的路由器最好不超过 200 个。,OSPF 划分为两种不同的区域,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,划分区域,划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,
27、减少了整个网络上的通信量。在一个区域内的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。,主干路由器,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,区域边界路由器,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0
28、,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,OSPF 直接用 IP 数据报传送,OSPF 不用 UDP 而是直接用 IP 数据报传送。OSPF 构成的数据报很短,可减少路由信息的通信量;且不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。,OSPF 的其他特点,OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。如果到同一个目的网络有多条相同
29、代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。所有在 OSPF 路由器之间交换的分组都具有鉴别功能。支持可变长度的子网划分和无分类编址 CIDR。每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。,步骤1:发现邻居结点,发现邻居结点,并学习它们的网络地址。路由器启动后,通过发送HELLO分组,并得到邻居路由器的响应来发现邻居结点。路由器的名称必须是唯一的。当两个或多个路由器连在一个LAN时,引入人工结点。图例。,(a) Nine routers and a LAN. (b) A graph model of (a).,步骤2/3:测量线路开销和封装分组,测
30、量到每个邻居结点的延迟或开销,一种直接的方法是:发送一个要对方立即响应的ECHO分组,来回时间除以2即为延迟时间。将所有学习到的内容封装成一个分组,即在信息收集完毕后,构造一个包含所有数据的分组。该分组的结构为:发送方的标识符、序号、年龄、邻居结点列表(邻居结点标识符,线路开销值)。创建链路状态分组的时机:一是定期创建,一是在发生重大事件后创建。,(a) A subnet. (b) The link state packets for this subnet,步骤4:发布链路状态分组,链路状态分组的发布算法基本思想:洪泛链路状态分组。为控制洪泛,每个分组中增加一个序号域,每次发送新分组时加1。
31、路由器记录信息对(源路由器,序号),当一个链路状态分组到达时,若是新的,则分发;若是重复的,则丢弃;若序号比路由器记录中的最大序号小,则认为过时而丢弃。基本算法所产生的问题序号循环使用会混淆。路由器崩溃后,所有的序号丢失,从0开始记,以后所有的新到分组都可能被当作重复分组而被拒绝。序号在发送出去后出现错误。,步骤4:发布链路状态分组,基本算法的改进方案为了避免序号重复,使用32位的序号。解决序号丢失和出错的方法是增加年龄(age)域,每秒钟年龄减1,至零则丢弃。链路状态分组到达后,延迟一段时间(被放置在一个保持区中),并与其它已到达的来自同一路由器的链路状态分组比较序号,丢弃重复分组和超龄分组
32、。为了防止链路出错,所有的链路状态分组都需要应答。,The packet buffer for router B,步骤5:计算新路由,在路由器积累了一整套网络的链路状态分组后,就可以通过计算得到整个网络的结构。可以利用Dijkstra算法计算得到每个其它路由器的最短路径。基于链路状态的路由协议Open Shortest Path First (OSPF)Intermediate System-Intermediate System (IS-IS),IP 数据报,OSPF 分组,IP数据报首部,OSPF 分组,OSPF 分组首部,类型 1 至类型 5 的 OSPF 分组,24 字节,0,8,16
33、,31,版 本,路 由 器 标 识 符,类 型,分 组 长 度,检 验 和,鉴 别,位,鉴 别,区 域 标 识 符,鉴 别 类 型,2)OSPF 的五种分组类型,问候(Hello)分组。数据库描述(Database Description)分组。链路状态请求(Link State Request)分组。链路状态更新(Link State Update)分组, 用洪泛法对全网更新链路状态。链路状态确认(Link State Acknowledgment) 分组。,OSPF的基本操作,确定可达性,OSPF 使用的是可靠的洪泛法,更新报文,t,ACK报文,R,R,R,R,t1t2t3t4,OSPF
34、的其他特点,OSPF 规定每隔一段时间,如 30 分钟,刷新一次数据库中的链路状态。 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,与整个互联网的规模并无直接关系。当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。 OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。,指定的路由器(designated router),多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。,4 外部网关协议 BGP,BGP 是不同自治系统的路由器之间交换路由信
35、息的协议。 BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 4278。 可以将 BGP-4 简写为 BGP。,BGP 使用的环境却不同,因特网的规模太大,使得AS之间路由选择非常困难。对于AS间的路由选择,不可能寻找最佳路由。当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价不太可能。比较合理的做法是在 AS 之间交换“可达性”信息。 AS间的路由选择必须考虑有关策略。边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。,BGP 发言人(BGP speake
36、r),每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。,BGP 交换路由信息,一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。,
37、BGP 发言人和自治系统 AS 的关系,BGP 发言人,BGP发言人,BGP 发言人,BGP 发言人,BGP发言人,AS1,AS3,AS2,AS5,AS4,AS 的连通图举例,BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。,BGP 发言人交换路径向量,主干网(AS1),地区 ISP(AS2),地区 ISP(AS3),本地 ISP(AS6)N5,本地 ISP(AS7)N6, N7,自治系统 AS2 的 BGP 发言人通知主干网的 BGP
38、发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。”,BGP 发言人交换路径向量,主干网(AS1),地区 ISP(AS2),地区 ISP(AS3),本地 ISP(AS4)N1, N2,本地 ISP(AS5)N3, N4,主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。”,BGP 协议的特点,BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。,BGP 协议的特点,BGP 支持 CIDR,
39、因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。,BGP-4 共使用四种报文,(1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。(2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。(3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。(4) 通知(NOTIFICATION)报文,用来发送检测到的差
40、错。在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。,BGP 报文具有通用的首部,BGP 报文通用首部,字节 16 2 1,BGP 报文主体部分,类 型,长 度,标 记,TCP首部,IP 首部,BGP 报文,TCP 报文,5 路由器,路由器是具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。即将某个输入端口收到的分组,按照分组要去的目的地(即目的网络),从其某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。,1)典型的路由器的结构,路由选择,路由选择处理机,路由选择协议,路由表,3,输入端口,
41、3,交换结构,输入端口,输出端口,分组转发,转发表,分组处理,输出端口,1,1,1,3,3,1,2,2,2,2,3网络层2数据链路层1物理层,“转发”和“路由选择”的区别,“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化 情况,动态地改变所选择的路由。路由表是根据路由选择算法得出的。而转发表是从路由表得出的。在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。,输入端口对线路上收到的分组的处理,数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排
42、队等待处理。会产生一定的时延。,物理层处理,数据链路层处理,网络层处理 分组排队,交换结构,输入端口的处理,从线路接收分组,查表和转发,输出端口将交换结构传送来的分组发送到线路,当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。,物理层处理,数据链路层处理,网络层处理 分组排队,输出端口的处理,向线路发送分组,缓存管理,交换结构,分组丢弃,若路由器处理分组的速率小于分组进入队列的速率,则队列的存储空间最终会耗尽,使后面到达的分组只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。,2) 交换结构,I1,I3,I2,O1,O2,存储器,I1,I3,I2,O1,O2,I1,I3,I2,O1,O3,(a) 通过存储器,(c) 通过互连网络,(b) 通过总线,总线,互连网络,O3,O3,