1 / 35

Technologie Internetu wykład 1: Architektura Internetu Piotr Habela

Technologie Internetu wykład 1: Architektura Internetu Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych. Plan wykładu. Sieci i intersieci – motywy, rozwój, problemy Warstwa sprzętowa – zagadnienia Model warstwowy protokołów sieciowych Zestaw protokołów TCP/IP

irma-nieves
Download Presentation

Technologie Internetu wykład 1: Architektura Internetu Piotr Habela

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technologie Internetu wykład 1:Architektura Internetu Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych 1

  2. Plan wykładu • Sieci i intersieci – motywy, rozwój, problemy • Warstwa sprzętowa – zagadnienia • Model warstwowy protokołów sieciowych • Zestaw protokołów TCP/IP • Warstwa interfejsu sieciowego (protokół IP, adresy IP, ich odwzorowania, ICMP) • Warstwa transportu • Interfejsy do protokołów komunikacyjnych • Standaryzacja protokołów internetowych 2

  3. Zagadnienia nie omawiane • Zagadnienia fizyczne przesyłania sygnałów; • Rodzaje łączy; technika w warstwie sprzętowej; • Topologie sieci; • Szczegóły protokołów niższych warstw; 3

  4. Wybrane ważne daty (1) • 1945 – Vannevar Bush – artykuł „As We May Think” (Atlantic Monthly) z ideami leżącymi u podstaw hipertekstu; • 1954 – Powstanie ARPA; • 1965 – Paul Baran z RAND Corporation: „On Distributed Communication Network” – koncepcja zdecentralizowanej, odpornej na awarie licznych węzłów sieci komputerowej. • 1971 – Ray Tomilson: pierwszy program poczty elektronicznej; • 1972 – Telnet; • 1 września 1969 – Pierwsze węzły sieci ARPA-NET; • 1973 – Pierwsze połączenia międzynarodowe (do Wielkiej Brytanii i Norwegii). • 1974 – Vinton Cerf i Bob Kahn: „A protocol for Packet Intercommunication”: TCP, termin “Internet”; 4

  5. Wybrane ważne daty (2) • 1975 – zmiana statusu ARPA-NET z eksperymentalnej na użytkową; • 1982 – ARPA-NET wprowadza protokół TCP/IP • 1984 – powstaje DNS; • 1990 – ARPA-NET kończy działalność; • 1991 – Polska dołączona do Internetu; • 1992 – Tim Berners Lee: podstawy WWW • 1993 – Mosaic – pierwsza przeglądarka • 1994 – Pierwszy SPAM: f-ma prawnicza Canter i Siegel wysyła list do 6 tys. grup dyskusyjnych (loteria pozwoleń na pracę w US); • 1995 – prywatyzacja Internetu, Netscape, Java; • 1995 – WWW wyprzedza FTP; 5

  6. Warstwa sprzętowa – problemy do rozwiązania • Podział strumienia danych na pakiety (ramki): istotne dla koordynacji i podziału czasu (wspólne medium!); • Wykrywanie kolizji; • Kontrola poprawności transmisji: bity parzystości, sumy kontrolne lub CRC (Cyclic Redundancy Check): szybki algorytm (indeksy przesuwające, bramki XOR, sprzężenie zwrotne) => wielomian komunikatu; dość skuteczny przy identyfikowaniu błędów; łatwość sprawdzenia przez odbiorcę; • Identyfikacja adresata (sygnał dociera do wszystkich maszyn…): adresy sprzętowe; • Interpretacja komunikatu: identyfikatory typów ramek; • Postać ramki: • preambuła; • stałej długości nagłówek: adres nadawcy, adres odbiorcy, typ ramki; • CRC 6

  7. Adresy sprzętowe • Zwane MAC (Media Access Control), tj. adres dostępu do nośnika; Ethernet: 48 bitów. • Interfejs sieciowy filtruje ramki nie obciążając „cudzymi” procesora; • Sposoby określania: statyczne, konfigurowalne, dynamiczne; • Prefiksy statycznych adresów przydzielane przez IEEE (zob. http://standards.ieee.org/regauth/oui/oui.txt). • Ponadto istnieje zarezerwowany adres rozgłaszania; oraz możliwość definiowania adresów grupowych; • Dalsza identyfikacja – typ ramki. Kod może identyfikować rozwiązanie danej firmy, albo ustandaryzowany protokół wyższej warstwy. 7

  8. Model warstwowy OSI (Open Software Interconnection) 7. Aplikacji: usługi realizowane przez aplikacje. 6. Prezentacji danych: format wymiany danych, ich ewentualne szyfrowanie. (zwykle nie występuje) 5. Sesji: nawiązywanie i zamykanie połączeń (związana z dużymi systemami wielodostępnymi – straciła na znaczeniu) 4. Transportu: podział danych, gwarancja dostarczenia, weryfikacja. 3. Sieciowa: logiczne adresy zamienia na sprzętowe, pakiety logiczne dzieli na ramki danych. 2. Łącza: interpretowanie przesyłanych bitów jako ramek. 1. Fizyczna: przesyła nieprzetworzone bity danych przez nośnik. 8

  9. Zestaw protokołów TCP/IP • Zbudowany dla ARPAnet-u (sieci naukowej wchodzącej w skład DDN – Defence Data Network). TCP i IP = najpopularniejsze w zestawie protokołów. • Jest to zestaw warstwowy. Podział motywowany: • Złożonością zadania; • Heterogenicznością istniejących sieci składowych; • Specjalizacją poszczególnych protokołów do zastosowań. • Przykładowo: poczta umożliwia przesyłanie listów; wymaga niezawodnego połączenia od TCP, IP przekazuje datagramy, Ethernet zarządza medium. • Droga przebywana przez komunikat – całkowicie przezroczysta dla użytkownika. • Inne zestawy – np. IPX/SPX (Novell); NetBIOS, NetBEUI (IBM). 9

  10. Zestaw protokołów TCP/IP • Zwykle wyróżnia się następujące warstwy: • Warstwa aplikacji (Telnet, FTP, e-mail…). Także SMNP (Simple Network Management Protocol). • Transportowa (TCP, UDP). TCP zapewnia wiarygodny (reliable) przepływ danych (porcjowanie, timeouts). UDP przesyła datagramy nie gwarantując ich dotarcia. • Sieciowa (IP, ICMP, IGMP). Albo warstwa internetowa. Obsługuje ruch pakietów poprzez sieć. Między innymi zachodzi tu rutowanie pakietów. Internet Protocol, Internet Control Message Protocol, Internet Group Management Protocol. • Połączeniowa (sterowniki urządzenia i karta interfejsu sieciowego; np. Ethernet, token ring, użycie ARP i RARP) Albo warstwa interfejsu sieciowego. Wszelkie szczegóły fizycznej komunikacji. [R]ARP = [Reverse] Address Resolution Protocol 10

  11. Intersieć • Sieć wirtualna, realizująca model jednolitych usług. • Architektura musi uwzględniać heterogeniczność sieci składowych. • Sprzętowe adresy dla intersieci nie wystarczają, gdyż każda z podsieci może używać innego formatu => wprowadzono abstrakcyjne adresy protokołowe. Pozwalają odwoływać się do działającego na odległej maszynie procesu, bez znajomości jej adresu sprzętowego. 11

  12. Protokół IP • Określono format niezależny od konkretnego sprzętu: uniwersalny, wirtualny pakiet, zwany datagramem. Rozmiar od 1 oktetu do 64K. • IP nie obsługuje takich problemów jak: • duplikowanie datagramów; • dostarczanie z opóźnieniem lub nie w kolejności; • uszkodzenie danych; • utrata datagramów. • Nagłówek zawiera numery IP nadawcy i odbiorcy. 12

  13. Adresy IP • Identyfikuje połączenie komputera z daną siecią. • IPv4 (obecny): 32 bitowa liczba (zwykle przedstawiana jako 4 zapisane dziesiętnie segmenty). • Trzy typy adresów: • Unicast (pojedynczy host) • Broadcast (wszystkie maszyny danej sieci) • Multicast (rozgłaszanie grupowe). • Pierwsza część adresu identyfikuje sieć, zaś dalsza określa maszynę w ramach tej sieci. 13

  14. Podział puli adresów IP • 4 klasy adresów: bity sieci bity hosta • A: do 127:0-netid(7)hostid(24) • B: 128-191: 10-netid(14)hostid(16) • C: 192-223: 110-netid(21)hostid(8) • D: 224-239: 1110-multicastgroupID(28) • E: 240-255: 1111-zarezerwowane(28) • Prefiksy identyfikujące sieć przydzielane przez IANA (Internet Assigned Numbers Authority): http://www.iana.org/ • Problem tego podejścia: • marnotrawstwo adresów; • duże tablice tras (zob. dalej). 14

  15. Specjalne adresy IP • Adres zerowy węzła (sufiks) = adres sieci; • Cała pula 127.*.*.* = adresy pętli zwrotnej; • Same jedynki = rozgłaszanie ograniczone (lokalna sieć fizyczna; używane przy starcie komputera) • Same zera – oznaczenie lokalnego komputera, gdy właściwy adres nie jest mu jeszcze znany. • Sufiks z samych jedynek = rozgłaszanie ukierunkowane (maszyny danej sieci) • Adresy prywatne (tzw. nierutowalne) [RFC 1918]: • od 10.0.0.0 do 10.255.255.255 • od 172.16.0.0 do 172.16.255.255 • od 192.168.0.0 do 192.168.255.255 15

  16. Nagłówek datagramu IP • Wersja = IPv4; • Długość nagłówka; • typ obsługi (trasa o minimalnym opóźnieniu czy maksymalnej przepływności); • długość całkowita; • identyfikacja (datagramu); • znaczniki, przesunięcie fragmentu (używane przy fragmentacji datagramu); • czas życia (max. 255; redukowany na każdym odcinku ); • typ, • suma kontrolna nagłówka, • IP nadawcy i odbiorcy; • opcje IP; • uzupełnienie; 16

  17. Encapsulation (kapsułkowanie?) datagramu IP • Zapakowanie wewnątrz ramki sieciowej; zawartość nie jest interpretowana przez niższą warstwę. • Datagram IP jako zawartość takiej ramki jest identyfikowany odpowiednim typem ramki sieciowej. Oczywiście ramka sieciowa otaczająca datagram musi mieć wyspecyfikowany adres sprzętowy odbiorcy. • Każdy etap na drodze datagramu wiąże się z rozpakowaniem ramki sieciowej a następnie wysłaniem go w nowej ramce. • MTU (Maximum Transfer Unit): ogranicza wielkość danych w ramce. Jeżeli dla danej sieci rozmiar datagramu przekracza MTU, to wykonywana jest fragmentacja. Składanie datagramu odbywa się dopiero u ostatecznego odbiorcy. Odbiór datagramu: wszystko albo nic. 17

  18. Optymalizacja wykorzystania puli adresów IP • Classless Inter Domain Routing (CIDR) [RFC 1517, 1518, 1519]: • Dowolna liczba bitów na adres sieci; • Zapis adresu dla podejścia bezklasowego np: 192.9.205.22 /18 (określa się liczbę bitów maski sieci); • Możliwe agregowanie adresów sieci i hierarchiczne określanie trasy; • IPv6: 128-bitowe adresy => ogromna pula. Ponadto: • Zmieniony, rozszerzalny format nagłówka: pole „typ następnego nagłówka”; • Wsparcie dla obsługi dźwięku i obrazu; • Trzy rodzaje adresów: jednostkowy, rozsyłania grupowego, „grono” -> służy np. realizacji replik usługi. • Sposób zapisu: notacja szesnastkowa z dwukropkami; możliwość pomijania segmentu zer: FF0C:0:0:0:0:0:0:B1 -> FF0C::B1 18

  19. Odwzorowywanie adresów (1) • Aby dostarczyć dane, należy na podstawie adresu protokołowego ustalić adres sprzętowy. • Metody: • Tablicowe (zwykle w sieciach rozległych); • Obliczeniowe (gdy adres sprzętowy konfigurowalny); • Sieciowe: pytanie-odpowiedź (zwykle w lokalnych ze statycznymi adresami). • Adres sprzętowy można określić tylko wtedy, jeśli adresat jest w tej samej sieci fizycznej. Pakiety dla adresatów nielokalnych przejmuje ruter. • Ruter przynależy do co najmniej dwóch sieci (posiadając tyleż adresów logicznych i sprzętowych). 19

  20. Odwzorowywanie adresów (2) • Każdy ruter przechowuje tablicę tras: • Prefiks i maska adresowa każdej sieci; • Odpowiadający każdej pozycji adres sprzętowy rutera. • Odczytany adres rutera nie zostanie umieszczony w nagłówku datagramu. • Address Resolution Protocol (ARP): • Ujednolicony protokół odwzorowywania adresów. • Zapytanie wysyłane na adres rozgłaszania danej sieci. • Odpowiedź tylko do pytającego. • Generyczny, choć zwykle odwzorowuje IP na Ethernet. • Ramki ARP identyfikowane kodem typu ramki. 20

  21. Internet Control Message Protocol (ICMP) • Zintegrowany z protokołem IP. • Umożliwia informowanie nadawcy o powstałych błędach (mniej poważnych niż błąd sumy nagłówka). • Komunikaty o błędach mogą dotyczyć: • tłumienia nadawcy; • przekroczenie terminu; • nieosiągalności odbiorcy; • konieczności zmiany trasy; • problemów z parametrami. • Ponadto dostępne: • echo; odpowiedź z echem; • prośba o maske adresową; odpowiedź z maską adresową. • Zastosowania – m.in. ping, traceroute, wyznaczanie MTU. 21

  22. Urządzenia aktywne • Repeater (wzmacniak), oraz hub -> warstwa fizyczna (1 w OSI).Propagują również zakłócenia… • Most: podział na dwie sieci, mogące posiadać różne media transmisyjne -> warstwa łącza (2); pracuje na adresach MAC. • Switch -> warstwa łącza danych (2). Symuluje sieć lokalną z mostami, gdzie w każdym segmencie jest tylko jeden komputer. • Ruter -> podział na więcej podsieci IP -> warstwa łącza (2) i sieciowa (3). Łączenie sieci heterogenicznych. Podobnie jak most = specjalizowany komputer: procesor, pamięć, interfejsy sieciowe. Różne media transmisyjne, mechanizmy adresowania sprzętowego i formaty ramek. • Zapora sieciowa -> ogranicza dostępu z zewnątrz. Rodzaje filtrów: • bramki aplikacji: pakiety są odpowiednio tłumaczone; wymaga skonfigurowania oprogramowania proxy dla każdej usługi sieciowej na każdej z maszyn w sieci; • filtry pakietów: blokowanie pakietów w oparciu o adres pochodzenia, adres docelowy, protokół, nr portu czy nawet zawartość. 22

  23. TCP – Transmission Control Protocol • Warstwa transportu. Protokół niezawodnego przesyłania. • Obsługuje następujące poważne problemy transmisji: • przywracanie właściwej kolejności odebranych pakietów: wykorzystanie numeru porządkowego pakietów; • unikanie duplikatów – j.w.; • retransmisja zgubionych pakietów: nadawca wysyła ponownie, jeśli w zadanym czasie nie otrzymał potwierdzenia (acknowledgment); • unikanie powtórzeń spowodowanych nadmiernym opóźnieniem: numery pakietów dodatkowo kwalifikowane identyfikatorami sesji; • kontrola przepływu dla uniknięcia zalewu danych: metoda przesuwającego się okna. 24

  24. TCP – właściwości (1) • Tzw. protokół połączeniowy: przed przesłaniem danych zestawiane jest połączenie. • Komunikacja punkt do punktu: oprogramowanie TCP niezbędne tylko w końcowych węzłach. • W pełni dwukierunkowa komunikacja. Możliwa w dowolnym momencie i buforowana. • Interfejs strumieniowy. Brak pojęcia rekordu => dane mogą dotrzeć w innych fragmentach. • Niezawodne połączenie: zgoda na połączenie obydwu programów. • Łagodne kończenie połączenia. Program może zażądać zakończenia, a protokół zapewni dostarczenie wysłanych danych przed jego zamknięciem. 25

  25. TCP – właściwości (2) • Tzw. retransmisja z adaptacją. Opóźnienie komunikacji jest śledzone i na tej podstawie jest określany czas, po upływie którego stosuje się retransmisję (zbyt szybka transmisja doprowadziłaby do zalewu pakietów). • Kontrola przepływu: odbiorca dostarcza potwierdzenia odbioru oraz tzw. propozycje okna (ile może przyjąć do bufora); • Trójetapowa wymiana komunikatów przy ustawianiu i kończeniu połączeń (tzw. 3-way handshake): segmenty SYN i FIN. • Kontrola przeciążenia: w razie zgubienia pakietu jest wysyłany najpierw jeden, a następnie tempo jest zwiększane z uwzględnieniem propozycji okna. 26

  26. Zawartość segmentu TCP • port nadawcy; • port odbiorcy; • nr porządkowy (dotyczy aktualnie wysyłanych – tj. wychodzących danych); • numer potwierdzenia (dotyczy odebranych); • długość nagłówka; • suma kontrolna (obejmuje nagłówek i dane segmentu TCP); • bity kodu; • okno (dostępny bufor dla odbieranych danych); • dane. 27

  27. Encapsulation - ogólnie • Każda warstwa dołącza swe nagłówki przed i niekiedy również (np. Ethernet trailer) za przekazywanym pakietem danych. • Jednostka danych wysyłanych przez protokół TCP = segment; • Jednostka wysyłana przez protoków IP = datagram (tak naprawdę – packet: tj. datagram IP albo fragment datagramu IP); • Jednostka w ramach Ethernetu = frame (ramka) – o określonym typie • 8-bitowy identyfikator w nagłówku IP identyfikuje protokół datagramu: ICMP, IGMP, TCP, UDP. • Analogicznie TCP i UDP używają w nagłówku 16-bitowych numerów portów do zidentyfikowania aplikacji: numery źródłowego i docelowego portu. • Analogicznie (np. rozróżnienie pomiędzy IP, ARP, RARP), nagłówek Ethernetowy zawiera 16-bitowe pole typu ramki. • Demultiplexing: po otrzymaniu ramki kolejne warstwy „rozpakowują” dane i w oparciu o identyfikatory w znanych sobie nagłówkach przekazują odpowiedniemu protokołowi warstwy wyższej. 28

  28. Numery portów • Liczby 16-bitowe. • Identyfikacja serwerów typowych usług: przez tzw. well-known port numbers: np. FTP = 21, Telnet = 23 (zob. też /etc/services na Unix-ie). • Przydziałem numerów od 1 do 1023 zajmuje się Internet Assigned Numbers Authority (IANA).Unix: porty zarezerwowane => tylko superuser może przydzielić taki port. • Porty klienckie zwane efemerycznymi (ephemeral ports), gdyż używane są na czas korzystania danego klienta z usługi. Zwykle alokowane pomiędzy 1024 a 5000. • Kanał komunikacyjny zestawiany przez protokół TCP jest wyznaczone przez dwa końce zwane gniazdami. Gniazdo = adres IP + numer portu. 29

  29. Interfejsy do protokołów komunikacyjnych • Zakres funkcjonalności określany przez specyfikację danego protokołu. Konkretne API mogą być specyficzne dla danego systemu operacyjnego; • Najpopularniejsze jednak – udostępnianie jednolitego interfejsu tzw. gniazd (sockets). Powstał jako część BSD; zwany też Berkeley sockets. • Mogą być dostępne jako wywołania systemu operacyjnego, lub w postaci funkcji bibliotecznych. • Skonstruowane w stylu UNIX-owego interfejsu wejścia-wyjścia: „otwórz-czytaj-zapisz-zamknij”. Po otwarciu pliku zwracana jest liczba – deskryptor, używana następnie w kolejnych odwołaniach. Podobnie jest w przypadku komunikacji z protokołem. 30

  30. Procedury interfejsu gniazd (1) • Utworzenie gniazda: deskryptor = socket( rodzina, //np. PF_INET =>TCP/IP typ, //rodzaj komunikacji: SOCK_STREAM // - połączeniowa strumieniowa, //SOCK_DGRAM – bezpoł. komunikatami protokół); • Zamknięcie gniazda: close(gniazdo); //closesocket w Windows Sockets • Gniazda a wątki: • każdy nowy wątek dziedziczy kopię otwartych gniazd z wątku, który go utworzył; • gniazda posiadają licznik odwołań. 31

  31. Procedury interfejsu gniazd (2) • Określenie portu: bind(gniazdo, adres_lokalny, dł_adresu) // serwer określa, na jakim porcie//będzie oczekiwał połączenia • Oczekiwanie na komunikaty: listen(gniazdo, rozmiar_kolejki_zgłoszeń) • Protokół połączeniowy – wymaga ponadto przyjęcia nowego połączenia: nowe_gniazdo = accept(gniazdo, adres_klienta, długość_adresu_klienta); 32

  32. Procedury interfejsu gniazd (3) • Klient łączy się z serwerem: connect(gniazdo, adres_serwera, długość_adresu_serwera); Def.: adres punktu końcowego = kombinacja adresu IP i nr-u portu. • Wysyłanie danych: send(gniazdo, dane, długość, znaczniki) // ...gdy gniazdo jest połączone sendto(gniazdo, dane, długość, znaczniki, adres_odbiorcy, długość_adresu_odbiorcy) // ... dla niepołączonego gniazda; sendmsg(gniazdo, struktura_komunikatu, znaczniki) // skrót ww. 33

  33. Procedury interfejsu gniazd (4) • Odbieranie danych: recv(gniazdo, bufor, długość_bufora, znaczniki) // z połączonego gniazda recvfrom(gniazdo, bufor, długość, znaczniki, adres_nadawcy, długość_adresu_nadawcy) // dla niepołączonego gniazda recvmsg(gniazdo, struktura_komunikatu, znaczniki) // skrót ww. • Ponadto – tradycyjne read i write (gniazdo, bufor, długość), dostępne dla gniazd połączonych. • Inne operacje: • getpeername – adres odległego klienta; • gethostname – adres lokalny; • gethostbyname -> adres IP maszyny o podanej nazwie; • gethostbyaddr -> nazwa na podstawie podanego adresu IP; • oraz getsockopt oraz setsockopt dla obsługi wartości opcji gniazda. 34

  34. Sieciowe programy użytkowe • Protokoły transportowe umożliwiają jednoznaczne wskazanie żądanej usługi. W TCP są to 16-bitowe numery portów. Pozwala to odbiorcy na skierowanie komunikatu do właściwego serwera (w znaczeniu programu). • Domain Name System (DNS): – rozproszona baza danych mapująca nazwy na numery IP. Większość aplikacji pozwala stosować zamiennie nazwy i numery. Rev-DNS (konwersja odwrotna: IP na nazwę). • Domeny najwyższego poziomu: geograficzne (Country Code Domains) lub organizacyjne. Zob. http://www.iana.org/cctld/cctld.htm • Adres URL: • identyfikator usługi: http:// ftp:// gopher:// telnet:// news:// • nazwa domeny: adres domenowy lub kropkowo-dziesiętny; • ścieżka dostępu na serwerze; 35

  35. Standaryzacja protokołów internetowych • Internet Society (ISOC) – professional society. • Internet Architecture Board (IAB) – techniczny nadzór i koordynacja. Czuwa nad jakością standardów internetowych; podlega ISOC. • Internet Engineering Task Force (IETF) – krótkoterminowe przedsięwzięcia zorientowane na rozwijanie standardów; podzielona na 9 obszerów. Dodatkowo: Internet Engineering Steering Group (IESG). Podlega IAB. • Internet Research Task Force (IRTF) – długoterminowe projekty badawcze. Podlega IAB. • Oficjalne standardy publikowane jako RFC (Request For Comments). Dostępne publicznie (łącznie ok. 75 MB). Niektóre nie mają statusu oficjalnego standardu. Zob. http://www.isi.edu i http://www.rfc-editor.org 36

More Related