一、引言

前一章已经说过了IP数据包是如何分发的。为啥这一章还要说这个问题?在网络很小、只有单个连接点、没有多余的路由的时候,使用静态选路是可以的。但是一旦网络变大一点就会出现各种问题。在大网络中的网络选路将在该节说明。   动态选路协议用于路由器间的通信。该章主要介绍3种动态选路协议:RIP,OSPF,BGP。在Internet这样的大型的网络系统中,将这些主机划分若干个系统(分组)中,一台主机只属于一个系统(组)中,如将一个公司或学校定一个为一个系统(组),这些系统(组)叫做自治系统(AS,Autonomous System).正如其名一样。每一个AS通常由单个实体管理。一组AS组织成Internet。在同一AS中在该系统下的所有路由器选择同一种选路协议。我们称这种路由协议为IGP(Interior Gateway Protocol,内部网关协议);在不同的AS中的路由器的选路协议我们称为EGP(Exterier Gateway Protocol,外部网关协议)。常用的IGP协议有RIP与OSPF,常用的EGP协议有BGP。

二、RIP协议

RIP(Routing Infromation Protocol 路由信息协议)数据包包含在UDP数据包中。RIP协议现在总共分两个版本RIP-1与RIP2,RIP常用UDP端口号是520.

1. RIP-1协议

RIP-1数据包如下:

  • 命令:长度一个字节。1-请求,2-应答,3/4-舍弃不用,5-轮询,6-轮询表项;
  • 版本字段:长度一个字节。RIP-1协议为1,RIP-2协议为2;
  • 一条路由项:长度20个字节。
    • 地址系列: 2个字节,指明是何种地址。值为2表示IP地址。
    • 度量:路由器跳转数,直连为1,最大为16

2.运行流程

  • 初始化:在启动路由守护程序,先判断有哪些网络端口,并且在每一个接口上发送一个RIP请求数据包。对于点对点的网络中,直接发给连接主机。如果是网络,这种请求是以广播的形式发送出去的。这种请求报文的命令字段为 1,但地址系列字段设置为 0,而度量字段设置为 16。这是一种要求另一端完整路由表的特殊请求报文。
  • 接收请求:如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为16(度量为16是一种称为“无穷大”的特殊值,它意味着没有到达目的的路由)。然后发回响应。
  • 接收到的响应:使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除。
  • 定期选路更新:每过30秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。
  • 触发更新:每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。

3.RIP-2协议

RIP-2协议是对RIP-1协议的扩充,该协议不改变RIP-1协议内容,只是所有的填充0区域利用上了。

  • 路由域:一个选路守护程序的标识符,它指出了这个数据报的所有者。在一个Unix实现中,它可以是选路守护程序的进程号。该域允许管理者在单个路由器上运行多个RIP实例,每个实例在一个选路域内运行。
  • 路由标记:为了支持外部网关协议而存在的。它携带着一个 EGP和BGP的自治系统号。
  • 32位子网掩码:每个表项的子网掩码应用于相应的IP地址上。

三、OSPF协议

OSPF(Open Shortest Path First 开放式最短路径优先)是除RIP外的另一个IGP协议。它克服了RIP的所有限制。   与采用距离向量的 R I P协议不同的是, O S P F是一个链路状态协议。距离向量的意思是,R I P发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表。   在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。 参考链接:kalng.blog.51cto.com/3145815/829…

四、BGP协议

BGP(Border Gateway Protocol 边界网关协议)是一种不同自治系统的路由器之间进行通信的EGP协议。   BGP与RIP和OSPF的不同之处在于BGP使用TCP作为其传输层协议。两个运行BGP的系统之间建立一条TCP连接,然后交换整个BGP路由表。从这个时候开始,在路由表发生变化时,再发送更新信号。   BGP是一个距离向量协议,但是与(通告到目的地址跳数的)RIP不同的是,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用16 bit 数字表示自治系统标识。   BGP通过定期发送keepalive数据包给其邻站来检测 TCP连接对端的链路或主机失败。两个报文之间的时间间隔建议值为30秒。

都看到这里了,要不要扫二维码关注一下微信公众号林湾村龙猫

转载于:https://juejin.im/post/5cc65d8e6fb9a0321e16ac56

