网络协议是如何实现的?

Rob*_*acy 1 networking protocols

我知道协议是一组规则,用于管理网络中两台计算机之间的通信,但是如何为计算机实施规则?协议基本上是一段代码,换句话说,软件?

Ada*_*son 6

协议通常建立在彼此之上.冒着迂腐的风险,这里有一个协议的例子以及它在何处/如何实现:

  • 应用程序协议 - 特定应用程序与其自身或相应服务器的另一个实例进行通信的方式; 这是在应用程序代码或共享库中实现的
  • TCP(或UDP,或其他层) - 信息在二进制级别发送并分成可用块的方式,然后在目的地重新组装; 这通常是作为操作系统的一部分实现的,但它仍然是软件代码
  • IP - 信息(已被TCP或UDP等分割或截断)通过一个或多个"跳"路由从一个地方到另一个地方的方式; 这总是软件代码,但有时在操作系统中实现,有时在网络设备中实现(例如,您的LAN卡)
  • base-T(以太网),令牌环等 - 这里我们将深入探讨硬件如何相互通信; 即,哪条线对应于特定类型的信号; 这总是在硬件中实现
  • /光子 - 控制(或至少定义)电子(或光子)如何在导电材料或空气中流动的规律; 这通常用硬件实现;)

从某种意义上说,这些都是"协议"(一组允许进行通信的规则或预期行为),它们是相互建立的.

请记住(除了电力)这不是任何这些层中存在的那种协议的详尽列表!

编辑感谢dmckee指出电力不是网络中唯一的物理过程;)


pok*_*tad 6

网络协议不是代码或软件,它们只是一组规则。当软件使用特定的网络协议时,该软件被称为实现。同一协议可以有许多不同的软件实现(即 Windows 和 UNIX 具有不同的 TCP/IP 实现)。无需任何编程知识即可理解网络协议。


编辑:它们是如何实现的?这是一篇关于采用协议的抽象规范并将其实现为 C 的论文。您会看到不太严格的协议遗漏了程序员必须猜测的某些细节,这使得某些实现与其他实现不兼容。