1.RIP基于UDP,BGP基于TCP,OSPF和EIGRP基于IP。这些在TCP/IP协议栈中定义的路由协议用于发现和维护前往目的地的最短路径。你可以认为它们不属于网络层协议(注意,是用,based on,而不是实现了,BGP用TCP,所以BGP是应用层的,TCP用IP,所以TCP是传输层的,OSPF用IP,所以OSPF更应该是归类到传输层里比较合理。与书《计算机网络自顶向下方法与Internet特色》意思基本一致),但它们计算出来的路径最终为网络层提供服务。(在TCP/IP协议栈中,Routed Protocol(eg. IP)工作在网络层,而Routing Protocol(eg.BGP)工作在传输层或应用层,他们之间的关系为:Routing Protocol负责学习最佳路径,而Routed Protocol根据最佳路径将来自上层的信息封装在IP包里传输。)
当然,你也要理解,TCP/IP的定义本来就比较模糊。另外一种为OSI提供服务的路由协议就不一样了,IS-IS。它直接封装在数据帧中,自然是一种网络层协议了。这也可以看出OSI的定义比TCP/IP严谨许多。
2.一个协议的实现需要依赖协议所在层次的下一层功能。简单的说,如果TCP需要依赖网际层协议IP,那么它就是传输层的协议。同理,如果RIP需要依赖传输层的UDP,那至少它应该是被定义在UDP之上的协议,但我认为它并不能算是应用层协议。举个例子,ICMP是网络层协议,但它需要依赖IP承载,那么ICMP是传输层协议吗?不够严谨的TCP/IP啊。
3.严格意义上说,根本就没有明确定义过这些协议的位置。学习这些协议关键是掌握它们在网络中的功能和如何应用它们。至于它们到底是哪一层的协议,你觉得重要吗?
4.如果一定在划分的话.单纯地从层次上讲的话,RIP,BGP应该在应用层,OSPF,EIGRP在传输层。