
在介绍路由协议(RIP、OSPF、BGP)之前会向大家介绍补充一些基本的概念,以便能够更容易的理解本文。
废话不多说我们开始!

我们首先会想什么是路由选择协议(O_o)??



有了上面的分基础知识之后,下面会具体讲一讲每种具体的协议思想、过程、内容、报文格式等。
路由信息协议RIP(Routing Information Protocol) :是一种内部网关协议,它是基于距离矢量算法的路由协议,利用跳数来作为到达某个网络的路由选择标准。

主要适用于规模较小的网络(当跳数为16时表示目的网络不可达)、可靠性要求较低的网络,可以通过不断的交换信息让路由器动态的适应网络连接的变化,这些信息包括每个路由器可以到达哪些网络,这些网络有多远等。

在学校RIP报文更新的过程前,我们先学习一下RIP报文的格式,如下图

注意:从上图我们可以看出RIP协议是应用层协议,使用UDP发送数据

当路由器1与它的邻居路由器2进行信息沟通时,会把自己的路由表封装成数据报发给路由器2,路由器2接收到数据报后(可以认为是接受到了对方的路由表了但是不太严谨),会根据对方的路由表中的信息和距离向量算法来更新自己的路由表项。
- 距离向量算法
- 当路由器1发来RIP报文中的所有表项后,报表项中的“下一跳路由路”修改位路由器1,并把“距离”字段 + 1
- 对修改后的RIP报文中的每一个表项,进行一下步骤:
(1) 若路由器2,没有某个网络(如网络1),则把该表项填入自己的路由表
(2) 若路由器2有某个网络,则查看自己路由表中的下一跳路由器地址:
. . 若下一跳是路由器1,则用收到的项目去替换自己路由表中的项目
. . 若下一跳不是路由器1,如果原来距离比从路由器1走距离更远的话我们就更新表项,否则不做处理
经过若干次更新后,所有的路由器都会知道在本自治系统中任何一个网络的最短距离和下一跳的路由器地址。即达到**“收敛状态”**

只适用于小规模网络,因为当目的网络的距离(跳数)大于等于16时,路由器认为网络不可达。

RIP协议在进行消息分享时,是把路由表中的所有表项都封装层RIP报文发送出去,占用的带宽比较大

RIP协议好消息传的快,坏消息传的慢,当网络较好的时候能够即时的维护网络状态,但是当我们的网络出现的故障时,可能出现网络中的故障信息不能即时传递。
RIP使用“跳数”作为最优距离并非总是最优路径,

从上面的分析中我们可知RIP,有一大堆缺点,那么我们要怎么解决的呢?别担心,这些问题都会再我们下一片文章中讲解的OSPF协议给解决掉。

Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
状态:我正在构建一个应用程序,其中需要一个可供用户选择颜色的字段,该字段将包含RGB颜色代码字符串。我已经测试了一个看起来很漂亮但效果不佳的。它是“挑剔的颜色”,并托管在此存储库中:https://github.com/Astorsoft/picky-color.在这里我打开一个关于它的一些问题的问题。问题:请建议我在Rails3应用程序中使用一些颜色选择器。 最佳答案 也许页面上的列表jQueryUIDevelopment:ColorPicker为您提供开箱即用的产品。原因是jQuery现在包含在Rails3应用程序中,因此使用基
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba
路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模
我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful