Как уровень 3 (сетевой уровень) распознает IP-адрес? - PullRequest
0 голосов
/ 02 января 2012

Уровень 2 (уровень Ethernet) распознает MAC-адрес, используя протокол ARP. Он отправляет вопрос всей сети с вопросом: «Какой MAC-адрес имеет IP x?». Вот как он распознает MAC-адрес назначения.

Но как Уровень 3 (уровень IP) знает IP-адрес? Он не передается ему из транспортного уровня (уровень 4). Передан только номер порта.

Я надеюсь, что я конкретен. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 20 октября 2014

Но как Уровень 3 (уровень IP) знает IP-адрес? Он не передается ему из транспортного уровня (уровень 4). Передан только номер порта.

Это не правильно. Как TCP, так и UDP имеют явную операцию bind(), которая действительно передает IP-адрес. TCP также имеет явную операцию connect(), которая также передает IP-адрес, и неявную операцию bind(), где исходный IP-адрес вычисляется из таблиц одноадресной IP-маршрутизации.

2 голосов
/ 02 января 2012

С пакетом связаны два IP-адреса: отправляющий (также известный как исходный) IP и целевой IP-адрес.

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

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

Для удаленных адресатов DNS-серверы используются для разрешения имени <-> IP.DNS - это то, что позволяет людям использовать нашу силу, такие имена, как www.espn.com, в то время как компьютер может использовать свою силу, битовое представление IP-адресов, например 10.5.0.1.Разрешение DNS может быть настроено различными способами, но в основном сводится к проверке локального кэша, чтобы увидеть, существует ли предыдущее разрешение, и если нет запроса одного или нескольких DNS-серверов для разрешения запроса.

Если целевой компьютерлокально, в той же подсети, тогда ARP / RARP используется для трансляции MAC <-> IP.Еще раз сначала проверяется кэш, в данном случае кэш ARP, прежде чем создавать новый запрос ARP (и, следовательно, использовать пропускную способность сети).

Надеюсь, это поможет.

1 голос
/ 20 октября 2014

Каждый слой предоставляет интерфейс для слоя выше. Именно через этот интерфейс layer4 отправляет layer3, IP-адрес назначения. layer5 (прикладной уровень) отправляет IP-адрес назначения, с которым он хочет общаться, на layer4, который, в свою очередь, отправляет его на layer3. Уровень 3 включает это в IP-пакет и передает этот пакет на уровень 2 (наряду с другими вещами, такими как MAC-адрес пункта назначения и т. Д.)

Это похоже на аргументы при вызове функции. Предположим, что интерфейс, предоставляемый layer3, является send_packet(), layer4 вызывает его, может быть, как send_packet(srcIP, destIP)

...