Model referencyjny ISO/OSI

Ponieważ w różnych książkach na temat modelu referencyjnego wypisywane są różne rzeczy (co niestety często wynika z niskiej jakości tłumaczeń i redakcji podręczników polskojęzycznych) poniżej przedstawiam krótki opis, tego czym model jest na prawdę i czym zajmują się jego poszczególne warstwy. Zainteresowanych odsyłam do normy ISO/IEC 7498, którą można znaleźć tutaj
Celem modelu jest zaproponowanie podstawowych pojęć pomocnych przy tworzeniu standardów łączenia systemów oraz określenie obszarów działania tychże standardów. Omawiana norma ISO/OSI zawiera zatem specyfikację poszczególnych obszarów działania obecnych i przyszłych protokołów, dzieli wszystkie problemy związane z transportem danych w sieciach na grupy zwane warstwami.
Warstwa fizyczna odpowiedzialna jest za transport pojedynczych bitów oraz specyfikacje elektromagentycznych i mechanicznych właściwości mediów transmisyjnych. Uwaga: same media nie znajdują się "w modelu", albowiem nie są one "obszarem działania" ani "problemem"
Warstwa łącza danych (lub, jak wolą niektórzy "łączenia danych") zajmuje się łączeniem bitów w ramki, adresowaniem fizycznym, wykrywaniem błędów transmisyjnych i ich korekcją. W tej warstwie wprowadza się też pojęcie transmisji połączeniowej i bezpołączeniowej.
Warstwa sieci zajmuje się adresowaniem logicznym i trasowaniem (routingiem)
Warstwa transportu odpowiada za zapewnienie "przezroczystego" połączenia pomiędzy jednostkami warstwy sesji (stąd mówi się czasem, że ukrywa to co dzieje się w warstwach dolnych przed warstwami górnymi) oraz dostarcza mechanizmów połączeń typu "end-to-end" różnicując między innymi aplikacje działające na poszczególnych hostach (w przypadku protokołów stosu TCP/IP za pomocą numerów portów)
Warstwa sesji odpowiada za zarządzanie przebiegiem dialogu pomiędzy systemami (w tej warstwie występują takie pojęcia jak np. "simplex" czy "half-duplex")
Warstwa prezentacji jest odpowiedzialna za kodowanie i szyfrowanie przesyłanej informacji
Warstwa aplikacji zajmuje się specyfikacją interfejsu, który wykorzystują programy do przesyłania danych do sieci (poprzez kolejne warstwy modelu ISO/OSI).
Oprócz modelu ISO/OSI istnieje model zwany modelem Departamentu Obrony Rządu USA (Department of Defence, DoD) opisujący, to co dzieje się w stosie protokołów TCP/IP, dzielący zagadnienia sieciowe na 4 warstwy: procesów/aplikacji, host-to-host, intersieci i dostępu do sieci. Oba modele (ISO/OSI i DoD) opisują to samo, więc można je łatwo ze sobą porównać (tabela poniżej). Żeby było jeszcze trudniej, Institute of Electrical and Electronics Engineers (IEEE) wprowadził własny podział przy normalizacji protokołów I i II warstwy (w szczególności rodziny ethernet), dzieląc je odpowiednio: II warstwę na podwarstwy Logical Link Control (LLC) i Media Access Control (MAC) a I warstwę na podwarstwy Physical Coding Sublayer (PCS), Physical Medium Attachment (PMA) oraz Physical Medium Dependent (PMD). Jak się to wszystko ma do siebie, pokazuje rysunek poniżej.



Zaciskanie skrętki




Podstawowe struktury danych w sieciach




Ethernet Frame Format
    0                   1                   2                  0 1 2 3 
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2   46-1500 B
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+... ........+-+-+-+-+
   | Dest  MAC | Source MAC| T |    data octets ...           | CRC   |
   +--------------------------------------------- ... ........+-+-+-+-+

IPv4 Header Format
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version|  IHL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

TCP Format
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Source Port          |       Destination Port        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sequence Number                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Acknowledgment Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Data |           |U|A|P|R|S|F|                               |
   | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
   |       |           |G|K|H|T|N|N|                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |         Urgent Pointer        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

User Datagram Header Format
  
     0      7 8     15 16    23 24    31  
    

+--------+--------+--------+--------+ 
    
|     Source      |   Destination   | 
    
|      Port       |      Port       | 
    
+--------+--------+--------+--------+ 
    
|                 |                 | 
    
|     Length      |    Checksum     | 
    
+--------+--------+--------+--------+ 
    
|                                     
    
|          data octets ...            
    
+---------------- ...                 



User Datagram Pseudo Header Format

     0      7 8     15 16    23 24    31 
    

+--------+--------+--------+--------+
    
|          source address           |
    
+--------+--------+--------+--------+
    
|        destination address        |
    
+--------+--------+--------+--------+

|  zero  |protocol|   UDP length    |
    
+--------+--------+--------+--------+

Brak komentarzy:

Prześlij komentarz