TCP sunucusu 65535 istemciyle sınırlı mı?


10

Bunun, tek bir bilgisayarın / uygulamanın koruyabileceği istemci sayısı için zor bir sınır oluşturduğu düşünülebilir.

Bir web sunucusunu denetliyor olabilir ve ~ 65k bağlantıların ötesine geçmesi öngörülen kullanım düzeylerine ölçeklenebilir sağlamak için gerekli olabilir.

Yazılım için bazı ayrı hususlar vardır ( /programming/1575453/how-many-socket-connections-can-a-web-server-handle )


Herhangi bir cevap size yardımcı oldu mu? Öyleyse, cevabı kabul etmelisiniz, böylece soru sonsuza kadar ortaya çıkmayacak, bir cevap arıyor. Alternatif olarak kendi cevabınızı verebilir ve kabul edebilirsiniz.
Ron Maupin

Yanıtlar:


16

Kısa cevap hayır, bu sınır değil.

TCP Bağlantı Noktası alanı 2x bayttır ve 65536'lık bir miktarı tutar. Bu sayı, bir sunucunun sahip olabileceği adres miktarını sınırlar . Ancak bu, istemci sayısını ~ 64k ile sınırlamaz . Her TCP Paketinde biri hedef, diğeri kaynak (ve iki IP adresi) için iki Bağlantı Noktası alanı bulunur.

Belirli bir TCP bağlantısı, her biri IP adresi ve Bağlantı noktası numarası olan kaynak ve hedefin bir demetidir. Hedef (sunucu tarafı) sabit kalır, ancak kaynak adres (istemci tarafı) hem Bağlantı Noktası hem de IP Adresi üzerinde değişiklik gösterebilir.

Düşünmek:

  • Sunucu IP'si - 100.0.0.1 (Sabit)
  • Sunucu Bağlantı Noktası - 80 (Sabit)
  • İstemci IP'si - 0.0.0.0 - 255.255.255.255 (32 bit Aralık)
  • İstemci Bağlantı Noktası - 0 - 65535 (16 bit Aralık)

Evet, tek bir IP adresine sahip bir istemci (veya ofis), sunucunuza aynı anda yalnızca 65535 kez bağlanabilir, ancak bu istemcinin (veya ofisin) birden çok IPv4 adresi varsa, bunun daha birçok katını bağlayabilir.

Tipik olarak, birçok istemci cihazda milyonlarca IP adresi kullanılmaktadır ve eğer tek sunucu portunuza bağlanmak için sadece tek bir kaynak port kullanacaklarsa , 65536 numarasının ötesine geçme potansiyelini görebilirsiniz.

IP / TCP protokolünün teorik matematiksel limiti 2 ^ 32 * 2 ^ 16'dır. Pratik olarak IP adreslerinin sayısı daha düşüktür - bazı ayrılmış IP blokları için çıkarmanız gerekir. Ayrıca, tipik bir istemci bilgisayar TCP bağlantı noktası havuzunu da azaltarak diğer sunuculara bağlanan birden çok uygulama çalıştıracağından, istemci tarafı bağlantı noktası sayısı daha azdır, ancak bir TCP oturumu Bağlantı Noktası numarasını bitirdikten sonra bu havuz nadiren kullanılır havuzda tekrar kullanılabilir.

Not: IPv6 için IP adresi miktarı artar, ancak TCP için Bağlantı Noktası alanı aynı boyutta kalır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.