Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1-13_310608.doc
Скачиваний:
66
Добавлен:
15.09.2019
Размер:
39.63 Mб
Скачать

Протокол управления передачей (tcp)

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

Узлы TCP/IP первоначально соединялись при помощи телефонных линий (широко известных как последовательные линии). Такой способ связи, применявшийся в начале 70-х годов. Не похож на сегодняшний. Линии были шумными, не приспособленными для работы с высокоскоростным потоком данных. Поэтому протокол TCP имеет жесткие алгоритмы обнаружения ошибок, разработанные для обеспечения целостности данных.

Детали TCP

Не все сети располагают отдельным программным обеспечением транспортного уровня при сетевых взаимодействиях. Отличный пример - компания Novell со своей операционной системой для рабочих станций в локальной сети NetWare. NetWare полагается на программное обеспечение сетевого уровня при транспортировке данных и на протокол NetWare Core (в качестве приложения) для обеспечения последовательной нумерации пакетов. Процесс взаимодействия между двумя станциями сети при этом обычно ускоряется. Необходимость в транспортном уровне здесь не столь велика, поскольку эти типы протоколов разрабатывались в высокоскоростных средах передачи данных, таких как Ethernet, для которых характерен небольшой процент ошибок. С ТСР было не так, и он значительно более устойчив в качестве протокола транспортного уровня. На самом деле ТСР – это протокол, а не часть программного обеспечения.

Последовательные номера и подтверждения служат протоколу ТСР для надежного взаимодействия с другими станциями сети. С помощью последовательных номеров определяется порядок следования данных в пакетах и выявляются пропущенные пакеты. Так как пакеты в сети не всегда приходят в той же последовательности, в которой они были посланы (например, один из пакетов передаваемого ряда был отброшен маршрутизатором), последовательная нумерация данных в пакетах гарантирует, что пакеты будут считываться в порядке их отправления.

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

ТСР – это байтовый последовательный протокол. Другие протоколы, такие как Novell NetWare, являются пакетными последовательными протоколами. Они присваивают порядковый номер каждому передаваемому пакету, а не каждому байту пакета. Термин «байтовый» означает, что каждому байту любого пакета присваивается порядковый номер, а не то, что ТСР передает лишь пакеты, содержащие только 1 байт. ТСР будет передавать данные (много байтов) и присваивать пакету одно порядковое значение. Наличие одного порядкового номера на байт пакета может показаться избыточным, но следует помнить, что ТСР/IP первоначально был реализован в зашумленных последовательных линиях, а не в надежных высокоскоростных локальных сетях.

На рисунке изображена передача двух датаграмм. Обычно каждый сегмент ТСР имеет длину 512 или 576 байт (допускается и больше). Каждой датаграмме присваивается порядковый номер в соответствии с количеством байтов в поле данных ТСР. Причем порядковое значение изменяется на ту же величину, что и длина пакета.

П олучатель этих датаграмм подсчитает количество принятых байтов и увеличит у себя порядковое значение поступивших датаграмм. Первый полученный пакет имеет порядковое значение 40 и содержит 4 байта. Получатель ожидает, что следующее порядковое значение будет равно 44. Так и случится, а в самом пакете будет находиться 7 байт данных. Получатель предполагает, что порядковое значение следующего пакета окажется равным 51. Так работает байтовое упорядочивание ТСР.