Стек протоколов tcp ip имеет уровни.

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

В этой статье разберем принципы работы стека протоколов TCP/IP и попробуем понять принципы их работы.

Примечание: Зачастую, обревиатурой TCP/IP называют всю сеть, работающую на основе этих двух протоколов, TCP и IP.

В модель такой сети кроме основных протоколов TCP (транспортный уровень) и IP (протокол сетевого уровня) входят протоколы прикладного и сетевого уровней (смотри фото). Но вернемся непосредственно к протоколам TCP и IP.

Что такое протоколы TCP/IP

TCP — Transfer Control Protocol . Протокол управления передачей. Он служит для обеспечения и установление надежного соединения между двумя устройствами и надежную передачу данных. При этом протокол TCP контролирует оптимальный размер передаваемого пакета данных, осуществляя новую посылку при сбое передачи.

IP — Internet Protocol. Интернет протокол или адресный протокол — основа всей архитектуры передачи данных. Протокол IP служит для доставки сетевого пакета данных по нужному адресу. При этом информация разбивается на пакеты, которые независимо передвигаются по сети до нужного адресата.

Форматы протоколов TCP/IP

Формат IP протокола

Существуют два формата для IP адресов IP протокола.

Формат IPv4. Это 32-битовое двоичное число. Удобная форма записи IP-адреса (IPv4) это запись в виде четырёх групп десятичных чисел (от 0 до 255), разделённых точками. Например: 193.178.0.1.

Формат IPv6. Это 128-битовое двоичное число. Как правило, адреса формата IPv6 записываются в виде уже восьми групп. В каждой группе по четыре шестнадцатеричные цифры разделенные двоеточием. Пример адреса IPv6 2001:0db8:85a3:08d3:1319:8a2e:0370:7889.

Как работают протоколы TCP/IP

Если удобно представьте передаче пакетов данных в сети, как отправку письма по почте.

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

Протокол IP

Каждый компьютер в сети имеют свой уникальный адрес. В глобальной сети Интернет, компьютер имеет этот адрес, который называется IP-адрес (Internet Protocol Address).

По аналогии с почтой, IP- адрес это номер дома. Но номера дома для получения письма недостаточно.

Передаваемая по сети информация передается не компьютером, как таковым, а приложениями, установленными на него. Такими приложениями являются сервер почты, веб-сервер, FTP и т.п. Для идентификации пакета передаваемой информации, каждое приложение прикрепляется к определенному порту. Например: веб-сервер слушает порт 80, FTP слушает порт 21, почтовый SMTP сервер слушает порт 25, сервер POP3 читает почту почтовых ящиков на порте 110.

Таким образом, в адресном пакете в протоколе TCP/IP, в адресатах появляется еще одна строка: порт. Аналог с почтой — порт это номер квартиры отправителя и адресата.

Пример:

Source address (Адрес отправителя):

IP: 82.146.47.66

Destination address (Адресполучателя):

IP: 195.34.31.236

Стоит запомнить: IP адрес + номер порта — называется «сокет». В примере выше: с сокета 82.146.47.66:2049 пакет отправляется на сокет 195.34.31.236: 53.

Протокол TCP

Протокол TCP это протокол следующего после протокола IP уровня. Предназначен этот протокол для контроля передачи информации и ее целостности.

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

Транспортный протокол TCP скрывает от протоколов высшего уровня (физического, канального, сетевого IP все проблемы и детали передачи данных).

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) является основой глобальной сети Интернет, что обеспечило ему широкую популярность. Его гибкость и возможности маршрутизации трафика позволяют использовать его в сетях различного масштаба (начиная небольшой локальной сетью и заканчивая глобальной корпоративной сетью).
Стек протоколов TCP/IP представляет собой набор сетевых протоколов, регламентирующих все стороны процесса взаимодействия сетевых устройств. Этот стек протоколов основан на открытых спецификациях. Благодаря этому реализации данного стека протокола различными производителями совместимы между собой. В частности, реализация TCP/IP, предложенная Microsoft в рамках семейства операционных систем Windows, позволяет осуществлять взаимодействие с системами, находящимися под управлением ОС, созданных не фирмой Microsoft (например, UNIX).

Можно выделить следующие достоинства стека протоколов TCP/IP:

  • в рамках стека реализована стандартизованная схема маршрутизации, являющаяся наиболее полным и доступным общепринятым механизмом маршрутизации сетевого трафика. Практически все современные операционные системы поддерживают TCP/IP (даже Novell признала первенство стека протоколов TCP/IP и реализовала его поддержку в своем семействе операционных систем NetWare). Практически все корпоративные сети строятся с использованием стека TCP/IP;
  • технология объединения разнородных систем. В рамках стека TCP/IP доступно множество стандартных утилит для организации взаимодействия и передачи данных между разнородными системами, включая протокол передачи файлов FTP и протокол эмуляции терминала (Telnet). Некоторые стандартные утилиты поставляются непосредственно с Windows Server 2003;
  • технология, позволяющая подключать сеть или одиночный компьютер к глобальной сети Интернет. Поскольку Интернет функционирует на базе стека протоколов TCP/IP, поддержка компьютером этого стека является одним из обязательных требований при подключении его к этой сети. Реализованный в рамках стека протокол РРР, протокол туннелирования РРТР и архитектура Windows Sockets обеспечивают необходимую основу для организации подключения к Интернету и использования всех его служб;
  • основа для организации устойчивого, масштабируемого, межплатформенного, клиент-серверного взаимодействия. В TCP/IP поддерживается интерфейс Windows Sockets, который является реализацией в среде Windows широко распространенного интерфейса Berkeley Sockets, используемого для создания сетевых приложений.

