E:Encountered a section with no Package: header, E:Problem
with MergeList
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_hardy-updates_multiverse_binary-i386_Packages,
E:The package lists or status file could not be parsed or opened.'
To solve this problem :
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
Bu blog, yazılım ağırlıklı olmak üzere çeşitli konular hakkında makaleler içermektedir. ( This blog includes various topics related to software development. )
Wednesday, May 21, 2014
Friday, May 16, 2014
ARP nedir - Address Resolution Protocol nedir - ARP konu anlatımı - Adres Çözümleme Protokolü nedir ?
addressing on LANs is via MAC addresses (Link layer üzerinde adresleme MAC adresi ile yapılır.)
addressing at the network layer is via, e.g., IP addresses(Network layer üzerinde adresleme IP adresleme ile yapılır.)
so we need to be able to translate between them.
this is done by the Address Resolution Protocol (ARP)
this takes an IP address on the same LAN and returns the corresponding MAC address(aynı LAN üzerindeki bir IP adresini alır ve bu ip adresine karşılık gelen MAC adresini return eder)
Bir interface'in ip adresini biliyoruz diyelim. Peki bu bilgiden yola çıkarak bu interface'in MAC adresini nasıl buluruz?
addressing at the network layer is via, e.g., IP addresses(Network layer üzerinde adresleme IP adresleme ile yapılır.)
so we need to be able to translate between them.
this is done by the Address Resolution Protocol (ARP)
this takes an IP address on the same LAN and returns the corresponding MAC address(aynı LAN üzerindeki bir IP adresini alır ve bu ip adresine karşılık gelen MAC adresini return eder)
Bir interface'in ip adresini biliyoruz diyelim. Peki bu bilgiden yola çıkarak bu interface'in MAC adresini nasıl buluruz?
"ARP table" ile.
LAN üzerindeki herbir IP node -yani tüm host ve router'lar-'ın memory'lerinde ARP table vardır.
ARP table ne içerir : Bazı nodelar için "IP adress to MAC adress mapping"leri içerir.
< IP address; MAC address; TTL>
TTL: table'da her bir mapping için bir ttl vardır ve bu ttl mapping'in table'dan ne zaman silineceğini söyler.
Yandaki network'ü düşünelim. Her bir node single IP address'e sahiptir ve her bir node'un adapter'ı single MAC address'e sahiptir.
IP adresleri dotted-decimal notation ile,MAC adresleri ise hexadecimal notation ile gösterilmiştir.
222.222.222.220 IP adresine sahip olan node'un , 222.222.222.222 IP adresine sahip olan node'a IP datagram göndermek istediğini varsayalım. Bu örnekte source node ve destination node aynı network(LAN) üzerindedirler(in the addressing sense of Section 4.4.2).
Datagramı göndermek için,source node kendi adapter'ına şunları verir:
LAN üzerindeki herbir IP node -yani tüm host ve router'lar-'ın memory'lerinde ARP table vardır.
ARP table ne içerir : Bazı nodelar için "IP adress to MAC adress mapping"leri içerir.
< IP address; MAC address; TTL>
TTL: table'da her bir mapping için bir ttl vardır ve bu ttl mapping'in table'dan ne zaman silineceğini söyler.
IP adresleri dotted-decimal notation ile,MAC adresleri ise hexadecimal notation ile gösterilmiştir.
222.222.222.220 IP adresine sahip olan node'un , 222.222.222.222 IP adresine sahip olan node'a IP datagram göndermek istediğini varsayalım. Bu örnekte source node ve destination node aynı network(LAN) üzerindedirler(in the addressing sense of Section 4.4.2).
Datagramı göndermek için,source node kendi adapter'ına şunları verir:
- IP datagram
- destination node(222.222.222.222)'un MAC adresi
Bu aşamadan sonra sending node'un adapter'ı, destination node'un MAC adresini içeren bir link layer frame construct eder ve bu frame'ı LAN'a gönderir.
Burada aklımıza şu soru gelir: Sending node, destination node'un MAC adresini nasıl elde eder? Tabiiki de ARP ile. Hatırlayın daha önce "LAN'daki her node'un hafızasında ARP table olduğunu" söylemiştik. Dolayısıyla sending node(222.222.222.220) aynı LAN üzerindeki herhangi bir IP adresini input olarak alır ve bu IP adresine karşılık gelen MAC adresini return eder. Yani sending node ARP module'e 222.222.222.222 destination IP adresini verir, ARP module de bu IP adresine karşılık gelen 49-BD-D2-C7-56-2A MAC adresini return eder.
ARP çoğu yönüyle DNS'e benzer. ARP: IP address -> MAC adress . DNS: hostname -> IP address
Ancak aralarındaki temel fark şudur. ARP , sadece aynı subnet'deki node'ların IP adreslerini , MAC adresine resolve etmek için kullanılır. DNS ise internet üzerindeki tüm host'ların hostname'ini IP adresine resolve etmek için kullanılır. Tokyo'daki bir node , Mississipi'deki bir node'un IP adresini resolve etmeye çalışırsa , ARP error return eder.
ARP'nin ne yaptığını inceledik şimdi de nasıl çalıştığını inceleyelim. Herbir node(bir node host veya router olabilir)'un memory'sinde ARP table bulunur.Bu ARP table IP adress to MAC address mapping'leri içerir.Aşağıdaki table 222.222.222.220 node'undaki ARP table'ın nasıl bir şey olduğunu gösterir.
ARP table subnet'deki tüm node'lar için bir entry içermek zorunda değildir. Bazı node'ların entry'leri expire olmuş olabilir(ttl süresin dolduğu için silinmiş olabilir). Bazı node'ların entry'leri table'a daha önce hiç eklenmemiş de olabilir.ARP table'a yerleştirilen bir entry'de TTL süresi genelde 20 dk'dır.
Şimdi bir adım daha ilerleyelim. 222.222.222.220 IP adresine sahip node , bulunduğu subnet'deki başka bir node'a IP datagram göndermek istiyor(en başta verilen örnek). Sending node , destination node'un (IP adresini biliyor ancak bize lazım olan MAC'dir bu yüzden )MAC adresini bulmak zorundadır. Eğer sending node'un ARP table'ında destination node için bir entry varsa , destination node'un MAC adresi kolay bir şekilde elde edilir.
Peki ya ARP table'da destination node için bir entry yoksa? Bu durumda sending node ARP query packet hazırlar. ARP query ve ARP response packet'leri aynı formattadır. Bir ARP packer birkaç sending ve receiving IP and MAC adres'i içeren birkaç field içerir(ARP,IP adres içerebildiği için network layer protocol, MAC adres içerebildiği için link layer protocol gibi düşünülebilir). ARP query packet'in amacı resolve edilmek istenen IP adresine karşılık gelen MAC adresini belirlemek için , subnet'deki diğer tüm node'ları query etmektir(sorgulamaktır). Aşağıdaki gösterim bunu anlatır ben de kısaca özetleyeyim:
ARP protocol hakkında şunlara dikkat edin:
ARP link-layer protocol müdür yoksa network layer protocol müdür? ARP packet link layer frame'de encapsulate edilir ve ARP packet link-layer adresleri içeren field'lara sahiptir.Bu yüzden ARP link layer protocol gibi düşünülebilir. Ancak ARP packet network layer address de içerir bu yüzden network layer protocol gibi de düşünülebilir. Öyleyse ARP link layer protocol ve network layer protocol arasında bir çizgide gibi düşünülebilir. Tek bir layer'a aittir demek yanlış olur.
Burada aklımıza şu soru gelir: Sending node, destination node'un MAC adresini nasıl elde eder? Tabiiki de ARP ile. Hatırlayın daha önce "LAN'daki her node'un hafızasında ARP table olduğunu" söylemiştik. Dolayısıyla sending node(222.222.222.220) aynı LAN üzerindeki herhangi bir IP adresini input olarak alır ve bu IP adresine karşılık gelen MAC adresini return eder. Yani sending node ARP module'e 222.222.222.222 destination IP adresini verir, ARP module de bu IP adresine karşılık gelen 49-BD-D2-C7-56-2A MAC adresini return eder.
ARP çoğu yönüyle DNS'e benzer. ARP: IP address -> MAC adress . DNS: hostname -> IP address
Ancak aralarındaki temel fark şudur. ARP , sadece aynı subnet'deki node'ların IP adreslerini , MAC adresine resolve etmek için kullanılır. DNS ise internet üzerindeki tüm host'ların hostname'ini IP adresine resolve etmek için kullanılır. Tokyo'daki bir node , Mississipi'deki bir node'un IP adresini resolve etmeye çalışırsa , ARP error return eder.
ARP'nin ne yaptığını inceledik şimdi de nasıl çalıştığını inceleyelim. Herbir node(bir node host veya router olabilir)'un memory'sinde ARP table bulunur.Bu ARP table IP adress to MAC address mapping'leri içerir.Aşağıdaki table 222.222.222.220 node'undaki ARP table'ın nasıl bir şey olduğunu gösterir.
ARP table subnet'deki tüm node'lar için bir entry içermek zorunda değildir. Bazı node'ların entry'leri expire olmuş olabilir(ttl süresin dolduğu için silinmiş olabilir). Bazı node'ların entry'leri table'a daha önce hiç eklenmemiş de olabilir.ARP table'a yerleştirilen bir entry'de TTL süresi genelde 20 dk'dır.
Şimdi bir adım daha ilerleyelim. 222.222.222.220 IP adresine sahip node , bulunduğu subnet'deki başka bir node'a IP datagram göndermek istiyor(en başta verilen örnek). Sending node , destination node'un (IP adresini biliyor ancak bize lazım olan MAC'dir bu yüzden )MAC adresini bulmak zorundadır. Eğer sending node'un ARP table'ında destination node için bir entry varsa , destination node'un MAC adresi kolay bir şekilde elde edilir.
Peki ya ARP table'da destination node için bir entry yoksa? Bu durumda sending node ARP query packet hazırlar. ARP query ve ARP response packet'leri aynı formattadır. Bir ARP packer birkaç sending ve receiving IP and MAC adres'i içeren birkaç field içerir(ARP,IP adres içerebildiği için network layer protocol, MAC adres içerebildiği için link layer protocol gibi düşünülebilir). ARP query packet'in amacı resolve edilmek istenen IP adresine karşılık gelen MAC adresini belirlemek için , subnet'deki diğer tüm node'ları query etmektir(sorgulamaktır). Aşağıdaki gösterim bunu anlatır ben de kısaca özetleyeyim:
- Sending node ARP query packet construct eder ve bu paketi kendi adapter'ına gönderir ve ayrıca adaptörüne paketi MAC broadcast address olan FF-FF-FF-FF-FF-FF 'e göndermesini söyler.
- Adapter , ARP query paketini (link layer) frame'de encapsulate eder ve bu frame'in destination adresini MAC broadcast address olan FF-FF-FF-FF-FF-FF olarak girer. Böylece frame sunet'e gönderilmiş olur.
- ARP query'i içeren frame, subnet üzerindeki diğer tüm adapter'lar tarafından alınır ve herbir adapter kendi içindeki ARP module'üne, frame'in içindeki ARP packet'ı verir.
- Her bir node kendi IP adresi , ARP packet içinde bulunan destination IP address ile match ediyor mu diye bakar.
- En fazla bir node match eder ve querying node(yani sorgulamayı yapan node)'a response ARP packet gönderir.Bu packet istenilen mapping'i içerir(IP address to MAC address)
- Querying node ARP table'ını update eder, IP datagram'ı (link layer) frame içerisine encapsulate eder. Söz konusu frame'in destination MAC adresi , biraz önceki ARP query'ye cevap vermiş olan node'un adresidir.
ARP protocol hakkında şunlara dikkat edin:
- query ARP message broadcast frame içerisinde gönderilir. response ARP message ise standard bir frame içerisinde gönderilir.
- ARP is plug-and-play. Bir node'un ARP table'ı otomatik olarak inşa edilir,bir system administrator tarafından configure edilmesine gerek yoktur. Bir node'un subnet ile bağlantısı koparsa, bu node ile ilgili entry'ler subnet'deki diğer node'ların ARP table'larından silinir.
Subnet'in dışındaki bir node'a Datagram göndermek
Bir node aynı subnet içindeki başka bir node'a datagram göndermek isterse ARP nasıl çalışır,yukarıda anlattık. Şimdi ise bir node bulunduğu subnet'in dışındaki başka bir node'a datagram göndermek isterse ne olur , bunu göreceğiz.
Bu konuyu yandaki resim üzerinden göreceğiz.Burada iki tür node vardır: hosts & routers.
Bu konuyu yandaki resim üzerinden göreceğiz.Burada iki tür node vardır: hosts & routers.
Herbir host sadece bir tane IP adrese sahiptir ve sadece bir tane adapter'a sahiptir.
Bir router ,interface'lerinden herbiri için birer IP adresine sahiptir. Herbir router interface 1 ARP module'e sahiptir ve 1 adapter'a sahiptir. Bizim örneğimizdeki router 2 tane interface sahiptir. Bu yüzden bu router 2 tane IP adres'e, 2 tane ARP module'e ve 2 tane adapter'a sahiptir.
Subnet 1, 111.111.111/24 network adresine sahiptir. Subnet 2, 222.222.222/24 network adresine sahiptir. Dolayısıyla Subnet 1 'e bağlı tüm interface'ler 111.111.111.xxx biçimindedir ve Subnet 2 'yebağlı tüm interface'ler 222.222.222.xxx biçimindedir.
Şimdi , Subnet 1'deki bir host'dan Subnet 2'deki bir host'a datagram nasıl gönderilir,bunu göreceğiz. 111.111.111.111 ip adresine sahip host, 222.222.222.222 ip adresine sahip host'a ip datagram göndermek istiyor olsun. Dolayısıyla sırasıyla şu adımlar gerçekleşir.
References:
http://kermit.fontbonne.edu/~yma/cis340/outlines/ch5_4_addressing.htm
http://www.dcs.bbk.ac.uk/~ptw/teaching/IWT/link-layer/notes.html
Kurose, Ross, Computer Networking A Top-Down Approach 5th edition
Bir router ,interface'lerinden herbiri için birer IP adresine sahiptir. Herbir router interface 1 ARP module'e sahiptir ve 1 adapter'a sahiptir. Bizim örneğimizdeki router 2 tane interface sahiptir. Bu yüzden bu router 2 tane IP adres'e, 2 tane ARP module'e ve 2 tane adapter'a sahiptir.
Subnet 1, 111.111.111/24 network adresine sahiptir. Subnet 2, 222.222.222/24 network adresine sahiptir. Dolayısıyla Subnet 1 'e bağlı tüm interface'ler 111.111.111.xxx biçimindedir ve Subnet 2 'yebağlı tüm interface'ler 222.222.222.xxx biçimindedir.
Şimdi , Subnet 1'deki bir host'dan Subnet 2'deki bir host'a datagram nasıl gönderilir,bunu göreceğiz. 111.111.111.111 ip adresine sahip host, 222.222.222.222 ip adresine sahip host'a ip datagram göndermek istiyor olsun. Dolayısıyla sırasıyla şu adımlar gerçekleşir.
- Sending host , datagram'ı adapter'ına pass eder. Ayrıca sending host adapter'ına göndermesi gereken MAC adresini söylemelidir. Peki bu destination MAC adres ne olmalıdır? 222.222.222.222 ip'li host'un adapter'ının MAC adresi olabilir mi? Kesinlikle hayır. Çünkü eğer böyle olsaydı, yani sending adapter hazırladığı frame'in destination adresine bodoslama olarak doğrudan 222.222.222.222 ip'li host'un MAC'ini yazsaydı ne olurdu biliyor musunuz? Subnet 1 'deki hiçbir adapter'ın MAC adresi , hazırlanmış olan frame'in destination MAC adresi ile match etmediği(uyuşmadığı) için , datagram ignore edilirdi,(böyle bir destination MAC'e sahip bir node bu subnet'de yok diye) doğrudan çöpe atılırdı. Peki bu destination MAC adresi ne olmalı? router interface 111.111.111.110 (final destination'a giden yoldaki first-hop router'ın IP'si)'un MAC adresi olmalı. Sending host bu frame'in MAC adresini nasıl bulur?Tabiiki de ARP ile.
- Datagram sending host'un adapter'ına geldi. Adapter bir frame construct eder. Bu frame'in içine gönderilecek olan datagram'ı koyar(encapsulate). Bu frame'in destination MAC adresi E6-E9-00-17-BB-4B'dir.
- Router adapter frame'i aldı. Bunu kendi network layer'ına verir diğer bir deyişle datagram'ı frame'in içinden extract eder.
- Şu anda datagram router'da. Peki router datagram'ı hangi interface'i ile göndermeli? Buna nasıl karar verir? Forwarding table'ı ile. 222.222.222.220 router interface ile datagram'ın gönderilmesi kararlaştırılır.
- 222.222.222.220 ip'li router interface adapter'ına datagram'ı verir.
- Adapter frame construct eder. Frame'in içine datagram'ı koyar(encapsulate) ve frame'in MAC adresi artık asıl destination'ın MAC adresidir. Yani 222.222.222.222 ip'li host'un adapter'ının MAC adresidir.
- Frame istenilen host'un adapter'ına geldi. Bu frame'den datagram extract edilir diğer bir deyişle frame host'un network layer'ına verilir.
Tüm olayları kısaca özetleyen şekil aşağıdaki gibidir.
References:
http://kermit.fontbonne.edu/~yma/cis340/outlines/ch5_4_addressing.htm
http://www.dcs.bbk.ac.uk/~ptw/teaching/IWT/link-layer/notes.html
Kurose, Ross, Computer Networking A Top-Down Approach 5th edition
Subscribe to:
Posts (Atom)