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 是传输层协议吗?
3. 严格意义上说,根本就没有明确定义过这些协议的位置。学习这些协议关键是掌握它们在互联网中的功能和如何应用它们。至于它们到底是哪一层的协议,你觉得重要吗?
4. 如果一定在划分的话. 单纯地从层次上讲的话,RIP,BGP 应该在应用层,OSPF,EIGRP 在传输层