Инкапсуляция – Практика по курсу ‘Компьютерные сети

27
31 авг. 2017 г.

Исследуем в Wireshark, как сообщения разных сетевых протоколов вложены друг в друга.

Инкапсуляция – это вложение сообщения протокола вышестоящего уровня в сообщение протокола нижестоящего уровня.

Сообщение при передаче по сети состоит из трех частей: заголовок + данные + концевик (не обязателен).

Пакет протокола HTTP имеет следующую структуру:
1. Заголовок канального уровня Ethernet.
2. Заголовок протокола сетевого уровня IP.
3. Заголовок протокола транспортного уровня TCP.
4. Заголовок протокола прикладного уровня HTTP и его данные.
Сообщение HTTP вложено в сообщение TCP, то в свою очередь вложено в сообщение IP, которое вложено в сообщение Ethernet. Это и есть инкапсуляция.

В пакете не обязательно должны присутствовать сообщения всех уровней. Например, в пакете ARP всего два уровня: канальный Ethernet и затем сразу ARP (управляющий протокол сетевого уровня).

Важная особенность в том, что эталонные модели OSI и TCP/IP являются рекомендациями, а не жесткими требованиями. Поэтому на практике сообщения протоколов могут быть вложены друг в друга с нарушениями уровней моделей. Например, сообщения протокола ICMP вкладываются в сообщения протокола сетевого уровня IP. Но это не значит, что ICMP – протокол транспортного уровня.

Похожая ситуация с DHCP, сообщения которого вкладываются в сообщения протокола транспортного уровня UDP. Однако это не означает, что DHCP – протокол прикладного уровня, он не предоставляет никакой полезной функциональности сетевым приложениям. DHCP нужен для автоматического назначения IP-адресов сетевым устройствам, это вспомогательный протокол сетевого уровня.