4

У меня есть сценарий, как показано ниже.
Здесь две хост-машины подключены через концентратор:

Итак, хост-1 хочет пропинговать хост-2, и я установил wireshark на 3-м хосте, подключенном к тому же концентратору. Теперь, к удивлению, для работы одной команды ping я вижу 6 пакетов, а их должно быть 4. Вот что я вижу из Wireshark:

Теперь я не понимаю, почему пакеты 5 и 6 генерируются, пока они не находятся в ARP, и адресат назначения уже знает Mac отправителя.

Или что-то не так с моим пониманием, пожалуйста, помогите.

1 ответ1

1

Оригинальный ответ

Первый ответ приходит от интерфейса концентратора, а не интерфейса хоста-1. При отправке вещей вам все равно нужно знать mac интерфейса с IP хоста-1. Некоторые переключатели делают это автоматически, другие нет.

Улучшенный ответ:


              .-----------.
              | hub       |
              |           |
[host-1 i1]+--+hi1     hi2+--+[i2 host-2]
              |           |
              `-----------´

network interfaces: 
i1, i2, hi1, hi2

После отправки чего-либо на хост-1 с хоста-2 через IP-адрес на уровне приложений начальный ответ на хост-2 (и все последующие ответы) будет поступать от интерфейса hi2 , а не от интерфейса i1 в хосте-1.

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

Некоторые переключатели выполняют такой перевод автоматически - они запоминают mac-path в обратном направлении. Большинство хабов нет, отсюда и второй запрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .