TCP/IP (Transmission Control Protocol/Internet Protocol)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 23:49, 28 января 2017.
Данная статья была согласована с её автором Р.А. Бельферым 28 апреля 2012 года.

__NUMBEREDHEADINGS__

Стек протоколов ТСР/IP

IP-сеть

IP-сеть (какой является Интернет) отличается от глобальных сетей тем, что является составной сетью из подсетей, число которых измеряется тысячами. Для Интернета характерно использование стека протоколов не эталонной модели OSI, а эталонной модели TCP/IP[1][2]. На рис. 1 представлен стек протоколов TCP/IP и его соответствие уровням модели OSI. Отличительной особенностью TCP/IP является также то, что IP-пакеты могут передаваться с использованием различных технологий составных сетей, в том числе посредством уже рассмотренных глобальных сетей Х.25, FR и ATM, которые являются самостоятельными со своими протоколами, адресацией и др. Другой особенностью является то, что эталонная модель TCP/IP в отличие от эталонной модели OSI была разработана под конкретную составную сеть (интерсеть или internet). Подсети, составляющую эту составную сеть, соединяются между собой маршрутизаторами. Такими подсетями могут быть как локальные, так и глобальные сети различных технологий.

Прикладной уровень стека TCP/IP (уровень 4) соответствует трём верхним уровням модели OSI. К протоколам прикладного уровня относятся протокол переноса файлов (FTP); протокол электронной почты (SMTP); протокол, используемый для создания страниц во всемирной паутине WWW (HTTP) - основа для доступа к связанным между собой документам; протокол преобразования (DNS) текстовых имен в сетевые IP-адреса, простой протокол сетевого управления (SNMP), протоколы соответственно сигнализации и передачи данных (SIP, RTP/RTCP) в IP-телефонии или речь поверх IP (VoIP-Voice over IP) и др. К протоколам прикладного уровня относятся также протоколы информационной безопасности Kerberos, PGP, SET и др.
Рис. 1. Стек протоколов TCP/IP

Транспортный уровень стека TCP/IP

Транспортный уровень стека TCP/IP (уровень 3) обеспечивает передачу данных между прикладными процессами. Транспортный уровень включает два протокола TCP и UDP. Протокол управления передачей TCP (Transmission Control Protocol) является надёжным протоколом с установлением соединения, позволяющим управлять потоком, т.е. без ошибок доставлять байтовый поток с одной машины на любую другую машину составной сети. Для того чтобы обеспечить надёжную доставку данных, протокол TCP предусматривает установление логического соединения. Это позволяет ему нумеровать пакеты, подтверждать их прием квитанциями, в случае потери организовывать повторные передачи, распознавать и уничтожать дубликаты, доставлять прикладному уровню в том порядке, в котором они были отправлены. Пакеты, поступающие на транспортный уровень, организуются в виде множества очередей к точкам входа прикладных процессов. В терминологии TCP/IP такие очереди, однозначно определяющие приложение в пределах хоста, называется портами. За портами каждого стандартного приложения определён номер например, порт TCP № 21 - за протоколом передачи файла FTP (File Transport Protocol). Номер порта в совокупности с номером сети и номером конечного узла имеет название сокет (socket). Каждое логическое соединение идентифицируется парой сокетов взаимодействующих процессов. Второй протокол транспортного уровня -протокол пользователей дейтаграмм UDP (User Data Protocol) является простейшим дейтаграммным протоколом (т.е. без установления соединения). К протоколу транспортного уровня относится протокол информационной безопасности SSL/TLS. Протоколы прикладного и транспортного уровней стека уровней TCP/IP устанавливаются на оконечных станциях (хостах) сети.

Межсетевой уровень стека TCP/IP

Межсетевой уровень стека TCP/IP (уровень 2), называемый также сетевым уровнем (по модели OSI), является стержнем всей архитектуры TCP/IP. Именно этот уровень, функции которого соответствуют сетевому уровню модели OSI, обеспечивает перенос пакетов данных в пределах всей составной сети. Протоколы межсетевого уровня поддерживают интерфейсы с вышележащим транспортным уровнем, получая от него запросы на передачу данных по составной сети. Основным протоколом межсетевого уровня является межсетевой протокол IP (Internet Protocol). Он обеспечивает продвижение пакета между подсетями - от одного пограничного маршрутизатора до другого, до тех пор, пока пакет не попадёт в сеть назначения. Протокол IP так же, как и протоколы функций коммутации глобальных сетей связи (FR, ATM и др.), устанавливается не только на оконечных пунктах (хостах), но и на всех маршрутизаторах сети. Маршрутизатор представляет собой процессор, который связывает между собой две сети (подсети). Протокол межсетевого уровня работает в режиме без установления соединения (дейтаграммный режим), в соответствии с которым он не отвечает за доставку пакета до узла назначения. При потере пакета в сети протокол IP не пытается восстановить его.

