Neden Sadece 65.535 Liman Var ve Daha Fazlası Var mı? [kapalı]


20

IP adresi başına 65.535 bağlantı noktasına sahip olmanın ardındaki orijinal mantığı anlıyorum: Bu, 16 bit veya 2 baytlık bir sayı ile temsil edilebilecek en yüksek sayıdır ve bilgisayarların daha fazla yedekleyebileceği düşünülemedi. bağlantı noktaları kadar önemsiz bir şey veya bunun gibi bir şey için. Bağlantı noktalarının her biri 1 bit'ten fazlasına ihtiyaç duyabilir, çünkü her bağlantı noktası açık, engellenmiş, "gizli" veya diğerleri olabilir, ancak bazı nedenlerden dolayı bağlantı noktalarının her zaman 16 bitlik bir sayı ile çalıştığını söyler. Eğer bunun yanlış bir parçası varsa, elbette söyle bana.

Ancak, çoğu bilgisayarın 32 bit olduğu ve birkaç bağlantı noktası için yeterli bellek / alana sahip olduğu bir dünyada, neden hala bu kadar bağlantı noktasına sahibiz? HTML5, HTTP2.0, IPv6 ve diğer kesinlikle farklı sürümlere geçme sürecindeyiz, neden bağlantı noktaları ile aynı değil? Bunların çoğu 16 bitten daha fazlasına izin verir; aslında, IPv6 16 bayt sağlar ! Bunların çoğunun yıllar hatta on yıllar uzakta olduğunu anlıyorum, ama neden bu yükseltmelerdeki tüm konuşmacılar, hatta daha fazla liman hakkında bir gözetleme bile (bir amatör, duyduğum)?

65.535 limanı tutmak için görebildiğim tek 2 neden, büyük işletmelerin eski miras sistemlerini korumasına izin vermektir, bu da iyi bir nedendir ve çoğu küçük olan gömülü sistemlerin küçük miktarlarda yer, bellek vb. , birçoğu Nesnelerin İnterneti'nin bir parçası olarak yakında İnternet'e geliyor. Bu gömülü sistemlerle, belki de daha az sayıda bağlantı noktasına sahip olmalarına izin verebilirdik ve büyük bir masaüstü bilgisayar bir taneye bağlanmaya çalıştığında, bebek gömülü sistemi sadece ~ 65.000 bağlantı noktasını kullanabileceğinden, nazik olduğu söylenebilir.

Öte yandan, çoğu NAT ve 1'den fazla özel IP adresinin aynı genel IP adresini kullanarak internetin geri kalanıyla iletişim kurması gereken diğer sistemlerle ilgili olmak üzere daha fazla bağlantı noktasına sahip olmak için birkaç iyi neden düşünebilirim, hepsi aynı IP adresini kullanan VM'lerin aynı bilgisayardaki yükselişi gibi. Teknik olarak, her VM IP adresinin 65.535 bağlantı noktası vardır, ancak gerçekte hepsi ana bilgisayarın bağlantı noktalarını kullanır. Bu gibi durumlarda, bu sistemler limanlardan oldukça hızlı bir şekilde tükenebilir. Başka bir özel durum, bir genel IP adresinin birkaç özel IP adresine çevrildiği ve bu özel adreslerden en az birinin başka bir daha özel adres grubuna çevrildiği taşıyıcı sınıfı NAT'tır. Yine, her özel IP adresinin teknik olarak kendi 65.535 port seti vardır, ancak bu bir yanılsamadır, Veriler genel İnternete çıktığında, genel IP bağlantı noktalarını kullanıyorlar. Tabii ki NAT'a ihtiyacımız olduğundan emin değilim, ancak IPv6'nın bize vereceği büyük miktarlarda bile adresleri korumak için böyle bir şeye ihtiyacımız olacak. Bu gibi vakalarımız olduğunda, 65.535'den fazla limana sahip olmayı bile göze alabilir miyiz?

Peki, neden hala sadece 65.535 limanımız var ve daha fazlasına izin verme planları var mı?

PS IP adresi başına teknik olarak 65.536 bağlantı noktası olduğunu biliyorum, ancak bağlantı noktası 0 genellikle hiçbir şey için kullanılmaz.


