2012-09-12 102 views
1

我想知道在端口21上偵聽的azure worker角色允許的最大併發連接數,只有一個實例。Azure Worker角色上的併發連接

的情況是:

我有工作者的角色和端口的一個實例上21的TCPListener偵聽端口21開啓傳入connections.I已實施異步,這樣我可以聽其他客戶端請求處理一個。

在azure部分,我想知道工作角色的端口21上沒有併發請求是否有任何限制。

問候, 維韋克

回答

2

我覺得你應該先了解網絡原理。一次只能有一個進程可以監聽網絡接口上的特定端口和協議。那麼如何處理溝通?在一個非常簡單的輪廓情況如下所示(端口號和IP地址都是假的故意):

  1. 上有IP地址902.168.13.24端口21上的監聽器(和沒有其他進程可以收聽端口,所以沒有同時收聽者)
  2. 連接請求來自某個其他主機到該IP地址和該端口。
  3. 現在端口21被佔用,無人再連接(更多入站連接排隊)
  4. 在協議級握手後,如果連接成功,前者將被移動到另一個(任意)套接字 - 即端口43251
  5. 端口21被釋放以接受其他連接。
  6. 接受隊列中的下一個連接。

所有發生在非常低​​的協議級別,開發人員(除非開發網絡適配器驅動程序)沒有看到/關心此端口轉移。

現在真正的問題是,如何接受更多的併發連接。如果您正在開發自己的TCP服務器,則可以設置允許的最大連接數並自行管理這些連接(通過管理線程)。如果您使用其他第三方服務器 - 它應該有一個可配置的選項,以允許最大數量的允許併發連接。

您可以查看TCP服務器here的簡單實現。正如你所看到的,有一個專用字段_maxConnections,用於處理連接。

總結 - 與特定資源(套接字)的最大併發連接數取決於爲該資源提供服務的服務器。對於IIS8例如默認的最大併發連接數限制設置爲4294967295:

IIS Max concurrent Connections

+0

感謝您response.I不同意你的自定義FTP服務器實現我可以處理多線程到來的傳入請求,我正在做這件事。我主要擔心的是Azure工作角色(或Azure負載平衡器)上的傳入請求是否存在任何限制。 –

+0

我不知道這種限制 - 併發連接數。 – astaykov

+0

感謝您的回覆。 –

相關問題