В заголовке IP-пакета содержится IP-адрес отправителя и получателя - по 4 байта каждый. К межсетевому уровню относятся также протоколы, выполняющие функции составления и коррекции таблиц маршрутизации RIP (Routing Internet Protocol), OSPF (Open Shortest Path First), протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). К протоколу сетевого уровня относится протокол информационной безопасности IPSec. Уровень сетевого доступа стека TCP/IP (уровень 1) отвечает за организацию интерфейса с частными технологиями подсетей составной сети. Перемещение пакета можно рассматривать как последовательность «прыжков» от одного маршрутизатора к другому. На очередном маршрутизаторе на сетевом уровне определяется сетевой адрес следующего по маршруту маршрутизатора. Чтобы передать пакет IP этому маршрутизатору, надо перенести его через некоторую подсеть. Для этого необходимо использовать транспортные средства этой подсети. Задача уровня сетевого доступа сводится к инкапсуляции (вложению) пакета в блок данных этой промежуточной сети и в преобразовании сетевых адресов граничных маршрутизаторов этой подсети в новый тип адреса, принятой в технологии промежуточной сети.

Пример переноса данных в IP-сети

На примере IP-сети (рис. 2) покажем перенос данных оконечной станции А локальной вычислительной сети (подсети) Ethernet в оконечную станцию В сети (подсети) АТМ. Как видно из рисунка в эту составную сеть еще входит сеть (подсеть) Frame Relay. В основу приведенного упрощенного описания положен пример межсетевого взаимодействия сетей Ethernet и АТМ, приведенный в работе[3]. Дополнительно в эту составную сеть введена сеть (подсеть) Frame Relay. Принцип маршрутизации и краткое описание протоколов маршрутизации в сети Интернет приведены в следующей главе. Для того, чтобы технология TCP/IP могла решать задачу объединения сетей, ей необходима собственная глобальная система адресации, не зависящая от способов адресации узлов в отдельных подсетях. Таким адресом является IP-адрес, состоящий из адреса подсети (префикса) и адреса оконечного устройства (хоста). Приведем пример адресации подсети и хоста. IP-адрес 200.15.45.126/25 означает, что 25 старших бит из выделенных 4-х байт под адресацию являются адресом подсети, а оставшиеся 7 бит означают адрес хоста в этой сети.

Как видно из предыдущих глав, глобальные сети Frame Relay и АТМ имеют различные системы нумерации, которые отличаются от системы нумерации локальной вычислительной сети (ЛВС) технологии Ethernet. Каждый компьютер Ethernet имеет уникальный физический адрес, состоящий из 48 бит. Этот адрес называется МАС-адресом и относится к канальному уровню — управлению доступом к среде MAC (Media Access Control). Для организации межсетевого взаимодействия подсетей различной технологии и адресации используются маршрутизаторы, включающие IP-пакеты. В состав этих пакетов входят глобальные IP-адреса. Каждый интерфейс маршрутизатора IP-сети и оконечного устройства включает два адреса – локальный адрес оконечного устройства подсети и IP-адрес.

Рис. 2. Пример взаимодействия двух устройств

