互联网上的数据流通常被描述为通过至少两个边界路由器从一个主机到另一个主机。在这些说明中,主机配备并使用了完整的internet协议栈,而路由器则被描述为拥有和使用网络协议和IP。
如果我没有弄错的话,BGP是应用层协议。
因此,我想知道BGP通信是如何在路由器之间发生的,如果它们只是访问协议栈的一部分,甚至只是协议栈的一部分?
发布于 2016-09-19 16:18:22
对于在这里使用的OSI模型的哪一部分有很多混淆。让我看看能不能帮上忙:
记住,OSI模型只是一个模型。它并不代表实际使用的任何东西。TCP/IP模型更适合于Internet上使用的协议。
“路由器被描述为拥有和使用网络协议和IP”这句话过于简单化--这就是其中一些困惑的根源。路由器软件具有完整的栈,可以运行BGP等路由协议以及管理功能(telnet、SSH、snmp等)。
BGP是网络协议还是应用协议?在路由器上运行的BGP进程与其他路由器上的BGP进程对话。BGP利用TCP/IP来促进这种通信。它在对等点之间建立会话,并有自己的消息格式和语法。从这个意义上说,BGP是一个运行在路由器上的应用程序。
BGP的目的是填充路由器的转发表。当路由器为IP数据包做出转发决定时,它会在表中查找下一跳地址,添加第二层报头,并将其发送出一个接口。这个过程只涉及1-3层。所以如果你说的是路由器的路线,那就是你需要讨论的全部--这可能就是造成混乱的原因。
总之,包的转发涉及第1-3层.用于转发数据包的信息来自许多来源--其中之一可能是运行在路由器上的BGP应用程序。
发布于 2016-09-19 15:54:44
BGP是一种路由协议,它应该位于网络层(如果使用OSI模型)或Internet层(如果使用TCP/IP模型)。它不是一个应用层协议。
https://networkengineering.stackexchange.com/questions/35049
复制相似问题