Мне интересно, есть ли у меня компьютер в подсети A с IP-адресом 192.168.123.1
и компьютер с IP-адресом 192.168.124.1
в другой подсети.
Обе сети связаны с маршрутизатором. Если я хочу сейчас отправить пакет с компьютера A на компьютер B, мне придется использовать ARP, чтобы получить их MAC-адрес для отправки кадра (предположим, что кэш ARP пуст).
Мой вопрос сейчас: как бы выглядел этот ARP-запрос, у меня есть два возможных метода:
Компьютер A видит, что IP-адрес компьютера B находится за пределами его собственной подсети. Он решает отправить пакет на свой шлюз по умолчанию (маршрутизатор) и отправляет запрос ARP с IP-адресом маршрутизатора. Далее: маршрутизатор отвечает своим MAC-адресом, и кадр отправляется маршрутизатору, который позаботится о кадре.
Компьютер A "тупой" и отправляет запрос ARP с IP-адресом B. Маршрутизатор достаточно умен и видит, что IP-адрес находится в его маршрутной таблице. И отвечает своим собственным MAC-адресом. Затем компьютер A отправляет кадр маршрутизатору, думая, что это компьютер B. Маршрутизатор отправляет пакет на компьютер B.
Недостатком второго подхода является то, что когда вы переходите на Google, он выполняет запрос arp с IP-адресом Google. Маршрутизатор ответит своим, так как знает, как добраться до Google. В следующий раз, когда вы зайдете на другой веб-сайт, вам придется снова сделать то же самое и отправить запрос arp с IP-адресом этого веб-сайта. Это приведет к множеству запросов arp (по одному на каждый сайт). И кеш arp станет очень большим.
Я действительно не знаю ответ. Я нашел два YouTube videos- этот и этот один -Каждый рассказывал мне разные вещи:
Я надеюсь, что кто-нибудь может мне помочь.