Рассмотрим продвижение IP-пакета в сети (рис. 2).

  1. Пользователь компьютера А сети Ethernet, имеющий IP-адрес (IP-адрес 1), обращается по протоколу передачи файла FTP к компьютеру В, подключенному к сети АТМ и имеющий IP-адрес (IP-адрес 6).
  2. Компьютер А формирует кадр Ethernet для отправки IP-пакета. По таблице маршрутизации в компьютере А на основании IP-адресов А и В определятся маршрутизатор М1 и входящий интерфейс для передачи этого IP-пакета. При этом становится известен IP-адрес интерфейса маршрутизатора М1(IP-адрес 2).
  3. Компьютер А отправляет по сети Ethernet IP-пакет, инкапсулированный в кадр Ethernet и включающий следующие поля (рис. 3).
    Рис. 3. Кадр Ethernet с инкапсулированным в него IP пакетом
    МАС-адрес в заголовке кадра Ethernet занимает 6 байт. С помощью протокола разрешения адресов ARP (Address Resolution Protocol) определяются локальные адреса МАС-адрес 1 и МАС-адрес 2 по известным IP-адресам (IP-адрес 1 и IP-адрес 2).
  4. Кадр принимается на входном интерфейсе маршрутизатора М1 в соответствии с протоколом Ethernet. Протокол Ethernet извлекает из принятого кадра IP-пакет, инкапсулированный в него. Из этого IP-пакета маршрутизатор М1 извлекает IP-адрес назначения (IP-адрес 6).
  5. С помощью таблицы маршрутизации в М1 определяются IP-адреса выходного интерфейса из М1 и входного интерфейса маршрутизатора М2, т.е. IP-адрес 3 и IP-адрес 4.
  6. По глобальным адресам IP-адрес 3 и IP-адрес 4 определяются соответственно локальные адреса подсети Frame Relay FR-адрес 1 и FR-адрес 2.
  7. IP-пакет передается по виртуальному каналу сети Frame Relay, используя при этом локальные адреса FR-адрес 1 и FR-адрес 2. Этот IP-пакет инкапсулирован в кадр FR.
  8. Кадр FR принимается на входном интерфейсе маршрутизатора М2 в соответствии с протоколом сети Frame Relay. Извлекается принятый IP-пакет, сбросив заголовок принятого кадра FR. Извлекается IP-адрес назначения (IP-адрес 6).
  9. С помощью таблицы маршрутизации в М2 определяется IP-адреса выходного интерфейса (IP-адрес 5) маршрутизатора М2 и IP-адрес назначения (IP-адрес 6). При этом глобальным адресам определяются соответствующие им локальные адреса АТМ-адрес 1 и АТМ-адрес 2. IP-пакет передается по виртуальному каналу сети АТМ, используя эти локальные адреса.
  10. В результате IP-пакет из компьютера А поступает в компьютер В.

Протоколы TCP/IP

Ниже приводится краткое описание протокола прикладного уровня SNMP и протокола транспортного уровня TCP архитектуры TCP/IP.

Протокол прикладного уровня SNMP

Большие сети не могут быть настроены и управляться вручную в плане изменения конфигурации сети, устранения неисправности в сети, сбора параметров о качестве обслуживания. Если в сети используется оборудование разных производителей, необходимость таких средств становится особенно необходимой. В связи с этим были разработаны стандарты сетевого управления. Одним из наиболее широко используемых является простой протокол управления сетью SNMP (Simple Network Management Protocol)[4]. Приведем краткие сведения об архитектуре сетевого управления. Система сетевого управления включает инструментальные средства для решения задач управления. При этом необходимо использование уже имеющегося оборудования путем внедрения в него дополнительных аппаратных и программных средств для управления сетью. Это программное обеспечение размещается в хостах, коммуникационных процессорах и других устройствах сети. Модель сетевого управления, используемая для SNMP состоит из следующих элементов:

  • станция управления, выполняющая роль интерфейса между сетевым администратором и системой сетевого управления. Станция управления позволяет осуществить мониторинг сети и управление сетью. В этой станции имеется база данных с информацией, полученной из информационных баз всех управляемых объектов сети;
  • агент управления (хосты, коммутаторы и др.), которые отвечают на запросы от станции управления. Агент обеспечивает информацией станцию и без запроса;
  • агент поддерживает базу данных, именуемую MIB (база управляющей информации, Management Information Base), в которой записаны конфигурация, характеристики и состояние устройств.

Станция управления и агенты взаимодействуют по протоколу SNMP. Так как управление сетью задача многоцелевая, приведем некоторые возможности использования протокола SNMP в сети Frame Relay[5]. Агент поддерживает базу данных, именуемую MIB (база управляющей информации, Management Information Base), в которой записаны конфигурация, характеристики и состояние устройств. Форум Frame Relay стандартизировал MIB для устройств Frame Relay. В большинстве служб Frame Relay провайдер собирает информации от агентов SNMP в каждом коммутаторе FR и записывает ее в центральную базу MIB для общего пользования. Тем самым пользователю предоставляется единый источник статистической информации обо всех соединениях виртуальных каналов сети. Это дает возможность отследить свои потоки данных в сети провайдера от коммутатора к коммутатору. Можно использовать SNMP для сбора статистики и аварийных сообщений от собственного оборудования, подключенного к сети FR. Для этого приходится работать с множеством MIB. Для сбора данных на основе SNMP можно использовать виртуальный канал FR.

SNMP может управлять конфигурацией сети. Для сети FR это касается как физической, так и логической конфигурации сети, включая установление адресации, определение DLCI, назначение полосы пропускания для PVC. SNMP может управлять устранением неисправностей в сети при получении системой управления аварийных сообщений от агента сетевого устройства.

