Как IP-адрес переходит с уровня приложения на уровень IP? [закрыто]

Используя классическую модель слоев TCP / IP, я думаю о приложении (например, браузере), действующем в качестве клиента, желающего общаться с сервером (например, веб-сервером). . Конечно, он должен использовать IP-адрес сервера, чтобы найти хост сервера в Интернете. Итак, мой процесс прикладного уровня (браузер) знает IP-адрес пункта назначения (например, он получил его из DNS-запроса).

Для обработки этого запроса браузер передает его на транспортный уровень, а точнее - в процесс TCP. Моя проблема в том, что в сегменте TCP нет поля для IP-адресов, ни места назначения, ни источника. Процессы транспортного уровня используют порт как способ адресации источника и назначения. Когда сегмент передается на нижележащий уровень и становится IP-пакетом, здесь снова возвращаются IP-адреса (как места назначения, так и источника). Это кажется волшебным!

Этот IP-адрес, исчезающий и появляющийся на два уровня ниже, - это именно то, что я пытаюсь понять. Есть ли какое-то нарушение структуры уровня, которое позволяет этой информации просачиваться через уровень TCP? Или я не понимаю чего-то очень важного?

0
задан 16 November 2014 в 17:13
1 ответ

Вы усложняете простые вещи в своем воображении.

Каждый уровень инкапсулируется в слой ниже, поэтому, когда ваш браузер использует сокет TCP, на самом деле он также использует все уровни ниже TCP, остальная часть стека обычно абстрагируется для программистов.

Если вам нравятся приключения, вы все равно можете создать программу, используя сырые сокеты, и самостоятельно управлять всем стеком от уровня 2 до уровня 7. Например, программы сниффинга / внедрения пакетов используют такие сокеты для записи / изменения соответствующих полей в желаемых слоях на основе опций, переданных программе.

Например. с packit вы можете изменить поля уровня 2, такие как MAC-адреса источника / получателя, чтобы провести некоторые эксперименты в вашей сети (например, подмена MAC-адреса другого хоста для обхода фильтрации MAC при отправке данных по протоколу с использованием UDP на уровне 4).

2
ответ дан 4 December 2019 в 13:54

Теги

Похожие вопросы