什么是网络协议?



我想知道到底什么是网络协议?
网上几乎所有的定义都是"一套规则"。但是我想知道这些规则是如何存在的,在哪里存在的?它是软件中的一段代码吗?它是操作系统的内置服务吗?它是一个软件吗?是硬件吗?
一些网站说它既不是软件也不是硬件。
但是计算机中的所有东西都必须是硬件(刚性部分)或软件(代码行)
如果它是一组规则,这些规则不应该是一些编写的代码吗?
据我所知,它们负责一些操作,例如DHCP为客户端分配动态ip或TCP负责将消息划分为较小的数据包,如果是这样,它们不应该被视为软件吗?

但我想知道这些规则存在的方式和位置?它是软件中的一段代码吗?它是操作系统的内置服务吗?它是一个软件吗?是硬件吗?

它主要是软件/固件,但并非完全如此。特别是如果您将L1(第1层)标准视为协议。例如,以太网标准不考虑从各种连接器的形状和大小到桥接器(即交换机)需要如何管理它们的转发表的所有问题。这都是"以太网协议"的一部分。一般来说,协议栈越高,遇到的软件就越多。你走得越低,你看到的硬件/固件就越多。

据我所知,它们负责一些操作,例如DHCP为客户端分配动态ip或TCP负责将消息划分为较小的数据包,如果这样,它们不应该被视为软件吗?

一般来说,是的。DHCP和TCP是软件。我不知道有任何硬件DHCP实现,我怀疑是否存在。但是,出于性能原因,有硬件组件实现诸如校验和计算或头解析之类的功能。

网络协议是网络层的一组规则。由于它位于网络层,因此它将具有定义这些规则的协议号。这个数字包含在协议字段中关联的IP数据包中(参见https://en.wikipedia.org/wiki/IPv4#Header)。这些规则通常在RFC或Internet草案中定义。要查找这些规则,请参见https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml#protocol-numbers-1。

最新更新