系列TCP/IP协议-动态IP选路协议(008)相关推荐

  1. RIP、OSPF、BGP、动态路由选路协议、自治域AS

    目录 view sourceprint? 1.1. 动态路由选路协议简介 2.2. RIP(Routing Information Protocol)路由信息协议 3.3. OSPF(Open Sho ...

  2. 物理 IP、虚拟 IP、固定 IP、动态 IP ?

    讲了ADSL计时制与固定制不就是 IP 取得的方式不同吗?那 IP 是啥?有啥 IP 需要注意的呢?以下简单的说明一下. 物理  IP:在网络的世界里,为了要识别每一部计算机的位置,因此有了计算机 I ...

  3. Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园

    Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园

  4. 静态ip和动态ip的区别_动态IP和静态IP有哪些区别?

    代理IP的动态IP和静态IP有什么区别?现在还有许多人在问. 简单说动态IP会发生变化,像工号,到不同的公司你会得到不同的工号:而静态IP是不变的,和身份证号一样.这里神鸡IP代理来给大家详细说下. ...

  5. 易路代理静态IP和动态IP解析以及存在的区别

    易路代理根据分配的IP性质可以分为静态IP地址和动态IP地址两大类,本文主要讲解易路代理中这2种代理IP类型以及它们之间存在的区别.在易路代理的客户端中也能清晰的看到对于静态IP代理和动态IP代理的区 ...

  6. 何为固定IP和动态IP?快解析搞定固定IP端口映射!

    目前,我们上网所使用的有动态IP和静态IP两种,IP地址就是我们上网时所使用的"门牌号".全国目前共有3亿左右的IP地址,我们平时上网拨号,网上冲浪大多数使用的是动态IP.那么,当 ...

  7. 静态ip和动态ip的区别能说明什么?怎么根据区别选择?

    静态ip和动态ip是人们比较常用的代理ip,也是新人入门必须了解的ip.但是很多新人在了解的时候,都认为静态ip和动态ip的区别没有什么实际用处,因此也没有什么了解的必要.事实上这个观点是错误的,接下 ...

  8. 【普】静态IP和动态IP有什么区别?

    动态IP和静态IP的区别在于:动态IP需要在连接网络时自动获取IP地址以供用户正常上网,而静态IP是ISP在装机时分配给用户的IP地址,可以直接连接上网,不需要获取IP地址. 静态IP又称为固定IP, ...

  9. Ubuntu 12.04配置静态ip和动态ip

    Ubuntu 12.04配置静态ip和动态ip 1.配置静态ip 例如:我们要配置的静态ip为192.168.1.100 (1)我们先要设置桥接模式,桥接到自己的网卡 首先点击虚拟机,点击设置,在点击 ...

  10. 固定ip和动态ip的区别?固定ip怎么做端口映射?

    相信很多人分不清什么是固定ip,什么是动态ip,两者比较容易混淆.其实固定ip和动态ip还是有很大区别的!今天小编跟大家说说两者的区别,只有固定ip时选择什么样的端口映射方案. 固定ip和动态ip有什 ...

最新文章

  1. WSUS控制台由于程序异常崩溃
  2. LeetCode总结 -- 树的遍历篇
  3. HTML`CSS_网站页面不同浏览器兼容性问题解决
  4. 【JavaScript基础】js中关于声明提前的几个误区
  5. 那些关于区块链革命的事情
  6. python字符串合并去重_015day--python集合和字符串
  7. goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Index: 0, Size: 0
  8. 吉利、LG化学成立合资公司 从事电动车电池生产及销售
  9. 浅尝JQ AJAX
  10. 2021-08-04 PYTHON基础——类和对象的代码格式
  11. python中keys是什么意思_python中的key是什么意思
  12. 产品经理|需求分析(附《需求池表格》下载)
  13. Cannot define dimension expressions when an array initializer is provided 错误
  14. AcWing 838.堆排序
  15. RSS/RPS/RFS究竟是个什么东西
  16. 程序员独特的浪漫:拿女朋友的照片做成动漫人物当头像
  17. dw版权信息栏如何制作_dw网页制作过程?用dw怎么制作网页?
  18. CF1527C Sequence Pair Weight
  19. 学生用计算机如何弄心形,电脑画图软件内如何绘制心形
  20. 极客mysql45讲学习总结

热门文章

  1. 小容量单片机生成pdf文件
  2. ALGO-162——Airport Configuration
  3. hdu 1754/zstu 3121 I Hate It(线段树)
  4. Windows Live Writer 在win2003 的安装方法
  5. Seata AT模式
  6. java记事本课程设计,java记事本课程设计
  7. 光纤测试时不得不用的福禄克CFP光纤测试仪
  8. 分享适合程序员使用17 张壁纸
  9. 后端技术:mybatis中resultMap用法示例笔记
  10. 硬件:直接拔掉USB移动硬盘会对硬盘造成影响吗?