Dostarczanie datagramów
Transkrypt
Dostarczanie datagramów
Zasady komunikacji w praktyce Protokół IP - Internet Protocol Protokoły rutowane (routed) a rutowania (routing) • Rutowanie statyczne i dynamiczne (trasowanie) • Statyczne – administrator programuje trasy • Dynamiczne – oparte o protokoły wymiany informacji • Protokoły routingu • Wewnętrzne • RIP, IGRP • zewnętrzne • OSPF – Open Short Path First • The Interior Gateway Routing Protocol • BGP – Border Gateway Protocol • The Exterior Gateway Routing Protocol Lejek / drzewo protokołów IP aPrzy nadawaniu dane z wielu aplikacji trafiają do dwóch protokołów TCP i UDP, jednego IP, na jeden i/f (multiplexer, lejek) aPrzy odbieraniu dane z jednego i/f rozdzielane są na różne protokoły do wielu aplikacji (demultiplexer, drzewo) 1 Multiplexer/ demultiplexer Ramki ethernet aDwa rodzaje ramek aKażda karata sieciowa ma unikalny adres `MAC ADDRESS (Medium Access Control) `BIA ADDRESS (Burn In Address) aZapis 00:51:60:80:80:67 2 ARP– The Address Resolution Protocol Protokół do uzyskiwania adresu sprzętowego Przykład: 3 połączone sieci-2*ETH +FDDI Format komunikatu ARP 16 32 Rodzaj sprzętu Dł. Dla sprzętu Rodzaj protokołu Dł dla protokołu Operacja Adres sprzętowy nadawcy ( oktety 0-3) Adres sprzętowy nadawcy ( oktety 4-5) Adres IP Nadawcy ( oktety 0-1 ) Adres IP Nadawcy oktety 2-3 Adres sprzętowy odbiorcy (oktety 0-1) Adres sprzętowy odbiorcy (oktety 2-5) Adres IP odbiorcy oktety 0-3 a a a a a Ramka ETH – pole protokolu 0806 HEX Ramka ARP/Rarp - : Sprzęt – 1 – ETH Protokół – 0800 HEX – IP Operacja – ARP –1 , Odp ARP –2 , RARP – 3 Odp RARP – 4 3 Dostarczenie IP z A do B A IP=212.51.220.59 MAC=00:09:00:01:89:03 G B IP=212.51.220.5 MAC=00:09:00:01:89:03 IP=212.51.220.1 MAC=00:09:00:01:89:03 SRC xor DST and MASK ? =0 212.51.220.59 xor 212.51.220.5 and 255.255.255.128 => 0.0.0.0 Lokalny (zapakuj w ramkę i wyślij) Przesłanie A Æ B w łączu danych 800H = IP w środku A IP=212.51.220.59 MAC=00:09:00:01:89:03 B IP=212.51.220.5 MAC=00:09:00:01:89:03 IP=212.51.220.1 MAC=00:09:00:01:89:03 4 Przesłanie A Æ B MAC stacji B musi być znany w A Rodzaj sprzętu Dł. Dla sprzętu Rodzaj protokołu Dł dla protokołu Operacja Adres sprzętowy nadawcy ( oktety -3)0 FF:FF:FF:FF:FF:FF Adres sprzętowy nadawcy ( oktety -5)4 Adres IP Nadawcy ( oktety-10) Adres IP Nadawcy oktety-32 Adres sprzętowy odbiorcy (oktety -1)0 Adres sprzętowy odbiorcy (oktety -5)2 Adres IP odbiorcy oktety-30 DO WSZYSTKICH JA 212.51.220.59 szukam 212.51.220.5 806H = ARP w środku A IP=212.51.220.59 MAC=00:09:00:01:89:03 B IP=212.51.220.5 MAC=00:09:00:01:89:03 IP=212.51.220.1 MAC=00:09:00:01:89:03 Przesłanie A Æ B pytanie trafia do wszystkich ale tylko B odpowie wprost do pytającego Rodzaj sprzętu Dł. Dla sprzętu Rodzaj protokołu Dł dla protokołu Operacja Adres sprzętowy nadawcy ( oktety -3)0 Pobrany z pytania Adres sprzętowy nadawcy ( oktety -5)4 Adres IP Nadawcy ( oktety-10) Adres IP Nadawcy oktety-32 Adres sprzętowy odbiorcy (oktety -1)0 Adres sprzętowy odbiorcy (oktety -5)2 Adres IP odbiorcy oktety-30 DO 212.51.220.59 JA 212.51.220.5 mam MAC = 806H = ARP w środku A IP=212.51.220.59 MAC=00:09:00:01:89:03 B IP=212.51.220.5 MAC=00:09:00:01:89:03 IP=212.51.220.1 MAC=00:09:00:01:89:03 5 AÆ B 1. 2. 3. 4. ARP req B podaj swój MAC ARP rep słuchaj A mój MAC to ….. Przesłanie datagramu IP Aby oszczędzić czas związki IP-MAC są pamiętane Połączenie HTTP eksperyment a Warunki: ` ` ` ` Komputer 212.51.220.59 /25 Gateway 212.51.220.1 DNS serwer 212.51.220.2 Gate i DNS we własnej sieci /25 a Połączenie http://www.man.lodz.pl/bad_req a Co powinno się dziać: 1. Połączenie UDP/53 do DNS (pyt ? www.man.lodz.pl) 2. Połączenie TCP/80 do www.man.lodz.pl przez gateway 6 Połączenie HTTP szczegóły fazy 1 pytanie DNS 1. Arp req o DNS 212.51.220.2 2. Arp rep od 212.51.220.3 3. pytanie UDP/53 do DNS (pyt ? www.man.lodz.pl) a skierowane z portu UDP > 1024 4. odpowiedz UDP/53 na ten port a IP UDP ma ID = 17 Teraz znamy IP 212.51.192.18 www.man.lodz.pl i zaczyna się faza 2 TCP Połączenie HTTP szczegóły fazy 2 pytanie HTTP i odpowiedź www.man.lodz.pl 212.51.192.18 jest poza siecią, użyj gate 1. Arp req o GATE 212.51.220.1 2. Arp rep od 212.51.220.1 3. Nawiązanie TCP/80 212.51.192.18 (IP TCP = 6) ` ` ` ` Z portu TCP > 1024 (3 pakiety; 3 way handshake) Sync Æ Å Sync = ACK ACK Æ 4. Po nawiązaniu pytanie GET bad_request Æ a Ewentualne dane ACK 5. Odpowiedź 404 not found Å a Ewentualne dane ACK 6. Zamknięcie połączenia 7