套接字和端口之间有什么关系?

套接字和端口之间有什么关系?

我正在尝试理解套接字和端口之间的关系。我发现套接字是端口的一部分,它处理该端口的通信。然而,在另一篇博客上,我读到

操作系统不必支持套接字即可支持 TCP 或 UDP!

那么,如果服务器上的操作系统不支持套接字,那么特定端口上的通信将如何在特定端口上进行?

有人可以指导我并简单解释一下端口和套接字之间的关系以及它们在通信中各自起的作用是什么吗?

答案1

套接字是应用层上用于通信的实际地址。套接字地址的格式为ip_address:protocol:port。您可以找到有关套接字地址的更多信息这里

例子:

192.168.1.1:tcp:80 

如果您使用协议,这表示 PC 的套接字地址和192.168.1.1“预期”连接的IP 地址。port 80tcp

来自我的电脑的示例

xxx@xxx ~ $ netstat -tp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     
tcp        0      0 xxx.local:54595     104.16.17.44:http       ESTABLISHED 32294/chrome    

本次会议的解释

  • 我的电脑可以与104.16.17.44
  • 连接已建立
  • 我们使用tcp协议
  • 我的电脑访问了远程端口 80,又称 http 端口

概述

这代表了

我的电脑带有套接字地址xxx.local:54595:tcp,远程电脑带有套接字104.16.17.44:http:tcp

端口实际上是用于连接的“洞”。但在名为“洞”的地方,port 80您可以使用任何服务。port 80您可以在服务器上使用任何服务。例如 ftp、ssh、pop3 或任何其他服务。

众所周知的“洞”,又名众所周知的端口,有关端口的更多信息这里

端口是套接字地址的一部分。

端口和插座是 的一部分tcp stack。很好的解释这里

Tcp stack只是操作系统的一个模块。

相关内容