系列TCP/IP协议-动态IP选路协议(008)

一、引言

前一章已经说过了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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shields 徽标_我们如何准确地记住著名徽标的特征和颜色?

shields 徽标The logos of global corporations like Apple, Starbucks, Adidas, and IKEA are designed to create instant brand associations in the minds of billions who see them every day. But how accurately can we remember the features and colors of these famo…

面了三次字节,他的一些感悟

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,已进行了三个多月,大家一起交流学习,共同进步。今天分享一篇小K投稿的字节面试记录,这是他第三次面字节了,之前…

JavaScript数组内置排序函数

javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。 sort() 方法用于对数组的元素进行排序。语法如下: ArrayObject.sort(order); 测试A&#xf…

解决Wireshark安装Npcap组件失败

2019独角兽企业重金招聘Python工程师标准>>> 解决Wireshark安装Npcap组件失败 从Wireshark 3.0开始,Npcap取代Winpcap组件,成为Wireshark默认的网卡核心驱动。由于该组件属于驱动程序,所以安装时候容易被杀毒/防火墙软件拦截&…

adobe清理工具_Adobe终于通过其新的渐变工具实现了这一点-UX评论

adobe清理工具的Photoshop (Photoshop) UX:用户体验: At first glance, the UX looks okay; it’s pretty clear. The user gets to know how to use this tool right away. The color palette is located above, and the gradient down below. The diamond betwee…

GMF学习系列(二) 一些知识点(续2)

8.插件的国际化,可以参考nwpu.cdcsp.sbpel.diagram.part中messages.java的做法。 9.Text自动提示功能 import org.eclipse.jface.bindings.keys.KeyStroke; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.fieldassist.AutoCompleteField; im…

新手向:前端程序员必学基本技能——调试JS代码

1前言大家好,我是若川。最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,已进行三个月了,大家一起交流学习,共同进步。想学源码,极力推荐之前我写的《学习源码整体架构系列》 包含jQuery、un…

iOS开发ApplePay的介绍与实现

1、Apple Pay的介绍 Apple Pay官方1.1 Apple Pay概念 Apple Pay,简单来说, 就是一种移动支付方式。通过Touch ID/ Passcode,用户可使用存储在iPhone 6, 6p等之后的新设备上的信用卡和借记卡支付证书来授权支付; 它是苹果公司在2014苹果秋季新…

mes建设指南_给予和接受建设性批评的设计师指南

mes建设指南Constructive criticism, or more plainly, feedback, plays a crucial role in a designer’s job. Design is an iterative process, so we are often either asking for feedback on our own work or dishing it out to a fellow designer.建设性的批评&#xff…

面试官:请实现一个通用函数把 callback 转成 promise

1. 前言大家好,我是若川。最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,或者在公众号:若川视野,回复"源码"参与,每周大家一起学习200行左右的源码,共同进步。已进行…

java中filter的用法

filter过滤器主要使用于前台向后台传递数据是的过滤操作。程度很简单就不说明了,直接给几个已经写好的代码: 一、使浏览器不缓存页面的过滤器 Java代码 import javax.servlet.*;import javax.servlet.http.HttpServletResponse;import java.io.IOExcept…

我很喜欢玩游戏,那么我就适合做游戏程序员吗?

作者:黄小斜文章来源:【程序员江湖】游戏在今天的普及度已经不是端游时代可以比肩的了。如今人手一台手机、平板就可以吃鸡、打农药,不仅是男生,也有很多女生加入了游戏圈。相信现在在看文章的你也玩游戏,虽然爱玩的程…

open-falcon_NASA在Falcon 9上带回了蠕虫-其背后的故事是什么?

open-falconYes, that’s right. The classic NASA “worm” logo is back! An image of the revived NASA worm logo was released on Twitter by NASA Administrator Jim Bridenstine as well as press release on the NASA.gov website. NASA explained that original NASA …

听说你对 ES6 class 类还不是很了解

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与。前言在ES5中是原型函数,到了ES6中出现了"类"的概念。等同于是ES5的语法糖,大大提升了编写代码的速度,本文只讲一些常用的&…

《CSS揭秘》读书笔记

摘要 《CSS揭秘》主要是介绍了使用CSS的技巧,通过47个案例来灵活的使用CSS进行实现,同时在实现过程中注重CSS代码的灵活性与健壮性。通过阅读这本书有利于我们编写高质量的CSS代码以及打破使用CSS时的固定思维,能够更加灵活的使用CSS。 《CSS…

一篇文章带你搞懂前端面试技巧及进阶路线

大家好,我是若川。最近有很多朋友给我后台留言:自己投了不少简历,但是收到的面试邀请却特别少;好不容易收到了大厂的面试邀请,但由于对面试流程不清楚,准备的特别不充分,结果也挂了;…

小屏幕 ui设计_UI设计基础:屏幕

小屏幕 ui设计重点 (Top highlight)第4部分 (Part 4) Welcome to the fourth part of the UI Design basics. This time we’ll cover the screens you’ll likely design for. This is also a part of the free chapters from Designing User Interfaces.欢迎使用UI设计基础知…

RabbitMQ指南之四:路由(Routing)和直连交换机(Direct Exchange)

在上一章中,我们构建了一个简单的日志系统,我们可以把消息广播给很多的消费者。在本章中我们将增加一个特性:我们可以订阅这些信息中的一些信息。例如,我们希望只将error级别的错误存储到硬盘中,同时可以将所有级别&am…

不用任何插件实现 WordPress 的彩色标签云

侧边栏的标签云(Tag Cloud)一直是 WordPress 2.3 以后的内置功能,一般直接调用函数wp_tag_cloud 或者在 Widgets 里开启即可,但是默认的全部是一个颜色,只是大小不一样,很是不顺眼,虽然可以用 S…

随时随地能写代码, vscode.dev 出手了

大家好,我是若川。最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与。今天偶然看到了 VSCode 官方发布了一条激动人心的 Twitter,vscode.dev[1] 域名上线了!image-20211021211915942新的域名 vscode.dev[2] 它是一个…