Port Nedir?

Konu 'Bilişim Teknolojileri' bölümünde Moderatör Muhammet tarafından paylaşıldı.

  1. Moderatör Muhammet

    Moderatör Muhammet Muhammet Dilmaç Yönetici Moderatör

    Katılım:
    22 Şubat 2010
    Mesajlar:
    828
    Beğenileri:
    565
    Ödül Puanları:
    93
    Yer:
    Karabük

    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 progr***** (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
    ODTU Bilgi İşlem Daire Başkanlığı
    Internet Teknolojileri Güvenliği
    (security@metu.edu.tr 24/12/2001)

    Kaynak:

    Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...

    Özel Üye Esra bunu beğendi.

Sayfayı Paylaş