Вопрос или проблема
Мой межсессионный экзамен на следующей неделе, и вот такая задача в моей книге: нигде не указано, как именно рассчитывать загрузку; я не смог найти никакой существенной информации, необходимой для решения этой задачи.
В любом случае, вот вопрос:
Расстояние от Земли до далекой планеты составляет примерно 9 × 10^10 м. Какова загрузка канала, если используется протокол стоп-энд-вэйт для передачи кадров на точечном соединении 64 Мбит/с? Предположим, что размер кадра составляет 32 КБ, а скорость света — 3 × 10^8 м/с.
Предположим, что используется протокол скользящего окна. Какой размер окна отправителя обеспечит 100% загрузку канала? Вы можете игнорировать время обработки протокола на отправителе и приемнике.
Спасибо всем, у кого есть любая идея.
С любым соединением есть пропускная способность и задержка. Пропускная способность определяет, сколько данных вы можете передать по соединению за секунду — 64 Мбит/с. Задержка определяет, сколько времени требуется, чтобы данные достигли другого конца.
В этом случае другой конец находится далеко, и данные могут двигаться с максимальной скоростью света. Таким образом, задержка — это время, которое требуется кадру, чтобы добраться туда.
Если упростить, скажем, другой конец находится в 100 метрах, и потребуется 10 минут, чтобы отправить пакет на 100 метров. Поскольку мы используем протокол стоп-энд-вэйт, каждый пакет будет занимать 10 минут, чтобы добраться до другого конца, а подтверждение займет 10 минут, чтобы вернуться к нам, и мы должны дождаться ответа, прежде чем следующий пакет может быть отправлен.
Это означает, что мы можем отправлять только 32 КБ каждые 20 минут, даже если наша линия может передавать 64 Мбит/с.
32 КБ — это 256 кбит, а 20 минут — это 1200 секунд. Таким образом, мы можем отправлять 256 кбит каждые 1200 секунд или 0,213 кбит/с — это крошечная доля от 64 Мбит/с — соединение будет использоваться на 0,0003%.
Вы можете провести те же расчеты для планеты, и учитывая расстояние, любые дополнительные задержки, такие как кодирование пакета или его передача в передатчик, можно считать незначительными (это подразумевается отсутствием упоминаний в вопросе).
Для протокола стоп-энд-вэйт Tx = L / B = (32 X 10^3 X 8) / (64 X 10^6) = 0,004 сек, Tp = D / V = (9 × 10^10 ) / (3 × 10^8) = 300 сек => RTT = 2 * Tp = 600 сек, тогда загрузка = 1 / (1 + 2a) = 1 / 1,50,001 = 6,667×10^-6 = 6,667×10^-4 % (где a = Tp / Tx = 75000)
Для SWP, если эффективность составляет 100%, то размер окна (w) <= 2a + 1, тогда w <= 2 (75000) + 1 = 1,50,001 где a = Tp / Tx = 75000`
.
Ответ или решение
Теория
Для понимания задачи расчета утилизации канала в протоколе "Стоп и жди" важно разобраться с основными параметрами, влияющими на передачу данных в сетях. Прежде всего, это латентность и пропускная способность канала.
Пропускная способность (или "пропускная способность канала") характеризует количество данных, которое может передаваться через канал в единицу времени. В данном случае это 64 Мбит/с. Латентность определяет время, необходимое для передачи данных от отправителя к получателю. Здесь указывается, что это расстояние от Земли до далекой планеты составляет примерно (9 \times 10^{10}) метров, и данные могут передаваться со скоростью света, (3 \times 10^8 \, \text{м/с}).
Протокол "Стоп и жди" известен тем, что отправитель после передачи каждого пакета ждет подтверждение его получения перед отправкой следующего. Это создает ограничения в отношении утилизации канала, так как время ожидания подтверждения часто превышает время передачи пакета, особенно на больших расстояниях.
Пример
Рассмотрим подставленные значения в приведенной задаче. Раcстояние до планеты составляет (9 \times 10^{10}) метров. Латентность одного направления ( Tp ) вычисляется как:
[ Tp = \frac{D}{V} = \frac{9 \times 10^{10}}{3 \times 10^8} = 300 \, \text{секунд} ]
Поскольку требуется ожидать подтверждение, общее время каждое циклическое время ожидания (RTT) будет равно:
[ RTT = 2 \times Tp = 600 \, \text{секунд} ]
Размер кадра – 32 КБ (или 32 \times 8 = 256 Кбит), а время передачи одного кадра через канал пропускной способностью 64 Мбит/сек:
[ Tx = \frac{L}{B} = \frac{32 \times 10^3 \times 8}{64 \times 10^6} = 0.004 \, \text{секунд} ]
Для утилизации канала в протоколе "Стоп и жди" используется следующая формула:
[ \text{Утилизация} = \frac{1}{1 + 2a}, \text{где} \, a = \frac{Tp}{Tx} = \frac{300}{0.004} = 75,000 ]
Подставляя значения, получаем:
[ \text{Утилизация} = \frac{1}{1 + 2 \times 75,000} = \frac{1}{150,001} \approx 6.667 \times 10^{-6} \text{или} \, 0.000667\% ]
Как видно из расчетов, из-за большой латентности утилизация канала чрезвычайно мала.
Применение
Теперь перейдем к вопросу о протоколе скользящего окна. В отличие от "Стоп и жди", протокол с использованием скользящего окна позволяет отправителю передавать несколько кадров без необходимости ждать подтверждения каждого из них, что значительно улучшает утилизацию канала.
Для максимальной утилизации канала при использовании протокола с скользящим окном может быть расчитан размер окна. Формула для этого следующая:
[ W \geq 2a + 1 ]
Подставляя значения, получаем минимальный размер окна для 100% утилизации:
[ W \geq 2 \times 75,000 + 1 = 150,001 ]
Это означает, что для того чтобы достигнуть полной утилизации канала в условиях указанного расстояния и задержек, необходимо иметь размер окна не менее 150001 кадра.
Заключение
Подробные расчеты показывают, как расстояние и скорость передачи данных влияют на утилизацию канала в протоколе "Стоп и жди". Из-за большой латентности при передаче данных на такие большие расстояния, как между Землей и далекой планетой, утилизация канала в базовом протоколе "Стоп и жди" чрезвычайно мала. Протоколы, такие как протокол с скользящим окном, предлагают решения для этих проблем, позволяя значительно улучшить утилизацию канала за счет более адаптивного использования буферов и уменьшения временных задержек на ожидание подтверждений.