首页 > 编程知识 正文

无类路由协议,路由表下一跳

时间:2023-05-04 04:53:15 阅读:142389 作者:159

一、路由表1、直接路由:直接连接路由器接口的网段。 如果有路由器(设置路由器网络接口的ip地址后),自动生成;

如果接口物理层和数据连接层正常,直连路由将自动显示在路由表中。 当此接口关闭时,路由将自动从路由表中消失。

2、非直接路由:需要手动添加此记录(静态路由)或使用动态路由,而不是直接连接到路由器接口的网段。

二、动态路由协议:分类:内部网关协议(IGP :链路状态----OSPF; 距离矢量-----RIP; 外部网关协议(BGP ) )。

三、链路状态: 1、路由表建立:(1)发现邻居,获知其网络地址; (发送特殊的hello并返回响应) )。

(2)每个邻居节点中设置的测量(时延、带宽、业务);

构建(3)链接状态包; (对各节点所链接的近邻及其近邻的测量值) c类型的;

3358www.Sina.com/hong-fan链路状态将包发送到所有路由器并接收来自其他路由器的包。

每当节点出现链接状态数据包时,seq加1; 路由器记录下他看到的所有源路由器、序列号对;

其他节点接收到分组后,基于记录进行比对;

如果是新组,则从其他端口发送泛洪。 分组重复时废弃; 对于已接受的seq记录的seq,则拒绝;

(4)

1、如果路由器突然崩溃,seq将从0开始并产生数据包。 其他节点收到的seq(0)记录中的seq将被丢弃;

2、如果seq字段(32位)在转发过程中发生错误(例如4等于65540 ),则当其它路由器收到从该节点发送的包seq为5到65540时,它将直接丢弃;

可能遇到的问题:

各组都有age的值,该值每秒减少1,如果age=0,则该组丢失;

一般每隔一定时间(例如10s )来一组人。 所以只有在Down机的时候才有可能超时;

假定路由器a向路由器b发送LSP,记录b接收到的a的LSP信息,然后a崩溃。 此时,与记录在路由器b上的a的LSP相对应的age开始倒计时,a重新启动的话,通常age倒计时到零,a的LSP被扔在b中,所以重新启动后的a发送的LSP再次来到b,b中没有a的记录

如果某个LSP的序列号被损坏成为另一个序列号,由于序列号的连续性,损坏后的序列号不带有后续的序列号,损坏后的序列号对应的该LSP立即被丢弃,age倒计时为零,正确的序列号

可用age进行解决:

当处于链路状态的数据包到达路由器时,路由器将暂时放在保留区等待,而不是直接转发。

在传输此数据之前,还可能收到来自同一源路由器的另一个链路状态数据包。 如果seq相同,则重复、丢弃; 如果seq不同,则丢弃旧数据包。 为了防止线路发生错误导致丢包和丢包,必须确认所有的链路状态数据包。

1、b的直接连接上有AFC,假设b收到了源路由器为a的链路状态信息包,就像CF一样泛红发送,确认收到了a的信息包。

第2、第2行也同样,需要在接收f的分组后,如AC一样发送以确认是否已接收到f的分组;

第3、3行的e的数据包分别通过EAB和EFB到达,b收到后,需要像C一样发送,确认来自AF的数据包的接收。

4、如果c的链路状态分组在表中的第四个项目被转发之前从f到达一个副本,则只有a发送(f不发送)并同时确认接收到来自f的包) 100011 );

进一步增加其健壮性:每个节点跟随收到的链路状态分组,构成拓扑图,并得出到该系统中所有其他节点的最小路径(Dijkstra算法);

基本思想:每次找到离源点最近的顶点时,以该顶点为中心进行扩展,最终得到从源点到所有剩下的点的最短路径。

1、选择源点,源点有直接节点,用度量值表示从该节点到源点的路径,不直接连接源点时,用代替;

2、选择与源点度量值直接相连的最小节点(第二点); 然后,以第2点为中心点,重新计算从源点到其他未选择的各节点的路径值(通过第2点)。 大于原始值时,不变更; 小于原始值时,更改;

3、以节点2为中心,在剩下的未选择的节点中,选择离节点2的距离最小的路径值的节点(节点3 ),从源出发,经由节点3直接连接后,依次计算到达剩下的各节点的距离值,进行比较修正。

4、最终得出最小通径值;

2 )路由表的维护(四、距离向量) 1、路由表的创建) 1、每个路由器维护与当前网络中每个目标的最佳距离、包括所使用的链路的表);

)2)在邻居路由器之间交换路由信息(1表);

) 3、各路由器基于接收到的路由信息,更新自己(维护)的表,最终确定与各目标的最优链路。

p>

注意:这里的路由器维护的一张表中,通常只有两个属性(目的网络,距离),也就是说没有下一跳,经过谁,所以会产生环路的情况;

存在问题:

原先:Y到Z是1,Y到X是4;Z到X是5(经过Y);当Y与X之间的链接费用变坏,增大到60的时候;Y发现他现在到X变成了60(大于了原先的4),而又通过交换路由表得知Z到X是5(Y不知道其实Z到X是通过自己的,它或者想着是Z直接链接的那个链接是5呢?),而Y到Z是1,这样Y想,既然这样,如果我经过Z到X才6,明显比60小。

存在问题:水平分割或者毒性逆转

水平分割原理:在路由信息传送过程中,不再把路由信息发送到接收到此路由信息的接口上。即如果路由器从接口X学习到了新的路由信息R(目的网络R),并进行更新;那么,从该接口(X)发出的新的路由信息,不包括该条路由信息R(目的网络R)。

毒性逆转原理:即如果节点A到节点C中间是经过了节点B(A---B--C);那么A会告诉经过的节点(B),到目的节点(c)的距离是∞;即:如果路由器从端口X学到路由信息(R)并更新路由表,则新的路由信息从也会端口X发出包含R的信息,只是将该条信息的度量值变成无穷大。

毒性逆转的局限性:

但是,当涉及3个或更多节点(而不仅仅是两个直接相连的邻居节点)的环路将不能被毒性逆转技术检测到,如下例:

当C和D之间的连接断开时,依次发生如下事件: A收到来自C的坏消息,然后将选择从B到达D A向C发送更新报文 C向B发送更新报文 这种问题出现的原因是,A和B无法同时收到来自C的更新报文然后更新自己的距离向量。比如这里,B与A相比得到的更新报文时间要晚,这就给A造成了“错觉”,在A看来,虽然从C到不了D,但是选B也可以。然后它又把这个错误的好消息告诉了C,让C也以为自己又和D团聚了。最后,终于想到忽略了B,又发送了报文给B。这样,A、B、C都以为自己和D联系上了。但实际上D和它们已经隔离了。。。

三、路由分层 1、为什么分层?

设想,如果不分层管理,假设全球有6亿个不同的路由信息,全部都存储在路由表中,需要多大的内存,路由表在查询时候需要多长时间?如果不分层,收敛速度要多慢,能保证路由表快速刷新一致吗?如果不分层,网络中将会充斥着大量的链路状态信息在传送、大量的DV在交换,用户的信息怎么传送?

2、怎么分层?

将若干个路由器聚合成一个区域,也就是一个自制系统;

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。