İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 10: ADRES ÇÖZÜMLEME. ADRES ÇÖZÜMLEME PROTOKOLÜ. IP DATAGRAMLARI. Türkçe (İngilizce) karşılıklar Adres çözümleme (Address resolution) Ayarlanabilir (Reconfigurable) Dağıtılmış (distributed) Parçalama (fragmentation) Birleştirme (reassembly) Bölüm Hedefi Bu bölümü bitirdiğinizde • Adres çözümlemeyi • Adres Çözümleme Protokolünü • IP datagramlarının kapsüllenmesini • MTU’yu • Datagramların parçalanmasını ve • Datagramların birleştirilmesini öğrenmiş olacaksınız. 9.1 Adres Çözümleme Yönlendiriciler kendilerine gelen IP paketlerini varış adreslerine bakarak bir sonraki düğüme gönderirler ancak bu aktarım sırasında paketlerin farklı özelliklere sahip altağlar üzerinden geçmesi söz konusu olabilir. Ethernet ortamında yaratılmış bir paket daha sonra bir FDDI ağından, daha sonra bir ATM ağından geçebilir. Üstteki IP yapısına destek veren alttaki ağlara fiziksel ağlar (ya da altağlar) diyebiliriz. Fiziksel ağların da kendilerine has bir adresleme ve çerçeve mekanizması vardır. Örneğin Ethernet ağlarına bağlı her bilgisayarın bir Ethernet adresi vardır. Bu adres üretim sırasında değişmeyecek şekilde Ethernet kartının üzerine kaydedilir. Bu adrese fiziksel adres, donanım adresi ya da mac (medium access control) adresi denir. Bu durumda bir IP paketi her geçtiği fiziksel ağ üzerinde o ağın çerçevesinin içine konur ve varış IP adresine ulaşabilecek şekilde fiziksel ağ içinde yönlendirilir. Adres çözümleme IP adresine bakarak ilgili fiziksel adresin bulunmasıdır. Kaynak ve varış düğümleri aynı fiziksel ağ üzerinde ise varış düğümünün adresi tam olarak çözümlenebilir (Şekil 10.1’deki A ve B düğümleri gibi). İki düğüm farklı fiziksel ağlar üzerindeyse (A ve C düğümleri gibi) fiziksel adres çözümlenemez ve yaratılan çerçeve diğer ağlarla bağlantı sağlayan yönlendiricilere gönderilir ve adres çözümlemenin ilgili yönlendirici tarafından yapılması beklenir. A ile D arasındaki haberleşmede, D farklı bir ağda olduğu için paket önce Y1 (Yönlendirici 1), sonra Y2’ye gönderilir. Adres çözümlemesi aşağıdaki gibidir: -A düğümü, Y1’in adresini çözümler, İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ -Y1, Y2’nin adresini çözümler ve -Y2 de D’nin adresini çözümler. Şekil 10.1 Üç altağdan oluşmuş bir ağ 10.2 Adres Çözümleme Teknikleri Kullanılan protokol ve donanım adresleme yöntemine bağlı olarak adres çözümleme teknikleri farklılık gösterebilir. Farklı ağ tiplerine bağlanmış bir yönlendirici ya da düğüm her bir ağ üzerinde o ortama uygun bir adres çözümleme tekniği kullanabilir. Adres çözümleme tekniklerini üç başlık altında toplayabiliriz: 1) tablodan bakma, 2) hesaplama ve 3) mesajlaşma. 10.2.1 Tablodan Bakma Düğümlerde protokol ve fiziksel adreslerin saklandığı tablolar bulunur. Gerektiğinde bu tablolara bakılarak fiziksel adresler bulunur. Bu uygulaması en kolay adres çözümleme yöntemlerinden biridir. Yerel ağdaki bilgisayar sayısı az ise tablo ardışıl olarak incelenerek gerekli adres bulunur. Büyük tablolarda, daha hızlı erişim için indeksleme yapılabilir. Şekil 10.2’de bir Ethernet ağında IP adresi-donanım adresi çözümlemesi yapmak için kullanılan tablo verilmiştir. IP adresi 160.75.26.24 160.75.26.31 160.75.26.34 160.75.26.40 160.75.26.47 160.75.26.50 160.75.26.55 160.75.26.57 160.75.26.60 Fiziksel Adres (Donanım Adresi) 00:02:44:66:D1:04 00:08:02:B9:19:68 00:02:44:65:DD:69 00:02:3F:68:06:E1 00:50:FC:5C:FD:8F 00:50:FC:69:1B:86 00:0E:7F:62:26:0D 00:20:ED:54:2B:75 00:04:75:c8:62:0d Şekil 10.2 Bir Ethernet ağında Ethernet adreslerinin, IP adresleri ile eşleştirilmesi İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Aynı yerel alan ağı içindeki düğümlerin protokol adresi (IP) aynı ağ adresine sahiptir. Bellekten tasarruf etmek için tabloda ağ adresini gösteren önekler tutulmayabilir. Tablodan bakma yönteminde, olası adres değişiklikleri tüm düğümlerin tablolarının değiştirilmesine neden olur. 10.2.2 Hesaplama Çoğu ağlarda statik fiziksel adres kullanılmasına karşın, bazı ağ teknolojileri ayarlanabilir (reconfigurable) adres kullanır. Ayarlanabilir adres kullanımında port adresleri dinamik olarak yaratılır. Bu ortamlarda, adres çözümlemede kolaylık olması için protokol adresinden hesaplanabilecek (türetilebilecek) fiziksel adresler kullanılabilir. Örneğin C sınıfı bir IP ağında, ağ adresindeki son sekizli fiziksel adres olarak kullanılabilir. Bu durumda fiziksel adresler basit bir şekilde bulunabilir (hesaplanabilir). IP Adresi 221.123.5.1 223.123.5.2 223.123.5.3 223.123.5.4 . . gibi Fiziksel adres (Donanım adresi) 1 2 3 4 Bu örnek için fiziksel adres aşağıdaki gibi hesaplanabilir. Fiziksel_adres = IP_adresi & 0xFF Hesaplama tekniğinde tablo tutmak gerekmediği için bellek harcanmaz. 10.2.3 Mesajlaşma Daha önceki yöntemlerde adres çözümleme tek bir bilgisayar üzerinde gerçeklenebilirdi. Mesajlaşma yaklaşımında ise adres çözümlemek için birden fazla düğüme ihtiyaç vardır. Mesajlaşma tekniği iki farklı şekilde gerçeklenebilir: 1) Ağdaki bilgisayarlardan biri adres çözümleme isteklerine cevap sunmakla görevlendirilmiştir. Fiziksel adrese ihtiyaç duyan düğümler isteklerini bu sunucuya gönderirler. Bazı durumlarda birden fazla adres çözümleme sunucusu olabilir. İstekler cevap gelene kadar sırasıyla farklı sunuculara gönderilir. 2) Belli bir adres çözümleyicisi yoktur. Ağ üzerindeki her bilgisayar adres çözümlemeye yardımcı olur. Dağıtılmış (distributed) bir yaklaşımdır. Adres çözümlemesi isteyen bilgisayar isteğini ağa yayar (broadcast). Yayılan mesajdaki protokol adresine sahip bilgisayar da mesaja cevap verir. Mesajlaşma tekniğinde fiziksel adresin bulunması diğer tekniklerden daha uzun sürer. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ 10.3 Adres Çözümleme Protokolü (Address Resolution Protocol, ARP) TCP/IP protokolü ağın yapısına bağlı olarak yukarıda tanıtılan adres çözümleme tekniklerinin hepsini kullanabilir. Gerekli durumlardaki mesajlaşmalarda kolaylık sağlaması için bir ARP mesaj yapısı oluşturulmuştur. Bu mesaj yapısı herhangi bir protokol için fiziksel/donanım adres çözümlemesi amaçlasa da genelde IP ağlarında Ethernet adresine ulaşmak için kullanılır. Kullanılan mesaj formatı aşağıda verilmiştir. 0 Donanım Adres Tipi Donanım Adr. Uzunl. 8 16 24 31 Protokol Adres Tipi Protokol Adr. Uzunl. Operasyon Gönderen Donanım Adresi (ilk dört sekizli) Gönderen Donanım Adresi (son iki sekizli) Gönderen Protokol Adresi (ilk iki sekizli) Gönderen Protokol Adresi (son iki sekizli) Varış Donanım Adresi (ilk iki sekizli) Varış Donanım Adresi (son dört sekizli) Varış Protokol Adresi (tümü) Donanım Adres Tipi, Ethernet için 1 değerini alır. Protokol Adres Tipi olarak IP için 0x0800 verilir. Operasyon alanı donanım adresi isteği için 1, cevabı için 2 değerini alır. Bir istek mesaji gönderilirken Varış Donanım Adresi’nin tamamı sıfır yapılır. Bir ARP mesaji gönderileceği ağın çerçevesinin veri alanına yerleştirilir (Şekil 10.3’deki gibi). Ethernet ortamında bu bir Ethernet çerçevesidir. ARP Mesajı Çerçeve Başlığı Çerçeve Veri Alanı Son ek Şekil 10.3 Bir ARP mesajının yerel alan ağı çerçevesi içinde taşınması Ethernet üzerinde adres çözümleme, mesajlaşma tekniği kullanılarak yapılır. ARP istek mesajının Ethernet ağı üzerinde yayılması ve ilgili bilgisayardan cevap mesajının gelmesi Şekil 10.4’te gösterilmiştir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ A B C D C D C D (a) A B (b) A B (c) Şekil 10.4 Ethernet’te mesajlaşarak donanım adresinin öğrenilmesi 10.4 Bir ARP Mesajının İşlenmesi Mesajlaşarak adres çözümlemesi nedeniyle, bir IP datagramını göndermeden önce Ethernet ağlarında iki paket daha aktarılır ve datagram’ın gönderileceği düğümün fiziksel adresi bulunur. Bu işlemi aynı varış düğümüne gidecek datagramlar için tekrar tekrar yapmak anlamsızdır. Bu nedenle bir IP_adresi-Donanım_adresi eşlemesi (binding) yapıldığında bu bilgi bir süre ARP cep belleğinde tutulur. Belli bir süre kullanılmamış adresler, bellekte yer sorunu varsa silinir. Bir ARP mesajı alan düğüm aşağıdaki işlemleri gerçekleştirir: 1) Mesaji gönderenin IP ve donanım adreslerinin ARP cep belleğinde bulunup bulunmadığı kontrol edilir. Varsa eski donanım adresinin yerine gelen mesajdaki donanım adresi yazılır. 2) Mesajın operasyon bölümüne bakılır: • İstek mesajı ise bir cevap mesajı hazırlanır. Cevap mesajında, gelen mesajdaki gönderen ve varış adreslerinin yerleri değiştirilir. Gönderen donanım adresi bölümüne mesajı hazırlayan bilgisayarın donanım adresi yazılır. Operasyon alanına 2 değeri verilir. • Cevap mesajı ise daha önce istek gönderilmiştir. Gelen bilgiler cep belleğe eklenir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Yayın yolu ile Ethernet ağına gönderilmiş ARP çerçevelerini bütün bilgisayarlar okuyabilirler ve içlerindeki protokol ve donanım adreslerine erişebilirler. Ancak yayınlanan tüm ARP mesajlarındaki verilerin ARP cep belleğine konması cep belleğin kısa sürede dolmasına neden olur. Bu nedenle, bilgisayarlar sadece kendilerini hedef alan ARP mesajları ile ilgilenirler. 10.5 Ters ARP (RARP, Reverse Address Resolution Protocol) RARP yeni çalıştırılmış (new-booted) bilgisayarların Ethernet adreslerini ağa duyurması ve kendi IP adreseini sormasını sağlar. Bunlar disksiz bilgisayarlardır. RARP sunucusu bu sorulara cevap verir. IP adres istekleri yerel alan ağı dışına çıkamadığı için isteklerin oluştuğu yerel alan ağlarında bir RARP sunucusu olması gerekir. Bu sorunu çözmek için alternative bir başlangıç protokolü (bootstrap) önerilmiştir: BOOTP. BOOTP UDP mesajları ile haberleşir bu nedenle yerel alan ağlarını geçebilir. BOOTP gerekli adresleri ve maskeyi disksiz bilgisayara bildirir. BOOTP’nin detayları RFC 951, 1048 ve 1084’te verilmiştir. BOOTP’nin dezavantajı IP ve Ethernet address eşlemesinin manuel olarak yapılmasıdır. Daha sonra önerilen DHCP (Dynamic Host Configuration Protocol) ile hem RARP’nin hem de BOOTP’nin yarattığı sorunların çözülmesi amaçlanmıştır. Şekil 10.5’te görüldüğü gibi, DHCP sunucusu olmayan yerel alan ağlarında DHCP aktarım ajanları (DHCP Relay Agents) bulunur. Şekil 10.5 DHCP’nin çalışması Yeni çalışan bilgisayar DHCP DISCOVER mesajı yayar. Bu mesaj DHCP aktarım ajanı tarafından alınır ve DHCP sunucusuna gönderilir. IP adresi otomatik olarak DHCP sunucusundan verilir. Verilen adresin ne süre ile aktif olacağı önemlidir. Burada kiralama (leasing) yöntemi kullanılır. Belli bir süre için verilen IP adreslerinin kullanım süresini uzatmak için kullanıcı bilgisayardan yenileme (renewal) isteği gitmelidir. Aksi halde süre bittiğinde bu adresler başka bilgisayarlara kiralanabilir. 10.6 IP Datagramlarının Kapsüllenmesi İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Yaratılan IP datagramları geçtikleri fiziksel ağlarda o ağın çerçevesi içinde taşınırlar. Bu işleme kapsülleme denir. Şekil 10.6’da gösterildiği gibi kapsüllenen bir datagram ilgili çerçeve yapısında çerçeve verisi bölümüne yerleştirilir. Çerçevelerin başlığı vardır ancak sonek bazı çerçevelerin yapısında bulunmayabilir. Çerçeve uzunluğu ve yapısı ağdan ağa değişim gösterir. Datagram Çerçeve Başlığı Çerçeve Veri Alanı Son ek Şekil 10.6 IP datagramlarının kapsüllenmesi Kapsülleme işlemi Şekil 10.7’de da gösterildiği gibi varış düğümüne ulaşana kadar geçilen her fiziksel ağda tekrarlanır. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 10.7 Pek çok altağ üzerinden geçen bir datagramın kapsüllenmesi 10.7 MTU (Maksimum Transmission Unit) Fiziksel bir ağın çerçevesindeki veri bölümünde taşıyabileceği en fazla veri miktarı bellidir. Bu miktara MTU (Maksimum Transmission Unit) denir. MTU değeri ağdan ağa değişebilir. Şekil 10.8’de farklı MTU değerlerine sahip bir altağ grubu gösterilmiştir. İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Şekil 10.8 Farklı MTU’lara sahip altağlar 10.8 Parçalama ve Birleştirme Şekil 10.8’deki altağların MTU değerleri sırası ile 1500, 1000 ve 2000 sekizlidir. Bu durumda A düğümünden gönderilen 1500 sekizli uzunluğundaki bir datagram, Ağ2’nin MTU değeri 1000 sekizli olduğu için Y1 yönlendiricisi tarafından parçalanacaktır. Ancak datagramın DF (Don’t Fragment) alanı bir değerine sahip ise datagram parçalanmaz. Parçalama (fragmentation) işlemi Şekil 10.9’da gösterildiği gibi yapılır. Datagram Veri Alanı IP Başlığı IP Başlığı1 Veri 1 IP Başlığı2 Veri 2 IP Başlığı3 Şekil 10.9 Bir IP datagramının parçalanması Parçalanan datagramdan oluşan parçalara orijinal datagramın IP başlığı kullanılarak yeni başlıklar hazırlanır. Bu başlıklar yardımı ile datagramın parçalandığı ve parçaların numaraları gösterilir. Son parça, MF alanına yazılmış sıfır değeri ile gösterilir. Parçalanmış paketlerden orijinal datagramı oluşturmaya birleştirme (reassembly) denir. Parçalanmış bir datagramın varış noktasından önce birleştirilmesi mümkün değildir. Veri 3 İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Varış noktasında, parçalanmış datagram, tanıtıcı alanı (identification) ve parça numaraları (fragment offset) yardımı ile birleştirilir. Bir datagramın parçaları varış noktasına sıraları bozulmuş olarak ulaşabilir. Çünkü parçalar farklı yolları takip edebilir. Bu durumda parçalar sıralanır. Parçalanmış bir datagramın parçaları varış noktasına ilerlerken tekrar parçalanabilir. Bir datagram ancak tüm parçaları geldiğinde birleştirilir. Varış düğümüne parçalanmış bir datagramın bir parçası geldiğinde bir sayaç (timer) çalıştırılır. Eğer sayacın süresi dolmadan tüm parçalar gelirse datagram oluşturulur. Aksi halde gelen parçalar yok edilir ve datagram oluşturulamaz. IP’de kaybolan parçaların tekrar gönderilmesi mümkün değildir.