1.RIP基于UDP,BGP基于TCP,OSPF和EIGRP基于IP。这些在TCP/IP协议栈中定义的路由协议用于发现和维护前往目的地的最短路径。你可以认为它们不属于网络层协议,但它们计算出来的路径最终为网络层提供服务。当然,你也要理解,TCP/IP的定义本来就比较模糊。另外一种为OSI提供服务的路由协议就不一样了,IS-IS。它直接封装在数据帧中,自然是一种网络层协议了。这也可以看出OSI的定义比TCP/IP严谨许多。
2.一个协议的实现需要依赖协议所在层次的下一层功能。简单的说,如果TCP需要依赖网际层协议IP,那么它就是传输层的协议。同理,如果RIP需要依赖传输层的UDP,那至少它应该是被定义在UDP之上的协议,但我认为它并不能算是应用层协议。举个例子,ICMP是网络层协议,但它需要依赖IP承载,那么ICMP是传输层协议吗?不够严谨的TCP/IP啊。
3.严格意义上说,根本就没有明确定义过这些协议的位置。学习这些协议关键是掌握它们在网络中的功能和如何应用它们。至于它们到底是哪一层的协议,你觉得重要吗?