Реализация стека протоколов TCP/IP в Windows Server 2003

В Windows Server 2003 реализована поддержка основных протоколов стека TCP/IP, включая протокол управления передачей (TCP), протокол Интернета (IP), протокол пользовательских датаграмм (UDP), протокол разрешения адресов (ARP), протокол управляющих сообщений Интернета (1СМР), а также протокол управлениями группами Интернет (IGMP). Реализация стека протоколов TCP/IP включает в себя базовые утилиты TCP/IP, в том числе Finger, Ftp, Lpr, Rep, Rexec, Rsh, Telnet и Tftp. Эти утилиты позволяют пользователям, работающим в Windows Server 2003, использовать ресурсы и взаимодействовать с компьютерами под управлением операционных систем сторонних производителей (например, операционные системы семейства UNIX). В распоряжении администратора имеется также целый ряд диагностических утилит TCP/IP, включая Arp, Hostname, Ipconfig, Lpq, Nbtstat, Netstat, Ping, Route и Tracert. Системные администраторы могут использовать эти утилиты, чтобы обнаружить и решить проблемы работы с сетями TCP/IP.

В Windows Server 2003 протокол TCP/IP устанавливается по умолчанию и не может быть удален или переустановлен. Если возникает необходимость сбросить установки TCP/IP, то следует использовать утилиту командной строки Netsh.exe.

Следует заметить, что разработанные в ходе развития стека TCP/IP спецификации охватывают различные стороны сетевого взаимодействия. Не все они реализованы в рамках стека протоколов TCP/IP, предложенного Microsoft в Windows Server 2003. Реализация стека протоколов TCP/IP в Windows Server 2003 имеет следующие характерные особенности:

  • поддержка окна передачи большого размера. Эта возможность улучшает производительность TCP/IP в случае, когда передается большое количество данных или не требуется передача подтверждения при связи между двумя компьютерами в течение длительного периода времени. В случае взаимодействия на базе протокола TCP окно (максимальное число пакетов, переданных в виде непрерывного потока до первого пакета подтверждения) обычно имеет фиксированный размер и устанавливается в начале сеанса связи между принимающим и передающим компьютерами. С поддержкой больших окон фактический размер окна может быть динамически вычислен повторно и соответственно увеличен в течение более длинных сеансов. Это позволяет передать большее количество пакетов данных за один раз и увеличивает эффективную полосу пропускания;
  • размер окна передачи устанавливается локальным сетевым адаптером. Данная возможность позволяет устанавливать размер окна передачи сетевым адаптером в соответствии с имеющейся пропускной способностью сети. Например, в ситуации, когда компьютер подключен к Интернету посредством модемного соединения, размер окна передачи будет значительно меньше, чем в случае соединения с локальной вычислительной сетью. Применительно к серверу удаленного доступа описываемая возможность позволяет уменьшить размер очереди пакетов и, как следствие, увеличить эффективность устанавливаемых соединений;
  • выборочные подтверждения. Эта возможность позволяет сетям быстро восстанавливать свою работоспособность после возникновения сетевых конфликтов или временного сбоя в физической среде. Получатель может выборочно подтверждать или требовать повторную передачу у отправителя только для тех пакетов, которые были опущены или повреждены во время передачи данных. В предыдущих реализациях TCP/IP, если компьютер-получатель не смог получить одиночный TCP-пакет, отправитель был вынужден повторно передавать не только поврежденный или отсутствующий пакет, но и всю последовательность пакетов, идущую после неподтвержденного пакета. С новой возможностью будут повторно посланы только действительно поврежденные или пропущенные пакеты. Это приводит к передаче меньшего количества пакетов, т. е. к лучшему использованию сети;
  • лучшая оценка времени кругового пути (Round Trip Time, RTF). Эта возможность повышает эффективность стека протоколов TCP/IP, позволяя точно оценивать время, затрачиваемое на путешествие пакета туда и обратно (RTT) между двумя хостами сети. (RTT - количество времени, которое требуется для кругового прохождения пакета между отправителем и получателем по установленному TCP-соединению.) Повышение точности оценки RTT позволяет установить более точное значение тайм-аута, до истечения которого компьютеры не будут перезапрашивать пакет. Лучшая синхронизация приводит к повышению эффективности работы в сетях с большими значениями RTT (например, в глобальных сетях), покрывающих большие расстояния (нередко целые континенты), или при использовании TCP/IP в беспроводных или спутниковых каналах;
  • поддержка протокола IPv6. Протокол IPv6 представляет собой новую версию протокола IP (старая версия протокола получила название IPv4). Новая версия протокола позволяет преодолеть ограничения и недостатки, характерные для протокола IPv4;
  • поддержка механизмов маршрутизации. Реализация стека протоколов TCP/IP в Windows Server 2003 включает в себя механизмы маршрутизации. Благодаря этому компьютер под управлением Windows Server 2003 может выступать в качестве маршрутизатора, соединяя между собой две или более подсетей;
  • возможность назначения одного IP-адреса нескольким сетевым адаптерам (создание так называемого подключения типа "сетевой мост", network media bridge). Например, компьютер может иметь два сетевых подключения (одно посредством модема с телефонной линией, а второе посредством сетевого адаптера к беспроводной сети). При этом другие компьютеры, подключаясь по телефонной линии к данному компьютеру, могут через мост осуществлять взаимодействие с компьютерами, подключенными к беспроводной сети;
  • встроенный брандмауэр. Непосредственно на уровне операционной системы реализован простейший брандмауэр подключений к Интернету (Internet Connection Firewall, ICF). Встроенный брандмауэр представляет собой службу, осуществляющую фильтрацию информации, поступающей
  • из глобальной сети Интернет. Служба пропускает только разрешенные администратором типы пакетов и отбрасывает все остальные;
  • поддержка служб просмотра сети (browser service), позволяющая осуществлять поиск ресурсов в сложных IP-сетях.

