分享

静态路由协议、RIP、IGRP、EIGRP、OSPF协议和BGP

 tcwl123 2012-02-15

静态路由协议、RIP、IGRP、EIGRP、OSPF协议和BGP

补充资料

静态路由协议、RIP、IGRP、EIGRP、OSPF协议和BGP分别属于OSI参考模型的哪一层?希望回答时有权威资料的支撑,谢谢!

8楼已做了补充说明。已加悬赏分。

[ 本帖最后由 tomsli1982 于 2010-6-9 11:32 编辑 ]
最佳答案 ( 回答者: Randy0625 )
准确的说应该是TCP/IP的应用层
首先你要分清楚OSI模型与TCP/IP模型的区别,你说的这些协议都是TCP/IP协议栈中的,属于OSI协议栈中的路由协议是ISIS
然后再说属于哪个层,这是一个很容易让初学者混淆的问题,说到路由往往就会想到网络层,动态路由协议其实是一种选路的算法,都是应用层的协议,看一下协议的报文就知道,路由协议报文都是封装在应用层的数据报中的,然后再根据其使用的传输层协议打上TCP和UDP的报头(OSPF除外,OSPF是RAW IP封装,直接封装IP报头,IP报头的协议号是89),然后到了网络层再封装上IP的报头,再网下就是封装成链路层的帧,再往下就到物理层 变成bit流了 ,这么说你懂了吧~

网络层,应该是2层吧。
RIPV1 IGRP EIGRP OSPF 都是三层
RIPV2  UDP 封装 四层
BGP TCP 封装  四层
楼上的同学,好像你描述的自我矛盾了,比如说OSPF封装在IP报文中,协议号是89,它严格定义就应该是网络层,而BGP使用的是TCP:179,就属于传输层。我是这样的理解的。如有不对,请各位高手来拆台!
我觉得要学的话最好看下网络基础然后路由基础  推举思科技术学院教程容易看懂。。
首先给楼主一个建议:学习网络协议,应该是阅读资料+自己分析,而不是找权威的资料来支撑。

同意地板的说法,这些协议的确都是工作在应用层。
通常来说,理解一个协议有两点
1. 传输的可靠性。保证协议所需的数据能够让需要者收到
2. 本地算法。根据所需的数据进行本地计算和决策

以OSPF为例
OSPF报文是直接封装在IP报文中的,IP无法保证可靠性传输,所以,传输的可靠性是由OSPF本身来保证的。从传输的角度说,它是工作在IP层。
其实,真正用来做SPF计算的当然是OSPF数据内容,IP只是OSPF的承载层。所以,从这个意义上说,OSPF是工作在应用层。

所以,我认为,决定一个协议工作在哪一层,要看是需要对其数据进行处理,还是只根据其承载层进行转发。【纯属个人观点】
看了大家的回复,不是很满意。只有地板一位说到点上了,但还不是很具体。

一个理解,按OSI模型概念来说,下层协议为上层协议提供服务;路由协议应该都是为被路由协议(IP、IPX等三层协议)服务的,那么按理论来说,路由协议应该都处于三层以下。

而实际上目前查到的可以确定的资料是:
1、RIP路由使用UDP520端口,列为应用层协议;
2、BGP路由使用TCP179端口,列为应用层协议;
3、OSPF是专门设计用于自治系统内的IP路由协议,OPSF的算法SPF基于IP数据报头的目的IP地址来计算路由,并不提供对非IP目的地的路由计算;而且,各种OSPF信息都直接封装在IP中,不需要其他协议(如TCP、UDP)来传输。
4、IP包头协议区规定TCP协议号为6,UDP为17,EIGRP为88,OSPF为89,故认为EIGRP和OSPF协议同类TCP、UDP为传输层协议。
5、思科培训老师统一认为RIP和BGP属于应用层协议,而OPSF和EIGRP属于传输层协议,据说CCNP部分有说明。
6、静态路由、IGRP目前没相应资料对应说明。

严格来说,题目提到的几种路由协议都是属于TCP/IP协议栈的,非要严格对应到OSI模型有些强人所难。

