технологія tcp

Суть алгоритму дуже проста. Відомо, що після передачі по протоколу TCP певної порції даних (або закінчення певного часу очікування) хост-одержувач відправляє хосту-відправнику підтвердження (ACK) про отримання цієї порції даних. Хост відправник очікує періодичного отримання таких підтверджень, перш ніж відправити наступну порцію даних. У разі якщо таке підтвердження не отримане, хост-тправітель попопитается відправити цю порцію даних ще раз. І так хост-відправник буде робити кілька разів, після чого вважатиме TCP-з'єднання разоравнним і закриє відповідний сокет. Число спроб такої передачі задається в реєстрі Windows в параметрі TcpMaxDataRetransmissions. За замовчуванням це значення приймається рівним 5-й. Все описане раніше вірно, якщо налаштований всього один шлюз за замовчуванням. У тому випадку якщо в таблиці маршрутизації зазначено кілька шлюзів за замовчуванням (Default Gateways), то передача даних буде працювати трохи інакше.

Якщо більше 25% від усіх TCP з'єднань в записах RCE вже использут наступний шлюз, то всі інші TCP-з'єднань теж переводяться на новий шлюз, а так само робиться відмітка в таблиці маршрутизації, що основним шлюзом за замовчуванням тепер є новий хост .

Слід зауважити, що робота даного алгоритму можлива ТІЛЬКИ при наступних умовах:

  1. В налаштуваннях TCP / IP вказано більше одного шлюзу.
  2. Через непрацюючий шлюз вже встановлені TCP з'єднання або встановлюються TCP-з'єднання з зовнішніми хостами.
  3. Через альтернативні шлюзи за замовчуванням можлива маршрутизація до хоста-призначення.

Очевидно, що перемикання з одного шлюзу на інший не можливо без TCP з'єднань. Наприклад виконання команди PING не приведе до перемикання шлюзів, тому що PING використовує ICMP протокол.

що відповідають за роботу цього алгоритму. Перший з них (DeadGWDetectDefault) дозволяє включити або виключити алгоритм на всіх інтерфейсах відразу, а другий (EnableDeadGWDetect), дозволяє контролювати роботу алгоритму на рівні кожного інтерфейсу окремо.

Схожі статті