Накопительный принцип квитирования

Получатель может послать квитанцию, подтверждающую получение сразу не­скольких сегментов, если они образуют непрерывный поток байтов. Например (рис. 19.12, а), если в буфер, плотно без пропусков заполненный потоком байтов до 2354 включительно, поочередно поступили сегменты (2355-3816), (3817-5275) и (5276-8400), где цифры в скобках означают номера первых и последних бай­тов каждого сегмента, то получателю достаточно отправить только одну квитан­цию на все три сегмента, указав в ней в качестве номера квитанции значение 8401. Таким образом, процесс квитирования является накопительным.

2354 2355 3816 2355 5275 5276 8400

Ш:.Ш'<$А>'.......


 


t3
\2

t4 а


 


10567 12430

2354 2355 3816 2355 5275 5276 8400

щ^/f ^ *' | ff


 


t5
t2
t4

t3


 


Рис. 19.12. Накопительный принцип квитирования: а — плотное заполнение буфера, в момент t4 передается квитанция, б — неплотное заполнение буфера, в момент t5 снова передается квитанция 8401

Однако сегменты могут прийти к получателю не в том порядке, в котором были посланы, то есть в приемном буфере может образоваться «прогалина» (рис. 19.12, б). Пусть, к примеру, после указанных выше трех сегментов вместо следующего по порядку сегмента (8401-10566) пришел сегмент (10567-12430). Очевидно, что послать в качестве номера квитанции значение 12431 нельзя, потому что это бы означало, что получены все байты вплоть до 12430. Поскольку в потоке байтов

образовался разрыв, получатель может только еще раз повторить квитанцию 8401, говоря тем самым, что все еще ожидает поступления потока байтов, начиная с 8401. Из этого примера видно, что, в отличие от многих других протоколов, протокол TCP подтверждает получение не отдельных блоков данных, а непре­рывной последовательности байтов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: