1

0.环境

浏览器:chrome
wireshark:Version 2.2.0 (v2.2.0-0-g5368c50 from master-2.2)

1.我的问题

我用wireshark分析TCP的三次请求,但是我发现了:在TCP的三次握手请求中,为我本机的浏览器有多个端口发起了TCP请求。这是否正常?

下图是我用wireshark抓到的包:

分析:

本机IP:10.180.127.146,目标IP:101.37.225.58

红圈内是我本机发起的第一次HTTP请求,之前都是TCP三次握手的内容。

仔细一数,恰好是18次TCP请求。每个端口都有3次相关请求。

我的浏览器有6个端口发起了请求,而且都和目标网址的80端口完成了三次握手。

这么多次请求正常吗???

我之所以这么问:是因为我在这篇博客中看到是只有一个端口在请求。

http://www.cnblogs.com/TankXi...

3 我的尝试:

我在谷歌上进行中英文搜索,但是搜索的结果大多数是关于浏览器不同tab有不同的端口,和我的问题无关。

4 其他

我把整个抓包和分析的过程记录在我自己的博客:

http://blog.csdn.net/huangpin...

3个回答

1

已采纳

浏览器有可能选择同时和一个主机建立多个tcp连接, 只有一个tab也有可能. 这不是异常.

如果你想更精细地控制客户端的行为, 可以试试用curl

3

建立多个 TCP 连接是完全正常的,因为除了主 document,还有 favicon.ico、各类 css js 文件需要下载,如果只使用一个 TCP 通道,会串行,速度会很慢。

-1
  1. TCP 是传输层的协议,每个 TCP 链接,都是需要本机分配一个端口号的

  2. 浏览器因为限制向同一个域名并发 5 个链接,所以大多数专用 CDN 域名都是不同的,这是其中一个原因

1
回复 achao

是限制,但每个浏览器和不同版本限制的并发数不一样。

其实也跟 65536 个端口数有限、线程切换耗能有关

yantze · 2017年08月27日

展开评论

撰写答案