Jump to content

Port Nedir?


exit

Recommended Posts

Port Nedir?

Bilgisayar ve telekomünikasyon dünyasında, "port" denildiği zaman akla ilk

gelen genellikle fiziksel bağlantıda kullanılan ara birimlerdir. Bu tür "port"

lar üzerinden bağlanmış herhangi bir makinaya "data" gönderilebilir ve bu

makinanın işleyişi kontrol edilebilir. Örneğ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

gönderilir ve bu tür "port" lara genellikle tarayıcı (scanner) gibi cihazlar

takılır. Her defasında birden çok bit göndermek içinse "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 çoğunlukla İnternet dünyasında kullanılan "port"

kavramı ise yukardaki tanımdan biraz daha soyut bir kavramdir. Bu anlamda "port"

(ki dokümainin sonuna kadar "port" bu anlamda kullanılacaktir) herhangi bir

fiziksel bağlantı yeri değil, mantıksal bir bağlanma şeklidir. Şöyle ki:

Günümüz dünyasında birçok işletim sistemi birden fazla programın aynı anda

çalışmasına izin vermektedir. Bu programlardan bazıları dışarıdan gelen

istekleri (istemci-client/request) kabul etmekte ve uygun gördüklerine cevap

(sunucu-server/response) vermektedir. Sunucu programları çalışan bilgisayarlara

birer adres verilir (bknz. IP adresleri) ve bu adresler kullanılarak istenilen

bilgisayarlara ulaşılır. Peki, ulaşılan bir bilgisayar üzerindeki hangi sunucu

programdan hizmet alınmak istendiği nasıl belirtilir?

Bunun için bilgisayarlar üzerinde birtakım soyut bağlantı noktaları

tanımlanır ve herbirine, adresleyebilmek için positif bir sayı verilir (port

numarası). Bazı sunucu programları, daha önce herkes tarafından bilinen "port"

lardan hizmet verirken (örn: telnet->23. port) bazıları da sunucu programını

çalıştıran kişinin türüne ve isteğine göre değişik "port" lardan hizmet verir.

Dolayısıyla, ağ üzerindeki herhangi bir sunucu programa bağlanmak istenildiğin-

de, programın çalıştığı bilgisayarın adresinin yanında istekleri kabul ettiği

"port" numarasını da vermek gerekir. Örnek verecek olursak:

144.122.156.104 "IP" adresine sahip makinada (orca) çalışan "telnet"

sunucu programına (23. "port" dan hizmet veren) bağlanmak için aşağıdaki satır

yazılır.

telnet 144.122.156.104 23

Daha önce de belirttiğimiz gibi bazı sunucu programların belirli "port"

lardan hizmet verdiği bilindiği için, 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.

INETD (Süper Sunucu):

Bilgisayar ilk açıldığında üzerinde çalışan sunucu programlar otomatik

olarak açılış dosyalarından çalıştırılabildiği gibi genel kullanım biraz daha

farklıdır.

Değişik "port" ları dinleyen birçok sunucu programın, hiçbir istemciye

cevap vermediği durumda bile, birçok sistem kaynağını gereksiz yere kullandığı

düşünülerek, "inetd" adında istemcilerle diğer sunucu programlar arasında

koordinasyonu sağlayan bir sunucu program düşünülmüştür. Açılış dosyalarından

da başlatılabilen bu sunucu tek başına bütün "port" ları dinler ve herhangi

birisine istek geldiği zaman aşağıdaki prosedürü takip eder:

1- /etc/services dosyasından ilgili "port" a hizmet veren servis ismini

bulur.

2- konfigürasyon dosyası olan "/etc/inetd.conf" dan bu servis için gelen

isteğe nasıl cevap vereceğini belirler ve gerekli programı çalıştırır.

3- bir istek geldiği zaman tekrar 1'e döner.

Bir örnekle anlatmadan önce tipik bir "/etc/services" ve "/etc/inetd.conf"

dosyasının içeriğine bakalım.

<"/etc/services">

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

.

.

.

<"/etc/inetd.conf">

# 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") çalıştırır.

BUFFERED PORTS:

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 içerisine yerleştiri-

len programlar sayesinde kapasitesi sınırlı kuyruklara yerleştirilerek ilgili

sunucu programın alması için bekletilirler.

Internet üzerinde herhangi bir IP adresi üzerindeki "port" dan hizmet veren

sunucu programa bağlantı yapmak isteyen istemci program, sunucu programın

çevaplarını (reply) yollamak için bağlantı kuracağı kendi üzerindeki "port"

numarasını da sunucu programa gönderir.

"Port" numarası genellikle 2 "byte" olarak tutulur. Bu nedenle 65536 adet

"port" numaralamak mümkündür. Genellikle 1024'den küçük olan "port" numaraları

özel hakları olan kullanıcılar (root) tarafından kullanılırken, büyük olanlar

genel kullanıma açıktır.

Mustafa ATAKAN

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...