Published on

TCP/IP Port ve Soket Kavramı

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

Portlar herhangi bir protokolün mantıksal adresidir. Bir protokolün iletişime geçtiği mantıksal adreslere port diyoruz. Örneğin : Evimiz bir protokol ise evimizin kapısı port’umuzdur. Bizimle iletişime geçmek isteyen birisi bu kapıyı kullanmak zorundadır.

Bilgisayardaki her bir process’in bir port numarası vardır. Örneğin HTTP 80 , Telnet 23 , FTP ise 21 numaralı portu kullanır. Eğer ben bir web sitesinden bir sayfayı talep ediyorsam o sitenin 80 numaralı portu ile iletişime geçmeliyim.

Bob’un Dosya Aktarım Protokolünü (FTP) kullanarak bir MP3 ses kaydını Alice’e aktardığını varsayalım. Eğer Alice’in bilgisayarı MP3 dosyası verilerini Alice’in e-posta uygulamasına aktarsaydı, e-posta uygulaması bunu nasıl yorumlayacağını bilemezdi. Ancak Bob’un dosya aktarımı FTP için belirlenen bağlantı noktasını (bağlantı noktası 21) kullandığından, Alice’in bilgisayarı dosyayı alıp saklayabilir.

Bu arada, hem web sayfası dosyaları hem de MP3 ses dosyası Alice’in bilgisayarına aynı WiFi bağlantısı üzerinden akmasına rağmen, Alice’in bilgisayarı 80 numaralı bağlantı noktasını kullanarak HTTP web sayfalarını eş zamanlı olarak yükleyebilir.

Portlar 0-65535 arasında değer almaktadır. Çünkü TCP header’ındaki port number’a tahsis edilen boyut 2 byte = 16bit = 2^16 = 6553’dir. Yani toplamda 65536 değer alabilir.

nmap kullanarak bir web sitesindeki açık portları listeleyebiliriz.(NMAP’ı yasal sınırlar içerisinde kullanalım.)

nmap --top-ports 80 www.example.com

Port Türleri

1-) Well Known Port(Tanınan Port)

  • 0’dan 1023’e kadar bilinen belirli hizmetler için kullanılmaktadır.
  • HTTP(80 numaralı port), HTTPS(443 numaralı port), DNS(port 53), SSH(22 numaralı port), FTP(21 numaralı port) örnek olarak verilebilir.

2-) Registered Port(Kayıtlı Port)

  • 1024’den 49151’e kadar belirli bir hizmet için IANA tarafından tahsis edilen port numaralarıdır.
  • 1433/TCP – Microsoft SQL Server, 3306/TCP – MySQL, 25565/TCP – Minecraft, 1194/UDP – OpenVPN örnek olarak verilebilir.

3-) Dynamic Port(Dinamik Port)

  • 49152’den 65535’a kadar kullanılan port numaralarıdır.
  • Geçici bağlantılarda ve istemci tarafında tercih edilir.
  • Tarayıcı ile bir web sitesine bağlandınız diyelim daha sonra aynı tarayıcıdan yeni sekme açıp başka bir web sitesine girdiniz burada tarayıcınız rastgele 2 farklı port açar. Bağlandığınız yer Tanınan porttur(http 80) ancak istemci kısmındaki portlar, tarayıcınız tarafından rastgele oluşturulmuştur. Sekmeyi kapattığınızda bu portlar da kapanacaktır.

Soket Nedir ?

Ağa bağlı bir cihazdaki bir işlemi belirtmek için ip adresi tek başına yeterli değildir. Bu yüzden ifade edebilmek için ip adresi + port numarası kullanıyoruz. Örneğin : “192.168.1.3:80 ” 192.168.1.3 adresine sahip cihazda 80 numaralı port’daki işlem.

Aşağıdaki komutu CMD’ye yazarak bilgisayarınızdaki aktif olan TCP bağlantılarını ve dinlemekte olan UDP portlarını görebilirsiniz.

netstat
ProtoLocal AddressForeign AddressState
Kullanılan ağ protokolünü belirtir.(TCP-UDP)Bu, yerel bilgisayarınızın IP adresi ve port numarasını gösterir.Bu, bağlantı kurulan uzak bilgisayarın IP adresi ve port numarasını gösterir.Bu, bağlantının durumunu gösterir. ESTABLISHED, TIME_WAIT, LISTENING vs.

ilk satırda 127.0.0.1 localhost adresi olduğunu görüyoruz. Foreign Adress satırında bilgisayarımın adı gözüküyor. Bu bağlantılar, yerel bilgisayarın kendi içindeki (localhost) çeşitli portlar arasındaki iletişimi gösteriyor.

En alttaki bağlantıya baktıgımız zaman 192.168.43.101(yani benim bilgisayarımın adresi) 7212 port’dan 20.199.120.151:80 ile bağlantısı olduğunu görüyorum. www.abuseipdb.com/check web sitesinden bu adresin kime ait olduğunu araştırıyorum.

Evet böylece, Microsoft’un 192.168.43.101:7212 adresine sahip bilgisayar soketimden Data Center/Web Hosting/Transit amacıyla bağlantı kurduğunu görüyorum.

Ayrıca IANA tarafından tahsis edilmiş portların(registered port) kime ait olduklarını çeşitli web sitelerinden sorgulayabilirsiniz. Örn : https://www.speedguide.net/port.php sitesinden 25565 numaralı portun kime tahsis edilmiş olduğunu sorguluyorum.

IANA tarafından Minecraft sunucuları için tahsis edilmiş port numarası olduğunu öğreniyorum.

KAYNAKÇA :

Kurose, James F., & Ross, Keith W. (2017). “Computer Networking: A Top-Down Approach” (7th ed.). Boston: Pearson Education.

www.cloudflare.com/learning/network-layer/what-is-a-computer-port/

http://www.ortizonline.com/publications/tcpipsuitetutorial.htm