Прошло много времени с тех пор, как я изучал сети, но я попробую.
это вы написали здесь
«модем будет действовать как маршрутизатор (переключение)» - это нонсенс, вы должны называть его «маршрутизатор / коммутатор / модем»
это полная чушь
Вы можете назвать устройство маршрутизатором / коммутатором / модемом, и когда оно действует как маршрутизатор, оно выполняет маршрутизацию, когда оно действует как коммутатор, оно переключается, а когда оно действует как модем, оно действует как модем (модем это не слово, к сожалению, хотя вы могли бы это придумать).
И вы, в основном, спрашиваете, проверяется ли таблица маршрутизации для случая соединения на одной линии, PC1 PC2 той же подсети. (Также имейте в виду, что таблица маршрутизации, которую вы показали, это на ПК1, а не на маршрутизаторе. Кроме того, PC1 - это не то, что большинство считает маршрутизатором, поскольку у него нет данных, поступающих в один интерфейс и выходящих из другого). Пакет сначала попадет на коммутатор устройства. Таблица маршрутизации на вашем маршрутизаторе не будет иметь IP-адрес PC2. «Пакет» от ПК1 сначала попадет на коммутатор, а затем будет перенаправлен на ПК2, а не на маршрутизатор. ПК1 поместил туда MAC-адрес ПК2, потому что ПК1 проверил, находится ли ПК2 в той же подсети, и, поскольку это было, он поместил MAC-адрес ПК2 в «пакет» (или, можно сказать, кадр). Если бы PC2 не был в той же подсети, то он поместил бы MAC-адрес маршрутизатора в «пакет» (где я использую термин «пакет» в кавычках, я имею в виду общий смысл, а не смысл ISO OSI, поэтому я имею в виду любое поле независимо от «слоя»). Я думаю, что случай, когда он попадет в маршрутизатор, будет от ПК1 к Интернету или наоборот, или рассмотрим маршрутизатор с несколькими интерфейсами, а не только два, которые есть у «home /SOHO», тогда, если вы отправил пакет из одной напрямую подключенной подсети в другую, или пакет поступил из Интернета в непосредственно подключенную подсеть, после чего пакет прошел бы через коммутатор, к маршрутизатору, например, к коммутатору, затем к компьютеру. Но для ПК1 - ПК2 таблица маршрутизации не будет использоваться. Часть маршрутизатора устройства не будет использоваться.
Ты пишешь
Прав ли я, что когда я запускаю команду ping на ПК1, он напрямую связывается с ПК2 - он отправляет дейтаграмму ARP на ПК2, чтобы получить свой MAC-адрес?
Во-первых, помните, что пинг работает выше IP, а ARP - ниже IP.
Таким образом, пинг потенциально может попасть в маршрутизатор.
И помните, что Ping - это ICMP.
Он будет выполнять только ARP, если у него нет MAC-адреса.
Технически трансляция ARP затронет все устройства, включая маршрутизатор. потому что все, что имеет адрес L3 (например, IP), также имеет адрес L2 (например, MAC). Но ARP никогда не будет маршрутизирован.
Запрос ARP попадет на коммутатор, поэтому я не буду называть его идущим напрямую с ПК1 на ПК2. Хотя ПК1 будет обращаться к ПК2, используя как адрес L3, так и адрес L2. Таким образом, он будет напрямую обращаться к PC2.
Ты пишешь
"Что произойдет, когда я изменю шлюз маршрута 192.168.0.11 на 192.168.0.1?"
Итак, ваш PC1 имеет таблицу маршрутизации, как вы можете видеть, netstat -rn
показывает таблицу, как вы видите .. Он делает больше, если вы используете его больше как маршрутизатор, так что пакеты приходят и уходят, а не, возможно, только слегка маршрутизирующее использование только пакетов, выходящих.
Это 192.168.0.11 - IP вашего ПК1.
И заголовок столбца, который вы пропустили из таблицы маршрутизации вашего ПК1, - «Интерфейс».
например, для меня на моем "ПК1" (с небольшим изменением, чтобы сделать мой адрес-шлюз таким же, как ваш, для простоты)
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.1.117 25
обычно нельзя изменить IP-адрес этого интерфейса ... можно изменить свой IP-адрес, но это должно обновиться. Можно было бы изменить его, но если бы он сделал, можно было бы изменить его на IP другого напрямую подключенного интерфейса устройства. Таким образом, не IP вашего шлюза. (шлюз - это еще один термин для маршрутизатора ... это немного более старый термин в RFC. ).
Было бы глупо, если бы вы попытались изменить его на 192.168.0.1, потому что у PC1 нет такого интерфейса. Это не его IP. Или IP любого из его сетевых интерфейсов.
Поэтому, если вы посмотрите на колонку интерфейса, вы не получите IP, не связанный с PC1. (Я вижу адрес 169., но иногда он назначается, когда он не может получить IP-адрес. Это все еще IP-адрес, связанный с компьютером, на котором я запускал команду netstat -rn
)
И на маршрутизаторе SOHO с его двумя интерфейсами вы не получите ничего, кроме них, и локальный интерфейс 127.0.0.1
добавленной
Я вижу, что эта строка тоже связана с моим интерфейсом 192.168.1.11. Я покажу это здесь. И эта вторая строка относится к той, которую вы показали в своем вопросе
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.1.117 25
192.168.1.117 255.255.255.255 On-link 192.168.1.117 281