IPv4 için izin verilen en büyük TCP / IP ağ bağlantı noktası numarası nedir?


Yanıtlar:


565

Bağlantı noktası numarası işaretsiz bir 16 bit tam sayıdır, bu nedenle 65535.


216
"Hey, Jim, kaç limanı desteklemeliyiz?" "Sadece iyi bir ölçü için 16 bit yap. Kimse bir kerede birkaç yüzden fazla açık kalmayacak, üstleri."
JessieArr

3
@barlop Bağlantı noktalarını ilk oluşturduklarında yüzlerce bağlantıya sahip tek bir makinenin muhtemelen en kötü senaryo olarak değerlendirildiğini öneriyordum. Ancak bugün web sunucuları, ağ aygıtları, vb. Microsoft, Windows ortamlarında tanı ve önleme hakkında ilginç bir Technet makalesi yazdı: blogs.technet.microsoft.com/askds/2008/10/29/…
JessieArr

3
@JessieArr her iki durumda da gerçekten bir 65536 sorunu değil, bu A), bağlantıları serbest bırakmayan ve netstat'ın B ile birlikte gösterdiği bir "BEKLEME" durumunda bırakan bir konudur) sadece 1024-5000 Ve o zaman bile, hiç kimsenin dinamik bir bağlantı noktası alamadığını kimseye rapor etmeyi zahmet etmediğinden, pencerelerin olmadığı için bunun bile olup olmadığını bilen bile. 65536 numara.Web tarayıcısı bağlantıların en büyük kullanıcısı olabilir. Netstat çıktımda 297 satır var.
65K'dan

3
@JessieArr Çoğu IP yığını, bağlantılar için benzersiz bir tanımlayıcı olarak bir dizi Kaynak IP adresi, Kaynak bağlantı noktası, Hedef IP adresi ve Hedef bağlantı noktası kullanır. Bu, bir sunucunun kullanılabilir açık bağlantı noktalarından çok daha fazla etkin bağlantıya sahip olabileceği ve bağlantı noktalarının miktarının, tek bir kaynak ile tek bir hedef arasındaki açık bağlantıların miktarına yalnızca (çok büyük de olsa) bir sınırlama getirdiği anlamına gelir. Hiç kimsenin herhangi bir anda 65536'dan fazla bağlantı noktasında sunucu çalıştıracağını (veya bağlantıları dinleyeceğini) sanmıyorum.
jduncanator

41
@ JessieArr - bu bir şaka yapmayı denemenizi öğretecek, bu ciddi bir iş, burada böyle bir şey için zaman yok: /
Matt

145

En büyük bağlantı noktası numarası imzasız bir kısa 2 ^ 16-1: 65535

Kayıtlı bir port, İnternet Tahsisli Adlar ve Numaralar Kurumu (ICANN) tarafından belirli bir kullanıma atanan bir porttur. Kayıtlı her bağlantı noktası 1024–49151 aralığındadır.

21 Mart 2001'den beri kayıt kuruluşu ICANN'dir; o zamandan önce IANA'ydı.

Kayıtlı bağlantı noktalarından daha düşük sayılara sahip bağlantı noktalarına iyi bilinen bağlantı noktaları denir; kayıtlı bağlantı noktalarından daha büyük numaralı bağlantı noktasına dinamik ve / veya özel bağlantı noktaları denir.

Wikipedia: Kayıtlı Bağlantı Noktaları


71

Anladığım kadarıyla, sadece 49151'e kadar kullanmalısınız, çünkü 49152'den 65535'e kadar Geçici bağlantı noktaları için ayrılmıştır


11
geçici bağlantı noktası aralığı sisteme göre değişir. 3.19.0-43-jenerik çekirdek ile ubuntu linux kullanıyorum. $ cat /proc/sys/net/ipv4/ip_local_port_rangesonuç çıktı 32768 61000. Bir kişinin, sistemin geçici bağlantı noktası aralığındaki bir bağlantı noktasını kullanması gerekip gerekmediği konusunda, günümüz ağ işletim sistemlerinin zaten kullanılmakta olan bir bağlantı noktasını atlamaması durumunda çoğundan şüpheleniyorum.
Keith Reynolds

