网络协议是如何实现的?

时间:2009-12-21 20:06:52

标签: networking protocols

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

6 个答案:

答案 0 :(得分:5)

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

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

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

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

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

答案 1 :(得分:3)

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


编辑:他们是如何实施的?这是a paper on taking an abstract specification of a protocol and implementing it into C。你会发现不太严格的协议会遗漏程序员必须猜测的某些细节,这使得某些实现与其他实现不兼容。

答案 2 :(得分:1)

网络协议基本上就像口语一样。它通过代码实现,通过网络/互联网发送和接收特别准备的消息,就像你需要说的声带(网络和硬件)和实际理解别人所说的大脑(协议栈/软件)。

有时协议是直接在硬件 [出于速度原因] (如LAN的以太网协议)上实现的 - 但是使用协议做一些有用的事情总是需要软件/代码。

这对你来说可能很有意思:

答案 3 :(得分:0)

软件实现协议中定义的规则,一些协议是正式定义的,一些是非正式的。

答案 4 :(得分:0)

协议是一组管理两个实体之间通信的规则。

在计算机/编程环境中,协议是一组管理两个程序之间通信的规则。

在计算机网络上下文中,协议是一组管理两个程序之间通信的规则,通过网络。

在计算机中,最终一切都体现在代码中......

答案 5 :(得分:0)

协议基本上是一套规则。实现它们的方法首先是制作状态机图,因为它完全告诉当前状态是什么以及状态将如何根据输入和将要执行的输出操作进行更改