предисловие
Ваши усилия сейчас направлены на то, чтобы иметь больший выбор в будущем.
в предыдущей статьеС помощью метода «признания» давайте быстро разберемся в семиуровневом сетевом протоколе.Понимание семиуровневого сетевого протокола. Далее мы сосредоточимся на надежности передачи по сети. Давайте посмотрим на протокол TCP, как он решает проблему ненадежной сетевой передачи. Очень важной частью этого является нашПротокол скользящего окна.
С инженерной точки зрения давайте посмотрим на протокол скользящего окна, какую проблему он решает?
Протокол скользящего окна:
- Использование протокола TCP
- Поддерживать буферы отправителя/получателя Буфер используется для решения проблемы ненадежных данных между сетями, таких как потеря пакетов, дублирование пакетов, ошибки, не по порядку
В протоколе TCP отправитель и получатель поддерживают свои собственные буферы. Решите проблему ненадежности путем согласования ряда операций, таких как механизм повторной передачи пакета.
Вопрос 1: Как обеспечить заказ?
Задайте вопрос: до нашего протокола скользящего окна, как мы можем гарантировать, что каждый пакет будет получен между отправителем и получателем. А по порядку?
Вопрос 2: Как улучшить пропускную способность?
Задайте вопрос: Так не можем ли мы отправить несколько пакетов подряд и ждать, пока он подтвердит это вместе? В этом случае мы будем быстрее и будем иметь более высокую пропускную способность?
Вопрос 3: Как добиться оптимального решения?
Вопрос: Сколько пакетов нам нужно отправлять каждый раз? Сколько пакетов для отправки является оптимальным решением?
Можем ли мы отправить первый и второй пакеты и отправить третий пакет после получения первого пакета подтверждения? Вместо ожидания пакета подтверждения второго пакета отправить третий пакет. Это естественным образом приводит к нашей реализации «скользящего окна».
нормальная ситуация
потеря пакетов
Возможно, мы отправили пакет, а акк другой стороны был утерян. Также возможно, что наш пакет не был отправлен. С точки зрения отправителя, мы не получили Ack.
Что, если наш акк никогда не придет?
тайм-аут повторной передачи
На данный момент у нас есть решение:超时重传Вот одно замечание: этот Ack в порядке. Вы должны подождать, пока не будет получено подтверждение 5, прежде чем отправлять подтверждение 6-11. Это гарантирует порядок раздвижных окон.
конец статьи
Поскольку мы хотим отправлять пакеты данных вместе, чтобы увеличить пропускную способность сети, в настоящее время создается протокол «скользящего окна». С концепцией «раздвижных окон» мы решаем некоторые возникающие проблемы. Например, потерю пакетов мы решаем через механизм ретрансляции. Вышеприведенное взято из обучающего видео учителя ccmouse, которое организовано как учебная запись.
Если статья вам полезна, обратите внимание на номер паблика:Программирование кодераПолучайте последние оригинальные технические статьи и соответствующие бесплатные учебные материалы и изучайте технические знания в любое время и в любом месте!