Мой сетевой адаптер на моем компьютере имеет маску подсети. Это только для его собственной информации? Или маска подсети добавляется в заголовки TCP/IP, чтобы помочь следующему устройству выполнить маршрутизацию? Я предполагаю, что это только для информации отдельного устройства. Спасибо за ваши ответы заранее!
2 ответа
Ни IP, ни TCP не включают маску подсети в свои заголовки.
Маска подсети используется при получении трафика - если трафик появляется на проводе, который не находится в подсети, которой назначен интерфейс, он его отбросит. Если интерфейс находится в беспорядочном режиме, то весь трафик, который он получает, отправляется в стек TCP/IP.
ОС использует маску подсети, чтобы узнать, должен ли он направлять трафик непосредственно к IP-адресу назначения (если он находится внутри подсети) или к шлюзу (по умолчанию) (если это не так).
Поскольку сетевые адаптеры на аппаратном уровне традиционно отправляют и получают кадры Ethernet, а не IP-пакеты, я не думаю, что это обязательно является аппаратной функцией сетевой карты, хотя современные сетевые адаптеры имеют "TCP Offload Engines" (TOE), которые выполняют большую часть обработка, требуемая TCP на самой сетевой плате - они, вероятно, также фильтруются по подсетям в аппаратном обеспечении.
Маска сети, связанная с сетевым интерфейсом, используется в следующих ситуациях:
- Обычно (но не обязательно) система маршрутизации автоматически создает маршрут к подсети интерфейса
- Только IPv4: хост определяет, является ли пакет, полученный интерфейсом, широковещательным для собственной подсети (и должен обрабатываться как таковой).
Эти параметры подробно описаны в статье « Последствия несоответствия сетевой маски ».
Сама маска сети напрямую не влияет на то, должен ли хост отправлять пакет напрямую по адресу назначения или шлюзу; именно система маршрутизации отвечает за это решение (но, как сказано выше, маски сетей обычно используются для построения таблиц маршрутизации).