Обеспечение информационной безопасности протокола SNMP

В документе RFC 2574[6] определяется модель USM (User Security Model – модель защиты пользователя) при использовании протокола SNMP. USM разрабатывалась с целью защиты от угроз следующих типов.

  1. Модификация информации. По пути следования сообщения, сгенерированного авторизованным объектом, некоторый другой объект может изменить это сообщение, чтобы выполнить несанкционированные операции управления (например, установив соответствующие значения объекта управления). Суть угрозы заключается в том, что несанкционированный объект может изменить любые параметры управления, включая параметры конфигурации, выполняемых действий и контроля.
  2. Имитация. Объект может пытаться выполнить не разрешенные для него операции управления, отождествляя данный объект с некоторым авторизованным объектом.
  3. Модификация потока сообщений. Протокол SNMP предназначен для работы над транспортным протоколом, не предполагающим установку соединений. Существует угроза переупорядочения, задержки или воспроизведения (дублирования) сообщений SNMP для несанкционированного управления. Например, можно скопировать и впоследствии воспроизвести сообщение, вызывающее перезапуск устройства.
  4. Разглашение информации. Наблюдая за потоком обмена данными между администратором и агентом, объект может выяснить значения управляемых объектов и распознать подлежащие регистрации события. Например, наблюдение за набором команд, изменяющих пароли, может позволить атакующему узнать новые пароли.

Протокол транспортного уровня TCP

Протокол транспортного уровня TCP выполняет функцию управления потоками между оконечными пунктами, так как уровень IP не гарантирует правильной доставки дейтаграмм. Дейтаграммы с уровня IP могут прибывать в неправильном порядке. Восстанавливает сообщения из таких дейтаграмм протокол TCP, обеспечивая этим надежный режим установленного соединения с низкой вероятностью потери пакета. Механизм управления потоками, используемый ТСP, отличается от механизма восстановления правильной последовательности кадров в Х.25 и называется схемой кредитов. В этой схеме считается, что каждый передаваемый байт данных имеет порядковый номер. Границы между сообщениями не сохраняются. Например, если отправляющий прикладной процесс записывает в ТСP-поток четыре 512-байтовые порции данных, эти данные могут быть доставлены получающему процессу в виде четырех 512-байтовых порций, либо двух 1024-байтовых порций, либо одной 2048-байтовой порции. Каждая протокольная единица PDU TCP называется сегментом TCP и включает в заголовок сегмента порт источника данных и порт получателя. Значения портов идентифицируют соответствующих пользователей (приложения) двух объектов TCP.

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

При работе на хост-отправителе протокол TCP рассматривает информацию, поступающую к нему от уровня приложений, как неструктурированный поток байтов. Эти данные буферируются средствами TCP. На уровень IP из буфера «вырезаются» сегменты, к которым добавляются заголовки. В состав заголовка входят сегменты SYN и ACK, служащие для установления TCP-соединения.

Для передачи сегмента данных имеются три поля, связанные с управлением потоком (восстановлением целостности принятого сообщения): порядковый номер (SN), номер подтверждения (AN) и окно (W).Когда транспортный объект отправляет сегмент, он помещает в поле данных сегмента порядковый номер первого байта. Принимающий объект подтверждает получение сегмента с помощью обратного сегмента, в котором (АN=i, W=j), что означает:

  • все байты до SN=i-1 подтверждены. Следующий ожидаемый байт имеет номер АN=i.
  • разрешается отправить дополнительное окно из W=j байт данных, т.е. байты от I до i+j-1.

Таким образом, протокол TCP обеспечивает надежную доставку сообщений, поступающих из сети от ненадежного дейтаграммного протокола на межсетевом уровне. В сети Х.25 функцию надежной доставки выполняет канальный уровень модели OSI, который был подробно рассмотрен в предыдущих главах, а в сети Frame Relay эту функцию выполняет протокол ITU-T Q.921.

Примечания

  1. Таненбаум Э. Компьютерные сети, 4-е изд. СПБ.: Питер, 2010. 992с.
  2. Олифер В.Г., Олифер Н.А. Компьютерные сети, 4-е издание – Спб.: Питер, 2010. 944с.
  3. Олифер В.Г., Олифер Н.А. Компьютерные сети, 4-е издание – Спб.: Питер, 2010. 944с.
  4. Столингс В. Основы защиты сетей. Приложения и стандарты. М.: Вильямс, 2002. 324с.
  5. Хендерсон Л., Дженкинс Т. Frame Relay. М.: Горячая линия, 2000. 320с. 152с.
  6. RFC 2574. User-Based Security Model for SNMP, 1999.