我们知道,在OSI或TCP-IP模型中,较高的层利用了较低层提供的服务。例如,数据链路层使用物理层提供的服务,网络层使用数据链路层提供的服务,依此类推。

但是,我发现某些协议使用协议提供的服务。在它们上方的层中。例如,BGP和RIP都执行路由,这通常被视为网络层功能。 BGP使用TCP,而RIP使用UDP。因此,这里的网络层协议正在使用传输层协议中的服务。这就是为什么在线上有人认为BGP和RIP至少应在传输层相关联,而有些人则说这些是应用程序层协议,因为它们使用传输层的服务,而在传输层之上的TCP-IP模型中,只有应用程序

我了解BGP和RIP都主要执行路由的网络层功能。真相/惯例是什么?

#1 楼

您必须记住,像OSI这样的模型就是这样。它们是理论上的。现实世界并没有完全落入这些模型。在大多数情况下,路由是第3层功能,但是,正如您所指出的那样,BGP使用第4层协议与其他BGP发言人进行通信,以执行通常认为的第3层功能。 >
许多网络协议属于灰色区域,或者在使用另一层时被视为一层。以ARP为例。它将第3层地址解析为第2层地址。

理解模型是有用的,但是模型不受任何组织的委托,您可以自由创建不遵循任何模型的协议和功能。

评论


谢谢。那正是我在网上阅读许多文章后得出的结论。您重申了这一事实。

–玛哈
2015年11月10日7:32

#2 楼

BGP在TCP的顶部,因此它是Internet层4,OSI层7。通常,外部BGP仅在2个直接连接的对等方之间完成,这是通过在IP标头上设置TTL标志(位于第3层)来实施的。 >