Masywną eksplozję aplikacji zawdzięczamy w dużej mierze genialności warstwowego podejścia do przetwarzania danych przez sieć. W szczególności, utrzymywanie niezależności działania funkcji warstwy aplikacji od funkcji transportu danych, pozwala na wprowadzanie zmian protokołów warstwy aplikacji i na rozwijanie nowych aplikacji, bez potrzeby troszczenia się o mechanizmy przesyłania danych poprzez sieć. Są to funkcje innych warstw, a zatem innych twórców oprogramowania.

Jak pokazano na rysunku, gdy aplikacja wysyła żądanie do serwera aplikacji, komunikat jest tworzony przez warstwę aplikacji, ale następnie jest przekazywany przez wszystkie warstwy o ​​różnych funkcjach do klienta. W trakcie przemieszczania się przez stos każda z niższych warstw w procesie enkapsulacji danych dodaje nagłówek zawierający protokoły komunikacyjne dla tej warstwy. Protokoły, które są zaimplementowane w komunikujących się ze sobą hostach (wysyłającym i odbierającym), współpracują aby umożliwić wymianę danych aplikacji poprzez sieć.

Protokoły, takie jak np. HTTP, wspierają dostarczanie stron WWW na urządzenia końcowe. Teraz, gdy poznaliśmy wszystkie warstwy i ich funkcjonalności, możemy śledzić żądania klienta strony WWW z serwera, aby zobaczyć, jak wszystkie z tych niezależnych funkcji działają w pełni, razem.

Przy zastosowaniu modelu TCP/IP, cały proces komunikacji obejmuje sześć kroków:

Utworzenie danych

Pierwszym krokiem jest utworzenie danych w warstwie aplikacji urządzenia wysyłającego. W tym przypadku, po zakończeniu konstruowania żądania www przez klienta, znanego jako HTTP GET, dane te są następnie kodowane, skompresowane i zaszyfrowane, jeśli jest to konieczne. Jest to zadanie protokołu warstwy aplikacji w modelu TCP/IP - ale obejmuje funkcjonalność opisaną przez warstwy aplikacji, prezentacji i sesji modelu OSI. Warstwa aplikacji przesyła te dane jako strumień do warstwy transportowej.

Segmentacja i wstępna enkapsulacja

Następnym krokiem jest segmentacja i enkapsulacja danych, które są przekazywane w dół stosu protokołów. W warstwie transportowej, komunikat HTTP GET zostanie podzielony na mniejsze i łatwiejsze w zarządzaniu części, a do każdej części wiadomości zostanie dodany nagłówek warstwy transportowej. Wewnątrz nagłówka warstwy transportowej są wskaźniki, jak odbudować komunikat. Dołączony jest również identyfikator, port numer 80. Użyto go, aby poinformować serwer docelowy, że komunikat jest przeznaczony dla jego aplikacji serwera WWW. Generowany losowo port źródłowy jest również dodawany, aby klient mógł śledzić komunikację zwrotną i skierować ją do właściwej aplikacji klienckiej.