从tcp的角度看,打开一个网页到底发生了什么

使用wireshark进行抓包分析:新建表达式过滤器,选择协议,字段,匹配方式,应用就能筛选出想要的数据包。

一个示例:(tcp.srcport == 1523 or tcp.dstport == 1523)。 其中1523是tcp连接的本机端口

tcp基础知识:

tcp在传输大量数据时,以mss为单位对数据分块传输。在3次握手时,由通信双方商议确定mss。

Seq:本机维持的数据计数器;Ack:远程主机的数据计数器

 

本机ip:192.168.43.106 目的ip:183.232.231.17

主线:

1. 输入网址,按下回车,浏览器通过3次握手建立tcp连接,协商mss字段。

2. 利用tcp连接,传输http文本。由于网页的大小超过了mss,所以分多个段进行传输。

从本机发http请求,到接收完整的http响应,中间接收了多个tcp segment,并且本机对于tcp段的确认是批量的,即收到了2个段,只需要确认1次。

3. 传输完后,服务器主动关闭了连接。

副线:

需要注意的是,打开一个网页,浏览器会建立多个tcp连接。

下图是其中一个请求图片的连接:

本机发送rst包,直接断了连接。

原文地址:https://www.cnblogs.com/allenwas3/p/8592773.html