Протокол TCP --- различные механизмы надежной передачи

Оглавление

1. Надежный

Механизм подтверждения ответа: убедитесь, что данные поступают на одноранговый узел надежным и упорядоченным образом.

Механизм повторной передачи по тайм-ауту

2. Эффективность

2.1 Увеличьте количество данных, отправляемых самостоятельно

Механизм раздвижного окна:

Буфер отправки скользящего окна представляет собой циклическую очередь.

Изменится ли размер скользящего окна?

Номер скользящего окна

Проблема потери пакетов в скользящем окне

2.2 Акцепт другой стороны

механизм управления потоком

Сцены:

 Окно 0 (уведомление окна 0): получатель и отправитель отправляют данные с размером окна 0, что называется уведомлением окна 0.

Механизм отсроченного ответа

2.3 Возможность сетевой переадресации

Механизм управления перегрузкой: контролируйте объем данных, отправляемых по протоколу TCP, в зависимости от степени перегрузки сети.

1. Медленный старт (старт)

2. Избегание заторов

3. Стратегии при возникновении заторов

 контрейлерный механизм

Таймер проверки активности TCP (пакет пульса)


1. Надежный

Механизм подтверждения ответа: убедитесь, что данные поступают на одноранговый узел надежным и упорядоченным образом.

        Принцип механизма подтверждения ответа: по сути, это подтверждение серийного номера.Компьютер не знает, что отправлено, он знает только серийный номер

надежный:

 

упорядоченный:

Механизм повторной передачи по тайм-ауту

Когда отправитель запускает таймер повторной передачи тайм-аута, когда время превышает «время повторной передачи тайм-аута» и не получил ответ с подтверждением, сообщение будет передано повторно

Сцены:

сверхурочное время:

        Можно ли его записать как фиксированное время? Нет, его необходимо динамически изменять  в соответствии с условиями передачи по сети .

РТО = 2РТТ

RTO: время ожидания повторной передачи

RTT: время прохождения сообщения туда и обратно (может быть рассчитано по времени отправки данных каждый раз и времени подтверждения возврата)

2. Эффективность

TCP необходимо учитывать вопрос эффективности передачи, который необходимо рассматривать с трех сторон.

1. Количество данных, отправленных само по себе , другими словами, чем больше данных вы отправляете за один раз, тем больше вы передаете

                MSS: определяет онлайн-доставку данных для одноразовой доставки (это не может быть изменено)

                Механизм подтверждения ответа определяет, что каждый TCP-пакет должен быть подтвержден (это может быть нарушено) — механизм скользящего окна, упомянутый ниже.

2. Возможность приема другой стороны , другими словами, размер приемного буфера другой стороны.

3. Возможность переадресации по сети , другими словами, велика ли нагрузка на пересылающее устройство в сетевом канале от хоста A к хосту B?

2.1 Увеличьте количество данных, отправляемых самостоятельно

Механизм раздвижного окна:

Разрешить отправку данных размером с окно (не дожидаясь подтверждения последних данных) в сеть для передачи, улучшая пропускную способность данных.

Преимущества:      без учета сети можно увеличить объем отправляемых данных. Потому что чем больше вы отправляете, тем больше вы передаете

Недостатки:       необходимо защищаться от потери данных и запускать повторную передачу по тайм-ауту.После срабатывания повторной передачи по тайм-ауту данные необходимо отправить повторно. То есть отправителю необходимо кэшировать данные перед получением подтверждения (это буфер отправки TCP).

Буфер отправки скользящего окна представляет собой циклическую очередь.

Изменится ли размер скользящего окна?

динамически меняющийся

Кто влияет на размер скользящего окна?

Вывод: размер приемного буфера приемника влияет на размер скользящего окна

Номер скользящего окна

Если получено подтверждение группы в середине, даже если предыдущее подтверждение не было получено, оно будет обработано непосредственно как полученное (значение порядкового номера подтверждения)

То есть скользящее окно может скользить много одновременно.

Проблема потери пакетов в скользящем окне

1. Потеря пакета ACK:

 

2. Потеря данных

                                Быстрая зарядка здесь не из-за тайм-аута повторной передачи, а из-за получения 3-х повторных ответов подтверждения

2.2 Акцепт другой стороны

Ограничьте объем данных, отправляемых отправителем, за счет приемлемости другой стороны.

Иллюстрация:

механизм управления потоком

Сцены:

Отправитель отправляет большое количество данных окна (пакетные данные в скользящем окне), и после получения получателем они сначала кэшируются в приемном буфере, поддерживаемом tcp.Из-за большого объема кэшированных данных это вызовет приемный буфер на Таким образом, получатель контролирует объем данных, отправляемых отправителем, через размер окна в ответе.

 Окно 0 (уведомление окна 0): получатель и отправитель отправляют данные с размером окна 0, что называется уведомлением окна 0.

Расширенное значение : получатель сообщает отправителю, что он больше не может их принимать, и отправитель должен прекратить отправку данных.

Так когда возобновится?

1. Получатель активно отправляет уведомление об обновлении окна (по сути, отправляет TCP-пакет с размером окна 0)

 

 2. Отправитель отправляет пакет обнаружения окна

Механизм отсроченного ответа

 После получения данных получатель некоторое время ждет, прежде чем ответить отправителю для подтверждения

                                По сути, программа прикладного уровня получателя вызывает recv для чтения данных из принимающего буфера tcp.

2.3 Возможность сетевой переадресации

1. TCP управляет потоком через скользящие окна, но TCP считает, что этого недостаточно.

Поскольку скользящее окно должно зависеть от отправителя и получателя соединения, оно не знает, что происходит в середине сети. Разработчики TCP считают, что управления потоком недостаточно для отличного и мощного протокола , потому что управление потоком — это только вопрос уровня 4 или выше сетевой модели, а TCP также должен быть более разумным в отношении вещей во всей сети.

2. TCP не является эгоистичным протоколом, когда возникает перегрузка, требуется самопожертвование. Как и в пробке, каждая машина должна уступать дорогу, а не хвататься за нее.

Механизм управления перегрузкой: контролируйте объем данных, отправляемых по протоколу TCP, в зависимости от степени перегрузки сети.

                                      Количество данных, отправляемых по tcp = min (окно отправки, окно перегрузки)

Механизм управления перегрузкой состоит из трех фаз:

Схема раннего механизма управления перегрузкой TCP

Схема текущего механизма управления перегрузкой tcp

Отличие от первых дней заключается в том, как справляться с перегрузкой сети, потому что ранняя сеть была относительно плохой, но теперь большая часть перегрузок сети возникает только из-за сбоев в сети, и ее не нужно снижать до такого низкого уровня. уровень.

1. Медленный старт (старт)

2. Избегание заторов

3. Стратегии при возникновении заторов

 контрейлерный механизм

Таймер проверки активности TCP (пакет пульса)

TCP имеет в общей сложности три таймера: таймер повторной передачи тайм-аута, таймер TIME_WAIT, таймер поддержания активности.

Supongo que te gusta

Origin blog.csdn.net/flyingcloud6/article/details/128951257
Recomendado
Clasificación