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

Vikipedi, özgür ansiklopedi
(Port (ağ) sayfasından yönlendirildi)

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ı[değiştir | kaynağı değiştir]

TCP ve UDP port numaraları

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.[1] İ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ı[değiştir | kaynağı değiştir]

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.[2]

Bilinen önemli bağlantı noktası numaraları
Sayı Atama
20 File Transfer Protocol (FTP) Veri İletimi
21 File Transfer Protocol (FTP) Komut Kontrolü
22 Secure Shell (SSH) Güvenli Giriş
23 Telnet uzaktan oturum açma hizmeti, şifrelenmemiş metin mesajları
25 Simple Mail Transfer Protocol (SMTP) e-posta gönderimi
53 Domain Name System (DNS) servisi
67, 68 Dynamic Host Configuration Protocol (DHCP)
80 Hypertext Transfer Protocol (HTTP) World Wide Web'de kullanılır
110 Post Office Protocol (POP3)
119 Network News Transfer Protocol (NNTP)
123 Network Time Protocol (NTP)
143 Internet Message Access Protocol (IMAP) Dijital posta yönetimi
161 Simple Network Management Protocol (SNMP)
194 Internet Relay Chat (IRC)
443 HTTP Secure (HTTPS) HTTP over TLS/SSL
546, 547 DHCPv6 IPv6 version of DHCP

Kayıtlı bağlantı noktaları 1024'ten 49151'e kadar olanlardır. IANA, iyi bilinen ve kayıtlı aralıkların resmi listesini tutar.[3] 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ışı[değiştir | kaynağı değiştir]

İ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[değiştir | kaynağı değiştir]

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[değiştir | kaynağı değiştir]

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ı[değiştir | kaynağı değiştir]

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[değiştir | kaynağı değiştir]

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ı.[4] İ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ı.[5] 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.[6] 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.[5] 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.[7] AEN'nin 256 değeri aşağıdaki aralıklara bölünmüştür:

AEN aralıkları
Port numarası aralığı Atama
0 ila 63 Ağ çapında standart işlevler
64 ila 127 Ana bilgisayara özgü işlevler
128 ila 239 Gelecekte kullanım için ayrılmıştır
240 ila 255 Herhangi bir deneysel işlev

Telnet hizmeti 1 değerinin ilk resmi atamasını aldı. Ayrıntılı olarak, ilk atama kümesi şöyleydi:[7]

RFC 349'deki port atamaları
Port numarası Atama
1 Telnet
3 File transfer
5 Remote job entry
7 Echo
9 Discard

ARPANET'in ilk dönemlerinde AEN aynı zamanda "soket adı" olarak da adlandırılıyordu,[8] ve Network Control Protocol (NCP)'nin bir bileşeni olan Initial Connection Protocol (ICP) ile birlikte kullanıldı.[9][10] 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.

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ Postel, John, Transport Control Protocol, doi:10.17487/RFC0793, RFC 793, erişim tarihi: 1 Ocak 2023 
  2. ^ Michelle Cotton; Lars Eggert; ve diğerleri. (August 2011), Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry, IETF, doi:10.17487/RFC6335, BCP 165. RFC 6335 
  3. ^ "Port Numbers". Internet Assigned Numbers Authority (IANA). 30 Mayıs 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Ekim 2023. 
  4. ^ Crocker, S. (16 Mart 1970), Protocol Notes, doi:10.17487/RFC0036, RFC 36 
  5. ^ a b Postel, J.; Neigus, N. (22 Aralık 1972), Socket number list, doi:10.17487/RFC0433, RFC 433 
  6. ^ Cerf, V.; Postel, J. (26 Mart 1972), Well Known Socket Numbers, doi:10.17487/RFC0322, RFC 322 
  7. ^ a b Postel, J. (30 Mayıs 1972), Proposed Standard Socket Numbers, doi:10.17487/RFC0349, RFC 349 
  8. ^ Shoshani, A.; Harslem, E. (14 Temmuz 1971), Initial Connection Protocol--Reviewed, doi:10.17487/RFC0197, RFC 197 
  9. ^ NIC 7104, ARPANET Protocol Handbook
  10. ^ Postel, Jon; Feinler, E. (1978). ARPANET Protocol Handbook (İngilizce). Menlo Park, CA: Network Information Center.