欢迎端口与监听端口相同吗?

时间:2018-04-10 07:32:40

标签: sockets networking tcp port

嗨,我只是网络新手, 只是想问一下,欢迎服务器上的端口是否与监听端口相同? 例如,我们都知道HTTP使用端口80,那么端口80是Web服务器的欢迎端口来初始化TCP的三次握手吗?连接套接字的实际端口号(用于传输http消息)可以是服务器分配的任意数量吗?

2 个答案:

答案 0 :(得分:1)

来自accept联机帮助页:

  

accept()系统调用与基于连接的套接字类型一起使用          (SOCK_STREAM,SOCK_SEQPACKET)。它提取第一个连接          请求侦听套接字的挂起连接队列,          sockfd,创建一个新的连接套接字,并返回一个新文件          描述该套接字的描述符。 新创建的套接字不是          在聆听状态。原始套接字sockfd不受影响          这个电话

“welcome”端口是监听端口。所有客户端都在端口80上发起与网络服务器“监听”的连接(客户端在端口80上是“欢迎”)。 ESTABLISHED状态中的连接将具有与listen fd不同的套接字fd。

答案 1 :(得分:0)

  

欢迎服务器上的欢迎套接字端口与监听端口相同吗?

服务器上的端口保持不变,即即使在三次握手后,所有客户端也保持80端口。

我猜你真正问的是如何区分同步客户端连接。

通常,网络套接字使用唯一的4元组来标识连接,即源IP,源端口,目标IP,目标端口:https://en.wikipedia.org/wiki/Network_socket#Socket_pairs

因此,所有客户端(即服务器的IP和端口80)的目标IP和端口保持不变,但源IP和端口不同。这就是服务器如何区分到同一端口80的不同连接。

  

连接套接字的实际端口号(用于传输http消息)可以是服务器分配的任意数字吗?

目标端口保持不变,即如上所述80。相反,每个客户端在建立TCP连接之前选择其未使用的源端口。