使用TCP的套接字如80,443悲伤吗?

时间:2016-01-11 11:58:34

标签: sockets tcp

让我们说套接字是某些IP上端口80上的TCP欢迎套接字。 它正在倾听。 意思是,TCP套接字已创建,但TCP套接字也必须具有目标IP和端口。 当有人尝试连接并欢迎套接字接受连接时,将返回一个新的TCP套接字,它具有不同的源端口号(不是80),用于发送数据。

我是对的吗? 众所周知的插座是“悲伤的”,因为它们从不发送实际信息? 如果它没有目标IP和端口,欢迎套接字TCP如何?

提前感谢您的精彩答案

3 个答案:

答案 0 :(得分:2)

套接字由五部分信息标识:客户端地址和端口,服务器地址和端口以及协议。如果您在侦听端口80的套接字上接受连接,您将获得一个源端口仍为80的新套接字,但目标地址和端口不同。这样服务器就知道如何分离这些套接字。例如,如果侦听套接字正在侦听所有地址,则源地址也可能不同。

从技术上讲,侦听套接字从不传输任何应用程序层信息,但它确实发送与建立连接相关的信息。

他们也没有任何伤心,他们非常乐意帮助他们更外向的朋友,并喜欢独自指导周围的人。

答案 1 :(得分:1)

  

当有人尝试连接并欢迎套接字接受连接时,将返回一个新的TCP套接字,它具有不同的源端口号(不是80),用于发送数据。

这有点误导。从具有众所周知端口的服务器的角度来看,源端口仍为80. 目标端口不是80(通常)。从客户端的角度来看,目标端口始终是众所周知的端口。当然,港口是他们所选择的。

  

我是对的吗?众所周知的插座是“悲伤的”,因为它们从不发送实际信息吗?

不,因为没有“众所周知的套接字”这样的东西。有一些众所周知的端口,例如80.但正如我所说,从服务器的角度来看,它们始终是目标端口,从客户端的角度来看,它们始终是源端口。

有一个侦听套接字,绑定到众所周知的端口,它只是用作接收传入TCP连接的句柄。从某种意义上说,它是“悲伤的”,因为与大多数TCP套接字不同,它永远不会与任何东西连接。

答案 2 :(得分:1)

  

当有人尝试连接并欢迎套接字接受连接时,将返回一个具有不同源端口号(而不是80)的新TCP套接字

没有。它具有相同的源端口:在这种情况下为80。

  

用于发送数据。

正确。

  

我是对的吗?

没有

  

众所周知的插座“悲伤”

没有“众所周知的插座”这样的东西,并且对无生命的物体赋予感情就是可悲的谬论(查看它)。

  

因为他们从不发送实际信息?

监听套接字从不发送信息,这是真的,但其余部分没有意义。

  

如果套接字TCP没有目标IP和端口,如何欢迎它?

因为这是TCP协议的定义方式,在RFC 793中:监听(被动)套接字和接受(活动)套接字。

你在这里混淆和混淆了很多概念。