0

于是我开始学习tcp/ip协议栈。但是在所有来源中,对 tcp 协议的描述都过于模糊。主要认为我想知道 tcp 协议实际上是如何通过程序实现的。应用的协议如何与 tcp 协议通信。这个通信的接口是什么。目前我认为应用协议直接在应用程序中实现:假设浏览器实现 HTTP 协议,该协议与在 OS 中实现的 tcp 协议的集中实现进行通信。对吗?我缺乏可以从中学习的资源。请推荐我读的东西。

4

1 回答 1

5

注意:虽然您的问题倾向于广泛,但我正在回答它,因为我认为这是一个很好的介绍性问题。

TCP 是第 4 层(或传输层)协议。网络应用程序位于它之上(以及其他第 4 层协议,如 UDP)。应用程序可以通过套接字接口 ( http://linux.die.net/man/7/socket ) 与第 4 层协议进行交互。HTTP 也是一个在 TCP 之上运行并使用套接字接口的应用程序。除了 HTTP,还有许多其他著名的应用程序在 TCP 之上运行,例如 Telnet、BGP 等。

了解 TCP 和选项基础知识的最佳书籍之一是 Richard Stevens 的“TCP/IP Illustrated, Vol. 1: The Protocols”。它讨论了 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 实现如何工作的基本机制。

于 2013-09-14T20:01:44.520 回答