Разделы сайта

Транспортный уровень. Протокол управления передачей (Transmission Control Protocol - TCP)

TCP - надежный, ориентированный на соединение транспортный протокол сетевого уровня со свойствами, ориентированными на управление соединением и обеспечение надежности для обслуживания. TCP не похож на UDP - это протокол, ориентированный на поток. В UDP процесс (прикладная программа) посылает большую порцию байт UDP для доставки, UDP добавляет свой собственный адрес к этой порции данных, которая теперь называется дейтаграммой, и доставляет ее IP для передачи. Процесс может доставлять несколько порций данных к UDP, но UDP обрабатывает каждую порцию независимо, "не глядя" на связь между ними. TCP позволяет создать процесс, передающий информацию, доставлять данные как поток байт, создать процесс приема и получать данные как поток байтов. TCP создает среду, где кажется, что два процесса соединены воображаемой "трубой", которая переносит их данные по сети Интернет. Воображаемая среда изображена на Рис. 1 Передающий процесс вырабатывает поток байтов, а приемный процесс "поглощает" его.

В связи с тем, что процессы передачи и приема могут производить и потреблять данные на разных скоростях, TCP нуждается в буферной памяти для накопления. Имеются два буфера, передачи и приема, для каждого направления. (Заметим, что эти буферы также применяются в TCP-механизме управления потоком и контролем над ошибками.) Один из путей реализации буфера - использовать буферные регистры с обратной связью однобайтовыми сегментами, как это показано на Рис. 1. Для простоты мы указали два буфера с небольшим объемом байт. Обычно буферы содержат сотни или тысячи байт памяти, в зависимости от реализации.

Рис. 2 показывает движение данных в одном направлении. На передающей стороне буфер имеет три типа участков. Белая секция - пустой участок, который может заполняться с помощью процесса передачи (производитель). Серая область содержит байты, которые переданы, но на них еще не получено подтверждение. TCP сохраняет эти байты в буфере, пока не примет подтверждение. Закрашенный темно-серым цветом участок содержит байты для передачи TCP. Однако, TCP может послать только часть этой закрашенной секции; это может произойти из-за замедления процесса приема или из-за перегрузки сети. Также заметим, что после того как байты серого участка подтверждены, участок восстанавливается и становится доступным для использования процессом передачи.

Обработка буфера на стороне приемника проста. Буфер с обратной связью разделяется на две области (показанные белым и темно-серым цветом). Белая область состоит из пустого участка, заполняемого байтами, полученными по сети. Секции темного цвета содержат байты, предназначенные для процесса на стороне приема. Когда байты приняты процессом на стороне приема, участок восстанавливается для повторного использования и добавляется к общему множеству пустых участков.

Сегменты.

На транспортном уровне TCP группирует несколько байтов в пакет, называемый сегментом. TCP добавляет заголовок к каждому сегменту (с целью контроля) и доставляет сегмент на IP-уровень для передачи. Сегмент инкапсулируется и передается в IP-дейтаграмме. Сегменты могут быть получены в беспорядке, потеряны или искажены и разрушены. Все эти сегменты обрабатываются TCP и передаются процессу на стороне приема, не подозревающему об этих действиях. Рис. 3. показывает, как сегменты из байтов переносятся в буфера.

Заметим, что сегменты могут отличаться размером. Реально сегменты переносят сотни, если не тысячи байт. TCP предлагает полное дуплексное обслуживание, где данные могут двигаться в обоих направлениях одновременно. Каждый TCP поэтому имеет буфер приема и передачи и посылает сегменты в оба направления., в отличие от UDP, - протокол, ориентированный на соединение. Когда процесс на стороне A посылает и принимает данные от другого процесса на стороне B, необходимо провести следующие действия:

TCP на стороне A информирует TCP на стороне B и получает подтверждение от стороны B.

TCP стороны A и TCP стороны B обмениваются данными в обоих направлениях.

После того как у обоих процессов не остается больше данных для передачи и буферы пустые, оба TCP уничтожают буферы. Заметим, что это не физическое, а виртуальное соединение. TCP-сегмент инкапсулируется в IP-дейтаграмму и может посылать данные в любом порядке или потерять их, либо исказить, либо передать повторно. Каждая дейтаграмма может использовать различный путь для достижения пункта назначения. Физического соединения не происходит. TCP создает среду, ориентированную на поток в каждом направлении, в которой он принимает ответственность за доставку байтов в заданном порядке на другую сторону.- достоверный транспортный протокол. Он использует механизм подтверждения для проверки сохранности и нормальности пребывающих данных.

Перейти на страницу: 1 2

Интересное из раздела

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

Шлюз ZigBee и GPRS
Беспроводные сенсорные сети получили большое развитие в последнее время. Такие сети, состоящие из множества миниатюрных узлов, оснащенных маломощным приемо- ...

Преобразователь двоичного кода
Логические элементы (узлы) предназначены для выполнения различных логических (функциональных) операций над дискретными сигналами при двоичном коде их предст ...