Port Nedir?
Bilgisayar ve telekomunikasyon dunyasında, 'port' denildiği zaman akla ilk gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir.
Bu tur 'port' lar uzerinden bağlanmış herhangi bir makinaya 'data' gonderilebilir ve bu makinanın işleyişi kontrol edilebilir.
Orneğin, tipik bir bilgisayarda bir veya birden fazla 'seri port' bir tane de 'paralel port' bulunur.
Adından da anlaşılacağı gibi 'seri port' dan bilgiler seri (her defasında bir bit) olarak gonderilir
ve bu tur 'port' lara genellikle tarayıcı (scanner) gibi cihazlar takılır. Her defasında birden cok bit gondermek icinse 'paralel port' kullanılır.
Bu tip 'port' lara da yazıcı (printer) veya 'paralel port' bağlantısı olan herhangi bir cihaz takılabilir.
Bizi ilgilendiren ve coğunlukla İnternet dunyasında kullanılan 'port' kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir.
Bu anlamda 'port' (ki dokumainin sonuna kadar 'port' bu anlamda kullanılacaktir) herhangi bir fiziksel bağlantı yeri değil, mantıksal bir bağlanma şeklidir.
Şoyle ki: Gunumuz dunyasında bircok işletim sistemi birden fazla programın aynı anda calışmasına izin vermektedir.
Bu programlardan bazıları dışarıdan gelen istekleri (istemci-client/request) kabul etmekte ve uygun gorduklerine
cevap (sunucu-server/response) vermektedir.
Sunucu programları calışan bilgisayarlara birer adres verilir (bknz. IP adresleri) ve bu adresler kullanılarak istenilen bilgisayarlara ulaşılır.
Peki, ulaşılan bir bilgisayar uzerindeki hangi sunucu programdan hizmet alınmak istendiği nasıl belirtilir?
Bunun icin bilgisayarlar uzerinde birtakım soyut bağlantı noktaları tanımlanır ve herbirine, adresleyebilmek icin positif bir sayı
verilir (port numarası). Bazı sunucu programları, daha once herkes tarafından bilinen 'port' lardan hizmet verirken (orn: telnet->23. port) bazıları da
sunucu programını calıştıran kişinin turune ve isteğine gore değişik 'port' lardan hizmet verir.
Dolayısıyla, ağ uzerindeki herhangi bir sunucu programa bağlanmak istenildiğinde, programın calıştığı bilgisayarın adresinin
yanında istekleri kabul ettiği 'port' numarasını da vermek gerekir. Ornek verecek olursak:
144.122.156.104 'IP' adresine sahip makinada (orca) calışan 'telnet' sunucu programına (23. 'port' dan hizmet veren) bağlanmak icin aşağıdaki satır yazılır.
telnet 144.122.156.104 23
Daha once de belirttiğimiz gibi bazı sunucu programların belirli 'port' lardan hizmet verdiği bilindiği icin, bu sunuculara bağlanmak
istediğimizde, 'port' numarasını vermeye gerek kalmaz. Bu durumda yukardaki satır
telnet 144.122.156.104
şeklinde de yazılabilir.
Bilgisayar ilk acıldığında uzerinde calışan sunucu programlar otomatik olarak acılış dosyalarından calıştırılabildiği gibi genel kullanım biraz daha farklıdır.
Değişik 'port' ları dinleyen bircok sunucu programın, hicbir istemciye cevap vermediği durumda bile, bircok sistem kaynağını gereksiz
yere kullandığı duşunulerek, 'inetd' adında istemcilerle diğer sunucu programlar arasında koordinasyonu sağlayan bir sunucu program duşunulmuştur.
Acılış dosyalarından da başlatılabilen bu sunucu tek başına butun 'port' ları dinler ve herhangi birisine istek geldiği zaman aşağıdaki proseduru takip eder:
1- /etc/services dosyasından ilgili 'port' a hizmet veren servis ismini bulur.
2- konfigurasyon dosyası olan '/etc/inetd.conf' dan bu servis icin gelen isteğe nasıl cevap vereceğini belirler ve gerekli programı calıştırır.
3- bir istek geldiği zaman tekrar 1`e doner.
Bir ornekle anlatmadan once tipik bir
'/etc/services' ve '/etc/inetd.conf' dosyasının iceriğine bakalım.
tcpmux 1/tcp
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
ktelnet 1023/tcp #Added by AS 5/5/98
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
name 42/udp nameserver
whois 43/tcp nicname # usually to sri-nic
..
..
# Ftp and telnet are standard Internet services.
#
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
shell stream tcp nowait root /usr/sbin/tcpd in.rshd
login stream tcp nowait root /usr/sbin/tcpd in.rlogind
exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
comsat dgram udp wait root /usr/sbin/in.comsat in.comsat
talk dgram udp wait root /usr/sbin/in.talkd in.talkd
..
..
23. 'port' a bir istek geldiğinde, 'inetd' '/etc/services' dosyasına bakarak bu 'port' numarasına denk gelen servis ismini ('telnet') bulur.
Daha sonra '/etc/inetd.conf' dosyasına bakarak bu servise denk gelen sunucu programı ('/usr/sbin/in.telnetd') calıştırır.
Herhangi bir 'port' u dinleyen program bir iş yaparken, başka bir deyişle dinlediği 'port' a gelen bilgileri almaya hazır
değilken, eğer bu 'port' 'buffered' ise gelen bilgiler kaybolmaz.
İşletim sistemi icerisine yerleştirilen programlar sayesinde kapasitesi sınırlı kuyruklara yerleştirilerek ilgili sunucu programın alması icin bekletilirler.
Internet uzerinde herhangi bir IP adresi uzerindeki 'port' dan hizmet veren sunucu programa bağlantı yapmak isteyen istemci
program, sunucu programın cevaplarını (reply) yollamak icin bağlantı kuracağı kendi uzerindeki 'port' numarasını da sunucu programa gonderir.
'Port' numarası genellikle 2 'byte' olarak tutulur. Bu nedenle 65536 adet 'port' numaralamak mumkundur.
Genellikle 1024`den kucuk olan 'port' numaraları ozel hakları olan kullanıcılar (root) tarafından kullanılırken, buyuk olanlar genel kullanıma acıktır.
__________________
Port Nedir ?
İnternet Servis Sağlayıcıları0 Mesaj
●28 Görüntüleme