Teoria sieci komputerowych.... Rafał Wojciechowski
ModelOSI/ISO Warstwa fizyczna Warstwa łącza danych Warstwa sieciowa Warstwa transportowa
ModelDARPAvsOSI
Komunikacja w siedmiowarstwowym modelu sieci
Zadania warstwy transportowej wprowadza przezroczysty transfer danych pomiędzy użytkownikami docelowymi wprowadzając mechanizmy zapewniające niezawodność transmisji Strumień danych warstwy transportowej jest logicznym połączeniem pomiędzy punktami w sieci Kontrola nad strumieniem jest realizowana przy udziale warstw niższych i obejmuje szereg mechanizmów segmentacji, potwierdzeń, przesuwnego okna,...
Zadania warstwy transportowej Realizacja funkcji transportu danych Niezawodne i precyzyjne regulowanie przepływu informacji ze źródła do celu Quality of Service Kontrola przepływu wspomagana przez niższe warstwy modelu OSI
Własności warstwy transportu Protokół zorientowany połączeniowo Protokół zorientowany połączeniowo- mechanizm tranmisji danych zakładający ustanowienie połączenia(negocjację ustawień połączenia) przed właściwą wymianą danych. Protokoły zorientowane połączeniowo zalicza się do grupy protokołów niezawodnych, gdyż gwarantują otrzymanie danych przez stronę zdalną we właściwej sekwencji
Własności warstwy transportu Protokół bezpołączeniowy Protokół bezpołączeniowy- mechanizm tranmisji danych umożliwiający wysłanie danych bez wcześniejszego ustanowienia połączenia(negocjacji ustawień). Protokoły bezpołączeniowe zalicza się do grupy protokołów zawodnych, gdyż nie gwarantują otrzymania danych przez stronę zdalną(brak mechanizmów potwierdzeń)
Kontrola przepływu Dostosowanie tempa transmisji poprzez wprowadzenie mechanizmów potwierdzeń umożliwiających spowolnienie tempa nadawania Transmisja określonych sekwencji danych poprzez wprowadzenie numerów ramek i uwzględnienie ich w numerach potwierdzeń Wprowadzenie metod korekcji błędów- definicje sposobów wykrywania błędów transmisji(error Detection CRC16, CRC32,...)orazreakcjinanie(ErrorControl ARQ)
StopAndWaitARQ
GoBackNARQ
GoBackNARQ
Nagłówek warstwy transportu
Protokoły warstwy transportu TCP(Transmission Control Protocol) UDP(User Datagram Protocol) SCTP(Stream Control Transmission Protocol)
Protokół TCP, Transmission Control Protocol Protokół zorientowany połączeniowo(wirtualne obwody) niezawodność Segementyzacja danych/ konsolidacja segmentów Retransmisja wszystkiego, co nie zostało odebrane
Enkapsulacja danych
Nagłówek prokołu TCP
Nagłówek prokołu TCP oraz IP
Metody połączeniowe TCP TCP Three-Way Handshake/ Open Connection TCP Simple Acknowledgement TCP Sliding Window TCP Sequence and Acknowledgement Numbers
TCP Three-Way Handshake Procedura inicjalizacyjna protokołów zorientowanych połączeniowo przeprowadzana jest w celu synchronizacji początkowych numerów sekwencyjnych ramek nadawcy i odbiorcy kontrola przepływu realizowana na podstawie numerów sekwencyjnych ramek; konieczność synchronizacji z uwagi na brak jakiegokolwiek powiązania między numerami sekwencyjnymi a czasem bądź innymi czynnikami mogącymi mieć wpływ na dobór numeru początkowego Przebieg procedury zakłada wymianę informacji zawierającej bit kontrolny synchronizacji( SYN) oraz numer początkowy ramki
Potrójny uścisk ręki
Potrójny uścisk ręki
TCP, wymiana danych Bezbłędny transfer danych Transfer oczekiwanych danych(z zachowaniem kolejności) Retransmisja zagubionych pakietów Ignorowanie zduplikowanych pakietów Zapobieganie przeciążeniom
Protokół UDP, User Datagram Protocol Protokół bezpołączeniowy zawodność Transmisja datagramów bez podziału ani konsolidacji przepływających informacji Brak mechanizmów sprawdzenia poprawności otrzymania informacji i kontroli przepływu( niezawodność może być realizowana przez protokoły warstw wyższych)
Nagłówek prokołu UDP
Porównanie protokołów warstwy transportu TCP UDP Rozmiar nagłówka 20 bajtów 8 bajtów Treść pakietu Segment Datagram Numer portu Tak Tak Zorientowany połączeniowo Tak Nie ARQ Tak Nie Numeracja sekw. segmentu Tak Nie Kontrola przepływu Tak Nie
Protokoły pochodne TCP oraz UDP TCP: File Transfer Protocol( FTP), Hypertext Transfer Protocol( HTTP), Simple Mail Transfer Protocol( SMTP),Telnet,... UDP: Trivial File Transfer Protocol( TFTP), Simple Network Management Protocol( SNMP), Dynamic Host Control Protocol( DHCP), Domain Name System( DNS),...
Zadania warstwy sesji stanowi interfejs pomiędzy warstwami prezentacji oraz transportu Wprowadza mechanizm zarządzania dialogiem(sesją) pomiędzy procesami aplikacji użytkowników końcowych Umożliwia wymianę danych w trybach full- oraz halfduplex oraz definiuje metody nawiązania, podtrzymywania oraz zakończenia sesji
Fazy sesji Nawiązanie połączenia(sesji) Wymiana danych Zakończenie połączenia(sesji)
Nawiązanie połączenia
Celowość warstwy sesji Głównym zamysłem wprowadzenia warstwy sesji było umożliwienie transmisji współbieżnej informacji pochodzących z różnych strumieni(źródeł danych) poprzez mechanizmy znakowania usług i odpowiedniej synchronizacji dialogu komunikacyjnego
Znakowanie usług Strumienie danych pochodzące od konkretnych aplikacji klienckich i przekazywane do konkretnych usług zdlanych wykorzystują mechanizm portów(gniazd) do identyfikacji określonych sesji warstw wyższych Numeracja portów 0 1023 portyokreśloneprzydzielaneprzeziana(internet Assigned Numbers Authority) 1024 65535 portydynamiczne portyzarejestrowanedlaokreślonychproducentów(najczęściej również w zakresie 1024 65535) Identyfikacja toru nadawca odbiorca:[adres IP] + [Numer portu]
Numery portów
Stany portów Podczas komunikacji pomiędzy usługami na konkretnych portach, wyszczególnia się określone stany portów w zależności od konkretnej sytuacji w sesji Możliwe stany portów: LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, CLOSED
Stany portów LISTEN- stan nasłuchiwania, oczekiwanie na połączenie ze zdalnego hosta( typowy stan w aplikacjach serwerowych) SYN-SENT- stan oczekiwania na odpowiedź zdalnej strony z ustawionymi flagami SYN oraz ACK(wysłano SYN, 3-way handshake) SYN-RECEIVED- stan oczekiwania na odpowiedź zdalnej strony z potwierdzeniem ACK(wysłano SYN i ACK, 3-way handshake) ESTABLISHED- stan gotowości do wymiany danych(sesja zestawiona)
Stany portów
Stany portów Lista połączeń i stanów portów netstat
Protokoły warstwy sesji NetBIOS(Network Basic Input Output System) RPC(Remote Procedure Call Protocol) RTP(Real-time Transport Protocol) RTCP(Real-time Transport Control Protocol) SMPP(Short Message Peer-to-Peer) SCP(Secure Copy Protocol) SHH(Secure Shell)
jest odpowiedzialna za dostarczenie i formatowanie informacji do/ z warstwy aplikacji celem dalszego przetwarzania lub wyświetlenia Głównym zadaniem warstwy prezentacji jest konwersja syntaktyczna danych w sposób zrozumiały dla systemów końcowych(standardy zależne od implementacji) wprowadza również kompresję oraz enkrypcję danych
, formaty danych ASCII ASCII(American Standard Code for Information Interchange)- sposób 7-bitowego kodowania znaków bazujący na alfabecie angielskim. ASCII zostało standardem w 1967, zrewidowane w 1986.Obecnieobejmujekodydla128znaków,wtym33 niedrukowalnych(znaki kontrolne formatowania tekstu) i 95 drukowalnych. Dostępne są również rozszerzenia ASCII: Extended ASCII,UTF-8,ISO8859,Windowscodepages,...
, formaty danych EBCDIC EBCDIC(Extended Binary Coded Decimal Interchange Code)- sposób 8-bitowego kodowania znaków wprowadzony przez IBM w 1963. Dostępne rozszerzenia dla określonych krajów(zróżnicowanie standardów)
, kompresja danych Kompresja danych Kompresja danych- proces kodowania informacji z wykorzystaniem mniejszej ilości bitów niż informacja oryginalna. Aby proces komunikacyjny mógł funkcjonować z wykorzystaniem kompresji, zarówno nadawca, jak i odbiorca muszą stosować ten sam algorytm kodowania. Stosowanie kompresji danych zmniejsza potencjalną ilość transmitowanych danych oszczędność pasma
, enkrypcja danych Enkrypcja danych Enkrypcja danych- proces kodowania informacji uniemożliwiający odczyt jej znaczenia bez odpowiedniej wiedzy. Enkrypcja danych jest powszechną metodą zabezpieczeń sieci, szczególnie w dziedzinach strategicznych e-commerce. Enkrypcja danych przebiega w oparciu o różne algorytmy szyfracji(szyfry blokowe, strumieniowe, w oparciu o klucze symetryczne, asymetryczne,...). Proces szyfracji danych może być przeprowadzany na dowolnej z warstw
, algorytmy szyfracji danych AES BlowFish DES RC5,RC6 TwoFish...
Protokoły warstwy prezentacji LPP(Lightweight Presentation Protocol) NCP(NetWare Core Protocol) NDR(Network Data Representation) XDR(eXternal Data Representation)
jest najbliższa końcowemu użytkownikowi Nie dostarcza usług dla żadnej innej warstwy jest jedynie odbiorcą W warstwie aplikacji zaimplementowane są usługi sieciowe dla konkretnych aplikacji Wyznacza wymaganą ilość funkcji i zasobów niezbędnych do nawiązania połączenia sieciowego
Zadania warstwy aplikacji Identyfikacja i ustalanie dostępności potencjalnych partnerów sieciowych(hostów zdolnych komunikować się) Synchronizacja współpracujących ze sobą aplikacji Ustanawianie zgodności procedur kontroli i naprawy błędów Kontrolowanie integralności danych
Protokoły warstwy aplikacji BOOTP(Bootstrap Protocol) DHCP(Dynamic Host Configuration Protocol) DNS(Domain Name System(Service) Protocol) FTP(File Transfer Protocol) HTTP(HyperText Transfer Protocol) IMAP, IMAP4(Internet Message Access Protocol)
Protokoły warstwy aplikacji NTP(Network Time Protocol) POP, POP3(Post Office Protocol) SMB(Server Message Block) SMTP(Simple Mail Transfer Protocol) SNMP(Simple Network Management Protocol) TELNET(Terminal Emulation Protocol of TCP/IP)
Aplikacje sieciowe Przeglądarki WWW Klienty poczty Przeglądarki grup dyskusyjnych Komunikatory...
Aplikacje sieciowe, przeglądarki WWW
Aplikacje sieciowe, klienty poczty
Aplikacje sieciowe, komunikatory sieciowe Gadu-gadu Tlen Jabber ICQ...
Aplikacje sieciowe, dostęp zdalny
Niedogodności modelu OSI Model TCP/IP Struktura protokołów modelu TCP/IP Mankamenty modelu OSI Model OSI jest dobrym modelem edukacyjnym wyjaśniającym zasady funkcjonowania komunikacyjnych sieci komputerowych, wielokrotnie ma jednak małe odniesienie do rzeczywistych implementacji Dekompozycja problemu komunikacji na poszczególne warstwy wielokrotnie jest nieefektywna i komplikuje analizę zdarzeń sieci
Niedogodności modelu OSI Model TCP/IP Struktura protokołów modelu TCP/IP Model TCP/IP Jakkolwiek używa się terminu model TCP/IP(model DARPA, model DoD), jednak(w przeciwieństwie do modelu ISO) nie jest to oficjalny model protokołów Stanowi duży zbiór protokołów wydanych przez IAB(Internet Activities Board) jako standardy dla Internetu
Niedogodności modelu OSI Model TCP/IP Struktura protokołów modelu TCP/IP Model TCP/IP Wywodzi się z eksperymentalnej sieci ARPANET Agencji ds. Zaawansowanych Projektów Badawczych Departamentu Obrony USA(DARPA, Defense Advanced Research Projects Agency), 1970 Nazwa TCP/IP pochodzi od dwóch najważniejszych protokołów: protokołu kontroli transmisji TCP(Transmission Control Protocol) oraz protokołu intersieci IP(Internet Protocol)
Niedogodności modelu OSI Model TCP/IP Struktura protokołów modelu TCP/IP Model TCP/IP TCP/IP(a nie model OSI) stanowi dominującą współcześnie architekturę sieci komputerowych Architektura TCP/IP ma strukturę hierarchiczną, przy czym nie jest wymagane użycie każdej warstwy Oryginalnie wyróżnia się cztery warstwy warstwędostępudosieci warstwęintersieci warstwętransportową warstwęaplikacji
Niedogodności modelu OSI Model TCP/IP Struktura protokołów modelu TCP/IP ModelDARPAvsOSI
Niedogodności modelu OSI Model TCP/IP Struktura protokołów modelu TCP/IP Struktura protokołów modelu TCP/IP Warstwa fizyczna: Bluetooth, Ethernet physical layer, ISDN, Modems, RS232, SONET/SDH, USB, Wi-Fi,... Warstwa dostępu do sieci: ATM, Bluetooth, Ethernet, FDDI, FrameRelay,GPRS,PPP,... Warstwa intersieci: IP(IPv4, IPv6), ARP, BGP, ICMP, IGMP, IGP,... Warstwatransportu:TCP,UDP,RSVP,DCCP,SCTP,... : DHCP, DNS, FTP, HTTP, IMAP4, IRC, POP3,SMTP,SNMP,SSH,TELNET,...
Jaktowszystkodziała?:)...
, przykład 1
, przykład 1 Użytkownik komputera Gimmli(192.168.1.3) dokonuje próby spingowania komputera Daeron(192.168.1.5). Jak będzie przebiegał ogół działań komunikacyjnych przy wydaniu polecenia: Gimmli> ping 192.168.1.5 Odpowiedź: 1. ARP Request(Who has 192.168.1.5?) ARP Reply 2. ICMP Request(Echo Request) ICMP Reply(Echo Reply)
, przykład 1 Użytkownik komputera Gimmli(192.168.1.3) dokonuje próby spingowania komputera Daeron(192.168.1.5). Jak będzie przebiegał ogół działań komunikacyjnych przy wydaniu polecenia: Gimmli> ping 192.168.1.5 Odpowiedź: 1. ARP Request(Who has 192.168.1.5?) ARP Reply 2. ICMP Request(Echo Request) ICMP Reply(Echo Reply)
, przykład 1 Użytkownik komputera Gimmli(192.168.1.3, GW: 192.168.1.1, DNS, WINS: 192.168.1.2) dokonuje próby spingowania komputera Daeron(192.168.1.5). Jak będzie przebiegał ogół działań komunikacyjnych przy wydaniu polecenia: Gimmli> ping Daeron Odpowiedź: 1. Lokalne sprawdzenie pliku hosts, lmhosts,... 2. ARP Request(Who has 192.168.1.2?) ARP Reply 3.NBNSNameRequest,DNSNameRequest(Daeron) NBNS Name Reply, DNS Name Reply 4. ICMP Request(Echo Request) ICMP Reply(Echo Reply)
, przykład 1 Użytkownik komputera Gimmli(192.168.1.3, GW: 192.168.1.1, DNS, WINS: 192.168.1.2) dokonuje próby spingowania komputera Daeron(192.168.1.5). Jak będzie przebiegał ogół działań komunikacyjnych przy wydaniu polecenia: Gimmli> ping Daeron Odpowiedź: 1. Lokalne sprawdzenie pliku hosts, lmhosts,... 2. ARP Request(Who has 192.168.1.2?) ARP Reply 3.NBNSNameRequest,DNSNameRequest(Daeron) NBNS Name Reply, DNS Name Reply 4. ICMP Request(Echo Request) ICMP Reply(Echo Reply)
, przykład 2
, przykład 2 Użytkownik komputera PC 1 1(10.1.1.10, GW: 10.1.1.1, DNS, WINS: 212.191.89.2) usiłuje obejrzeć stronę www.wp.pl. Jak będzie przebiegał ogół działań komunikacyjnych? Odpowiedź: 1. Lokalne sprawdzenie pliku hosts, lmhosts,... w poszukiwaniu aliasu dla www.wp.pl 2.ARPRequest(Whohas10.1.1.1?) ARPReply 3.NBNSNameRequest,DNSNameRequest(Daeron) NBNS Name Reply, DNS Name Reply 4.TCP3-WayHandshake(TCPSYN+TCPSYNACK+TCP ACK) 5.HTTPGet...
, przykład 2 Użytkownik komputera PC 1 1(10.1.1.10, GW: 10.1.1.1, DNS, WINS: 212.191.89.2) usiłuje obejrzeć stronę www.wp.pl. Jak będzie przebiegał ogół działań komunikacyjnych? Odpowiedź: 1. Lokalne sprawdzenie pliku hosts, lmhosts,... w poszukiwaniu aliasu dla www.wp.pl 2.ARPRequest(Whohas10.1.1.1?) ARPReply 3.NBNSNameRequest,DNSNameRequest(Daeron) NBNS Name Reply, DNS Name Reply 4.TCP3-WayHandshake(TCPSYN+TCPSYNACK+TCP ACK) 5.HTTPGet...
Koniec Dziękujęzauwagę...