提出这个问题,主要是想大家共同讨论提高对各路由协议具体原理的认识,所以才提出请大家提供权威资料的支持。不要想当然的认为自己的理解就是正确的,有些基本概念性的东西还是很容易混淆的(虽然实际应用中没多大用处!)

如果大家觉得悬赏分值太少不值得下工夫回答,我可以加分悬赏。

[ 本帖最后由 tomsli1982 于 2010-6-9 23:19 编辑 ]
楼主很生气,后果很严重...
知道了这个问题之后,对我们深入理解协议,有什么帮助呢?
引用:
原帖由 c_hldlk 于 2010-6-9 11:45 发表
楼主很生气,后果很严重...
知道了这个问题之后,对我们深入理解协议,有什么帮助呢?
确切来说,对实际应用没意义!!不思考这个问题一样能做网络工程!!
引用:
原帖由 cherycool 于 2010-6-9 09:27 发表
楼上的同学,好像你描述的自我矛盾了,比如说OSPF封装在IP报文中,协议号是89,它严格定义就应该是网络层,而BGP使用的是TCP:179,就属于传输层。我是这样的理解的。如有不对,请各位高手来拆台! ...
您这个根本概念性错误了,IP报文中提到的协议号是针对传输层而言,既然你知道OSPF在IP报文中协议号为89,那么OSPF就和TCP同类应为传输层协议;EIGRP同类。
只有应用层才会用到TCP和UDP的端口号,所以BGP用TCP179端口,归为应用层;RIP同类。
引用:
原帖由 tomsli1982 于 2010-6-9 11:18 发表
看了大家的回复,不是很满意。只有地板一位说到点上了,但还不是很具体。

一个理解,按OSI模型概念来说,下层协议为上层协议提供服务;路由协议应该都是为被路由协议(IP、IPX等三层协议)服务的,那么按理论来说,路由协议应该都处于 ...
楼主把路由协议和被路由协议的关系正好理解反了,IP协议提供了一套编址方案,以供路由查找,举个通俗的例子,比如每个街道都定义了一个街道名,方便你进行选路,L-S算法就好比每个人站在城市中把自己身边的街道名记录到一个卡片上,然后发给城市里的所有人,这就是泛洪,然后城市中的每个人都这么做,最后大家都收到了每个人写的卡片,就可以拼成一张城市的地图,这就是LSDB达到了FULL的状态,最后你选一条最近的路到达目的地,这就是SPF选路。D-V算法的就是每个人将自己所知道的地名和前往的方法告诉身边的人,然后大家互相转告,最后大家也就知道了如何去往目的地,可以说地名是为选路提供一种方便的标记地名地点的手段,是为选路提供服务的,这样就可以理解被路由协议时为路由协议提供服务的了。

OSPF也是应用层协议,关于它的RAW IP封装是这样的:
它与UDP类似,是不可靠的,即没有任何控制能确定RawIP数据报是否已被接收。它是无连接的。RawIP相比UDP的区别在于:RawIP允许应用程序直接通过Socket接口操作IP层。如果使用raw IP, 则不再需要根据传输层所进行的加工处理, 而是可以直接利用IP协议

权威资料还是建议看RFC吧,RFC793,RFC 768
RFC793
Transmission Control Protocol
RFC768
User Datagram Protocol
1、RIP路由使用UDP520端口,列为应用层协议;
2、BGP路由使用TCP179端口,列为应用层协议;
3、OSPF是专门设计用于自治系统内的IP路由协议,OPSF的算法SPF基于IP数据报头的目的IP地址来计算路由,并不提供对非IP目的地的路由计算;而且,各种OSPF信息都直接封装在IP中,不需要其他协议(如TCP、UDP)来传输。
4、IP包头协议区规定TCP协议号为6,UDP为17,EIGRP为88,OSPF为89,故认为EIGRP和OSPF协议同类TCP、UDP为传输层协议。
5、思科培训老师统一认为RIP和BGP属于应用层协议,而OPSF和EIGRP属于传输层协议,据说CCNP部分有说明。
6、静态路由、IGRP目前没相应资料对应说明。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多