bilgiz.org

Tcp/ip ipuçları

  • 1- Diagnostik Araçlar: PING(Packet Internet Groper)
  • IPCONFIG(IP Configuration)
  • ARP(Address Resolution Protocol)
  • HOSTNAME
  • NSLOOKUP(Name Server Lookup)
  • Uzaktan çalıştırma(yürütme) araçları
  • Yazdırma yardımcı programları
  • TCP, verinin alıcıya ulaşmasını garanti eder mi
  • Ağ üzerindeki TCP/IP adreslerinin DHCP ile yönetilmesi



  • Tarih29.12.2017
    Büyüklüğü44.87 Kb.

    Indir 44.87 Kb.

    TCP/IP ipuçları

    TCP/IP’yi herkes kullanmakta. Onsuz İnternet olamazdı. İnternet dışında da kurumlar ağlarında TCP/IP’yi kullanmaktalar. TCP/IP, “Transmission Control Protocol/Internet Protocol)” nın kısaltmasıdır. ARPA’nın (A.B.D. Advanced Research Projects Agency) 1970’lerde yürüttüğü bir proje sonunda geliştirilmiştir. ARPA’nın paket anahtarlama teknolojilerini desteklemesi sonucunda, ilk önce “Network Control Protocol (NCP)” doğmuştur. Daha sonra 1981’de TCP için RFC 793 dokümanı yayınlanmıştır. RFC’ler “Internet Engineering Task Force (IETF)”nin Internet standartları için oluşturduğu dokümanlardır. Bunun sonucunda ARPANET doğmuştur. 1981’de IP’ye yönelik RFC 791 standardı yayınlanmıştır. 1982’ye gelindiğinde ARPA kuruluşu, TCP/IP ikilisini oluşturarak, ARPANET’i bu ikili protokol üzerine kurmuştur. Daha sonra, Internet’e yönelik gelecek standartları öngörmek üzere, “Internet Architecture Board (IAB)” oluşturulmuştur. Gerisini siz biliyorsunuz. Ondan sonra, “.com”lar yağmur gibi yağmıştır. Bu tarihsel girişden sonra, teknik konulara girebiliriz.

    TCP/IP protokol takımı, çeşitli protokollerden oluşur ve buna TCP/IP yığın (stack) modeli adı verilir. Bunlar:


    1. Uygulama Katmanı

    • FTP (File Transfer Protocol)

    • HTTP (Hypertext Transfer Protocol)

    • SMTP (Simple Mail Transfer Protocol)

    1. Ulaştırma Katmanı

    • TCP (Transmission Control Protocol)

    • UDP (User Datagram Protocol)

    1. Internet Katmanı

    • ARP (Address Resolution Protocol)

    • RARP (Reverse Address Resolution Protocol)

    • IP (Internet Protocol)

    • ICMP (Internet Control Message Protocol)

    • IGMP (Internet Group Membership Protocol)

    • RIP (Routing Information Protocol)

    1. Ağ erişim katmanı

    • Fiziksel iletim katmanı (kategori 5, vs.)

    • Çerçeve oluşturma (framing) Protokolleri (Ethernet, vs.)

    Uygulama katmanında koşturulan servisler, hemen altındaki ulaştırma katmanından yararlanır ve paketler gideceği yere TCP ve UDP ile ulaştırılır. DNS (Domain Name System), FTP, HTTP, Telnet, SMTP, SNMP (Simple Network Management Protocol) gibi birçok uygulama bu katmanda çalışır. Microsoft mimarisinde, “Windows Sockets” de burada çalışır. Ulaştırma katmanı, bilgisayarlar arasında iletişimi sağlar. TCP, IP’nin antitezi gibidir. TCP’de, hızdan ödün vermek pahasına paketlerin garantili bir şekilde karşı uca ulaşması sağlatılır. Fakat bunu gerçeklerken, bağlantı kurma, bir dosyayı yönetilebilir paketlere ayrıştırma, alıcı uçta paketleri tekrar biraraya getirme ve paketin karşı uçtan alındığını belirten bir “alındı (ACK)” mesajı gönderilmesi, gibi işler için asıl veriye genel amaçlı veriler (overhead) eklenir.

    UDP, IP gibi paketlerin gönderimi garanti altına almaz, fakat genel amaçlı veri eklentileri azdır. Alındının gönderene teyidine ve veri kaybı halinde tekrar iletime gerek kalmaz. UDP, RealNetworks RealPlayer’ın kullandığı “streaming media” teknolojisine benzer. Demek ki, UDP hızlı olmasına karşılık, performansı kötüdür. Internet katmanı, paket ve datagram’ların yönlendirilmesinden ve ağ erişim katmanının onları nereye göndereceğinden de sorumludur. Bunu yaparken, MAC (Media Access Control) adreslerini elde etmek için ARP’den ve disksiz bilgisayarlara göndermek için RARP’dan yararlanır.

    ICMP, kötü veri gönderimlerini, sorunları ve oluşan hataları, iletişim kurmaya çalışan bilgisayarlara doğru tekrarlar. Herkesin dinleme modunda bekleyerek, tek noktadan gönderilen verileri aldığı “multicasting”de, IGMP, veriyi sağlayan protokoldür. RIP, ağ üzerinden yönlendirme işini halleder. Paketleri alıcısına nasıl göndereceğinin yolunu bulur. IP, paketlerin alıcı uca gönderilmesini garanti etmez, fakat elinden geleni yapar. Ağ erişim katmanı, veri çerçevelerinin fiziksel iletim ortamına bırakıldığı noktalardır.

    TCP/IP araç ve yardımcı yazılımları 4 grupta toplanabilir: Diagnostik(tanı), Veri aktarımı, Uzaktan yürütme(çalıştırma) ve yazdırma. Herbir grubun içinde de, her bir gruba özgü altgruplar mevcuttur.



    1- Diagnostik Araçlar:

    PING(Packet Internet Groper)- en basit ve en yaygın kullanılan tanı aracıdır. Komut satırından çalışır. PING komutu, belirli bir bilgisayara doğru yöneltilmiş dört adet ICMP paketi gönderir. Komut, ilgili bilgisayardan bir eko yanıt göndermesini ister. Komutun kullanma sentaksı şu şekildedir:

    PING xxx.xxx.xxx.xxx veya PING isim.com

    Burada, xxx.xxx.xxx.xxx karşı uçtaki bilgisayarın IP adresini ve “isim.com” bilgisayar sisteminin alan adını(domain name) gösterir. Eğer sınama işlemi başarılı ise, yanıt alınır. Eğer başarılı değilse, yolda başarısız olan her bir paket için “Request timed out” mesajı alınır. PING komutu ile kullanılan bazı yaygın anahtarlar(komutun sonuna eklenen seçime bağlı parametreler) şunlardır:

    -a Bilgisayar isimlerine karşı gelen adresleri çözümler.

    -t Belirli bir bilgisayarı, siz bitirinceye kadar PING’ler. Buna “Ping of Death” adı da verilir.

    -n Gönderilecek eko paketlerinin sayısını belirtir. Varsayılan değer 4’dür.

    -l Eko paketlerinin büyüklüğünü belirler. Varsayılan değer 64 byte’dır.

    PING komutunun en yararlı kullanımlarından biri, yerel makinada TCP/IP protokolünün kurulu olup olmadığını kontrol eden biçimidir. Bunun için komut satırında:

    PING 127.0.0.1 veya PING localhost

    Yazılır. Komut, ağa doğru herhangi bir paket göndermeden, “geriye doğru döngü(loopback)” adresine ve sonra da geriye doğru paket gönderir. Eğer başarılı bir yanıt alınırsa, o yerel makinada TCP/IP’nin kurulu olduğu anlaşılır.



    IPCONFIG(IP Configuration)- DHCP(Dynamic Host Configuration Protocol) ağlarında en çok kullanılan bir komuttur. DHCP, ağ üzerindeki istemcilerin IP adreslerini yönetmek için kullanılan bir tekniktir. IPCONFIG, NT işletim sistemlerinde kullanılır. Bunun Windows 9x’deki benzeri, WINIPCFG’dir. Bu iki komut, TCP/IP konfigürasyonuyla ilgili gerekli bilgileri verir. Bunlar, IP adresi, “Altağ maskesi(subnet mask)” ve “varsayılan geçityolu(default gateway)”dur. Komut ile birlikte aşağıdaki anahtarlar(parametreler) kullanılabilir:

    /all IP konfigürasyonu ile ilgili tüm bilgileri verir.

    /release (x) DHCP ağında, IP adres atanmasını ortadan kaldırarak, TCP/IP iletişimini iptal eder.

    /renew (x) Bir DHCP ağı üzerinde tekrardan dinamik olarak atanan bir IP adresi elde eder.

    Burada (x), ağ adaptörünü göstermektedir.

    ROUTE- Bu komut, yollar ve yerel seviyede yönlendirmeler hakkında bilinmek istenen herşey hakkında bilgi verir. “Route” komutu, gözlemlenecek veriler ortaya koymaktan başka, yönlendirme üzerinde değişiklik yapılmasına da olanak sağlar. Komut ile kullanılabilecek en yaygın anahtarlar şunlardır:

    ROUTE ADD MASK Bir yol ekler

    ROUTE –p ADD MASK Devamlı bir yol ekler

    ROUTE DELETE Bir yolu siler

    ROUTE CHANGE Bir yolu değiştirir

    ROUTE PRINT Yönlendirme tablosunu gösterir

    ROUTE –f Tüm yolları siler

    TRACERT- Oldukça kullanılışlı bir komuttur. Bu komut, yerel bilgisayardan ulaşılmak istenen bilgisayara giden yolu izleyerek bulur. Bu komut yardımıyla arızalı veya yavaş bağlantılar hakkında bilgi toplanabilir ve hedef bilgisayara gönderilen paketlerin hangi yol üzerinden gittiğini belirler. Komut ile birlikte kullanılan yaygın parametreler şunlardır:

    -d IP adreslere karşı düşen bilgisayar isimlerinin(host name) çözümlenme işlemini iptal ederek, hızlı izleme yaptırır.

    -h Bu parametreden sonra bir sayı girilmelidir. Belirli bir hedef bilgisayara, belirtilen sayı kadar “hop(sıçrama noktası)” üzerinden geçerek ulaşırken izlenen yol bilgisini verir

    -w Yanıt almak için beklenmesi gereken süre.



    ARP(Address Resolution Protocol)- Adres çözümleme protokolü(ARP), IP adreslerine karşı düşen MAC(Media Access Control) adreslerini çözümleyecektir. Bu şekilde, ağ konfigürasyonları derhal ortaya çıkarılabilir. Komut ile yaygın kullanılan bazı parametreler şunlardır:

    ARP -g Önbellekte(cache) tutulan IP adreslerine karşı düşen MAC adresleri satırlarını gösterir.

    ARP -d ARP listesinde belirtilen (IP adresi) ‘sini siler.

    ARP –a Belirli bir bilgisayara ait inet_addr, önbelleğe eklenir. , hex olarak MAC adresidir(donanımsal adres).



    HOSTNAME- Yerel bilgisayarın ismini verir. Eğer bu bilgisayardan PING atılacaksa, hostname komutu yararlı olabilir.

    NETSTAT- Bu komut, ağ protokol istatistikleri ve onların o andaki değerleri hakkında bilgi sağlar. Bu şekilde, TCP, IP, ICMP ve UDP protokolleri hakkında ayrıntılı bilgilere ulaşılabilir. NETSTAT komutu ile kullanılabilecek bazı anahtarlar şunlardır:

    -a Tüm bağlantıları ve açık kapıları(port) gösterir.

    -n Bağlantı ve açık kapıları nümerik olarak göstermesinden başka, -a ile aynıdır.

    -p Ulaştırma katmanı protokolleri(TCP, UDP) için protokol bilgilerini gösterir.

    -s TCP, IP, UDP ve ICMP için istatistikleri gösterir.

    -r Aktif bağlantıları ve yolları gösterir.



    NBTSTAT- Bu komut, NETSTAT gibi ağ protokol istatistikleri hakkında bilgi verir. Fakat NBTSTAT fazladan olarak, TCP/IP üzerinde NetBIOS istatistiklerini sağlar, LMHOSTS önbelleğini (cache) günceller veya kayıtlı isminizi ve kapsam ID’nizi belirler. Komut ile kullanılabilen bazı parametreler şunlardır:

    -a Bilgisayar ismi yardımıyla, uzaktaki bir bilgisayarın isim tablosunu sağlar.

    -A IP adresi yardımıyla, uzaktaki bir bilgisayarın isim tablosunu sağlar.

    -n Bilgisayarın isim tablosunu sağlar.

    -c Uzaktaki bir önbelleğin(cache), IP adresi ve isim tablosunu sağlar.

    -r WINS ile ilgili bir komut.

    -R LMHOSTS dosyasından alınan uzaktaki bir önbelleğin isim tablosunu temizler(“purge” işlemi) ve yeniden yükler(“reload” işlemi)

    NSLOOKUP(Name Server Lookup)- Temel olarak DNS veritabanına girilmiş değerlere bakar. Komut ile kullanılabilecek bazı anahtarlar şunlardır:

    Option aşağıdakiler gibi komutları belirlemede kullanılır.

    Finger uaktaki bilgisayar hakkında bilgileri gösterir. Son derece yararlıdır.

    Root Sizi DNS’in kök(root) bölgesine götürür.

    Server Varsayılan sunucuyu, belirtilen DNS sunucu olarak değiştirir.

    Ls DNS alan kayıtlarını gösterir.

    Set Çeşitli NSLOOKUP komutları(anahtarlar) için ayarları değiştirir

    Veri aktarma araçları- Ağ bilgiişlemde amaç verilerin paylaşımı ve verinin A noktasından B noktasına ve geriye doğru aktarılmasıdır. TCP/IP’de bunun yolu FTP(File Transfer Protocol)’dir. FTP ile hem indirme(uzaktaki bir noktadan kendi makinanıza doğru) hem de geriye doğru aktarma(kendi makinanızdan uzaktaki bilgisayara) yapılabilir. Veri aktarma komutları şunlardır:

    ?, help FTP komutlarını listeler.

    Ascii Dosya aktarımı varsayılan olarak, Ascii formatta gerçekleştirilir.

    Binary Dosya aktarımı “ikili(binary)” formatta gerçekleştirilir.

    Dir Bir dizindeki dosya ve altdizinleri listeler.

    Cd Dizinleri değiştirir.

    Delete Dosyaları siler.

    Get Uzaktaki bilgisayardan alınan dosyalar yerel bilgisayara kopyalanır.(download)

    Put Yerel bilgisayardaki dosyayı alıp, uzaktaki bilgisayara kopyalar.(upload)

    Type Dosya aktarma tipini gösterir.

    Bye, quite Bir FTP oturumuna son verir.(Log off)

    TFTP(Trivial FTP), FTP ‘ye benzemesine karşılık, FTP kullanıcıdan onay mekanizması (authentication) isterken, TFTP onay istemez. TFTP, veriyi basitçe transfer eder.



    Uzaktan çalıştırma(yürütme) araçları- Uzaktaki bir bilgisayarı kontrol etmek veya etkileşmek için kullanılan bir arayüz olup, bu alanda en çok kullanılan protokol “Telnet”tir. Telnet’in sağladığı esneklikle, sunucu giriş/çıkış kapılarından(port) erişim sağlanabilir. RSH(Remote Shell) sayesinde, UNIX bilgisayarlara erişerek komutlar koşturulabilir. REXEC, uzaktaki bilgisayarlarda uzaktan çalıştırma olanağı sağlar. Normalde(varsayılan), Windows NT UNIX servisleri sağlamaz. Buna karşılık Microsoft 1998’in sonlarından beri, UNIX’e yönelik Windows NT servislerini ayrı olarak sağlamaktadır.

    Yazdırma yardımcı programları- Aşağıdaki komutlarla temel olarak “satır yazıcılara” yazdırılabilir.

    LPR(Line Printer Remote) Uzaktaki bir bilgisayarda yazdırır.

    LPD(Line Printer Daemon) LPR yazdırma görevlerini yürüten bilgisayar, çıkış aygıtına gönderir.

    LPQ(Line Printer Queue) Yazdırma kuyruğunda bekleyen görevler hakkında bilgi sağlar.



    TCP, verinin alıcıya ulaşmasını garanti eder mi?

    TCP protokolünün, verinin karşı uca gönderilmesini garanti ettiğine dair biraz yanlış bir kanı mevcuttur. Aslında hiçbir protokol böyle bir garantiyi sağlayamaz. Diyelim ki, TCP protokolü ile A ve B noktaları arasında iletişim kurmaya çalışıyoruz. Fakat tam iletim sürerken, iletim yolundaki halkalardan biri koptu. Böyle bir durumda TCP ne yapsın? TCP’nin yapabildiği şey, veriyi karşı uca ulaştırabilmek veya ulaştırma işlevinin başarısız kaldığını belirtebilmektir. Fakat, verinin ne kadarının gönderilemediğini söyleyemez.

    TCP protokolü, bir “alındı(acknowledgement)” mekanizmasına göre çalışır. Göndericide bir TCP yığını(stack) ve alıcı uçta bir TCP yığını mevcuttur. Gönderici yığını, alıcı TCP yığınının gönderilen veriyi gerçekten aldığını onaylar. TCP paket başlığı(header) 32 bit’lik bir dizi(sıra) ve alındı numaraları içerir. Dizi numarası bağlantı kurulduğunda rastlantısal olarak ayarlanır ve daha sonra gönderilen her bir veri için arttırılır. Veri alındığında, alıcı uçtaki TCP yığını, beklenilen bir sonraki veri byte’ının alındı numarasına eşit olan bir paket gönderir. Süreci aşağıdaki örnek üzerinde inceleyelim:

    From kartal.1101 to sahin.telnet seq 37242, ack n.a., window 8760, 0.data bytes, flags Syn.

    From sahin.telnet to kartal.1101 seq 20865, ack 37243, window 11468, 0.data bytes, flags Syn Ack.

    From kartal.1101 to sahin.telnet seq 37243, ack 20866, 0.data bytes, flags Ack.

    From sahin.telnet to kartal.1101 seq 20866, ack 37243, window 11468, 6.data bytes, flags Push Ack.

    From kartal.1101 to sahin.telnet seq 37243, ack 20872, window 8754, 3.data bytes, flags Push Ack.

    From sahin.telnet to kartal.1101 seq 20872, ack 37246, window 11468, 0.data bytes, flags Ack.

    Yukarıdaki örnekte “kartal” adlı bilgisayar, ilk olarak 37242 dizi numarasını kullanarak “sahin” adlı bilgisayar ile iletişim kurmaktadır. Sahin makinası, kendi rastgele bağlantı kurmaya yönelik dizi numarasını(20865) yaratarak “kartal”a gönderir, aynı zamanda “kartal”ın gönderdiği pakete karşılık “37242+1=37243” alındı numarasını gönderir. Bu adımda gönderilen herhangi bir veri olmamasına karşılık(0.data), “Senkronizasyon bayrağı(syn flag)” veri byte’ı olarak nitelenir ve bu nedenle “alındı” sinyali geriye gönderilir. Sonraki adımlarda, “kartal” “sahin”e 37243 dizi numarası ile başlayan 3 byte’lık veri gönderir. “Sahin”, “37243+3=37246” dizi numarası ile “alındı” gönderir. Eğer kartal sahin’den, doğru alındı numarasına sahip paket alamazsa, veriyi tekrar gönderir. Dikkat edilecek olursa, bir bağlantıya ilişkin alıcı ve verici uçların dizi numaraları birbirinden bağımsızdır.

    TCP’yi karakterize eden bir diğer özellik, “pencereli(windowed)” bir protokol oluşudur.

    Pencereli bir protokol olması nedeniyle TCP, bir paket gönderdikten sonra “alındı (Acknowledgement)” için beklemesi gerekmez. Pencere boyutunun değeri, TCP paket başlığında belirtilir. Pencere boyutu, temel olarak tampon(buffer) büyüklüğüne işaret eder. Bu büyüklük karşı uca, veri göndermeyi durdurmadan önce daha ne kadar veri gönderebileceğini belirtir. Bağlantıyı kuran ilk TCP paketi, pencere büyüklüğü içerir. Bir önceki sayıda verilen iletişim örneği üzerinde açıklamalarımızı yapmaya çalışalım:

    From kartal.1101 to sahin.telnet seq 37242, ack n.a., window 8760, 0.data bytes, flags Syn.

    From sahin.telnet to kartal.1101 seq 20865, ack 37243, window 11468, 0.data bytes, flags Syn Ack.

    From kartal.1101 to sahin.telnet seq 37243, ack 20866, window 8760 0.data bytes, flags Ack.

    From sahin.telnet to kartal.1101 seq 20866, ack 37243, window 11468, 6.data bytes, flags Push Ack.

    From kartal.1101 to sahin.telnet seq 37243, ack 20872, window 8754, 3.data bytes, flags Push Ack.

    From sahin.telnet to kartal.1101 seq 20872, ack 37246, window 11468, 0.data bytes, flags Ack.

    Örnekte, ilk pencere boyutu 8760’dır. 3. Pakette “kartal”, “şahin”den gelen Syn paketine gene 8760 büyüklüğünde pencere ile “alındı(ack)” gönderir. Sonra “şahin”, 6 byte’lık veri ve “kartal” da aldığı veriye kaşılık “alındı” sinyali gönderir, fakat pencere büyüklüğünü 6 byte azaltır(8754). Bu, şu anlama gelir: “kartal” üzerindeki TCP yığını(stack) veriyi almış, fakat uygulama yazılımı henüz alınan veriyi okumamıştır. Eğer “kartal” üzerindeki uygulama veriyi okumayı bitirmiş olsaydı, “şahin” veri göndermeye devam edebilirdi. “Kartal”dan gelen her “alındı” onayı, pencereyi küçültecektir. Sonunda “şahin” 8760 byte’lık veri gönderecek ve “kartal” 0(sıfır) büyüklüğünde pencere ile “şahin”e alındı gönderecektir. Bu durum, pencerenin kapanması olarak nitelenir. Ayrıca “şahin” de “kartal”a ne kadar veri gönderdiğinin çetelesini tutar. “şahin”, “kartal”dan sıfır büyüklüğünde pencere “alındı” bilgisi gelmese bile, en son gönderimde ilan edilen 8754 byte’lık pencereden daha fazla veri göndermeyecektir.

    Tipik olarak pencere K byte’lık büyüklükte olup, gönderici çok sayıda paket gönderdikten sonra durup beklemeye başlar. Bu sırada alıcı, aldığı verilere karşılık vericiye “alındı” bilgisini göbderir ve uygulama yazılımı da tamponda biriken verileri okur. Bu yüzden, normal olarak pencere geniş bir biçimde açıktır. Eğer anlatılan bu “pencere” özelliği olmasaydı, TCP son derece yavaş olurdu.; veya birkaç “Mbps”den daha yavaş linkler üzerinde pratik olarak kullanılamazdı.

    Pencerenin sıfır büyüklüğüne erişip, kapanmasındaki nedenlerin başında, alıcıdaki uygulamanın disk I/O(giriş/çıkış) darboğazı nedeniyle bloke olmasıdır. Tipik olarak böyle bir durum geçicidir. Disk I/O darboğazı ortadan kalkıp, uygulamanın verileri almaya başlamasıyla, alıcının tamponu hızla boşaltılacaktır. Tamponun dolmasına yol açan bir diğer yaygın neden, uygulamada hata olması(bug) ve bu şekilde karşı uç ile bağlantıyı dikkate almamasıdır.

    Demekki her iki uçta da bir tamponlama işlemi oluşuyor ve tamponların dolmasıyla, birimler birbirini bir şekilde haberdar ediyor ve gönderip işlemi geçici bir süre durduruluyor. Gönderici TCP yığını yerel(lokal) tampon alanına sahip olduğu sürece, uygulamadan veri kabul etmeye devam eder ve tamponlama işlemini sürdürür. Bu sırada uygulama herşeyin normal olduğunu düşünür. Yerel tampon alanı dolduğunda, uygulama ya gönder çağrısını engeller(“blocking” modda koşuyorsa) ya da EWOULDBLOCK hatası gönderir(eğer “non-blocking” modda koşuyorsa). Böyle bir durumda uygulama, bir hata oluştuğunu fakat ölümcül bir hata(fatal error) olmadığını varsayar. Durum geçici bir süre devam eder, sonra tamponlar temizlenip boşalır ve veri akışı devam eder.

    Eğer gönderici TCP yığını, alıcı TCP yığınından “alındı” onayı alamazsa, veriyi tekrar gönderir(re-send). Verici, veriyi her tekrar gönderişinde gittikçe uzayan sürelerle “alındı” onayı için bekler ve sonunda, pes eder. Vericinin, veriyi kaç defa göndereceği ve her seferinde ne kadar bekleyeceği, TCP yığınlarına göre değişir. Fakat, ilk gönderilimden yaklaşık olarak 5-10 dakika sonra, işlemi durdurup, bağlantıyı koparacaktır. Bağlantı koparıldığında, tamponlar boşaltılacaktır. Tekrar bağlantı yapılıp, veri gönderme işlemi yeniden başlatıldığında, uygulama, sorundan önce ne kadar veriyi alıp almadığını(yani “alındı” onayı gönderildiğini) bilemeyecektir. Bu yüzden, TCP’nin, verinin gönderilmesini garanti ettiği kanısı biraz yanlıştır.

    Ağ üzerindeki TCP/IP adreslerinin DHCP ile yönetilmesi

    Başlatma fazında istemci, TCP/IP adresine gerek duyuncaya kadar normal bir şekilde açılır (“boot” işlemi). Bundan sonra istemci boş bir TCP/IP adresi yükler ve ağa doğru DHCPDISCOVER paketi yayınlar(“broadcast” işlemi). DHCPDISCOVER paketi, işistasyonunun ismini, MAC(Media Access Control) adresini ve istemcinin sunucudan elde etmiş olduğu son TCP/IP adresini içerir. Bu bilgilerle sunucunun, istemciye, son istemde bulunduğu sırada vermiş olduğu aynı adresi verme olasılığı mevcuttur.

    Aktif bir DHCP sunucu DHCPDISCOVER paketini duyduğunda, “seçme” durumu (selection state) başlar. Sunucu listesinden bir adresi rezerve eder ve işistasyonuna doğru bir yanıt paketi yayınlar. DHCPOFFER paketi olarak adlandırılan bu yanıt, işistasyonu için önerilen bir TCP/IP adresini, işistasyonunun MAC adresini, altağ(subnet) maskesini, adresin kiralanma süresini ve adresi veren sunucunun TCP/IP adresini içerir.

    Eğer istemci başlatma sırasında DHCPOFFER paketini elde edemezse, beş dakikalık bir periyot içinde dört kere daha denemede bulunur. Dört kere yapılan tekrar denemeler, rastlantısal olarak gerçekleştirilir. Eğer işistasyonu hiçbirinde yanıt alamazsa, beş dakika bekler ve süreç yeniden başlar.

    Eğer ağ üzerinde birden fazla DHCP sunucu varsa istemci, birden fazla DHCPOFFER paketi alabilir. Eğer böyle birşey olursa istemci, tekliflerden birini seçecek ve diğerlerini iptal edecektir. İstemci tipik olarak ilk teklifi seçer. Fakat bu durum kesin değildir.

    İstemci DHCPOFFER paketi alıp, bir TCP/IP adresini kabul ettikten sonra, “isteme (requesting)” fazı başlar. İstemci, istemciye adresi sağlayan sunucunun TCP/IP adresini içeren DHCPREQUEST paketini yaratır. Eğer istemci, varsayılan geçityolu(default gateway), WINS veya DNS adresi gibi herhangi bir ek konfigürasyon bilgisine gerek duyarsa, bu istekleri DHCPREQUEST paketi içinde bulundurur. “İsteme” fazını tamamlamak üzere, istemci DHCPREQUEST paketini ağ üzerindeki tüm DHCP sunucularına doğru yayınlar. Paketi alan sunucular, kendi adresi ile paket içinde bulunan sunucu adresini karşılaştırır. Eğer bu adresler uyuşmazsa, sunucu kendi DHCPOFFER paketi ile istemci için rezerve etmiş olduğu adresi, serbest bırakır. Eğer bir sunucu kendi TCP/IP adresi ile DHCPREQUEST paketi içindeki adresin uyuştuğunu görürse, istemciye DHCPACK paketi ile yanıt verir. Bu paket içinde, sunucunun istemciye sunduğu TCP/IP kiralama bilgisi ve istemcinin istediği diğer ek bilgiler bulunur.

    İstemci DHCPACK paketini aldıktan sonra, “bağlama(binding)” fazını başlatır. Bu fazda istemci, kendisine atanan adresi kendi ağ kartı üzerinde koşan TCP/IP protokolüne bağlar (“bind” işlemi). Bundan sonra istemci sistemi, “boot” işlemini sona erdirir. Bu noktada istemci, TCP/IP kullanarak ağ üzerinde iletişim kurabilir. İşistasyonu atanan TCP/IP adresini, kiralama süresince(bu ayarlanabilir) veya istemci makinasını kapatana değin, kullanmaya devam edebilir. Eğer istemci sürekli olarak çalışır durumda tutulursa, eninde sonunda kiralama süresi sona erecektir.

    İstemci, kendisine atanan kiralama süresinin %50’sine ulaştığında, “yenileme(renewal)” fazına girecektir. İstemci doğrudan doğruya, kendisine TCP/IP adresini vermiş olan sunucuya DHCPREQUEST paketi gönderecektir. DHCP sunucu kiralama kontratını yeniler ve geriye DHCPACK paketi gönderir. Bu paket içinde yeni kiralama süresi ve ilk kiralamadan beri değişmiş olan herhangi bir konfigürasyon bilgisi bulunur. Eğer istemci kendisine kiralamayı yapan sunucu ile iletişim kuramazsa, bir hata mesajı görüntüleyecek, fakat normal çalışmasına devam edecektir. İstemcinin kiralama süresinin %87.5’u geçtiğinde, istemci panikleyerek, “yeniden bağlama(rebinding)” fazına girer.



    “Yeniden bağlama” fazında istemci, kendisine yanıt verecek herhangi bir DHCP sunucuya doğru DHCPREQUEST paketleri yayınlamaya başlar. İstemciye ilk başta TCP/IP adresini atamış olan sunucu DHCPACK paketi ile yanıt vererek, istemcinin başta almış olduğu adresi kullanmasına olanak sağlayabilir; veya ilgili sunucu DHCPNAK paketi göndererek, istemcinin TCP/IP’yi yeniden başlatmasına ve bu şekilde yeniden TCP/IP adresi ve kiralama süresi almasına yol açabilir. Eğer istemci DHCPNAK paketini kabul ederse, en başa “başlatma” fazına döner.

    Eğer istemci, kira süresi bitmeden bir DHCP sunucuya erişemezse, kendisine atanan TCP/IP adresini kullanmayı durdurmalıdır. Bu noktadan sonra artık, ağ üzerindeki diğer işistasyonları ile iletişim kurmak için TCP/IP protokolünü kullanamaz. Buna karşılık istemci, “başlatma” fazına girerek, yeni bir kiralama yapabilmek için yeni baştan DHCPREQUEST paketleri yayınlamaya başlayıp, girişimde bulunabilir.






        Ana sayfa


    Tcp/ip ipuçları

    Indir 44.87 Kb.