Помимо транспортных протоколов, задача которых сводится исключительно к организации сетевого взаимодействия, в Windows Sewer 2003 реализован целый ряд служб, без которых на сегодняшний день трудно представить сетевую инфраструктуру современного предприятия:

  • службы Интернета (Internet Information Services, IIS);
  • служба DHCP для автоматического конфигурирования TCP/IP;
  • служба WINS (Windows Internet Name Service) для разрешения NetBIOS-имен в IP-адреса;
  • служба доменных имен (Domain Name Service, DNS) для разрешения доменных имен в IP-адреса;
  • службы печати для доступа через TCP/IP к принтерам, подключенным к UNIX-системам, или к принтерам, подключенным непосредственно к сети;
  • агент простого протокола управления сетью (Simple Network Management Protocol, SNMP). Протокол SNMP был разработан как средство реализации централизованного управления разнообразными сетевыми устройствами посредством специализированного программного обеспечения (например, Sun Net Manager или HP Open View);
  • серверное программное обеспечение для простых сетевых протоколов, включая генератор символов (Chargen), Daytime, Discard, Echo и Quote of The Day. Эти протоколы позволяют компьютеру под управлением Windows Server 2003 отвечать на запросы других систем, поддерживающих эти протоколы.

Реализация стека протоколов TCP/IP в Windows Server 2003 не включает полный набор утилит TCP/IP или серверных служб (которые традиционно называются демонами, daemons). Тем не менее, существует множество прикладных программ и утилит такого рода, совместимых с реализацией TCP/IP производства Microsoft из состава Windows Server 2003, - как свободно распространяемых, так и сторонних производителей.

Архитектура стека протоколов TCP/IP в Windows Server 2003
Рис. 12.5 позволяет получить представление об архитектуре стека протоколов. TCP/IP, реализованного в рамках операционной системы Windows Server 2003. Условно можно выделить четыре уровня данной реализации.

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

Рис. 12.5. Архитектура стека протоколов TCP/IP в Windows Server 2003

  • Уровень прикладных интерфейсов. Прикладные интерфейсы представляют собой стандартизированные точки доступа к сетевым компонентам операционной системы. Операционной системой Windows Sewer 2003 поддерживается целый ряд разнообразных прикладных интерфейсов (NetBIOS, WNET/WinNET, Windows Socket, RFC). Прикладные интерфейсы взаимодействуют с транспортными протоколами через интерфейс транспортного драйвера (Transport Driver Interface, TDI).
  • Реализация транспортных механизмов. На этом уровне функционируют транспортные протоколы, отвечающие за упаковку сетевых запросов к приложениям в соответствующие форматы и отправку этих запросов на соответствующий сетевой адаптер посредством интерфейса сетевых драйверов (Network Driver Interface Specifications, NDIS).
  • Интерфейс сетевых драйверов. Интерфейс сетевых драйверов позволяет использовать несколько сетевых протоколов поверх разнообразных типов сред и сетевых адаптеров. Благодаря этому интерфейсу множество протоколов могут совместно использовать один сетевой адаптер.

