【问题标题】:Can someone explain what a wire-level protocol is?有人可以解释什么是线级协议吗?
【发布时间】:2011-01-20 09:54:22
【问题描述】:

我对线级协议的概念不是很清楚。我听说 BitTorrent 使用它并且读到线级协议可以被认为是 API 的对立面。我读过 RMI 调用可以被认为是线级协议,但仍然有点困惑。有人可以更好地解释这一点吗?

【问题讨论】:

  • 好问题让我困惑了很长时间

标签: networking terminology protocols p2p bittorrent


【解决方案1】:

引用here发布的答案

可以将线路级协议视为 API 的补充。 您无需定义函数和创建库,而是定义 通过网络传递的会话字节序列 发生。

当在线路级别指定并发布协议时,大多数 技术可以使用它,或者被制造使用它。将此与 API 进行比较, 实际实现是特定于平台的。

JMS 是一种 API。 HTTP 是一种协议。 AMQP 交付中间件 相当于 HTTP,而由其他人提供 实现。

【讨论】:

    【解决方案2】:

    googled 发现如下:

    例子:

    • HTTP
    • CORBA
    • DCOM
    • 肥皂

    您自己尝试过吗?如果是这样,你不明白什么?

    【讨论】:

    • 当然。我做了谷歌并自己发现了这些链接。只是从我学到的 HTTP 是一个应用层协议。我什么时候可以称它为线级协议,这让我感到困惑......
    【解决方案3】:

    我不会说某些东西使用或不使用线级协议 - 我会谈论它使用的哪个线级协议。

    基本上,如果某物正在与远程机器通信(甚至在概念上),那么就会有一些数据通过网络连接(线路)。该数据的描述是“线级协议”。即使在其中,您通常也不会描述单个网络数据包 - 因此基于 TCP 的协议的有线协议通常会根据打开连接、两台计算机之间的数据来定义,以及可能期望双方何时关闭连接的详细信息。

    【讨论】:

    • 谢谢。那么一切最终都会使用某种或其他的线级协议吗?
    • 除此之外还有更多的东西——“线级协议”是一个特定的术语,它暗示协议中有一个类似方法调用的接口,例如SOAP、RMI 等,甚至 SQL。我认为它更像是根据 RPC 指定的 API,而不是特定语言。
    • 试图将此答案与问题中的某些文本联系起来。一旦您愉快地处理文字线级协议(如上所述),您就可以“考虑”更高级别的概念作为线级协议。通常,您无需担心源代码中使用的是哪种线路级协议。它要么设置正确并且可以正常工作,要么不正确。我认为“RMI 呼叫可以被认为是线路级协议”基本上是说您可以拨打电话而不必担心呼叫和接收方之间的技术,就好像您使用的是 TCP/IP 之类的线路级协议一样。雅各布
    • @Eric:我没有在协议中看到类似方法调用的接口的含义。您可以轻松地描述 ping、NTP 等的线路级协议。现在我想您可以将它们想象为类似 RMI(ping = "return true", NTP = "return the current time" ) 但在那个阶段,您会想知道什么网络流量不是 RMI-like。我认为没有理由将术语“线路级协议”限制为 RMI。
    • @Jon:很公平,即使在 TCP 级别,您也可以想到例如一个 SYN 数据包是一个连接调用,逻辑“返回值”是一个 ACK​​(成功)或一个 RST(失败)......但你不会这样想,因为它不自然。而请求/响应协议更自然地被认为是方法调用。可以肯定,这是一个微妙的区别,但至少是一个有趣的区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多