了解传输层使用的端口号

时间:2013-10-25 14:58:33

标签: networking

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

我使用的是Windows 7 64位操作系统,有没有办法检查我的浏览器标签使用的端口号。

现在我打开了两个标签,在一个标签中我查看此页面而在其他标签中我打开了一个G-MAIL,这两个标签是否使用相同的端口?

3 个答案:

答案 0 :(得分:2)

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

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

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

要查看应用程序当前正在使用哪些端口,请使用管理员权限运行cmd并发出

netstat -b

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

答案 1 :(得分:0)

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

如果是浏览器,如果我们在不同的标签中打开同一个网站(相同的SERVER IP ADDRESS和相同的SERVER PORT),那么每个标签都会有不同的CLIENT PORT,因为{{1在TCP连接打开之前是一样的。

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

关闭TCP连接后,CLIENT IP ADDRESS将返回给操作系统,以后可以在操作系统需要时重复使用。

大多数浏览器使用HTTP流水线技术,这是一种保持连接活动的技术。更多info

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

答案 2 :(得分:0)

你的问题基于错误的假设。

  1. 端口号分配给套接字,而不是标签。
  2. 为连接创建套接字。
  3. 对于HTTP请求,连接通常分配给HTTP的连接池。
  4. 每页创建HTTP请求,以及页面引用的所有资源:样式表,脚本,图像,嵌入页面等。
  5. 标签分配给网页。
  6. 因此,您可以看到任何给定端口与任何给定选项卡之间的关系几乎不存在。一个连接,因此一个端口,可能已被多个选项卡重用。它们之间没有必要的一对一映射。