-2

当我在浏览器中打开多个选项卡时,浏览器是否为每个选项卡分配不同的端口号。

我正在使用 Windows 7 64 位操作系统,有什么方法可以检查我的浏览器选项卡正在使用的端口号。

现在我打开了两个选项卡,在一个选项卡中我正在查看此页面,在另一个选项卡中我打开了 G-MAIL,这两个选项卡是否使用相同的端口?

4

3 回答 3

2

浏览器不为其选项卡使用端口,而是获取选项卡的内容。

根据选项卡的内容,在运行浏览器的机器上使用一个或多个端口。这些端口是由浏览器进程或其线程之一从操作系统分配的。

一段时间后,内容已经传输到客户端“进入”浏览器,端口被返回给操作系统。

要查看应用程序当前正在使用哪些端口,请运行cmdusing adminstrative rights and issue

netstat -b

假设一台机器只有一个网络接口,不同的连接需要不同的端口。

于 2013-10-25T15:09:19.627 回答
0

每个 TCP 连接都应该有一个唯一的四元组<SERVER IP ADDRESS , SERVER PORT , CLIENT IP ADDRESS , CLIENT PORT>

在浏览器的情况下,如果我们在不同的选项卡中打开同一个网站(相同SERVER IP ADDRESS和相同SERVER PORT),那么每个选项卡都会CLIENT PORT因为CLIENT IP ADDRESS相同而不同,直到打开 TCP 连接。

如果我们在不同的选项卡中打开不同的网站,显然这意味着我们对每个选项卡都有不同SERVER IP ADDRESS的设置。SERVER PORT在这种情况下,每个选项卡也会不同CLIENT PORT但相同CLIENT IP ADDRESS,直到 TCP 连接保持打开状态。

TCP连接关闭后,CLIENT PORT返回给操作系统,如果操作系统需要,以后可以重用。

大多数浏览器使用 HTTP 管道,这是一种保持连接活动的技术。了解更多信息

您可以使用Wireshark跟踪,然后通过浏览器中的选项卡检查您请求的每个数据包的源端口。. 这是一个非常好的工具。

于 2013-10-25T15:16:16.850 回答
0

你的问题是基于一个错误的假设。

  1. 端口号分配给套接字,而不是选项卡。
  2. 套接字是为连接创建的。
  3. 对于 HTTP 请求,连接通常从 HTTP 连接池中分配。
  4. HTTP 请求是按页面创建的,并且针对页面引用的所有资源:样式表、脚本、图像、嵌入页面等。
  5. 选项卡分配给页面。

所以你可以看到任何给定端口和任何给定选项卡之间的关系实际上是不存在的。一个连接,因此一个端口,可能已被多个选项卡重用。它们之间没有必要的一对一映射。

于 2013-10-25T21:41:42.940 回答