【问题标题】:(How) BGP is a network layer protocol?(How) BGP是网络层协议吗?
【发布时间】:2022-12-10 06:52:51
【问题描述】:

我的问题是基于这样的理解,即上层使用下层提供的服务来运行。

如果 BGP 是网络层路由协议,那么它如何使用 TCP(传输层协议……网络层之上的一层)进行通信?

或者

我对图层的理解有点错误吗?

【问题讨论】:

  • 这个问题与编程无关,即这里是题外话。不管怎么说,BGP是一个应用层协议,应用层交换的信息是用来控制网络层的,也就是路由。想想访问一个网站(应用层),它告诉你如何配置你的路由(网络层),所以“网络层路由协议”是控制网络层路由的协议,而不是网络层的路由协议。
  • BGP是一种维护数据库的应用程序,它使用TCP作为其传输协议,有自己的应用层协议来交换数据库信息。请记住,路由协议不进行路由,它们仅与对等方交换数据库中的路由信息​​。

标签: networking tcp computer-science bgp transport-layer-protocol


【解决方案1】:

是的,它有点颠倒,但它的工作原理如下。

BGP 是一种域间路由协议 (IDR),这意味着它用于在不同网络(技术上称为自治系统)之间路由流量。

在每个自治系统中使用其他类型的路由协议,称为内部网关协议 (IGP)。示例包括 OSPF 和 ISIS。

有两种类型的 BGP 会话,每种都使用 TCP 连接:

(1) EBGP 会话,它在一个自治系统中的一个路由器和不同相邻自治系统中的另一个路由器之间运行。这些路由器必须直接相互连接,因此您不需要用于路由 TCP 流量的路由协议(从技术上讲,它们依赖于“连接路由”)。

(2) IBGP会话,运行在自治系统中的一台路由器和同一自治系统中的另一台路由器之间。这些路由器可能彼此相距多跳。对于这些 TCP 连接,BGP 依靠 IGP 协议进行路由。

使用 TCP 的 BGP 的一大优点是它可以依赖 TCP 进行可靠的传输和流量控制。直接在 IP(例如 OSPF)或直接在以太网(例如 ISIS)上运行的其他路由协议必须“重新发明”协议本身的可靠传输和流量控制机制。

【讨论】:

    【解决方案2】:

    BGP 是一种路由协议,而路由是一种网络层功能,因此将其称为“网络层”路由协议充其量是多余的,并且可能被某些人认为是“错误的”(Are there any "physical layer" routing protocols? Maybe . 但不是真的,不是在“路由”具有特定含义的 TCP/IP 上下文中。)BGP 是一个应用层协议,因为它依赖于 TCP 传输。

    【讨论】:

    • BGP是路由协议,路由是网络层功能" 路由协议不路由数据包(一个常见的误解是路由协议路由数据包)。路由器根据路由表路由数据包。路由协议与其对等方交换路由信息,并且它们是三种方式(最不可信方式)之一路由器可能会填充它们的路由表(直接连接、静态路由、路由协议),路由协议交换的路由信息​​可能会也可能不会最终出现在路由表中。
    • 你为什么引用我?路由协议被路由,路由协议交换路由信息,路由器做实际的路由。这里没有误解,我作为一名网络工程师成功工作了 30 年,直到因为像你这样的人而退休。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2021-06-21
    • 2013-12-14
    • 1970-01-01
    相关资源
    最近更新 更多