Networking 网络协议是如何实现的?

Networking 网络协议是如何实现的?,networking,protocols,Networking,Protocols,我知道协议是控制网络上两台计算机之间通信的一组规则,但是这些规则是如何为计算机实现的呢?协议基本上是一段代码还是软件?网络协议基本上类似于一种口语。它是由通过网络/互联网发送和接收特别准备的消息的代码实现的,就像你需要说话的声带(网络和硬件)和真正理解某人所说的话的大脑(协议栈/软件) 有时,协议直接在硬件上实现[出于速度原因](如局域网的以太网协议),但使用协议做一些有用的事情总是需要软件/代码 这可能会让您感兴趣: 软件实现协议中定义的规则,有些协议是正式定义的,有些是非正式的。协议是

我知道协议是控制网络上两台计算机之间通信的一组规则,但是这些规则是如何为计算机实现的呢?协议基本上是一段代码还是软件?

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

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

这可能会让您感兴趣:


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

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

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

在计算机网络环境中,协议是一组规则,用于控制两个程序之间的通信,以及通过网络进行的通信


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

协议通常是建立在彼此的基础上的。冒着听起来迂腐的风险,下面是一个协议示例及其实现的位置/方式:

  • 应用程序协议-特定应用程序与自身或相应服务器的另一实例对话的方式;这是在应用程序代码或共享库中实现的
  • TCP(或UDP,或另一层)-在二进制级别发送信息并将其拆分为可用块,然后在目的地重新组装的方式;这通常作为操作系统的一部分实现,但它仍然是软件代码
  • IP-信息(已被TCP或UDP等分割或截断)通过一个或多个“跃点”路由从一个地方传送到另一个地方的方式;这始终是软件代码,但有时在操作系统中实现,有时在网络设备(例如,您的LAN卡)中实现
  • base-T(以太网)、令牌环等-这里我们将实际了解硬件之间的通信方式;即,哪根导线对应于特定类型的信号;这总是在硬件中实现的
  • /光子-控制(或至少定义)电子(或光子)如何在导电材料或空气上流动的定律;这通常在硬件中实现;)
从某种意义上说,这些都是“协议”(一组允许通信发生的规则或预期行为),它们是建立在彼此的基础上的

请记住(除了电之外),这并不是这些层中存在的协议种类的详尽列表


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

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



编辑:它们是如何实现的?给你。您将看到,不太严格的协议忽略了程序员必须猜测的某些细节,这使得一些实现与其他实现不兼容。

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

我们可能很快就会看到“电”可以被端到端的“光子”取代的那一天(您可以并且经常可以在大部分跑步中使用光子)@dmckee:的确,我完全没有注意到光纤。谢谢,我已经编辑了答案!你忘了提到OSI第8层的描述,几乎所有问题都源于此:D@pokstad:PEBKAC现象非常复杂,我认为试图描述它可能会导致比它所描述的更多的混乱;)RFC通常定义协议,看一看,你会发现它和法律谈话非常相似,而不是编程:链接断开(404)