Поток данных, посылаемый на TCP соединение, принимается получате-
лем надежно и в соответствующей очередности.
Передача осуществляется надежно благодаря использованию подтвер-
ждений и номеров очереди. Концептуально каждому октету данных присва-
ивается номер очереди. Номер очереди для первого октета данных в сег-
менте передается вместе с этим сегментом и называется номером очереди
для сегмента. Сегменты также несут номер подтверждения, который явля-
ется номером для следующего ожидаемого октета данных, передаваемого в
обратном направлении. Когда протокол TCP передает сегмент с данными,
он помещает его копию в очередь повторной передачи и запускает тай-
мер. Когда приходит подтверждение для этих данных, соответствующий
сегмент удаляется из очереди. Если подтверждение не приходит до исте-
чения срока, то сегмент посылается повторно.
Подтверждение протокола TCP не гарантирует, что данные достигли
конечного получателя, а только то, что программа протокола TCP на
компьютере у получателя берет на себя ответственность за это.
Для направления потока данных между программами протоколов TCP
используется механизм управления потоками. Получающая программа прото-
кола TCP сообщает "окно" посылающей программе. Данное окно указывает
количество октетов (начиная с номера подтверждения), которое принима-
ющая программа TCP готова в настоящий момент принять.
|