Sanırım kaynakları kontrol ettikleri için bu soruları IANA'ya sormanız gerekiyor. Bazı anlayışlarınız kusurlu göründüğü için TCP / IP kılavuzunu da okumanız gerektiğini düşünüyorum .
user9517, GoFundMonica

1
Evet, düşündüm. Anladığım kadarını söylemeye çalıştım, ama gördüğünüz gibi her şeyi anlamıyorum.
trysis

7
Bu soru ile ilgili konu dışı nedir? Sadece merak ediyorum.
trysis

1
Ayrıca bu sitelerde soru sormaktan vazgeçtim. Bugünlerde her şey konu dışı görünüyor ...
Nuno

IPv6, bir bilgisayara kullanılacak 64 adres / adres sunarak bağlantı noktalarının sınırlanmasını tartışır.
J.Money

Yanıtlar:


28

Bağlantı noktası kullanılan katman 4 protokolünün bir parçasıdır - çoğunlukla TCP veya UDP ; gerçek bilgisayarların bellek adreslemesiyle ilgili değildir, bu nedenle modern işletim sistemlerinin 32 veya 64 bit bellek adreslemesiyle karıştırmayın.

Bu katman 4 protokollerinin başlıkları , kaynak ve hedef bağlantı noktaları için tam olarak 16 bit kullanılan özel olarak tanımlanmış yapılara sahiptir. Tüm internetin bağlı olduğu 4. katman protokollerinde uyumluluk değişiklikleri olmadan, bağlantı noktası sayısı değiştirilemez. Daha yeni SCTP bile bağlantı noktalarında 16 bitlik kısıtlamaya sahiptir.

Bu protokollerin trafiği yalnızca alıcı bağlantı noktasına değil aynı zamanda alıcı IP'ye ve gönderme bağlantı noktasına ve IP'ye göre tanımladığını unutmayın; 65535 dinleme TCP bağlantı noktasıyla sınırlısınız (ancak bu kadarına sahip değilsiniz) ve belirli bir uzak sistemdeki belirli bir hizmete 65535 bağlantıyla sınırlısınız (uygulamada daha düşük, geçici bağlantı noktalarına bakın ), bu nadirdir belirli bir uzak sisteme çok sayıda bağlantı oluşturan bir sisteminiz yoksa bu protokoller üzerindeki sınırı aşmak için.


3
Her zaman geriye dönük uyumluluğa iner, değil mi? Neden çok daha fazla IP adresine saçma olduğunu gösteren IPv6'ya geçebiliriz, ancak birkaç bağlantı noktasına daha sahip olamayız? Bu benim ana rahatsızlığım.
trysis

2
@trysis Sağ - IPv4'ten IPv6'ya geçmek, bir TCP sürümüne ve bağlantı noktası üstbilgisinde daha fazla bit içeren bir UDP sürümüne geçmek için gerekenlerle iyi bir karşılaştırmadır. Ve fark etmediyseniz, şu anda olduğu yerde dünya çapında IPv6 dağıtımını almak için yavaş ve acı verici bir süreç oldu (dünya çapındaki trafiğin% 1-2'sini kullanarak). IPv4 için, adresin tükenmesi konusunda zorlayıcı bir ihtiyaç vardı. Öte yandan, bu protokollerde bağlantı noktası alanı tükenmesi yaygın bir sorun değildir, bu yüzden bunu gerçekleştirmek için gerekli olan büyük değişiklikleri yapmaya zorlama ihtiyacı yoktur.
Shane Madden

Oh, bu daha mantıklı. Teşekkürler. Belki bir gün ihtiyacı hissedeceğiz, ama sanırım bu ihtiyaç artık orada değil.
trysis

Umarım tüm bu sıkıntıları yaşarsak, tamsayı tabanlı port adreslemesinden daha iyi bir şey bulabiliriz. UUID tabanlı portlar gibi bir şey harika olurdu. Veya gerçek ad alanları daha açıklayıcı olur ve uygulamalar arasındaki çakışma olasılığını ortadan kaldırır. "Com.windows.local.alanadiniz.server001" ad alanı veya bunun gibi bir şey için bir bağlantı noktası ayarladığınızı düşünün.
njbair

iki bilgisayar birlikte NAT dışında bir bilgisayar çifti ile 65.535 bağlantı veya benzeri bir bağlantı yaparsa, diğer bilgisayarların hiçbiri Ethernet'e erişemez. Doğrumuyum?
Denis
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.