Надежная передача данных (RDT) 2.2

Опубликовано: 21 Января, 2023

Протокол надежной передачи данных 2.2 является преемником RDT 2.1. Заметным изменением в RDT 2.2 является исключение отрицательного подтверждения. В RDT 2.2 к пакету на стороне получателя добавляется новое поле с последовательностью отправленного пакета. Это позволяет отправителю сравнить порядковый номер. Если порядковый номер не соответствует подтверждению отправителя, полученный пакет подтверждения поврежден, и он повторно отправляет пакет. Этот пакет избавляет от использования отрицательного подтверждения. Связь между отправителем и получателем улучшается, поскольку каждый из них ведет учет отправленных и полученных пакетов.

Представление в конечном автомате:

ФСМ отправителя:

Как это работает:

Состояние-1 (вверху слева): на рисунке верхнее левое состояние, называемое «Ожидание 0», является началом, состояние «Пуск» ожидает получения сообщения от верхнего прикладного уровня. После того, как он получен в качестве транспортного уровня, он добавляет заголовок транспортного уровня с порядковым номером «0», отправляемый в сеть.

Состояние-2 (вверху справа): в этом состоянии протокол проверяет, повреждено ли подтверждение пакета или получена ли последовательность «1» в качестве подтверждения. В этом случае отправитель повторно отправляет пакет, так как переданная последовательность не равна полученной. Если отправитель получает неповрежденный и правильный порядковый номер, он переходит в следующее состояние.

Состояние-3 (внизу справа): на рисунке вверху слева состояние под названием «Ожидание 1» ожидает получения сообщения от верхнего прикладного уровня. После того, как он получен в качестве транспортного уровня, он добавляет заголовок транспортного уровня с порядковым номером «1», отправляемый в сеть.

Состояние-4 (нижний левый): в этом состоянии протокол проверяет, повреждено ли подтверждение пакета или получен ли в качестве подтверждения seq '0'. В этом случае отправитель повторно отправляет пакет, так как переданная последовательность не равна полученной. Если отправитель получает неповрежденный и правильный порядковый номер, он переходит в следующее состояние.

FSM приемника:

Как это работает:

FSM приемника менее сложен, чем RDT 2.1, поскольку он избавлен от отрицательного подтверждения.

Состояние-1 (слева): если полученный пакет поврежден или имеет последовательность с «1», он отправляет подтверждение с порядковым номером «1», которое сообщает отправителю, что отправленный пакет был не в порядке. Если пакет не поврежден и имеет порядковый номер «0», получатель извлекает данные и отправляет подтверждение с последовательностью «0». Он переходит в следующее состояние.

Состояние-2 (справа): если полученный пакет поврежден или имеет последовательность с «0», он отправляет подтверждение с порядковым номером «0», которое сообщает отправителю, что отправленный пакет был не в порядке. Если пакет не поврежден и имеет порядковый номер «1», получатель извлекает данные и отправляет подтверждение с последовательностью «1». Он переходит в следующее состояние.

Минусы в RDT 2.2:

Протокол RDT 2.2 не решает проблему потери пакетов.