Обсуждавшегося выше сценария со счетом до бесконечности (см. рис. 4.9) можно избежать, если использовать метод, называемый обратной коррекцией, или «отравлением» обратного пути (poisoned reverse). Идея этого метода проста — если узел Z направляет пакеты узлу X через узел У, тогда узел Z объявит узлу Y, что его (узла Z) расстояние до узла X равно бесконечности. Узел Z будет продолжать говорить узлу Y эту «маленькую ложь» до тех пор, пока узел Z направляет пакеты узлу X через узел Y. Поскольку узел Y полагает, что у узла Z нет пути к узлу X, узел Уникогда не станет пытаться посылать пакеты узлу X через узел Z, пока узел Z продолжает посылать пакеты узлу X через узел Y (и лгать о том, что у него нет пути к узлу X).
Читать далее »
Архив за апреля, 2008
Дистанционно-векторный алгоритм и обратная коррекция
Протокол сетевого уровня IP предоставляет транспортному уровню службу ненадежной передачи данных
Протокол сетевого уровня IP предоставляет транспортному уровню службу ненадежной передачи данных. IP не дает гарантий относительно доставки дейтаграмм, сохранения порядка их следования и корректности информации. При перегрузке маршрутизаторов дейтаграммы могут быть потеряны, порядок их получения может отличаться от порядка отправки, и, кроме того, допускаются искажения битов (изменения значений с 0 на 1 и наоборот). Поскольку дейтаграммы являются средством передачи сегментов транспортного уровня, последний сталкивается с перечисленными проблемами.
Читать далее »
Определение и управление величиной интервала ожидания
Как определить величину временного интервала ожидания на основе значений EstimatedRTT и DevRTT? Очевидно, что интервал ожидания должен быть не меньше EstimatedRTT, поскольку в противном случае это приведет к лишним повторным передачам. Вместе с тем интервал ожидания не должен значительно превосходить значение EstimatedRTT: чем больше времени требуется на обнаружение факта потери пакета, тем большие задержки при передаче данных испытывает приложение. Таким образом, для задания интервала ожидания наиболее предпочтительно увеличить значение EstimatedRTT на некоторую переменную величину, зависящую от разброса значений SampleRTT. Именно такой величиной является DevRTT. В протоколе TCP используется следующая формула для вычисления интервала ожидания:
Timeoutlnterval = EstimatedRTT + 4 х DevRTT.
Оценка времени оборота
Первый вопрос, который мы рассмотрим в контексте протокола TCP, — это вопрос об оценке времени оборота между передающей и принимающей сторонами. Под выборочным временем оборота (значение SampleRTT) будем понимать время, проходящее с момента передачи сегмента протоколу сетевого уровня (протоколу IP) передающей стороны до получения квитанции для этого сегмента. Вместо того чтобы измерять каждое значение SampleRTT, TCP делает измерение лишь для одного из переданных, но не квитированных сегментов. Таким образом, оказывается, что с периодичностью приблизительно в одно время оборота значение SampleRTT обновляется. Кроме того, SampleRTT никогда не измеряется для сегментов, передаваемых повторно (одно из упражнений, приведенных в конце этой главы, предлагает вам объяснить, почему).
Читать далее »