我想知道不同的协议是如何实现的。例如,以 TCP/IP 为例。该协议用于传输数据(如果我没记错的话)。
现在我想知道这个协议在每台机器上是如何实现的?
- 协议是由操作系统安装的还是随硬件附带的?
- 如果开发了一种新协议,它将如何在机器上实现?
- 是否有可能通过互联网实现协议?
答案1
协议是由操作系统安装的还是随硬件附带的?
这取决于你所说的“协议”是什么意思;例如,TCP/IP 和 HTTP 就有很大不同。既然你提到了 TCP/IP,我的回答就只关注这一点:
它们不是操作系统的一部分。它们可能内置于核心中,也可能事后作为模块添加;后者是大多数现代操作系统的典型做法。
它们通常是分层的;如今,几乎所有 TCP 级别的协议都是建立在 IP(IPv4 或 IPv6)之上的,这减少了启动时的开销,因为大多数网络路由器都了解 IP 路由。
也可以完全在“用户空间”中实现一种新协议,尽管这可能更难——它通常需要原始 IP 访问,这是一种“特权”操作,因此需要相当于 root 或管理员的权限。
如果开发了一种新协议,它将如何在机器上实现?
你为它编写一个驱动程序。除此之外,它还取决于操作系统以及你选择在哪里实现它。
请注意,这包括 Cisco IOS 或其他内置于路由器的“操作系统”——包括您的有线或 ADSL 调制解调器。它们具有与 Mac、Linux 或 Windows 系统一样多的 IP 和 TCP 驱动程序。
是否有可能通过互联网实现协议?
我假设你的意思是“我可以设计一个像 TCP 这样的协议,并让它在互联网上工作,而不需要做任何事情,只需要把它安装在两台通信机器上?”
是的,可以 - 如果您将协议分层到 IP 上。大多数路由都在 IP 层完成,IP 数据包中的“协议”字段用于将内容路由到正确的协议处理程序 - 然后以特定于操作系统的方式将其分解。