好的,计算机有应用程序端口,可以将数据从外部世界传输到防火墙,然后传输到计算机中。
那么firefox和Internet Explorer如何在同一台计算机上使用相同的端口?
为什么我们不能使用端口80将所有地方的所有流量传递到计算机中。
那么为什么我们需要特定的端口?
答案 0 :(得分:5)
一般来说,本地的港口并不重要。这是远程端口。
因此,当您打开浏览器并转到某个站点时,您正在建立从您端的(有点)随机端口到服务器端的端口80的连接。服务器在同一连接上回复您。 Web服务器使用TCP / IP,因此这就是所谓的已建立的连接。如果您在网络流量期间查看连接到服务器上的netstat -an,那就是您所看到的:
tcp 0 0 ::ffff:192.168.1.223:22 ::ffff:192.168.1.230:2369 ESTABLISHED
该行表示我的本地计算机已在端口22上建立了与远程计算机的连接。我的本地计算机选择了一个随机出站端口2369来建立此连接。 在这种情况下,这是我在地下室的网络服务器的ssh连接。
服务器应该用于特定服务的端口列为here,但是如果您要控制连接的两端,如果您愿意,没有什么能阻止您在端口8383上运行Web服务器。只是不要指望其他人在没有你告诉他们的情况下去做。 (或者在端口扫描中找到它。)
如果您在计算机上运行网络服务器,它将打开端口80并侦听连接。每个IP地址只能监听一个服务,因此您无法同时运行两个Web服务器。如果您随后连接到本地Web服务器也是如此。您将打开一个随机本地端口并连接到同一IP上的本地端口80。
打开随机本地端口允许您与已知的远程端口(如80)建立多个本地连接。
有65536个端口可供使用,因此您不太可能用完,但许多端口具有“众所周知”的用途,因此可以避免连接结束。一般来说,1023以上的一切都是公平的。 (所有需要任何特权的服务都在1023以下的端口上运行)
这是TCP / IP连接。 TCP / IP具有内部语言,可确保信息的可靠传递,并在每个连接开放时进行握手,以确保数据的传输。
另一种常见的连接类型是UDP。 UDP没有建立连接,因此速度更快,延迟更低,但使用它的程序必须能够丢失信息并仍然可以工作。它基本上是一个发送数据和祈祷协议。许多在线游戏以这种方式运作。
答案 1 :(得分:2)
每个连接都有一个源端口和目标端口。这使您可以从机器到(例如)在端口80上运行的Web服务器之间建立多个连接。连接由SourceIP唯一标识:SourcePort和DestIP:DestPort。
因此,在您的示例中,Firefox和IE将在远程Web服务器(端口80)上使用相同的端口,但在您的计算机上将使用不同的端口来区分它们。
尝试在命令提示符下运行netstat
以查看当前连接。
答案 2 :(得分:0)
端口可用于任何事情,但在某些端口上存在协议的约定。
并且您可以将80用于其他功能,有些人这样做是绕过防火墙的简单方法......
但是,只有一个应用程序可以侦听端口。
答案 3 :(得分:0)
一些netstat
输出可以显示正在发生的事情:
C:\Temp> netstat -an TCP 192.168.XXX.150:1493 74.125.45.100:80 ESTABLISHED TCP 192.168.XXX.150:1504 69.59.196.213:80 ESTABLISHED TCP 192.168.XXX.150:1507 74.125.91.138:80 ESTABLISHED TCP 192.168.XXX.150:1510 65.55.11.162:80 ESTABLISHED TCP 192.168.XXX.150:1518 69.59.196.211:80 ESTABLISHED TCP 192.168.XXX.150:1519 69.59.196.216:80 ESTABLISHED TCP 192.168.XXX.150:3711 64.208.186.96:80 CLOSE_WAIT
请注意,192.168.XXX.150
地址是我家庭网络上的计算机地址。 IP地址后面的4位数字是我的计算机用来与许多不同服务器上的端口80
通信的本地端口。