networking数据包 – 数据是否总是按顺序接收?

假设您坐在家用电脑上,通过您select的浏览器来请求https://google.com 。 TCP握手完成,谷歌的服务器发送HTML / JS页面(和其他任何资源使用)。

这些页面太大而无法在一个数据中发送,因此它将页面分成多个部分,因此数据包也是如此

有效载荷(数据)会来吗?

喜欢:

数据包1 – 首先收到

 <html> <head> <script src='./blah/blah.js'</script> </head> 

数据包2 –接收第二

  <body> <h4> Hi I'm Google.com </h4> 

数据包3 –接收第三

  </body> </html> 

我只是谈论应用层的数据包 (有效载荷) 中的数据 。 我想知道是否有一个结构的数据包接收的顺序。 如果浏览器不按顺序重新组装,浏览器如何?

使用HTTP,数据将在应用层顺序接收。 这是因为HTTP在传输层使用TCP协议。 TCP提供的服务之一是顺序段sorting。 这是通过在TCP报头中有一个数据包序号字段来完成的。

这并不意味着数据包实际上是按顺序到达系统的。 另外,其他传输协议(如UDP)不提供分段sorting,因此分段按接收顺序传送到应用程序。