Linux'ta IP adresi başına 65536 açık TCP bağlantısı zor limiti var mı?


23

Linux'ta IP adresi başına 65536 açık TCP bağlantısı zor limiti var mı? Bir yerde olduğunu okudum, ama birileri onay istiyor ve bulamıyorum.

Dosya tanımlayıcılarının bir şekilde sınırlayan 16 bit bir tamsayı olduğu konusunda bir şey olduğunu hatırlıyor gibiyim?

Ya da bu gizleme mi ve sunucunun ne kadar becerikli olduğu dışında bir sınır yok mu?

Yanıtlar:


35

Port sayısını düşünüyor olabilirsiniz. IPv4'ün geçerli sürümlerinde TCP'de bulunan 65536 bağlantı noktası vardır. Bu sadece bir Linux sınırlaması değil, protokolün bir parçası. IP adresiniz makinenizi, port ise makinenizdeki bir programı tanımlar.

Ancak, bağlantı sayısı bununla sınırlı değildir. Bir bağlantı 5 parçadan oluşur, geek'te 5 tuple konuşur. Protokol (TCP, UDP), yerel IP adresi ve bağlantı noktası ve uzak IP adresi ve bağlantı noktası tarafından belirlenir. Öyleyse bir web sunucusu alın. Aynı bağlantı noktasında birçok bağlantıya hizmet verebilir (büyük olasılıkla 80). Web sunucunuz aynı istemci makineye birden çok bağlantıyı da destekleyebilir. Google.com’a iki pencereden bağlandığınızı söyleyin. Makineniz her bağlantı için kullanılmayan bir bağlantı noktası seçecektir. Bu nedenle, google sunucusunun (TCP, google.com, 80, makinenizin, someport1) ve (TCP, google.com, 80, makinenizin, someport2) takip etmesi gerekir. Bir noktada sınırlara girersiniz, ancak bu zor bir sınır değildir ve çok sisteme bağlıdır.

Ve evet, her soket bir dosya tanıtıcısıdır, ancak tüm makineler fd tablosu için kısa devre kullanmaz. Sistemimde, tüm sistemlerde ayarlanmadı, cat /proc/sys/fs/file-max323997 veriyor. Gerekirse güçlendirebileceğime eminim.

Bu nedenle, 65336'nın bir sınırı var, ancak bağlantı sayısı değil adresleme ile ilgili. Bağlantı sayısı sınırlıdır, ancak sistem konfigürasyonu ve ne kadar hafızaya sahip olduğu ile sınırlıdır.


2
Yani, 5-tuple: 65536 portla sınırlı olmama rağmen, bu beni sadece gelen IP adresi başına 64k bağlantılarla sınırlandırıyor , doğru mu? Demek ki tek sınır dosya tanımlayıcıları, fakat mutlaka 16 bit değil mi? Yani temelde söylediğin şey sınır yok mu?
Chris

1
Evet. Ayrıca bakınız: en.wikipedia.org/wiki/Transmission_Control_Protocol "Kaynak kullanımı" bölümü
user12889

3
@Chris: Tek bir yerel portta gelen IP adresi başına 64k bağlantı , evet.
Grawity

@ Chris yerçekimi ne dedi. 5-tuple, diğer makine ile 65536 kombinasyona kadar (ancak asla ulaşmaz) olacaktır. Gerçekte, hiçbir zaman oraya gidemezsiniz, çünkü bir makine bağlantı için herhangi bir eski bağlantı noktasını kullanamaz - bazıları belirli nedenlerden dolayı ayrılmıştır.
Rich Homolka
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.