Rambler's Top100
Структуралист (на главную)  
 

7. TCP/IP

TCP/IP является основным стеком протоколов Интернет, реализующего модель с коммутацией пакетов. Она содержит четыре уровня: прикладной, транспортный, межсетевой и физический + плюс передачи данных (рис. 10).

Эталонная модель TCP/IP

Рис. 10. Эталонная модель TCP/IP

Транспортный уровень обеспечивает связь одноранговых сущностей на приемных и передающих хостах. Здесь существуют два сквозных протокола: TCP (Transmission Control Protocol – протокол управления передачей) и UDP (User Data Protocol – пользовательский протокол данных).

Прикладной уровень содержит все протоколы высокого уровня, такие как TELNET, FTP, HTTP, SMTP, DNS.

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

UDP является ненадежным протоколом без установления соединения. Он широко используется в одновременных клиент-серверных запросах и в приложениях, в которых оперативность важнее точности, например при передаче речи и видео.

Интернет-уровень или межсетевой уровень (IP) является основой для всей архитектуры. Его задачей является обеспечение возможности каждому хосту посылать в любую сеть пакеты, которые будут независимо передвигаться к пункту назначения. Они могут прибывать не в том порядке, в котором были отправлены, поэтому если требуется соблюдение порядка следования пакетов, то этим занимаются более высокие уровни.

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

Рассмотрим форматы протоколов IP и TCP.

IP

IP-дейтаграмма состоит из заголовка и текстовой части. Заголовок содержит обязательную 20-байтовую часть, а также необязательную часть переменной длины. Он передается слева направо, т. е. сначала передается первый байт поля версия (рис. 11) и т. д. Рассмотрим поля заголовка протокола IP.

Заголовок протокола IPv4

Рис. 11. Заголовок протокола IPv4 (увеличить)

Поле версия содержит версию протокола, что позволяет использовать различные версии протокола на разных машинах.

Длина заголовка является переменной величиной, которая определяется полем IHL.

Поле тип службы указывает на класс обслуживания и позволяет задать различные комбинации надежности и скорости.

Полная длина содержит длину всей дейтаграммы, максимальная длина которой равна 65 535 байтам.

Идентификатор позволяет хосту-получателю определить, какой дейтаграмме принадлежат полученные фрагменты. Все фрагменты одной дейтаграммы имеют одинаковое значение идентификатора.

Далее следует неиспользуемый байт.

DF (Don’ t fragment) флаг, запрещающий маршрутизатору фрагментировать дейтаграмму.

MF (More Fragments) устанавливается во всех фрагментах кроме последнего.

Смещение фрагмента указывает положение фрагмента в исходной дейтаграмме.

Время жизни является счетчиком, ограничивающим время жизни пакета, и гарантирует, что пакет не будет блуждать по сети вечно.

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

Контрольная сумма заголовка защищает от ошибок только заголовок.

Адрес отправителя и адрес получателя указывают номера сети и хоста.

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

TCP

Каждый TCP-сегмент начинается 20-байтным заголовком, за которым могут следовать дополнительные поля, после чего может располагаться до 65 495 байт данных (рис. 12).

Заголовок протокола TCP

Рис. 12. Заголовок протокола TCP (увеличить)

Поля порт получателя и порт отправителя являются идентификаторами локальных конечных точек соединения, которые совместно с IP-адресом хоста образуют уникальный 48-битный идентификатор конечной точки.

Следующими полями являются порядковый номер и номер подтверждения, за которым идет поле длина TCP-заголовка. Далее идет неиспользуемое 6-битное поле, за которым идут шесть 1-битовых флагов.

Флаг URG является указателем на срочные данные; ACK означает, что поле номер подтверждения содержит осмысленные данные, в противном случае это поле игнорируется; PSH является PUSH-флагом и дает указание доставить данные приложению сразу, не помещая их в буфер; RST используется для сброса состояния соединения; SYN – для установки соединения, а FIN – для разрыва.

Поле размер окна указывает, сколько байт может быть послано после байта, получившего подтверждение, а контрольная сумма служит для повышения надежности и в отличие от IP защищает не только заголовок и псевдозаголовок, но так же и данные. Псевдозаголовок содержит 32-разрядные IP-адреса отправителя и получателя, номер протокола для TCP и счетчик байтов для TCP-сегментов.

< предыдущая оглавление следующая >

Кто Вы?
Исследователь
Специалист
Управленец
Преподаватель
Студент
Аспирант
Другое
Результаты голосования

©Structuralist 2005-2006
structuralist@narod.ru
Рейтинг@Mail.ru Rambler's Top100
Hosted by uCoz