В Windows Server 2003 реализована спецификация NDIS 5.1. Ниже перечислены характерные особенности данной версии этого интерфейса.

  • Поддержка данных, передаваемых вне полосы пропускания (используется в широкополосной передаче).
  • Расширение для средств Wireless WAN.
  • Высокоскоростные передача и прием пакетов (что приводит к значительному повышению производительности).
  • Расширение для средств высокоскоростных портов инфракрасной передачи IrDA.
  • Автоматическое определение среды (это требуется для получения эмблемы "Разработано для Windows" в соответствии с руководством по построению аппаратных средств спецификации РС"98).
  • Фильтрация пакетов (предотвращает монопольный захват процессора утилитой Сетевой монитор (Network Monitor)).
  • Многочисленные новые системные функции интерфейса NDIS (требуются для двоичной совместимости мини-порта Windows 95 и Windows NT).
  • Управление питанием NDIS (требуется для сетевого управления питанием и включения компьютера через сеть).
  • Поддержка технологии Plug and Play.
  • Поддержка инструментария управления Windows (Windows Management Instrumentation, WMI), что обеспечивает создание совместимых с WBEM (Управление предприятием на основе технологии Web) средств управления аппаратурой мини-портов ND1S и связанных с ними адаптеров.
  • Поддержка единого формата INF для всех операционных систем Windows. Новый формат INF основан на формате 1NF, принятом в Windows 95.
  • Механизмы разгрузки процессора для служебных процессов типа расчета контрольной суммы пакетов протоколов TCP и UDP, а также для быстрой пересылки пакетов.
  • Расширение для средств широковещания (необходимо для широковещательных служб в Windows).
  • Поддержка механизмов установления логического соединения (требуется для сетей ATM и ADSL, а также для работы WDM-CSA (Windows Driver Model-Connection Streaming Architecture) - модели драйвера потоковой архитектуры соединения для Windows поверх всех сред с установлением логического соединения).
  • Поддержка для реализации служб качества обслуживания (Quality of Service, QoS).
  • Поддержка промежуточных драйверов (требуется для широковещания PC, виртуальных ЛВС, планирования пакетов для QoS и для поддержки сетевых устройств IEEE-1394).

Интерфейс Windows Socket 2

Интерфейс Windows Socket 2 (достаточно часто можно встретить другое название - WinSock 2) представляет собой реализованный в Windows интерфейс сокетов, разработанный в Университете Беркли. Данный интерфейс выступает в качестве связующего звена между приложениями и транспортным механизмом. Формат сокета зависит от протокола. Применительно к TCP/IP сокет представляет собой комбинацию информации об адресе хоста и номере порта. Для каждого сокета эта комбинация является уникальной.
Обеспечивая полную совместимость с предыдущей версией, Windows Socket 2 расширяет первоначальную реализацию интерфейса. Его характеризуют:

  • улучшенная эффективность работы;
  • дополнительная поддержка разрешения имен;
  • параллельный доступ к нескольким сетевым транспортам;
  • поддержка процедур управления качеством обслуживания (QoS);
  • поддержка многоточечного и многоадресного вещания.

В дополнение к поддержке доступа к нескольким сетевым транспортам и механизмам разрешения имен, по сравнению со спецификацией WinSock 1.1, изменилась и архитектура Windows Sockets 2, которая теперь включает два основных уровня: уровень динамических библиотек (DLL), обеспечивающих интерфейс Windows Sockets API, и уровень поставщиков услуг, располагающихся ниже библиотек API и взаимодействующих с ними через интерфейс поставщика услуг (Service Provider Interface, SPI). Описание Windows Sockets 2 включает три отдельных спецификации: описание Windows Sockets 2 API, описание Windows Sockets 2 SPI и приложение (Appendix), определяющие особенности протокола транспортного уровня.
DLL-библиотека Windows Sockets 2 (WS2-32.DLL) включает все API, используемые разработчиками приложений. Она включает существующий Windows Sockets 1.1 API, а также новый API для расширенных средств обмена данными и API обобщенной службы имен. Многие поставщики теперь предлагают параллельный доступ к их собственным транспортам, создавая DLL-библиотеку поставщика услуг, соответствующую спецификации Windows Sockets 2 SPI. Это означает, что можно разработать приложение, обращающееся через новый прикладной интерфейс, например, к TCP/IP и IPX/SPX одновременно.
Интерфейс поставщика услуг позволяет обращаться к нескольким службам разрешения имен (Name Resolution Services) через единый API. Поскольку производители поставляют программные модули уровня поставщика услуг для DNS, для службы каталогов NetWare (NDS) и Х.500 все их функции разрешения имен будут доступны через API пространства имен Windows Sockets 2.


Протокол IPv6

Начальная версия протокола IP (ее принято называть IPv4) разрабатывалась несколько десятилетий назад. Хотя при разработке этого протокола исходили из возможного развития сетевой инфраструктуры в будущем, протоколу IPv4 свойственен ряд ограничений.

  • Ограниченное адресное пространство. Стремительный рост Интернета выявил одно из самых ощутимых ограничений - нехватку IP-адресов. По оценкам специалистов, заложенное в рамках архитектуры протокола IPv4 количество IP-адресов приблизительно равно количеству хостов Интернета. Уже в ближайшем будущем все доступные IP-адреса будут задействованы. Для дальнейшего развития Интернета необходимо предложить и задействовать новый способ адресации хостов.
  • Сложность конфигурации. Версия протокола IPv4 предусматривает только два способа определения конфигурации протокола: ручная настройка либо использование службы автоматической конфигурации хостов DHCP. В случае большого количества хостов возникает потребность в механизме конфигурации хостов, требующем минимального участия со стороны администратора.
  • Недостаточная защищенность. При взаимодействии хостов через открытые сети (какой является, например, Интернет) данные передаются в открытом виде. Существуют различные механизмы защиты сетевого трафика на разных уровнях OSI модели. Специалистами был разработан протокол шифрования данных на сетевом уровне, получивший название протокола IP Security (IPSec). Однако использование этого протокола носит опциональный характер.
  • Отсутствие механизмов управления качеством обслуживания (Quality of Service, QoS). Развитие информационных технологий предъявляет жесткие требования к сетевому транспорту (особенно при передаче потоковых данных - таких, например, как голос и изображение). Хотя имеются механизмы, позволяющие управлять качеством обслуживания и в рамках протокола IPv4, существующий формат заголовка IP-пакета имеет ограниченную функциональность.

Указанные ограничения удалось преодолеть в новой версии протокола IP, получившего название IPv6. Для этого протокола сетевого уровня можно выделить характерные особенности, перечисленные ниже.

  • Новый формат заголовка IP-пакета. В новой версии протокола IP существенным образом был переработан формат заголовка пакета с целью повышения эффективности его обработки сетевыми устройствами. Следует заметить, что заголовок 1Ру6-пакета не совместим обратно с заголовком IРv4-пакета. Поэтому в случае использования в сети обеих версий протоколов сетевое устройство (такое, например, как маршрутизатор) должно поддерживать обе версии протокола.
  • Увеличенное адресное пространство. Протокол IPv4 использует 32-битные адреса. В протоколе IPv6 используются 128-битные IP-адреса (что составляет 2128 возможных адресов). Имеющееся количество IP-адресов достаточно как для построения открытых сетей, так и для реализации корпоративных сетей. Благодаря этому, в частности, отпадает необходимость в механизмах трансляции адресов (NAT).
  • Иерархическая инфраструктура адресации и маршрутизации. Схема адресации, используемая в IPv6, позволяет упростить процесс построения таблиц маршрутиазции, используемых маршрутизаторами для определения пути доставки пакета.
  • Новый механизм конфигурации хостов. Протокол IPv6 поддерживает как традиционные способы конфигурации хостов (ручной и с использованием DHCP), так и новые способы конфигурации, не требующие участия DHCP-сервера. В последнем случае хост может определить собственную конфигурацию, основываясь на информации о настройках ближайшего маршрутизатора, либо использовать конфигурацию по умолчанию.
  • Встроенный механизм обеспечения безопасности. Поддержка протокола IPSec является одним из обязательных условий функционирования протокола IPv6.
  • Улучшенная поддержка механизмов управления качеством сервиса. Новый формат заголовка изначально ориентирован на работу механизмов управления качеством обслуживания (QoS).
  • Новый протокол взаимодействия с соседними хостами. Протокол обнаружения соседних хостов (Neighbor Discovery Protocol) представляет собой набор ICMP-сообщений, который регламентирует процесс взаимодействия хоста с его соседями. Этот протокол соответственно заменяет протоколы ARP, ICMPv4 Router Protocol и ICMPv4 Redirect.

Применительно к реализации IPv6 в Windows Server 2003 следует заметить, что данная версия протокола поддерживается разнообразными службами TCP/IP. В частности, служба DNS может быть использована для регистрации хостами своих доменных имен и, в последующем, для разрешения этих имен в соответствующие 1Ру6-адреса.

Протокол IP Security

Протокол IP Security (или как его еще называют - IPSec) разработан с целью реализации защищенного обмена данными по протоколу IP. При этом протокол IPSec позволяет администратору решить следующие задачи обеспечения безопасности:

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

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

  • Создание защищенного заголовка IP-пакета (Authentication Header, АН). Данный уровень предполагает защиту заголовка передаваемого пакета. В случае использования только этого уровня собственно данные пакета передаются в открытом, незащищенном виде. Тем не менее, данный уровень наиболее оптимален в ситуации, когда конфиденциальность передаваемых данных не является критически важной. Уровень обеспечения безопасности АН позволяет гарантировать целостность данных, подтверждение подлинности их происхождения, а также защиту от повторений.
  • Инкапсуляция содержимого пакета (Encapsulated Security Payload, ESP). На этом уровне реализуется защита содержимого пакета путем его шифрования. На уровне обеспечения безопасности ESP гарантируется конфиденциальность передаваемых данных, их целостность, подлинность их происхождения, а также защита от повторения.

В основе работы этого протокола лежит сразу несколько криптографических алгоритмов:

  • системы шифрования с симметричным ключом шифрования (алгоритм DES);
  • системы шифрования с открытым ключом;
  • алгоритм открытого распределения ключей;
  • алгоритмы хэширования (MD5).
  • IP-адрес хоста. Каждый хост в среде TCP/IP должен иметь уникальный IP-адрес. Если хост имеет несколько сетевых соединений, для каждого из них (в том числе и использующих телефонные линии и подключенных к серверу удаленного доступа) должен быть выделен свой IP-адрес. Этот адрес может быть статически назначен администратором или выделен динамически службой DHCP.
  • Определение метода разрешения символических имен. Windows Server 2003 поддерживает четыре способа разрешения символических имен в IP-адреса: службу доменных имен (Domain Name System, DNS), службу интернет-имен Windows (Windows Internet Name System, WINS), широковещательное разрешение имен и разрешение имен с помощью файлов HOSTS и LMHOSTS.

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

Стек протоколов TCP/IP

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

Корпоративная информация, интенсивность ее потоков и способы ее обработки постоянно меняются. Примером резкого изменения технологии обработки корпоративной информации стал беспрецедентный рост популярности глобальной сети Internet за последние 2-3 года. Сеть Internet изменила способ представления информации, собрав на своих серверах все ее виды - текст, графику и звук. Транспортная система сети Internet существенно облегчила задачу построения распределенной корпоративной сети.

Соединение и взаимодействие в рамках одной мощной компьютерной сети явилось целью проектирования и создания семейства протоколов, названных в дальнейшем стеком протоколов TCP/IP (Transmission Control Protocol / Internet Protocol ) . Главной идеей стека является создание механизма межсетевого обмена.

Стек протоколов TCP/IP широко применяется во всем мире для объединения компьютеров в сети Internet . TCP / IP - это общее название, присвоенное семейству протоколов передачи данных, используемых для связи компьютеров и другого оборудования в корпоративной сети.

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

История создания стека протоколов TCP/IP началась с момента, когда Министерство обороны США столкнулось с проблемой объединения большого числа компьютеров с различными операционными системами. Для этого в 1970 году был составлен набор стандартов. Протоколы, разработанные на базе этих стандартов, получили обобщенное название TCP/IP.

Стек протоколов TCP/IP был изначально предназначен для сети Advanced Research Project Agency Network (ARPANET ). ARPANET рассматривалась как экспериментальная распределенная сеть коммутации пакетов. Эксперимент по применению стека протоколов TCP/IP в этой сети закончился с положительными результатами. Поэтому стек протоколов был принят в промышленную эксплуатацию, а в дальнейшем был расширен и усовершенствовался в течение нескольких лет. Позже стек адаптировали для использования в локальных сетях. В начале 1980 года протокол стал использоваться как интегральная часть операционной системы Вег kley UNIX v 4.2. В этом же году появилась объединенная сеть Internet . Переход к технологии Internet был завершен в 1983 году, когда Министерство обороны США установило, что все компьютеры, присоединенные к глобальной сети, используют стек протоколов TCP/IP.

Стек протоколов TCP/IP предоставляет пользователям два основных сервиса , которые используют прикладные программы:

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

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

Основными преимуществами стека протоколов TCP/IP являются:

Независимость от сетевой технологии. Стек протоколов TCP/IP не зависит от оборудования конечных пользователей, так как он только определяет элемент передачи - дейтаграмму - и описывает способ ее движения по сети.

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

Межконцевые подтверждения. Протоколы стека TCP/IP обеспечивают подтверждение правильности прохождения информации при обмене между отправителем и получателем.

Стандартные прикладные протоколы. Протоколы TCP/IP включают в свой состав средства для поддержки наиболее часто встречающихся приложений, таких как электронная почта, передача файлов, удаленный доступ и т.д.

Резкий рост сети Internet и, естественно, ускоренное развитие стека протоколов TCP/IP потребовали от разработчиков создания серии документов, которые способствовали бы дальнейшему упорядоченному развитию протоколов. Организация Internet Activities Board (IAB ) разработала серию документов, называемых RFC (Request For Comments ). Некоторые RFC описывают сетевые сервисы или протоколы и их реализацию, другие документы описывают условия их применения. В том числе в RFC опубликованы стандарты стека протоколов TCP/IP. При этом следует иметь в виду, что стандарты TCP/IP всегда публикуются в виде документов RFC , но не все RFC определяют стандарты.

Документы RFC первоначально публиковались в электронном виде и могли комментироваться теми, кто принимал участие в их обсуждении. Документ мог претерпевать несколько изменений до тех пор, пока не будет достигнуто общее соглашение по его содержанию. Если документ при этом регламентировал новую идею, то ему присваивался номер, и он помещался к другим RFC . При этом каждому новому документу присваивается статус, регламентирующий необходимость его внедрения. Выход в свет нового документа RFC вовсе не означает, что все производители оборудования и программного обеспечения должны внедрять его в своей продукции. В приложении № 2 приведены описания некоторых документов RFC и их статусов.

1.Состояние стандартизации. Протокол может иметь несколько состояний:

стандарт на протокол утвержден;

стандарт на протокол предлагается к рассмотрению;

предлагается экспериментальный протокол;

протокол устарел и в настоящее время не используется.

2.Статус протокола. Протокол может иметь несколько статусов:

протокол требуется для внедрения;

протокол может внедряться производителем по выбору;

При эксплуатации сложной корпоративной сети возникает масса не связанных между собой проблем. Решить их функциональными возможностями одного протокола практически невозможно. Такой протокол должен был бы:

распознавать сбои в сети и восстанавливать ее работоспособность;

распределять пропускную способность сети и знать способы уменьшения потока данных при перегрузке;

распознавать задержки и потери пакетов, знать способ уменьшения ущерба от этого;

распознавать ошибки в данных и информировать о них прикладное программное обеспечение;

производить упорядоченное движение пакетов в сети.

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

Так как стек протоколов TCP/IP был разработан до появления эталонной модели OSI , то соответствие его уровней уровням модели OSI достаточно условно. Структура стека протоколов TCP/IP приведена на рис. 1.1.

Рис. 1.1. Структура стека протоколов TCP/IP .

Рис. 1. 2. Путь передачи сообщений .

Теоретически посылка сообщения от одной прикладной программы к другой означает последовательную передачу сообщения вниз через соседние уровни стека у отправителя, передачу сообщений по уровню сетевого интерфейса (уровню IV ) или, в соответствии с эталонной моделью OSI , по физическому уровню, прием сообщения получателем и передачу его вверх через соседние уровни протокольного программного обеспечения. На практике взаимодействие уровней стека организовано гораздо сложнее. Каждый уровень принимает решение о корректности сообщения и производит определенное действие на основании типа сообщения или адреса назначения. В структуре стека протоколов TCP/IP имеется явный «центр тяжести» - это сетевой уровень и протокол IP в нем. Протокол IP может взаимодействовать с несколькими модулями протоколов более высокого уровня и несколькими сетевыми интерфейсами. То есть на практике процесс передачи сообщений от одной прикладной программы к другой будет выглядеть следующим образом: отправитель передает сообщение, которое на уровне III про токолом IP помещается в дейтаграмму и посылается в сеть (сеть 1). На промежуточных устройствах, например маршрутизаторах , дейтаграмма передается вверх до уровня протокола IP , который отправляет ее обратно вниз, в другую сеть (сеть 2). Когда дейтаграмма достигает получате ля, протокол IP выделяет сообщение и передает его на верхние уровни. Рис. 1.2 иллюстрирует данный процесс.

Структуру стека протоколов TCP/IP можно разделить на четыре уровня . Самый нижний - уровень сетевого интерфейса (уровень IV ) -соответствует физическому и канальному уровню модели OSI . В стеке протоколов TCP/IP этот уровень не регламентирован. Уровень сетево го интерфейса отвечает за прием дейтаграмм и передачу их по конкрет ной сети. Интерфейс с сетью может быть реализован драйвером уст ройства или сложной системой, которая использует свой протокол ка нального уровня (коммутатор, маршрутизатор ). Он поддерживает стан дарты физического и канального уровня популярных локальных сетей: Ethernet , Token Pang , FDDI и т.д. Для распределенных сетей поддержи ваются проколы соединений РРР и SLIP , а для глобальных сетей - протокол Х.25. Предусмотрена поддержка использования развивающейся технологии коммутации ячеек - ATM . Обычной практикой стало вклю чение в стек протоколов TCP/IP новых технологий локальных или рас пределенных сетей и регламентация их новыми документами RFC .

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

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

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

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

На этом уровне функционирует протокол управления передачей данных TCP (Transmission Control Protocol ) и протокол передачи при кладных пакетов дейтаграммным методом UDP (User Datagram Protocol ). Протокол TCP обеспечивает гарантированную доставку данных за счет образования логических соединений между удаленными прикладными процессами. Работа протокола UDP аналогична работе протокола IP , но основной его задачей является выполнение функций связующего звена между сетевым протоколом и различными приложениями.

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

Рассмотрение принципов функционирования стека протоколов TCP/IP целесообразно проводить, начиная с протоколов третьего уров ня. Это связано с тем, что протоколы более высоких уровней в своей работе опираются на функциональные возможности протоколов нижних уровней. Для понимания проблем маршрутизации в распределен ных сетях изучение протоколов рекомендуется проводить в следующей последовательности: IP , ARP , ICMP , UDP и TCP . Это связано с тем, что для доставки информации между удаленными системами в распределенной сети используется в той или иной степени все семейство сте ка протоколов TCP/IP.

Стек протоколов TCP/IP включает в свой состав большое число протоколов прикладного уровня. Эти протоколы выполняют различные функции, в том числе: управление сетью, передачу файлов, оказание распределенных услуг при использовании файлов, эмуляцию термина лов, доставку электронной почты и т.д. Протокол передачи файлов (File Transfer Protocol - FTP ) обеспечивает перемещение файлов между ком пьютерными системами. Протокол Telnet обеспечивает виртуальную тер минальную эмуляцию. Простой протокол управления сетью (Simple Network Management Protocol - SNMP ) является протоколом управле ния сетью, используемым для сообщений об аномальных условиях в сети и установления значений допустимых порогов в сети. Простой протокол передачи почты (Simple Mail Transfer Protocol - SMTP ) обеспечивает механизм передачи электронной почты. Эти протоколы и другие прило жения используют услуги стека TCP/IP для обеспечения пользователей базовыми сетевыми услугами.

Более подробно протоколы прикладного уровня стека протоколов TCP/IP в рамках данного материала не рассматриваются.

Перед рассмотрением протоколов стека TCP/IP введем базовые термины, определяющие названия фрагментов информации, передава емой между уровнями. Название блока данных, передаваемого по сети, зависит от того, на каком уровне стека протоколов он находится. Блок данных, с которым имеет дело сетевой интерфейс, называется кадром . Если блок данных находится между сетевым интерфейсом и сетевым уровнем, то он называется IP -дейтаграммой (или просто дейтаграм мой). Блок данных, циркулирующий между транспортным и сетевым уровнями и выше, называется IP -пакетом . На рис. 1.3 показано соот ветствие обозначений блоков данных уровням стека протоколов TCP/IP.


Рис. 1. 3. Обозначение фрагментов информации на уровнях стека TCP/IP.

Очень важно дополнить описание уровней стека протоколов TCP/IP описанием различия между передачей от отправителя непосредственно к получателю и передачей через несколько сетей. На рис. 4 показано различие между этими видами передач.


Рис. 1.4. Способы передачи информации.

При доставке сообщения через две сети с применением маршрутизатора оно использует два разных сетевых кадра (кадр 1 и кадр 2). Кадр 1 - для передачи от отправителя до маршрутизатора , кадр 2 - от маршрутизатора до получателя.

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

Протокол TCP/IP (Transmission Control Protocol/Internet Protocol ) представляет собой стек сетевых протоколов, повсеместно используемый для Интернета и других подобных сетей (например, данный протокол используется и в ЛВС). Название TCP/IP произошло от двух наиболее важных протоколов:

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

Основные характеристики TCP/IP:

  • Стандартизованные протоколы высокого уровня, используемые для хорошо известных пользовательских сервисов.
  • Используются открытые стандарты протоколов, что дает возможность разрабатывать и дорабатывать стандарты независимо от программного и аппаратного обеспечения;
  • Система уникальной адресации;
  • Независимость от используемого физического канала связи;

Принцип работы стека протоколов TCP/IP такой же как и в модели OSI, данные верхних уровней инкапсулируются в пакеты нижних уровней.

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

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

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

Пример инкапсуляции можно представить следующим образом:

Рассмотрим каждые функции уровней

Прикладной уровень

Приложения, работающие со стеком TCP/IP, могут также выполнять функции представительного уровня и частично сеансового уровня модели OSI.

Распространенными примерами приложений являются программы:

  • Telnet
  • HTTP
  • Протоколы электронной почты (SMTP, POP3)

Для пересылки данных другому приложению, приложение обращается к тому или иному модулю транспортного модуля.

Транспортный уровень

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

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

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

Средства транспортного уровня представляют собой функциональную надстройку над сетевым уровнем и решают две основных задачи:

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

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

Сетевой (межсетевой) уровень

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

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

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

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

  • Уничтожит дейтаграмму;
  • Отправить ее дальше к месту назначения, определив маршрут следования, так поступают промежуточные станции – маршрутизаторы .

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

Также протокол IP может отправлять сообщения – уведомления с помощью протокола ICMP , например, в случае уничтожения дейтаграммы. Более никаких средств контроля корректности данных, подтверждения или доставки, предварительного соединения в протоколе нет, эти задачи возложены на транспортный уровень.

Уровень доступа к среде

Функции этого уровня следующие:

  • Отображение IP-адресов в физические адреса сети. Эту функцию выполняет протокол ARP ;
  • Инкапсуляция IP-дейтаграмм в кадры для передачи по физическому каналу и извлечение дейтаграмм из кадров, при этом не требуется какого-либо контроля безошибочной передачи, поскольку в стеке TCP/IP такой контроль возложен на транспортный уровень или на само приложение. В заголовке кадров указывается точка доступа к сервису SAP, это поле содержащее код протокола;
  • Определение метода доступа к среде передачи, т.е. способа, с помощью которого компьютеры устанавливает свое право на передачу данных;
  • Определение представления данных в физической среде;
  • Пересылка и прием кадра.

Рассмотрим инкапсуляцию на примере перехвата пакета протокола HTTP с помощью сниффера wireshark, который работает на прикладном уровне протокола TCP/IP:


Помимо самого перехваченного протокола HTTP, на основании стека TCP/IP сниффер описывает каждый нижележащий уровень. HTTP инкапсулируется в TCP, протокол TCP в IPv4, IPv4 в Ethernet II.