代码之家  ›  专栏  ›  技术社区  ›  Xinus

什么是协议栈?

  •  1
  • Xinus  · 技术社区  · 15 年前

    当我遇到一些协议实现时,我听过很多次这个术语,但是我无法想象“协议”与“堆栈”有什么关系?这里使用的堆栈是一个堆栈数据结构吗?如果是这样,为什么我们需要在客户机和服务器上的协议栈来进行通信?

    4 回复  |  直到 15 年前
        1
  •  9
  •   Robert Deml    15 年前

    TCP建立在IP上。

    IP建立在以太网上。

    以太网是建立在电压水平和时间上的。

    因此,TCP堆栈是您需要使用TCP的一堆东西。

        2
  •  4
  •   user200783    15 年前

    从这个意义上说,“栈”与栈数据结构无关——它仅仅是指每个协议如何建立在它下面的协议之上。

        3
  •  3
  •   Vincent Ramdhanie    15 年前

    它是对网络分层方法的参考。还记得OSI参考模型吗?TCP/IP模型?基本上,您将网络划分为多个层次,并且每一层都处理从硬件到应用程序的不同抽象级别的网络问题。

    每一层都有自己的一组协议,而每一个更高的层都使用较低的层来执行它的工作。就像TCP(传输层)使用IP(网络层)发送帧一样。当你使用网络中使用的所有协议来移动比特时,你将它们一个叠在另一个之上。应用程序只看到堆栈顶部的协议。

        4
  •  0
  •   ennuikiller    15 年前

    “协议栈”是指所使用的具体实现。例如,TCP框架通常被称为“TCP堆栈”。这里,stack用作一个表示框架的各个“部分”的术语。