Networking 浏览器如何在80端口上与web服务器建立连接?细节?
(这个问题的灵感来源于对这条线索的回应:) 我的理解是这样的: 假设客户端IP=1.1.1.1,服务器IP=9.9.9.9Networking 浏览器如何在80端口上与web服务器建立连接?细节?,networking,tcp,ip,Networking,Tcp,Ip,(这个问题的灵感来源于对这条线索的回应:) 我的理解是这样的: 假设客户端IP=1.1.1.1,服务器IP=9.9.9.9 浏览器随机选择一个本地可用端口,比如5555,并启动到服务器端口80的连接。因此,在客户端上,socketfd_客户端应该表示一个IP连接,如(1.1.1.1:5555,9.9.9.9:80,TCP) 服务器在其端口80上调用accept(),并识别来自客户端的连接请求。然后服务器选择一个随机的本地可用端口,比如8888,来完成该连接请求。因此,在服务器上,socketfd
socketfd_客户端
应该表示一个IP连接,如(1.1.1.1:5555,9.9.9.9:80,TCP)
accept()
,并识别来自客户端的连接请求。然后服务器选择一个随机的本地可用端口,比如8888,来完成该连接请求。因此,在服务器上,socketfd_服务器
应该表示IP连接,如(1.1.1.1:5555,9.9.9.9:8888,TCP)
socektfd_客户端
和socketfd_服务器
具有不同的服务器端口。客户端有80个,而服务器有8888个。如何进行沟通?我认为客户端也应该更改为使用服务器端口8888,但何时以及如何更改
浏览器随机选择一个本地可用端口,比如5555
不会。操作系统会这样做:具体来说,是网络堆栈的TCP部分
并启动到服务器端口80的连接。因此,在客户端上,socketfd_客户端应该表示IP连接,如(1.1.1.1:5555、9.9.9:80、TCP)
对
服务器在其端口80上调用accept(),并识别来自客户端的连接请求
对
然后服务器随机选择一个本地可用端口,比如8888
没有
以满足该连接请求
没有
因此,在服务器上,socketfd_服务器应该表示IP连接,如(1.1.1.1:5555、9.9.9:8888、TCP)
否。两端的连接由{1.1.1.1:5555,9.9.9.9:80}
表示。服务器端没有新端口
我的问题是:
如果我的上述理解是正确的
事实并非如此
socektfd_客户端和socketfd_服务器具有不同的服务器端口
没有
客户端有80个,而服务器有8888个。如何进行沟通?我认为客户端也应该更改为使用服务器端口8888,但何时以及如何更改
从不。TCP连接在客户端端口
5555
和服务器端口80
之间。没有端口8888
,也没有涉及任何其他端口。@RonMaupin谢谢。我也是这么想的。我的困惑来自于这个回答。我认为他的观察结果3不正确。请阅读问题的公认答案。连接基于客户端和服务器的IP地址和端口,在客户端与服务器联系之前,服务器不知道客户端IP地址和端口是什么。创建的连接将使用1.1.1.1:5555
和9.9.9:80
@smwikipedia。您引用的答案不正确。我喜欢这种回答方式。谢谢!