我是TCP / IP网络的新手,了解套接字/端口。我有一些困惑。我提到了我的理解。
节点N1正在运行多个进程。假设一个进程P1有一些它希望发送给其他Node N2的字符串。 N1将请求操作系统创建一个基本上类似于网络I / O流媒体通道的套接字。将创建这样的通道并将其与套接字描述符一起移交给该进程。因此,我们可以说套接字可以通过节点识别套接字,即请求套接字的节点+进程的IP。因此,套接字地址的概念基本上是节点+端口地址的IP(用于识别进程)。所以,我的怀疑是:
这里有端口的概念。套接字可以被标识为节点的IP +进程ID。为什么需要端口来识别进程。为什么过程描述符不能自给自足。为什么端口地址。实例
如果节点必须只传递数据并且不需要接收任何内容,为什么我们需要使用套接字地址绑定套接字。套接字地址的绑定本质上意味着“开始用节点+端口地址的IP地址识别套接字而不是其描述符”,如果它们希望向节点N1发送一些数据,则这对其他节点是有用的。但我认为,对于希望通过网络进行通信的节点中的任何进程,应该有一个不会绑定的“全局”套接字。所有进程都将使用它来仅发送数据。如果任何节点希望接收数据,它们可以有一个单独的套接字,它将被绑定,以便网络中的其他节点可以识别该特定套接字。
图片中TCP / UDP的确切位置在哪里?我可以有两个端口,如TCP端口3000和UDP端口3000,即具有不同传输协议但端口号相同的独立端口。套接字也可以吗?
答案 0 :(得分:1)
因此,我们可以说套接字可以在世界上被节点识别,即请求套接字的节点+进程的IP。
不是“在世界上”。仅在localhost内。套接字仅存在于localhost中,进程ID仅在localhost中已知。
因此,套接字地址的概念基本上是节点+端口地址的IP(用于识别过程)
没有。端口标识服务。进程实现服务。
这里有端口的概念。
RFC 793。
套接字可以标识为节点IP +进程ID。
不,他们不能。另一台主机上的对等方无法获取远程进程ID。需要一些固定的操作系统不可知标识符。一个进程可以拥有许多端口。这个建议没有意义。
为什么需要端口来识别流程。
端口不识别进程。这个问题没有意义。
为什么过程描述符不能自给自足。为什么是端口地址。
因为你问的第一个问题是错误的。这只是它的另一个版本。
如果节点必须只传递数据并且不需要接收任何内容,为什么我们需要使用套接字地址绑定套接字。
因为连接是由地址:端口对标识的。
套接字地址的绑定本质上意味着“开始用节点+端口地址的IP地址识别套接字而不是其描述符”,如果他们希望向节点N1发送一些数据,这对其他节点很有用。
此节点对于了解传入数据的位置也非常有用。
但我认为,对于希望通过网络进行通信的节点中的任何进程,应该有一个不会绑定的“全局”套接字。所有进程都将使用它来仅发送数据。如果任何节点希望接收数据,它们可以有一个单独的套接字,它将被绑定,以便网络中的其他节点可以识别该特定套接字。
无论这种方案无效和毫无意义,你的思绪已经过了40年。
我可以有两个端口,如TCP端口3000和UDP端口3000,即具有不同传输协议但端口号相同的独立端口。
是
TCP / UDP究竟在哪里适合图片?
他们实施端口。
套接字也可以吗?
我无法理解这个问题。所有插座都彼此不同。