Warstwa prezentacji jest 6 th warstwa modelu OSI .
Warstwa prezentacji odpowiada za kodowanie danych aplikacji. Warstwy od 1 do 5 przenoszą nieprzetworzone bajty niezależnie od ich znaczenia. Ale w praktyce trzeba przenosić tekst, liczby i czasami dowolnie złożone struktury danych. Na przykład protokół routingu musi przesyłać wykres przedstawiający przynajmniej częściowo topologię sieci. Rolą warstwy prezentacji jest zatem konwersja danych aplikacji obsługiwanych przez programy na ciągi bajtów.
W świecie ISO regułą jest zdefiniowanie danych w ASN.1 ( Abstract Syntax Notation ) i wykonanie kodowania / dekodowania w BER lub DER w warstwie prezentacji .
W świecie IP historycznie metoda kanoniczna i niejawna polega na przekształceniu wszystkiego w tekst: kodowanie liczb całkowitych w postaci dziesiętnej, niestosowanie liczb zmiennoprzecinkowych, stosowanie ograniczników, takich jak cudzysłów lub znak końca wiersza (bajty 13 i 10) ze skomplikowanymi mechanizmami ucieczki dla przypadków, w których separator pojawia się w danych. Transformacje te są określone i często powtarzane dla każdego protokołu aplikacji, ponieważ „model” IP nie zawiera warstwy prezentacji.
To tylko w połowie rozwiązuje problem, ponieważ kodowanie znaków w bajtach nie jest zdefiniowane. Albo używamy kodowania US-ASCII, ignorując języki używające znaków innych niż ASCII (patrz na przykład protokół SMTP ( RFC 821 dodatek A i RFC 822 sekcja 3.3)), albo czasami dodajemy deklarację kodowania znaków (zobacz użycie MIME w ESMTP i HTTP ). Nawet w przypadku protokołu HTTP adresy URL są opisywane jako składające się ze znaków, ale bez określania, które znaki są dozwolone. (Na przykład: czy sekwencja zmiany znaczenia „% 85” dla bajtu 133 jest prawidłowa?)
Kiedy okazało się to niewystarczające ze względu na złożoność struktury przesyłanych danych, w szczególności dla protokołu aplikacji Remote Procedure Call firmy Sun Microsystems , wynaleziono XDR ( External Data Representation ), aż do wprowadzenia XML w 1998 roku, którego powołaniem było właśnie rozszerzenie trybu reprezentacji SGML zaprojektowanego dla plików typu „dokument” (zużywanych przez ludzi) na zbiory elementów danych (do przetworzenia przez maszyny) przechodzące przez Internet.
Zauważ, że żadna z tych reprezentacji nie jest poprawnym protokołem. Pokazuje to, że jeśli nie ma negocjacji trybu kodowania, każdy mechanizm używany do nagrywania może również działać jako funkcja prezentacji.