2012-01-02 2 views
-1

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

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

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

ответ

1

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

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

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

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

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

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

+0

Благодарим за отзыв. Но, мой фактический вопрос: какой уровень 3 получает от уровня 4, НЕ содержит ничего о IP-адресе (или имени хоста). Итак, откуда он это несет? Другими словами, существует ли общий или глобальный источник информации одновременно с 7 слоями, или дело в том, что каждый слой может получать информацию только от того, что находится над ним? Надеюсь, я понятен – Tony

+0

@Tony Вы ошибаетесь в своем фундаментальном утверждении. – EJP

1

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

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

1

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

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

Смежные вопросы