1

我想知道在端口 21 上侦听一个实例的 azure worker 角色允许的最大并发连接数。

场景是:

我有一个工作角色实例,端口在 21 上打开,Tcplistener 在端口 21 上侦听传入连接。我已经实现了异步,这样我就可以在处理一个客户端请求时监听其他客户端请求。

在天蓝色部分,我想知道对 Worker 角色的端口 21 上的并发请求是否有任何限制。

问候, 维维克

4

2 回答 2

2

我想你应该先了解网络原理。一次只有一个进程可以侦听网络接口上的特定端口和协议。那么如何处理通信呢?在一个非常简单的大纲中,情况如下所示(端口号和 IP 地址是故意伪造的):

  1. 在 IP 地址 902.168.13.24 的端口 21 上有一个侦听器(并且没有其他进程可以侦听该端口,因此没有并发侦听器)
  2. 连接请求来自某个其他主机到该 IP 地址和该端口。
  3. 现在 21 端口被占用,没有人可以连接到它(更多的传入连接排队)
  4. 在协议级别握手之后,如果连接成功,则前者将被移动到另一个(任意)套接字 - 即端口 43251
  5. 端口 21 被释放以接受另一个连接。
  6. 接受队列中的下一个连接。

所有这些都发生在非常低​​的协议级别,开发人员(除非正在开发网络适配器驱动程序)不会看到/关心这个端口转移。

现在真正的问题是,如何接受更多的并发连接。如果您正在开发自己的 TCP 服务器,您可以设置允许的最大连接数并自行管理这些连接(通过管理线程)。如果您使用其他第三方服务器 - 它应具有允许的最大并发连接数的可配置选项。

您可以在此处查看TCP Server 的简单实现。如您所见,有一个私有字段_maxConnections,用于处理连接。

总而言之 - 到特定资源(套接字)的最大并发连接数取决于为该资源提供服务的服务器。例如,IIS8 的默认最大并发连接数限制设置为 4294967295:

IIS 最大并发连接数

于 2012-09-12T09:54:52.820 回答
2

每个 VM 或角色实例的限制为 500K:https ://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#networking-limits-1

于 2015-02-03T16:27:54.457 回答