关于TCP的问题以及如何有意义地组装TCP段

时间:2010-10-27 01:05:24

标签: networking tcp

当Web服务器等应用程序将HTTP数据发送到Web浏览器时,浏览器如何知道何时收到所有数据,以便它可以开始使用它而不是等待更多? TCP没有指定分段消息的大小。

现在我认为这取决于应用层,就像HTTP的Content-Length标头一样。但似乎甚至可以将标题拆分为第2或第3个数据包。

2 个答案:

答案 0 :(得分:2)

TCP / IP是面向连接的协议。因此,当浏览器使用TCP / IP执行HTTP连接时,网络堆栈保证流将按照发送方的相同顺序到达。

因此,在处理TCP时,没有数据包概念。 TCP是通过套接字到达的有序字节流。根本不需要担心数据包。这就是协议栈的美妙之处:每一层都有自己的工作,并在其上面抽象出它所解决的问题的根本复杂性。

答案 1 :(得分:1)

确实是内容长度,除非客户端读取,直到由于另一端关闭连接而获得文件结束指示。当然,在HTTP中,'RSVP',所以这不会发生。

缺少内容长度,必须在内容中查找</html>或其他一些分隔符。浏览器根本看不到数据包。连接看起来像一个流,没有边界,并且由两个方面来制定协议。