所以我开始学习tcp / ip协议栈。但在所有来源中,tcp协议描述得太模糊了。主要想想我想知道tcp协议实际上是如何实现的。应用协议如何与tcp协议通信。什么是这种沟通的界面。目前我认为应用协议直接在应用程序中实现:假设浏览器实现HTTP协议,该协议与在OS中实现的tcp协议的集中实现进行通信。它是否正确我缺乏来源,我可以从中学到这一点。请注意我要读的东西。
答案 0 :(得分:4)
注意:虽然你的问题倾向于广泛,但我正在回答它,因为我认为这是一个很好的介绍性问题。
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实现的基本机制。