当前位置: 首页 > news >正文

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)。


相关文章:

  • 数据结构—动态查找
  • 第十章 函数 (上)第一节-第九节
  • 宠物处方单子怎么开,宠物门诊处方管理软件教程
  • JVM 笔记
  • 常见的网络安全威胁和防护方法
  • C++——构造函数
  • Android使用ScrollView导致鼠标点击事件无效
  • LeetCode 热题 100 | 链表(上)
  • 解决Docker AList本地挂载失效的问题。
  • 免费电视TV盒子软件,好用的免费电视盒子软件大全,免费电视盒子APP大全,2024最新整理
  • 影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
  • npm 以组织为单位发布依赖包(@username/package-name、@org-name/package-name)
  • 【全网最全】2024美赛ABCDEF题思路模型全解(后续会更新)
  • go语言标准库flag命令行参数解析
  • HDFS Federation前世今生
  • 自己简单写的 事件订阅机制
  • axios 和 cookie 的那些事
  • const let
  • emacs初体验
  • HTTP请求重发
  • HTTP--网络协议分层,http历史(二)
  • JavaScript DOM 10 - 滚动
  • PaddlePaddle-GitHub的正确打开姿势
  • python 装饰器(一)
  • Python语法速览与机器学习开发环境搭建
  • 区块链技术特点之去中心化特性
  • 深入 Nginx 之配置篇
  • 实现菜单下拉伸展折叠效果demo
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 跳前端坑前,先看看这个!!
  • 通过npm或yarn自动生成vue组件
  • 王永庆:技术创新改变教育未来
  • 我有几个粽子,和一个故事
  • Spring Batch JSON 支持
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #pragam once 和 #ifndef 预编译头
  • $().each和$.each的区别
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (23)Linux的软硬连接
  • (52)只出现一次的数字III
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (二)c52学习之旅-简单了解单片机
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十八)SpringBoot之发送QQ邮件
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)OpenStack Hacker养成指南
  • *p++,*(p++),*++p,(*p)++区别?
  • .axf 转化 .bin文件 的方法
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET HttpWebRequest、WebClient、HttpClient