37

Sadece parçalamak için bir takip . Geçici bağlantı noktası aralığı (en azından Linux'ta ve diğer Unices'den de şüpheleniyorum) sabit değil. Bu yazı yazarak kontrol edilebilir /proc/sys/net/ipv4/ip_local_port_range

Tek kısıtlama (IANA söz konusu olduğunda) 1024'ün altındaki bağlantı noktalarının iyi bilinen bağlantı noktaları olarak tanımlanmasıdır. Yukarıdaki bağlantı noktaları kullanım için ücretsizdir. Genellikle 1024'ün altındaki bağlantı noktalarının süper kullanıcı erişimiyle sınırlı olduğunu göreceksiniz, bu nedenle inanıyorum.


15

RFC 793'e göre, bağlantı noktası 16 bitlik imzasız bir int.

Bu, aralığın 0 - 65535 olduğu anlamına gelir.

Ancak, bu aralık içinde, 0 - 1023 numaralı bağlantı noktaları genellikle belirli amaçlar için ayrılır. Genel olarak diyorum, çünkü 0 bağlantı noktasından ayrı olarak, 0-1023 rezervasyonunun hiçbir zorlaması yoktur. TCP / UDP uygulamaları genellikle 0 dışında ayırmaları zorunlu kılmaz. İsterseniz, bir web sunucusunun TLS bağlantı noktasını standart 443 yerine 80 veya 25 veya 65535 numaralı bağlantı noktasında da çalıştırabilirsiniz. SMTP sunucularının 25 numaralı bağlantı noktasında dinlediği standart, 80, 443 veya diğerlerinde çalıştırabilirsiniz.

Çoğu uygulama 0'ı belirli bir amaç için ayırır - rastgele bağlantı noktası ataması. Bu yüzden çoğu uygulamada , "bağlantı noktası 0'da dinle" demek aslında "Hangi bağlantı noktasını kullandığım umurumda değil, sadece dinlemem için rastgele atanmamış bir bağlantı noktası ver" anlamına gelir.

Bu nedenle, 0-65535 aralığında 0, geçici rezervasyon aralığı vb. Dahil olmak üzere bir bağlantı noktasının kullanılmasına ilişkin herhangi bir sınırlama uygulamaya (yani OS / sürücüye) özgüdür , ancak 0 dahil tümü RFC 793'teki geçerli bağlantı noktalarıdır.



11

Bağlantı noktaları için geçerli sayılar şunlardır: 0 ila 2 ^ 16-1 = 0 ila 65535
Bunun nedeni, bir bağlantı noktası numarasının 16 bit uzunluğunda olmasıdır.

Ancak bağlantı noktaları şu şekilde ayrılır:
Bilinen bağlantı noktaları : 0 ila 1023 (sistem hizmetleri için kullanılır, örneğin HTTP, FTP, SSH, DHCP ...)
Kayıtlı / kullanıcı bağlantı noktaları : 1024 ila 49151 (sunucunuz için kullanabilirsiniz, ancak dikkatli bazı ünlü uygulamalar: Microsoft SQL Server veritabanı yönetim sistemi (MSSQL) sunucusu veya Apache Derby Network Server gibi bu aralıktan zaten alıyor yani MSSQL çalışıyorsa sunucunuz için MSSQL portunu atamanız tavsiye edilmez. muhtemelen bağlantı noktası çakışması nedeniyle çalışmaz)
Dinamik / özel bağlantı noktaları : 49152 - 65535. (sunucular için kullanılmaz, örneğin NATing hizmetinde kullanılmaz)

Programlama sırasında sunucunuz için 0 ila 65535 arasında herhangi bir sayı kullanabilirsiniz, ancak yukarıda belirtilen aralıklara bağlı kalmalısınız, aksi takdirde bazı sistem hizmetleri veya bazı uygulamalar bağlantı noktası çakışması nedeniyle çalışmaz.
Çoğu bağlantı noktasının listesini burada kontrol edin: edin https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers


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.