05 - 什么是路由协议

1 路由协议

路由协议(英语:Routing protocol):

是一种指定数据包转送方式的网上协议。Internet网络的主要节点设备是路由器,路由器通过路由表来转发接收到的数据。

路由协议,根据转发策略进行分类:

  • 静态路由,这种类型的路由是通过手动配置并维护的,允许管理员指定特定的网络转发表达路径。在具有较小规模的网络中,人工指定转发策略没有任何问题。但是在具有较大规模的网络中(如跨国企业网络、ISP网络),如果通过人工指定转发策略,将会给网络管理员带来巨大的工作量,并且在管理、维护路由表上也变得十分困难。为了解决这个问题,动态路由协议应运而生。
  • 动态路由,动态路由协议可以让路由器自动学习到其他路由器的网络,并且网络拓扑发生改变后自动更新路由表(自动维护)。网络管理员只需要配置动态路由协议即可,对于数据包的转发路径,动态协议会通过自身的算法来计算路由并选路,相比人工指定转发策略,工作量大大减少。

1.1 动态路由

以下是一些常见的动态路由协议及其特点:

  • RIP(路由信息协议):是最早的动态路由协议之一,具有节约成本和对资源消耗较低的优点,但计算路由的速度慢,链路变化后的收敛速度慢,能保存的路由表相对较小,主要用于小型网络。
  • OSPF(开放最短路径优先协议):是一种技术成熟的协议,收敛速度快,但由于Cisco的支持而广泛使用。它的收敛速度虽然快,但在安全性方面可能不如某些其他协议。
  • EIGRP(增强型内部网关路由协议):是思科的私有协议,适用于纯思科环境,基于DUAL算法,初始建立邻居后会一次性通告所有路由,后期通过Hello维持邻接关系。
  • ISIS(中间系统到中间系统协议):主要用于传输网或运营商网络,具有快速收敛和高安全性的特点。
  • BGP(边界网关协议):用于核心网的路由传递,它可以支持大量的路由计算和传递,对设备和资源的占用较大。

动态路由协议又可以分为两类:

  • 内部网关协议(IGP,Interior Gateway Protocol ): 单个自治系统内的路由器交换路由信息,使用内部网关协议。
  • 外部网关协议(EGP,Exterior Gateway Protocol):不同自治系统之间的路由器交换路由信息,使用外部网关协议。

下面,举例介绍一下 IGP 和 EGP 。

BGP和OSPF是最流行的两种基于标准的动态路由协议。其中,BGP(Border Gateway Protocol,边界网关协议)是属于外部网关协议,OSPF(Open Shortest Path First,开放最短路径优先协议)属于内部网关协议。它们分别代表了一组规则或者算法,可以指导路由器之间相互通信,以便它们将流量定向到最佳路径。

BGP协议具有以下特点:

1、BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,BGP是在不同自治系统AS之间控制路由传播和选择最佳路由。

2、 BGP使用TCP作为传输层协议(端口号179),提高了协议可靠性。

3、BGP进行域间路由选择,对协议稳定性要求非常高,因此可用TCP协议的高可靠来保证BGP协议的稳定性。

4、在BGP对等体之间必须逻辑上连通,并且进行TCP连接。目的端口号为179,本地端口号任意。

5、BGP支持无类别域间路由CIDR。

6、 路由更新时,BGP只发送更新路由,大大减少BGP传播路由所占用的带宽。

知识补充:什么是自治系统(AS)?

自治系统:autonomous system,简称AS

在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用各种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。

"自治系统(AS)",这种词语让我们小白听着感觉很高级的样子,其实就是一个网络环境,每一个区域就是一个自治系统,比如,一个VLAN环境或者一个公司的网络环境等,都是一个"自治系统(AS)",别被专家们的术语给唬住了,哈哈。

一个自治系统有时也被称为是一个路由 选择 (routing domain)。

一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。

相关推荐
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
一坨阿亮5 小时前
Linux 使用中的问题
linux·运维
音徽编程5 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零7 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge7 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱7 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
23zhgjx-NanKon7 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon7 小时前
华为eNSP:mux-vlan
网络·安全·华为