Nodejs TCP连接客户端端口分配

我使用nodejs(net

module)在客户端和服务器之间创建了tcp连接。服务器正在侦听已经预定义的端口,而客户端正在连接到该端口。

据我了解,客户端的端口是由节点动态分配的?那是对的吗?

  1. 哪种算法节点用于为客户端分配“随机”端口?它是如何工作的,是由节点还是由操作系统决定的?
  2. 是否可以定义将要使用哪个客户端的静态端口?是否可以定义供客户端使用的端口范围?

注意:我想我之前在找到了与类似主题相关的讨论/问题,但现在找不到了。如果您可以分享有关此主题的任何可靠资源,我将不胜感激。

回答:

源端口号通常与您的编程无关,除非您使用的路由器或防火墙对此有所限制。它仅由基础TCP基础结构用来跟踪不同的TCP连接。

从这篇文章:

TCP / IP连接由四个元素元组标识:{源IP,源端口,目标IP,目标端口}。要建立TCP /

IP连接,仅需要目标IP和端口号,操作系统会自动选择源IP和端口。

上面引用的文章介绍了Linux如何选择源端口号。

关于您的特定问题:

哪种算法节点用于为客户端分配“随机”端口?它是如何工作的,是由节点还是由操作系统决定的?

它由操作系统决定。在连接到node.js之前,源主机在TCP级别上选择了源端口号。

其他一些参考文章:

每个主机的TCP源端口是否必须唯一?


注意:我不知道出于安全原因,防火墙会限制源端口号或阻止某些源端口号。它们只是一个TCP记帐号码,与安全性或所使用的服务类型完全无关。请注意,这不同于通常与所使用的服务类型直接相关的目标端口(例如80是HTTP,25是SMTP,143是IMAP,等等…当您建立与其他主机的TCP连接时,您指定主机地址和目标端口号,而不指定源端口号。

以上是 Nodejs TCP连接客户端端口分配 的全部内容, 来源链接: utcz.com/qa/405339.html

回到顶部