Звичайно, одна деталь, яку дивиться, - чи відповідає маршрут. Якщо я надсилаю на 192.0.2.55/24 і маршрут доступний для руху до 10.55.0.0/16, то цей маршрут ігнорується, оскільки він не застосовується.
Наступним критерієм, який зазвичай розглядається, є те, щоб більш конкретні маршрути мали пріоритет над більш загальними маршрутами. Під "конкретним" маршрутом я маю на увазі менші підмережі. Іншими словами, більша кількість при використанні нотацій / CIDR та більше маски підмережі при використанні позначення "маска підмережі". Іншими словами, мережі призначення з меншою кількістю можливих адрес.
Отже, "шлюз за замовчуванням", також відомий як "шлюз в крайньому випадку", як правило, визначає призначення для всього трафіку до мережі 0.0.0.0/0. Будь-який маршрут для меншої мережі буде "більш конкретним", ніж цей, і матиме пріоритет. Отже, 192.0.2.0/24 матиме більше пріоритету.
По-третє, маршрути зазвичай мають інше поле, яке називається "показник", або іноді інше ім'я, наприклад "пріоритет". Якщо у вас кілька мереж однакового розміру, це може мати вплив.
Ці "метричні" значення можуть бути те, що генерується автоматично (наприклад, таким чином швидкісна мережа використовується для більшої частини трафіку), але їх можна регулювати вручну.
Де інформація про шлюз, який слід кодувати всередині IP-пакетів, що надсилаються?
IP-пакети не містять ніякої інформації про маршрутизацію, за винятком зазначення IP-адреси призначення. Деталі маршрутів визначаються обладнанням, яке обробляє маршрутизацію, і такі деталі зазвичай не розміщуються в IP-пакеті. (Тому обладнання не шукає такої деталі, оскільки його немає. Оскільки обладнання не шукає такої інформації, було б безглуздо намагатися включити таку інформацію.)
RFC 791 на сторінці 11 показана таблиця стилів "ASCII ART" інформації, що знаходиться в IP-пакеті. Після цієї таблиці в цьому документі відображаються деталі (наприклад, розділ "Параметри" описаний на сторінці 15).