-
2019-11-20 21:45:24
一、内外之别
Internet网被分成多个域或多个自治系统(AS)。一个域(domain)是一组主机和使用相同路由选择协议的路由器集合,并由单一机构管理。换言之,一个域可能是由一所大学或其它机构管理的互联网。内部网关协议(IGP)在一个域中选择路由。外部网关协议(EGP)为两个相邻的位于各自域边界上的路由器提供一种交换消息和信息的方法。
内部网关协议IGP,是在AS(自治系统)内部使用的协议,常用的有OSPF、ISIS、RIP、EIGRP。
外部网关协议EGP,是在AS(自治系统)外部使用的协议,常用的有BGP。二、内部网关协议
1.内部网关协议的分类
内部网关协议可以划分为两类:距离矢量路由协议和链路状态路由协议。
[1] 距离矢量路由协议:距离矢量是指以距离和方向构成的矢量来通告路由信息。距离按跳数等度量来定义,方向则是下一跳的路由器或送出接口。距离矢量协议通常使用贝尔曼-福特 (Bellman-Ford) 算法来确定最佳路径。尽管贝尔曼-福特算法最终可以累积足够的信息来维护可到达网络的数据库,但路由器无法通过该算法了解网际网络的确切拓扑结构。路由器仅了解从邻近路由器接收到的路由信息。
距离矢量协议适用于以下情形:
~ 网络结构简单、扁平,不需要特殊的分层设计。
~管理员没有足够的知识来配置链路状态协议和排查故障。
~特定类型的网络拓扑结构,如集中星形(Hub-and-Spoke)网络。
~无需关注网络最差情况下的收敛时间。
[2] 链路状态路由协议:配置了链路状态路由协议的路由器可以获取所有其它路由器的信息来创建网络的“完整视图”(即拓扑结构)。并在拓扑结构中选择到达所有目的网络的最佳路径(链路状态路由协议是触发更新,就是说有变化时就更新)。
链路状态协议适用于以下情形:
~网络进行了分层设计,大型网络通常如此。
~管理员对于网络中采用的链路状态路由协议非常熟悉。
~ 网络对收敛速度的要求极高。
2.OSPF
OSPF开放最短路径优先(Open Shortest Path First),是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相对,OSPF是链路状态路由协议,而RIP是距离向量路由协议。链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由。最主要的特点是使用分布式的链路状态协议,而不是像RIP那样的距离向量协议。三个要点:(1)向本自治系统中所有路由器发送信息。(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。(3)只有在链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息。
3.RIP
RIP(Routing Information Protocol) ,路由信息协议,是内部网关协议中应用最广泛的一种协议,它是一种分布式的,基于距离向量的路由选择协议,其特点是协议简单。适用于相对较小的自治系统,它们的直径“跳数”一般小于15。 RIP协议特点是:(1)仅和相邻路由交换信息(2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。也就是说,交换的信息是:“我到本自治系统中所有网络的(最短)距离,以及到那个网络应经过的下一跳路由器。”(3)按固定时间间隔交换路由信息,例如,每隔30秒。然后路由器根据收到的路由信息更新路由表。
三、外部网关协议
1.简介
外部网关协议(Exterior Gateway Protocol,EGP)是一个在自治系统网络中两个邻近的网关主机(每个都有它们自己的路由)间交换路由信息的协议。EGP常常被用来在英特网的两个主机间交换路由表信息。路由表包括已知的路由器清单、它们能到达的地址以及与每个路由的路径相关的成本度量,以便选出最好的可用路径。每个路由器按照一定的时间间隔,通常在120秒到480秒之间,就给它的邻近路由发送信息,然后邻近路由就会将自己的完整路由表发回给它。EGP-2是EGP的最新版本。 [1]
大部分的公司和机构将它们拥有的路由器组合成一个自治系统,自治系统的本地路由选择信息使用RIP或者OSPF等内部网关协议进行收集。而在这些自治系统中,通过为位于各自自治区域边界的两台相邻路由器提供交换路由选择信息的方法,选择一台或者多台路由器使用EGP(外部网关协议,Exterior Gateway Protocol)与其他自治区域通信。EGP路由器只向其自治区域边界上的路由器转发路由选择表信息来获得对方自治系统的路由信息,从而为IP数据报选择最佳路由。因此, [2] EGP协议应具有以下三个基本功能: [3]
- 支持邻站获取机制,即允许一个路由器请求另一个路由器同意交换可达路由信息。
- 路由器持续测试其EGP邻站是否有响应。
- EGP邻站周期性地传送路由更新报文来交换网络可达路由信息。
EGP协议为了实现以上三个基本功能,定义了在该协议实现过程中使用的10种报文类型。
2.当前形势
当前国际互联网络含有大量智能网关和很多无智能的网关。智能网关使用网间连接协议(GGP)[3]动态地交换它们自身间的路由选择信息。无智能的网关不能动态地交换路由选择信息。无智能的网关必须登记在智能网关路由表上,而且智能网关列表中的无智能的网关状态(例如,增加新无智能的网关)改变时需要人工干预。
在智能网关间路由通信量的量取决于智能网关的数目和网络的总数。因为无智能的网关典型情况下连接位于国际互联网络边缘的单个网络,典型地在路由表中为每个无智能的网关存在一个或者多个网络。连接国际互联网络边缘的单个网络的网关多半称作"支线"网关。当前用于智能网关的GGP程序有容量的限制。急切地需要对这个程序进行重大改进。这很难完成,因为智能网关由若干不同的团体维护,而且很难分离出这些网关的一个子集用于测试新程序。
3.作用
外部网关协议用于在非核心的相邻网关之间传输信息。非核心网关包含互联网络上所有与其直接相邻的网关的路由信息及其所连机器信息,但是它们不包含Internet上其他网关的信息。对绝大多数EGP而言,只限制维护其服务的局域网或广域网信息。这样可以防止过多的路由信息在局域网或广域网之间传输。EGP强制在非核心网关之间交流路由信息。
由于核心网关使用GGP,非核心网关使用EGP,而二者都应用在Internet上,所以必须有某些方法使二者彼此之间能够通信。Internet使任何自治(非核心)网关给其他系统发送“可达”信息,这些信息至少要送到一个核心网关。如果有一个更大的自治网络,常常认为有一个网关来处理这些可达信息。
和GGP一样,EGP使用一个查询过程来让网关清楚它的相邻网关并不断地与其相邻者交换路由和状态信息。EGP是状态驱动的协议,意思是说它依赖于一个反映网关情况的状态表和一组当状态表项变化时必须执行的一组操作。
三、为什么外部网关不使用内部网关协议?
主要是BGP使用的环境不同。主要因为一下两个原因:
- 因特网的规模太大,使得AS之间路由选择非常困难。想一想如果运用OSPF需要建立一个非常大的数据库,这显然不现实。
- AS之间的路由选择必须考虑有关策略。比如安全问题,或者路径上的路由不允许其非该AS的数据报通过等等。
所以BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。BGP采用路径向量路由选择协议,与距离向量协议和链路状态协议不同。
我的微信公众号:架构真经(id:gentoo666),分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。每日更新哦!
参考资料:
更多相关内容 -
内部网关RIP协议和OSPF, 外部网关协议BGP
2021-01-25 22:13:181. 路由表 ...路由表建立的主要目标是为了实现路由协议和静态路由选择。 查找路由表,根据目的网络地址就能确定下一跳路由器,这样做的结果是: IP数据报最终一定可以找到目的主机所在的网路...1. 路由表
在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
查找路由表,根据目的网络地址就能确定下一跳路由器,这样做的结果是:
- IP数据报最终一定可以找到目的主机所在的网路上的路由器(可能要通过多次的间接交付)
- 只有到达最后一个路由器时,才试图向,目的主机进行直接交付。
2. 路由间数据传输
路由A发送数据报给路由B,路由B会将数据从数据链路层、物理层、网络层依次解析,拿到目的IP地址,根据路由器本身的路由表,根据最长匹配原则,找到下一个路由器IP,再依次按照网络层、物理层、数据链路层封包发给下一个路由器。 期间,通过路由器的IP地址使用ARP协议找到路由器对应的MAC地址。
3.自治系统AS(Autonomous System)
- 自治系统AS的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。
- 现在对自治系统AS的定义是强调下面的事实:尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。
4.内部网关RIP协议
RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议。
- RIP是一种分布式的、基于距离向量的路由选择协议。
- RIP协议要求网络中的每一个路由器都要维护从它自己到每一个目的网络的距离记录。
距离的定义:
- 从一个路由器到直接连接的网络的距离定义为1
- 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1
- RIP协议中的“距离”也称为"跳数"(hop count),因为每经过一个路由器,跳数就加1
- 这里的“距离”实际上指的是“最短距离”
- RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
- RI允许一条路径最多只能包含15个路由器。
- “距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互联网。
- RIP不能再两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
RIP协议之间交换信息与路由表更新
- RIP协议让互联网中的所有路由器都和自己相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(跳数最少)
- 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一路由器的位置不同,它们的路由表当然也应当是不同的
优缺点
- RIP协议特点:好消息传播得快,坏消息传播得慢
- RIP存在的一个问题:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器
优点: 实现简单,开销较小。
缺点:RIP限制了网络的规模,它能使用的最大距离为15. 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也增加。“坏消息传播得慢”,使更新过程的收敛时间过长。
5. 内部网关协议OSPF
开放最短路径优先OSPF(Open Shortest Path First)是为克服RIP的缺点在1989年开发出来的。
OSPF的原理很简单,但实现起来却较复杂。
- “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF
- 采用分布式的链路状态协议(link state protocol)
- 注意:OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”
OSPF三个要点
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。(“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric))
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库(link-state database)
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)
- OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
- OSPF的更新过程收敛得快是其重要优点。
划分区域
- 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
- OSPF使用层次结构的区域划分。在上层的区域叫做主干区域(backbone area)
- 主干区域的标识符规定为0.0.0.0 。主干区域的作用就是用来连通其他在下层的区域
6. 外部网关协议BGP(Border Gateway Protocol)
互联网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。 当一条路径经过几个不同AS时,要想对这样的路径计算出有意义的代价是不太可能的。比较合理的做法是在AS之间交换“可达性”信息。
自治系统之间的路由选择必须考虑有关策略
因此,边界网关协议BGP只能是力求寻找一条能够到达的网络,且比较好的路由(不能兜圈子),而并非找一条最佳路由。
BGP发言人
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”(BGP speaker)
- 一般来说,两个BGP发言人都是通过一个共享网络连接在一起,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。
BGP交换路由信息
- 一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。
- 使用TCP连接能够提供可靠的服务,也简化了路由选择协议。
- 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
BGP协议的特点
BGP协议交换路由信息的节点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
每一个自治系统中BGP发言人(或边界路由器)的数目是很少的。这样使得自治系统之间的路由选择不致过分复制。
7. 转发和路由选择的区别
- 转发(forwarding)就是路由器根据转发表将用户的IP数据报从合适的端口转发出去
- 路由选择(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由器。
- 路由表是根据路由选择算法得出的,而转发是从路由表得出的
参考资料:
https://www.bilibili.com/video/BV1ia4y1e7Bp?t=1865
https://www.bilibili.com/video/BV14K4y187im/?spm_id_from=333.788.videocard.1
-
计算机网络 网络层(三)内外部网关协议
2020-04-06 10:06:28计算机网络(九) 学习计算机网络过程中的心得体会以及知识点的... 网际控制报文协议 ICMP4.1 ICMP 报文的种类4.2 ICMP 的应用举例5. 互联网的路由选择协议6. IPv67. IP 多播8. 虚拟专用网 VPN 和网络地址转换 NAT...计算机网络(九)
学习计算机网络过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 网络层 ——
文章目录
上接《计算机网络 网络层(二)》
4. 网际控制报文协议 ICMP
- 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
- ICMP 是互联网的标准协议。
- ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
- 但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。
4.1 ICMP 报文的种类
- ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
- ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
4.1.1 ICMP 差错报告报文共有 4 种
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
ICMP 差错报告报文的数据字段的内容
不应发送 ICMP 差错报告报文的几种情况- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
- 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
4.1.2 ICMP 询问报文有两种
- 回送请求和回答报文
- 时间戳请求和回答报文
下面的几种 ICMP 报文不再使用:
- 信息请求与回答报文
- 掩码地址请求和回答报文
- 路由器询问和通告报文
- 源点抑制报文
4.2 ICMP 的应用举例
4.2.1 PING (Packet InterNet Groper)
- PING 用来测试两个主机之间的连通性。
- PING 使用了 ICMP 回送请求与回送回答报文。
- PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
4.2.2 Traceroute 的应用举例
- 在 Windows 操作系统中这个命令是 tracert。
- 用来跟踪一个分组从源点到终点的路径。
- 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
5. 互联网的路由选择协议
5.1 有关路由选择协议的几个基本概念
-
理想的路由算法
- 算法必须是正确的和完整的。
- 算法在计算上应简单。
- 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
- 算法应具有稳定性。
- 算法应是公平的。
- 算法应是最佳的。
-
不存在一种绝对的最佳路由算法。
-
所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
-
实际的路由选择算法,应尽可能接近于理想的算法。
-
路由选择是个非常复杂的问题
-
它是网络中的所有结点共同协调工作的结果。
-
路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
5.1.1 从路由算法的自适应性考虑
- 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
- 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
5.1.2 分层次的路由选择协议
- 互联网采用分层次的路由选择协议。这是因为:
- (1) 互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网的通信链路饱和。
- (2) 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
5.1.3 自治系统 AS (Autonomous System)
- 自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
- 现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
5.1.4 互联网有两大类路由选择协议
- 内部网关协议 IGP (Interior Gateway Protocol)
- 在一个自治系统内部使用的路由选择协议。
- 目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
- 外部网关协议 EGP (External Gateway Protocol)
- 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。
- 在外部网关协议中目前使用最多的是 BGP-4。
- 内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。
- 外部网关协议 EGP:目前使用的协议就是 BGP。
5.2 内部网关协议 RIP
- 工作原理
- 路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。
- RIP 是一种分布式的、基于距离向量的路由选择协议。
- RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”的定义
-
从一个路由器到直接连接的网络的距离定义为 1。
-
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
-
RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
-
这里的“距离”实际上指的是“最短距离”。
-
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
-
RIP 允许一条路径最多只能包含 15 个路由器。
-
“距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。
-
RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
5.2.1 RIP 协议的三个特点
- (1) 仅和相邻路由器交换信息。
- (2) 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
- (3) 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
5.2.2 2. 距离向量算法
-
路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:
- 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
- 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。 否则 若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。 否则 若收到项目中的距离小于路由表中的距离,则进行更新, 否则,什么也不做。
- 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
-
距离向量算法的基础就是 Bellman-Ford 算法(或 Ford-Fulkerson 算法)。
-
这种算法的要点是这样的:
设X是结点 A 到 B 的最短路径上的一个结点。
若把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和 X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。
5.2.3 RIP2 协议的报文格式
- RIP2 报文由首部和路由部分组成。
- RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。
- 路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。
- 再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
- 一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是4 20 25 504 字节。如超过,必须再用一个 RIP 报文来传送。
- RIP2 具有简单的鉴别功能。
- 若使用鉴别功能,则将原来写入第一个路由信息(20字节)的位置用作鉴别。
- 在鉴别数据之后才写入路由信息,但这时最多只能再放入 24 个路由信息。
5.2.4 RIP 协议的特点和优缺点
- RIP协议特点:好消息传播得快,坏消息传播得慢。
- RIP存在的一个问题:当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。
- 优点:
- 实现简单,开销较小。
- 缺点:
- RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
- “坏消息传播得慢”,使更新过程的收敛时间过长。
5.3 内部网关协议 OSPF
- 开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在1989年开发出来的。
- OSPF 的原理很简单,但实现起来却较复杂。
5.3.1 1. OSPF 协议的基本特点
- “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF
- 采用分布式的链路状态协议 (link state protocol)。
- 注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
三个要点:
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
5.3.1 链路状态数据库 (link-state database)
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
- OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
- OSPF 的更新过程收敛得快是其重要优点。
5.3.2 OSPF 的区域 (area)
- 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。
- 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
- 区域也不能太大,在一个区域内的路由器最好不超过 200 个。
OSPF 划分为两种不同的区域
- OSPF 不用 UDP 而是直接用 IP 数据报传送。
- OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
- 数据报很短的另一好处是可以不必将长的数据报分片传送。
- 但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
5.3.2 OSPF 的其他特点
- OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
- 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
- 支持可变长度的子网划分和无分类编址 CIDR。
- 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
- OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
- OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。
OSPF 的五种分组类型
- 类型1,问候 (Hello) 分组。
- 类型2,数据库描述 (Database Description) 分组。
- 类型3,链路状态请求 (Link State Request) 分组。
- 类型4,链路状态更新 (Link State Update) 分组,
用洪泛法对全网更新链路状态。 - 类型5,链路状态确认 (Link State Acknowledgment)
分组。
OSPF 的基本操作
5.4 外部网关协议 BGP
-
BGP 是不同自治系统的路由器之间交换路由信息的协议。
-
BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。
-
可以将 BGP-4 简写为 BGP。
-
互联网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
-
当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。
-
比较合理的做法是在 AS 之间交换“可达性”信息。
-
自治系统之间的路由选择必须考虑有关策略。
-
因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
发言人:
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” (BGP speaker) 。
- 一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
BGP 交换路由信息:
- 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
- 使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
- 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站(neighbor)或对等站(peer) 。
5.4.1 BGP 协议的特点
- BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
- 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
- BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
5.4.2 BGP-4 共使用四种报文
- (1) 打开 (OPEN) 报文,用来与相邻的另一个BGP发言人建立关系。
- (2) 更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
- (3) 保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。
- (4) 通知 (NOTIFICATION) 报文,用来发送检测到的差错。
5.5 路由器的构成
- 路由器是一种典型的网络层设备。
- 路由器是互联网中的关键设备。
- 路由器的主要作用是:
- 连通不同的网络。
- 选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。
5.5.1 路由器的结构
- 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
- 下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。
- 路由器的转发分组正是网络层的主要工作。
- 整个的路由器结构可划分为两大部分:
- 路由选择部分
- 分组转发部分
- 路由选择部分
- 也叫作控制部分,其核心构件是路由选择处理机。
- 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
- 分组转发部分:
- 交换结构 (switching fabric):又称为交换组织,其作用是根据转发表 (forwarding table) 对分组进行处理。
- 一组输入端口
- 一组输出端口
(请注意:这里的端口就是硬件接口)
5.5.2 “转发”和“路由选择”的区别
- “转发”(forwarding) 就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
- “路由选择”(routing) 则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
- 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
- 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。
5.5.3 输入端口对线路上收到的分组的处理
- 路由器的输入端口里面装有物理层、数据链路层和网络层的处理模块。
- 数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。
- 输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
5.5.4 交换结构
- 交换结构是路由器的关键构件。
- 正是这个交换结构把分组从一个输入端口转移到某个合适的输出端口。
- 实现交换有多种方法。常用交换方法有三种:
- 通过存储器
- 通过总线
- 通过纵横交换结构
通过存储器
- 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。
- 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
- 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。
通过总线
- 数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。
- 因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。
- 现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。
通过纵横交换结构 ( crossbar switch fabric)
- 这种交换结构常称为互连网络 (interconnection network)。
- 它有2N条总线,可以使N个输入端口和N个输出端口相连接。
- 当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。
- 若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。
- 但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。
后续内容查看《计算机网络 网络层(四)》
-
【计算机网络】【湖科大MOOC】网络层路由选择协议 外部网关协议BGP基本工作原理 详细解读
2022-02-14 21:18:32湖科大MOOC 计算机网络 网络层学习笔记,介绍路由选择协议,详细讲解外部网关协议BGP的工作原理、工作过程。目录
网络层
1~2. 网络层概述、虚电路、数据报服务 :【计算机网络】【湖科大MOOC】网络层概述 虚电路、数据报服务
3. IPv4地址 :【计算机网络】【湖科大MOOC】网络层IPv4地址 分类编址(ABCD类地址)、划分子网、无分类编制CIDR 定长和变长的子网掩码FLSM、VLSM
4~5. IP数据报的发送和转发过程、静态路由配置:【计算机网络】【湖科大MOOC】网络层IP数据报发送和转发过程 默认网关 静态路由配置 默认路由 路由环路
6.1~6.3. 路由选择协议:【计算机网络】【湖科大MOOC】网络层路由选择协议概述 内部网关协议RIP和OSPF的工作原理、工作过程 详细解读
6. 路由选择协议
6.4 外部网关协议—— 边界网关协议 BGP (Border Gateway Protocol)
6.4.1 介绍
-
为什么不能使用 “代价” 作为度量来寻找最佳路由?
答:
在不同自治系统中,度量路由的 “代价” (距离、带宽、费用等) 可能不同,没有统一的度量标准,此方法无意义。
-
自治系统之间的路由选择必须考虑相关政策(政治、经济、安全等)。
-
BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非最佳路由;
-
BGP 适用于多级结构的因特网。
6.4.2 基本工作原理
-
在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该AS的 “BGP 发言人”;
-
不同AS 的 BGP发言人要交换路由信息,首先必须建立 TCP连接,端口号为179;
1)在此TCP连接上交换 BGP报文 (被封装在 TCP报文中) 以建立 BGP会话;
2)利用BGP会话 交换路由信息;
3)使用 TCP连接 交换路由信息的两个 BGP发言人,彼此成为对方的 邻站 或 对等站;
-
BGP发言人 互相交换了网络可达性信息后,各BGP发言人根据策略找出到达各自治系统的较好的路由,即构造出树形结构、不存在回路的自治系统连通图;
-
BGP发言人 除了运行BGP外,还必须运行自身自治系统的内部网关协议,如OSPF或RIP。
6.4.3 BGP-4 的四种报文
- OPEN 打开报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化;
- UPDATE 更新报文:用来通告某一路由的信息,以及列出要撤销的多条路由;
- KEEPALIVE 保活报文:用来周期性地正式邻站的连通性;
- NOTIFICATION 通知报文:用来发送检测到的差错。
刚运行时,BGP的邻站交换整个BGP路由表,但以后只需要在发生变化时更新变化部分,节省网络带宽和减少路由器处理开销。
课程视频链接 (B站) :
https://www.bilibili.com/video/BV1c4411d7jb?p=1 -
-
简述动态路由协议OSPF的特点及工作原理
2021-01-19 22:14:08根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有... -
【计算机网络】【湖科大MOOC】网络层路由选择协议概述 内部网关协议RIP和OSPF的工作原理、工作过程 详细...
2022-02-14 13:44:54湖科大MOOC 计算机网络 网络层学习笔记,介绍路由选择协议,详细讲解内部网关协议RIP和OSPF的工作原理、工作过程。 -
通信与网络中的简述动态路由协议OSPF的特点及工作原理
2020-10-22 09:21:56根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有... -
计算机网络——边界网关协议BGP的基本工作原理
2021-07-16 10:08:32外部网关协议EGP(Exterior) 用于不同自治系统之间的协议 内部网关协议有前面学的: RIP和OSPI 外部网关协议是接下来要学的: BGP 自治系统之间的选择还必须考虑相关策略 BGP只能是力求寻找一条能够到达... -
计算机网络协议之网关协议
2021-02-05 16:43:19计算机网络协议之网关协议 原创:@硕子鸽 一.RIP、OSPF 和 BGP 了解他们三个之前必须了解两大类路由选择协议 ...2.外部网关协议 EGP 小团体与小团体之间交流所使用的协议,目前所使用的协议BGP。 二、内部网关协议 RI -
RIP协议原理
2018-12-04 09:09:12一,RIP协议基本原理 1.静态路由和动态路由介绍 ①静态路由是一种需要管理员手工配置的特殊路由。 静态路由在不同网络环境中有不同的目的: 当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。 在复杂... -
计算机网络——边界网关协议BGP
2021-11-10 09:22:33外部网关协议EGP2.BGP的基本工作原理3.总结 1.外部网关协议EGP 因特网采用分层次的路由选择协议,之前已经介绍过了内部网关协议IGP,这是在一个自治系统内部产生作用的协议,而不同自治系统之间的分组传递... -
路由原理和协议分类
2020-12-13 21:08:14内部网关和外部网关协议的区别在于是否处于同一自治系统(选路策略一致,属于某部门统一管理的一组路由器),相同为内部网关协议,不同为外部网关协议。 内部网关协议IGP包含如下: RIP:属于距离矢量协议 OSPF:... -
BGP协议详解及工作原理
2020-08-01 15:21:44边界网关协议(BGP) 是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP的特征 传输协议:tcp 端口号179 ... -
p50-53 路由选择协议概述、路由信息协议RIP、开放最短路径优先OSPF、边界网关协议BGP的基本工作原理
2022-05-07 22:58:52域间路由选择使用外部网关协议EGP这个类别的路由选择协议。 域内路由选择使用内部网关协议IGP这个类别的路由选择协议。 EGP和IGP只是路由选择协议的分类名称,而不是具体的路由选择协议。 一个网络中使用的内部网关... -
计算机网络第4章网络层(3)最长前缀匹配使用二叉线索查找...AS内部网关协议 IGP外部网关协议EGP路由选择协议
2020-06-25 22:24:22RIP,OSPF, 外部网关协议EGP,BGP 4.5.2 内部网关协议 RIP 工作原理 路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。 RIP 是一种分布式的、基于距离向量的路由选择... -
RIP路由协议及工作原理
2018-08-26 13:57:22RIP(Routing information Protocol,路由信息协议)是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,IGP),适用于小型同类网络的一个自治系统(AS)内的路由信息的传递。RIP协议是基于距离矢量... -
什么是BGP协议,以及其工作原理
2020-11-25 11:07:09BGP是一种实现自治系统AS(Autonomous System)...EGP:外部网关路由协议,运行在AS与AS之间的路由协议,他解决AS之间选路问题。 通常:BGP (2)按协议类型分类 距离矢量路由协议:RIP1/2、BGP(路径矢量协议)、EIGRP -
计算机网络——3.网络协议工作原理
2016-02-27 21:36:34网络协议是网络技术学习的基础和根本,它是为计算机网络中数据交换建立的某种规则、标准以及相关的约定。本文将讲解数据链路层协议ARP、网络层协议IP、传输层协议TCP和UDP、应用层协议HTTP、FTP、POP3等常用协议。 -
VRRP主备网关原理
2020-11-23 14:48:20局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来不可预计的损失,所以可以通过部署多个网关的方式来解决单... -
OSPF协议原理
2018-12-05 17:21:54开放最短路径优先协议 OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP) ,能够自行创建网络拓扑图并独立计算通向每个网络的最短路径。 一,OSPF协议... -
RIP路由协议及工作原理(关于RIP的纠错机制说的很棒)
2018-11-06 16:38:28本篇对于RIP中的水平分割,毒性逆转,触发更新等机制如何发挥作用讲得很好。 下面内容摘自笔者编著的《网管员必读——网络基础》(第2版)一书。...9.11.1 RIP路由协议及工作原理 RIP... -
动态路由协议的归纳总结
2021-07-20 08:57:10工作原理2.RIP的防环机制3.RIPv1和RIPv2的区别4.RIP的配置四、OSPF路由协议ospf的概念ospf工作过程Router IDospf包类型ospf路由器类型ospf网络类型ospf区域类型ospf的基本特点ospf建立邻居关系的条件邻居状态机OSPF... -
内部网关协议OSPF学习笔记
2018-03-10 15:58:33一、基本概念 OSPF通过路由器...二、工作原理1、工作流程图OSPF协议工作主要分为四个阶段:寻找邻居、建立邻里关系、链路状态信息传递、计算路由。2、邻居关系建立流程3、传递信息OSPF路由器之间交换链路状态公告... -
OSPF 协议工作原理
2017-09-13 16:19:42OSPF(Open Shortest Path First开放式最短路径优先 )是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。 链路是路由器接口的另一种说法,因此OSPF也... -
BGP 边界网关路由协议
2021-11-10 16:37:52文章目录 边界网关协议 BGP协议详解 最全BGP路由协议技术详解 -
计算机网络:路由协议分类——IGP和EGP
2021-05-19 16:32:58EGP-外部网关协议。 从动态路由协议使用的算法分:: 距离矢量路由算法 链路状态路由算法 不管是如何区分,这都是重点。 层次路由 因特网上路由表过于庞大,会导致查表缓慢,路由表更新交换效率低下,网络拥塞... -
IS-IS协议原理与配置(上)
2021-12-10 13:27:05ISIS的原理讲解 此时我们1-6的话我们是不是有两条路可以选择 2-3和2-4此时怎么选择我们时根据最长掩码匹配原则 假设3是192.168.1.0 /25;4是192.168.1.0 /30那我此时就会去选择4这条路,因为掩码更长,掩码更... -
详解OSPF协议原理一
2021-11-09 18:50:29详解OSPF协议原理一 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。OSPF 协议基于链路状态技术,不同于传统Internet 路由协议... -
SpringCloud微服务实战(十一)-微服务网关及其实现原理(Zuul为例讲解)
2020-05-26 22:13:551.3 微服务网关层的功能 请求鉴权 发布商品,登录鉴权 数据完整性检查 数据包定长 Header+变成Body 协议转换 JSON -> HashMap(String, Object) 解析 app 的request参数时,在需要 rpc 调用服务接口时,需要将文本 ... -
图解TCP/IP-----路由协议
2018-11-30 11:05:34随着IP网络的发展,想要对所有的网络统一管理是不可能的,因此人们根据路由控制的范围常使用IGP(内部网关协议)和EGP(外部网关协议)。 2.1 接入互联网的各种组织机构 互联网连接着世界各地的组织机构...