В двусторонней связи , всякий раз, когда принимается кадр, получатель ждет и не отправляет контрольный кадр (подтверждение или ACK) обратно отправителю немедленно. Получатель ждет, пока его сетевой уровень не передаст следующий пакет данных. Затем отложенное подтверждение прикрепляется к этому исходящему кадру данных. Этот метод временной задержки подтверждения, чтобы его можно было прицепить к следующему исходящему кадру данных, известен как комбинирование.
Piggybacking data немного отличается от скользящих оконных протоколов, используемых в модели OSI . В сам кадр данных мы включаем одно дополнительное поле для подтверждения (т. е. ACK).
Всякий раз, когда сторона A хочет отправить данные стороне B, она также будет передавать дополнительную информацию ACK в PUSH.
Например, если A получил 5 байтов от B с порядковым номером, начинающимся с 12340 (до 12344), A также поместит «ACK 12345» в текущий пакет PUSH, чтобы сообщить B, что он получил байты до порядкового номера 12344 и ожидает увидеть 12345 в следующий раз. (Номер ACK — это следующий порядковый номер данных, которые будут отправлены другой стороной.)
Передача данных попутным потоком регулируется тремя правилами.
Преимущества :
Недостатки : Получатель может заблокировать службу, если ему нечего отправлять. Эту проблему можно решить, включив счетчик ( тайм-аут приемника ) при получении кадра данных. Если счетчик заканчивается, а кадра данных для отправки нет, получатель отправляет контрольный кадр ACK. Отправитель также добавляет счетчик (тайм-аут отправителя). Если счетчик заканчивается без получения подтверждения, отправитель предполагает потерю пакета и отправляет кадр снова.