Ole*_*nko 0 tcp protocols telecommunication
于是我开始学习tcp/ip协议栈。但是在所有来源中对 tcp 协议的描述过于模糊。主要的想法是我想知道 tcp 协议实际上是如何以编程方式实现的。应用的协议如何与 tcp 协议通信。这个通讯的接口是什么。目前我认为应用协议是直接在应用程序中实现的:假设浏览器实现了 HTTP 协议,并且该协议与在操作系统中实现的 tcp 协议的集中实现进行通信。这是正确的,我缺乏可以从中学习的资源。请推荐我阅读一些东西。
注意:虽然您的问题倾向于广泛,但我正在回答它,因为我认为这是一个很好的介绍性问题。
TCP 是第 4 层(或传输层)协议。网络应用程序位于它之上(以及其他第 4 层协议,如 UDP)。应用程序可以通过套接字接口 ( http://linux.die.net/man/7/socket )与第 4 层协议交互。HTTP 也是一个运行在 TCP 之上的应用程序,并且将使用套接字接口。除了 HTTP 之外,还有许多其他著名的应用程序运行在 TCP 之上,如 Telnet、BGP 等。
Richard Stevens 所著的“TCP/IP Illustrated, Vol. 1: The Protocols”是了解 TCP 基础知识和选项的最佳书籍之一。它讨论了 TCP 的工作原理和各种选项。这是一个链接:http : //www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Professional/dp/0201633469
读完后,您可能应该阅读 RFC 本身:http : //www.ietf.org/rfc/rfc793.txt
具体实现可以阅读它的第二卷:“TCP/IP Illustrated: The Implementation, Vol. 2”。这是一个链接:http : //www.amazon.com/TCP-IP-Illustrated-Implementation-Vol/dp/020163354X。虽然这本书讨论了 BSD 实现——它仍然应该帮助你理解 TCP 实现如何工作的基本机制。