Problem złożoności
Przesłanie danych między dwoma komputerami obejmuje kilka różnych zadań: przekazanie danych z aplikacji do interfejsu Ethernet, znalezienie drogi do odległego hosta, wykrywanie i obsługę błędów oraz uzgodnienie formatów danych używanych przez różne komputery. Granice warstw określają odpowiedzialności, usługi i interfejsy przekazywania danych między sąsiednimi elementami stosu.
Rozwiązanie wszystkich tych zadań w jednym, monolitycznym module utrudniałoby rozwój i wymianę poszczególnych funkcji. Architektura warstwowa dzieli komunikację sieciową na mniejsze części, z których każda ma określony zakres odpowiedzialności i korzysta z usług warstw sąsiednich. Wyższa warstwa korzysta z usługi niższej przez interfejs, bez znajomości szczegółów jej realizacji.
Analogia: dwóch filozofów
Uproszczony przykład dwóch filozofów, jednego w Warszawie i drugiego w Tokio, pokazuje, jak warstwy rozdzielają odpowiedzialności podczas komunikacji.
- Warstwa 3 (Warstwa idei): Filozofowie zajmują się wyłącznie rozmową o filozofii. Ta rola odpowiada aplikacji użytkownika, takiej jak przeglądarka internetowa lub klient poczty elektronicznej. Filozof w Warszawie ma ideę do przekazania.
- Warstwa 2 (Warstwa języka): Filozof z Warszawy mówi po polsku, a filozof z Tokio po japońsku. Każdy korzysta z tłumacza. Tłumacz w Warszawie przekłada tekst na wspólny, uzgodniony język, na przykład łacinę, zrozumiały dla drugiego tłumacza. Odpowiada to .
- Warstwa 1 (Warstwa logistyki): Każdy tłumacz przekazuje wiadomość sekretarce. Sekretarka umieszcza ją w kopercie, zapisuje adresy, może dodać numer śledzenia do potwierdzenia dostarczenia i przekazuje list operatorowi pocztowemu. Odpowiada to oraz .
- Medium fizyczne (poczta): Poczta Polska odbiera list, transportuje go ciężarówką lub samolotem do Japonii, gdzie Poczta Japońska przejmuje przesyłkę i dostarcza ją pod wskazany adres. Odpowiada to .
Po stronie odbiorcy w Tokio te czynności zachodzą w odwrotnej kolejności. Poczta dostarcza list, sekretarka go otwiera i sprawdza, tłumacz przekłada wiadomość na japoński, a filozof z Tokio otrzymuje ideę.
Zasady architektury warstwowej
Analogia filozofów pokazuje podstawowe zasady sieci warstwowych:
- Komunikacja równorzędna (peer-to-peer): W modelu każda warstwa komunikuje się logicznie z odpowiadającą jej warstwą na drugiej maszynie. Tłumacz z Warszawy komunikuje się z tłumaczem z Tokio. Używają oni wspólnego zbioru zasad, znanego jako .
- Usługi interfejsu: Każda warstwa świadczy usługi warstwie znajdującej się bezpośrednio nad nią poprzez dobrze zdefiniowany . Filozof z Warszawy nie musi znać szczegółów tłumaczenia ani usług pocztowych. Przekazuje swój pomysł tłumaczowi. W modelu dane są przetwarzane w dół stosu po stronie nadawczej i w górę stosu po stronie odbiorczej.
- Niezależność warstw: Zmiana implementacji jednej warstwy nie powinna wymagać zmian w innych, jeśli zachowane są interfejs i usługa świadczona warstwie wyższej. Warunek dotyczy zgodności interfejsu i obserwowanej usługi. Implementacja może pozostać różna. W analogii można zmienić sposób przewozu listów, jeśli zachowany zostanie sposób ich odbioru. Umożliwia to modułowość i rozwój technologiczny.