Bağlantı noktası (bilgisayar ağı)

Bilgisayar ağlarında bağlantı noktası (port) veya bağlantı noktası numarası (port numarası), bir bağlantı uç noktasını benzersiz bir şekilde tanımlamak ve verileri belirli bir hizmete yönlendirmek için atanan sanal bir numaradır. Yazılım düzeyinde, bir işletim sistemi içinde, bir bağlantı noktası belirli bir işlem veya bir ağ hizmeti türünü tanımlayan mantıksal bir yapıdır. Yazılım düzeyindeki bir bağlantı noktası, her taşıma katmanı protokolü ve adres kombinasyonu için kendisine atanan bağlantı noktası numarasıyla tanımlanır. Port numaralarını kullanan en yaygın taşıma protokolleri TCP (Transmission Control Protocol) ve UDP (User Datagram Protocol)'dir; bu port numaraları 16 bitlik işaretsiz sayılardır.
Bir bağlantı noktası numarası her zaman IP adresi gibi bir ana bilgisayar ağ adresi ve iletişim için kullanılan aktarım protokolü türü ile ilişkilidir. Bir mesajın hedef veya başlangıç adresini tamamlar. Belirli port numaraları, gelen bir paketin çalışan bir uygulamaya kolayca iletilebilmesi için belirli hizmetleri tanımlamak üzere ayrılmıştır. Bu amaçla, 1024'ten düşük port numaraları tarihsel olarak en yaygın kullanılan hizmetleri tanımlar ve iyi bilinen port numaraları olarak adlandırılır. Daha yüksek numaralı portlar uygulamalar tarafından genel kullanıma açıktır ve geçici bağlantı noktaları olarak bilinir.
Portlar, tek bir ağ adresinde birden fazla hizmet veya birden fazla iletişim oturumu için çoklama hizmeti sağlar. Uygulama mimarisinin istemci-sunucu modelinde, aynı hizmet için birden fazla eşzamanlı iletişim oturumu başlatılabilir.
Port numarası
TCP ve UDP için bağlantı noktası numarası 16 bitlik işaretsiz bir tamsayıdır, dolayısıyla 0 ile 65535 arasında değişir. TCP için 0 numaralı bağlantı noktası ayrılmıştır ve kullanılamaz, UDP için ise kaynak bağlantı noktası isteğe bağlıdır ve sıfır değeri bağlantı noktası yok anlamına gelir. Bir işlem, giriş veya çıkış kanallarını bir internet soketi aracılığıyla ilişkilendirir, bu bir dosya tanımlayıcısı türüdür, bir taşıma katmanı protokolü, IP adresi gibi bir ağ adresi ve bir bağlantı noktası numarası ile ilişkilidir. Bu bağlama olarak bilinir. Bir soket, bir işlem tarafından ağ üzerinden veri göndermek ve almak için kullanılır. İşletim sisteminin ağ yazılımı, tüm uygulama bağlantı noktalarından giden verileri ağa iletme ve gelen ağ paketini, paketin IP adresi ve bağlantı noktası numarasını bir soketle eşleştirerek işlemlere iletme görevine sahiptir. TCP için, belirli bir IP adresi ve port kombinasyonuna yalnızca bir işlem bağlanabilir. Bazen bağlantı noktası çakışmaları olarak adlandırılan yaygın uygulama hataları, birden fazla program aynı IP adresinde aynı bağlantı noktası numarasını aynı protokolle kullanmaya çalıştığında ortaya çıkar.
Ortak hizmetleri uygulayan uygulamalar genellikle istemcilerden hizmet istekleri almak için özel olarak ayrılmış iyi bilinen bağlantı noktası numaraları kullanır. Bu süreç "dinleme" olarak bilinir ve iyi bilinen bağlantı noktasında bir isteğin alınmasını, bu dinleme bağlantı noktasını kullanarak potansiyel olarak bire bir sunucu-istemci diyaloğu kurulmasını içerir. Diğer istemciler aynı anda aynı dinleme portuna bağlanabilir; bunun nedeni bir TCP bağlantısının yerel adres, yerel port, uzak adres ve uzak porttan oluşan bir demet ile tanımlanmasıdır. İyi bilinen portlar Internet Assigned Numbers Authority (IANA) tarafından denetlenen bir konvansiyonla tanımlanır. Birçok işletim sisteminde, uygulamaların bu bağlantı noktalarına bağlanması için özel ayrıcalıklar gereklidir, çünkü bunlar genellikle IP ağlarının çalışması için kritik olarak kabul edilir. Tersine, bir bağlantının istemci ucu tipik olarak kısa süreli kullanım için tahsis edilmiş yüksek bir bağlantı noktası numarası kullanır, bu nedenle geçici bağlantı noktası olarak adlandırılır.
Yaygın bağlantı noktası numaraları
IANA, DNS kökü, IP adresleme ve diğer protokol kaynaklarının küresel koordinasyonundan sorumludur. Bu, iyi bilinen internet hizmetleri için yaygın olarak kullanılan TCP ve UDP port numaralarının kaydını içerir.
Port numaraları üç aralığa ayrılır: "iyi bilinen portlar", "kayıtlı portlar" ve "dinamik" ya da "özel portlar".
İyi bilinen portlar ("sistem portları" olarak da bilinir) 0'dan 1023'e kadar numaralandırılmış olanlardır. Bu aralıktaki yeni atamalar için gereklilikler diğer kayıtlara göre daha katıdır.
Kayıtlı bağlantı noktaları 1024'ten 49151'e kadar olanlardır. IANA, iyi bilinen ve kayıtlı aralıkların resmi listesini tutar. Dinamik veya özel bağlantı noktaları 49152'den 65535'e kadar olanlardır. Bu aralık için yaygın bir kullanım geçici bağlantı noktasıdır.
Ağ davranışı
İletim Kontrol Protokolü (TCP) ve Kullanıcı Datagram Protokolü (UDP) gibi Taşıma katmanı Protokolleri, Protokol Veri Birimi (PDU'lar) kullanarak veri aktarır. TCP için PDU bir segment, UDP için ise bir datagram'dır. Her iki protokol de kaynak ve hedef port numaralarını belirtmek için bir başlık alanı kullanır. Port numaraları taşıma protokolü paket başlığı içinde kodlanır ve yalnızca gönderen ve alan ana bilgisayarlar tarafından değil, aynı zamanda ağ altyapısının diğer bileşenleri tarafından da kolayca yorumlanabilir. Özellikle, firewalllar genellikle kaynak veya hedef port numaralarına göre paketler arasında ayrım yapacak şekilde yapılandırılır. Port yönlendirme bunun örnek bir uygulamasıdır.
Port tarama
Tek bir ana bilgisayarda sırayla bir dizi bağlantı noktasına bağlanmaya çalışma uygulaması genellikle bağlantı noktası taraması olarak bilinir. Bu genellikle ya kötü niyetli cracking girişimleriyle ya da bu tür saldırıları önlemeye yardımcı olmak için olası güvenlik açıklarını arayan ağ yöneticileriyle ilişkilidir. Port bağlantı girişimleri sıklıkla ana bilgisayarlar tarafından izlenir ve kaydedilir. Port knocking tekniği, bir sunucu bağlantısını etkinleştirmek için bir istemci bilgisayardan bir dizi port bağlantısı (knock) kullanır.
Örnekler
Bağlantı noktalarının kullanımına bir örnek e-posta gönderimidir. E-posta göndermek ve almak için kullanılan bir sunucu genellikle iki servise ihtiyaç duyar. İlk hizmet, e-postayı diğer sunuculara ve diğer sunuculardan taşımak için kullanılır. Bu, Simple Mail Transfer Protocol (SMTP) ile gerçekleştirilir. Standart bir SMTP hizmet uygulaması, gelen istekler için TCP bağlantı noktası 25'i dinler. İkinci hizmet genellikle Post Office Protocol (POP) ya da Internet Message Access Protocol (IMAP) olup kullanıcıların kişisel bilgisayarlarındaki e-posta istemcisi uygulamaları tarafından sunucudan e-posta iletilerini almak için kullanılır. POP hizmeti 110 numaralı TCP bağlantı noktasını dinler. Her iki hizmet de aynı ana bilgisayarda çalışıyor olabilir, bu durumda bağlantı noktası numarası, kullanıcının bilgisayarı veya başka bir posta sunucusu gibi uzak bir bilgisayar tarafından talep edilen hizmeti ayırt eder.
Bir sunucunun dinleme port numarası iyi tanımlanmış olsa da (IANA bunları iyi bilinen portlar olarak adlandırır), istemcinin port numarası genellikle dinamik port aralığından seçilir (aşağıya bakın). Bazı uygulamalarda, istemciler ve sunucunun her biri IANA tarafından atanan belirli bağlantı noktası numaralarını kullanır. Bunun iyi bir örneği, istemcinin her zaman UDP bağlantı noktası 68'i ve sunucunun her zaman UDP bağlantı noktası 67'yi kullandığı DHCP'dir.
URL'lerde kullanımı
Port numaraları bazen web veya diğer Tek tip Kaynak Bulucularda (URL'ler) görülür. Varsayılan olarak HTTP 80 numaralı bağlantı noktasını ve HTTPS 443 numaralı bağlantı noktasını kullanır, ancak http://www.example.com:8080/path/ gibi bir URL web tarayıcısının bunun yerine HTTP sunucusunun 8080 numaralı bağlantı noktasına bağlandığını belirtir.
Tarihçe
Port numarası kavramı ARPANET'in ilk geliştiricileri tarafından yazılım yazarları ve sistem yöneticilerinin gayri resmi işbirliği ile oluşturulmuştur. Port numarası terimi henüz kullanımda değildi. Ağın ilk geliştirme aşamalarında soket numarası terimi kullanılmaya başlandı. Uzak bir ana bilgisayar için bir soket numarası 40 bitlik bir miktardı. İlk 32 bit bugünkü IPv4 adresine benziyordu, ancak o zamanlar en önemli 8 bit ana bilgisayar numarasıydı. Soket numarasının en az anlamlı kısmı (33'ten 40'a kadar olan bitler) Başka Bir Sekiz Bitlik Sayı (Another Eightbit Number) olarak adlandırılan ve AEN olarak kısaltılan bir varlıktı. Bugün, ağ soketi ilgili ancak farklı bir kavramı, yani yalnızca düğüm içinde kullanılan bir uç noktanın dahili adresini ifade eder.
26 Mart 1972'de Vint Cerf ve Jon Postel, RFC 322'de o zamanki kullanımları belgeleme ve bir soket numarası kataloğu oluşturma çağrısında bulundu. Ağ yöneticilerinden, "her bir HOST'taki ağ hizmeti programlarının işlevini ve soket numaralarını açıklayan" bir not göndermeleri veya telefon görüşmesi yapmaları istendi. Bu katalog daha sonra Aralık 1972'de RFC 433 olarak yayınlandı ve ana bilgisayarların ve bağlantı noktası numaralarının bir listesini ve ağdaki her ana bilgisayarda kullanılan ilgili işlevi içeriyordu. Bu ilk kayıt işlevi öncelikle kullanımın belgelendirilmesi olarak hizmet etti ve "yararlı kamu hizmetleri" için bazı ana bilgisayarlar arasında bağlantı noktası numarası kullanımının çakıştığını gösterdi. Belge, Postel'in Mayıs 1972'de RFC 349'da yayınladığı ve ilk olarak ağ hizmetlerine bağlantı noktası numaralarının resmi olarak atanmasını önerdiği ve bir kayıt tutmak için "çar" olarak adlandırdığı özel bir idari işlev önerdiği bir standarda dayanan çatışmaların çözümünü vaat etti. AEN'nin 256 değeri aşağıdaki aralıklara bölünmüştür:
Telnet hizmeti 1 değerinin ilk resmi atamasını aldı.
Ayrıntılı olarak, ilk atama kümesi şöyleydi:
ARPANET'in ilk dönemlerinde AEN aynı zamanda "soket adı" olarak da adlandırılıyordu, ve Network Control Protocol (NCP)'nin bir bileşeni olan Initial Connection Protocol (ICP) ile birlikte kullanıldı. NCP, modern İnternet protokollerinin öncüsüdür. Günümüzde "hizmet adı" terminolojisi hala port numaraları ile yakından bağlantılıdır, ilki bazı ağ işlevlerinde sayısal bir port numarasını temsil etmek için kullanılan metin dizeleridir.