Действие протоколов TCP и IP

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

Рис. 1. Концепции TCP/IP

Для организации связи каждый объект системы должен иметь уникальный адрес. Фактически требуется два уровня адресации. Каждый хост подсети должен иметь уникальный глобальный подсетевой адрес для доставки данных нужному хосту. Каждый процесс хоста должен также иметь адрес, уникальный для этого хоста, что позволяет протоколу сквозной передачи (TCP) доставлять данные соответствующему процессу. Адреса, используемые в последнем случае, называются портами.

Проследим простую операцию. Предположим, что процесс, связанный с портом 1 хоста А, желает передать сообщение другому процессу, связанному с портом 3 хоста В. Первый процесс спускает сообщение протоколу TCP, указывая переслать его хосту В, порт 3. Протокол TCP передает это сообщение протоколу IP с указанием о пересылке его хосту В. Отметим, что протоколу IP не требуется указывать, для какого порта предназначено сообщение, нужно лишь указать, что данные предназначены для хоста В. Далее, протокол IP спускает сообщение на уровень доступа к сети (например, логике Ethernet) с указанием о пересылке его маршрутизатору J (первому маршрутизатору на пути к хосту В).

Для управления этой операцией должны передаваться не только пользовательские данные, но и управляющая информация, как это показано на рис. 2. Допустим, что передающий процесс генерирует блок данных и передает его протоколу TCP, который, стремясь улучшить управление, может разбить этот блок на меньшие части. К каждому такому фрагменту протокол TCP присоединяет управляющую информацию (называемую заголовком TCP), формируя при этом сегмент TCP. Присоединенную управляющую информацию должен будет использовать одноранговый объект протокола TCP хоста В. Ниже приводятся примеры информации, которая может содержаться в таком заголовке.

Рис. 2. Модули данных протокола в архитектуре TCP/IP

Порт назначения. Когда объект TCP хоста В получает сегмент, он должен знать, кому доставить эти данные.

Порядковый номер. Протокол TCP присваивает передаваемым определенному порту сегментам порядковые номера, чтобы при нарушении порядка объект TCP хоста В мог его восстановить.

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

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

На последнем этапе каждая дейтаграмма IP предоставляется уровню доступа к сети с целью передачи ее через первую подсеть, находящуюся на ее пути к адресату. Уровень доступа к сети присоединяет к данным собственный заголовок, создавая, таким образом, пакет, или кадр. Этот пакет передается через подсеть к маршрутизатору J. Информация, содержащаяся в заголовке пакета, необходима для передачи данных через подсеть. Ниже приводится информация, которая может содержаться в этом заголовке.

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

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

Маршрутизатор J отсекает заголовок пакета и изучает заголовок IP. На основании информации об адресе назначения, полученной из заголовка IP, модуль IP маршрутизатора направляет дейтаграмму IP через подсеть 2 к хосту В. Для этого дейтаграмма вновь инкапсулируется, т.е. к ней добавляется заголовок доступа к сети.

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

Общее название блока данных, обмениваемого на любом протокольном уровне, — модуль данных протокола (protocol data unit — PDU). Таким образом, сегмент TCP — это PDU уровня TCP (PDU TCP).


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



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