Набор протоколов tcp ip

На iOS - iPhone, iPod touch 25.08.2019
На iOS - iPhone, iPod touch

Стек протоколов 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 широко используется как в глобальных, так и в локальных сетях. Этот стек имеет иерархическую структуру, в которой определено 4 уровня (таб. 1).

Таб. 1. Иерархическая структура стека TCP/IP

Прикладной уровень стека TCP/IP соответствует трем верхним уровням модели OSI: прикладному, представления и сеансовому. Он объединяет сервисы, предоставляемые системой пользовательским приложениям. За долгие годы применения в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб прикладного уровня. К ним относятся такие распространенные протоколы, как протокол передачи файлов (File Transfer Protocol, FTP), протокол эмуляции терминала telnet, простой протокол передачи почты (Simple Mail Transfer Protocol, SMTP), протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP) и многие другие. Протоколы прикладного уровня развертываются на хостах.

Транспортный уровень стека TCP/IP может предоставлять вышележащему уровню два типа сервиса:

  • гарантированную доставку обеспечивает протокол управления передачей (Transmission Control Protocol, TCP);
  • оставку по возможности, или с максимальными усилиями, обеспечивает протокол пользовательских дейтаграмм (User Datagram Protocol, UDP).

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

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

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

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

Основным протоколом сетевого уровня является межсетевой протокол (Internet Protocol, IP). В его задачу входит продвижение пакета между сетями - от одного маршрутизатора к другому до тех пор, пока пакет не попадет в сеть назначения. В отличие от протоколов прикладного и транспортного уровней, протокол IP развертывается не только на хостах, но и на всех маршрутизаторах (шлюзах). Протокол IP - это дейтаграммный протокол, работающий без установления соединений по принципу доставки с максимальными усилиями. Такой тип сетевого сервиса называют также «ненадежным».

К сетевому уровню TCP/IP часто относят протоколы, выполняющие вспомогательные функции по отношению к IP. Это, прежде всего, протоколы маршрутизации RIP и OSPF, предназначенные для изучения топологии сети, определения маршрутов и составления таблиц маршрутизации, на основании которых протокол IP перемещает пакеты в нужном направлении. По этой же причине к сетевому уровню могут быть отнесены протокол межсетевых управляющих сообщений (Internet Control Message Protocol, ICMP), предназначенный для передачи маршрутизатором источнику сведений об ошибках, возникших при передаче пакета, и некоторые другие протоколы.

Идеологическим отличием архитектуры стека TCP/IP от многоуровневой архитектуры других стеков является интерпретация функций самого нижнего уровня - уровня сетевых интерфейсов.

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

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

Задачу организации интерфейса между технологией TCP/IP и любой другой технологией промежуточной сети упрощенно можно свести к двум задачам:

  • упаковка (инкапсуляция) IP-пакета в единицу передаваемых данных промежуточной сети;
  • преобразование сетевых адресов в адреса технологии данной промежуточной сети.

Такой гибкий подход упрощает решение проблемы расширения набора поддерживаемых технологий. При появлении новой популярной технологии она быстро включается в стек TCP/IP путем разработки соответствующего стандарта, определяющего метод инкапсуляции IP-пакетов в ее кадры (например, спецификация RFC 1577, определяющая работу протокола IP через сети ATM, появилась в 1994 году вскоре после принятия основных стандартов ATM). Так как для каждой вновь появляющейся технологии разрабатываются собственные интерфейсные средства, функции этого уровня нельзя определить раз и навсегда, и именно поэтому нижний уровень стека TCP/IP не регламентируется.
Каждый коммуникационный протокол оперирует некоторой единицей передаваемых данных. Названия этих единиц иногда закрепляются стандартом, а чаще просто определяются традицией. В стеке TCP/IP за многие годы его существования образовалась устоявшаяся терминология в этой области (рис. 1).

Рис. 1. Названия протокольных единиц данных в TCP/IP

Потоком данных, информационным потоком, или просто потоком, называют данные, поступающие от приложений на вход протоколов транспортного уровня - TCP и UDP.

Протокол TCP «нарезает» из потока данных сегменты.

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

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

Привет, посетитель сайта сайт! Продолжаем изучать , напомню, что эти записи основаны на программе и помогут вам подготовиться к экзаменам CCENT/CCNA. Продолжаем разговор об эталонных моделях и на этот раз мы рассмотрим модель, которая была разработана путем практических наработок, эта модель называется модель стека протоколов TCP/IP , она похожа на модель OSI 7, но имеются и свои отличия, которые довольно значительны и их стоит обсудить, а также обозначить.

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

Перед началом я хотел бы вам напомнить, что ознакомиться с опубликованными материалами первой части нашего курса можно по ссылке: « ».

1.15.1 Введение

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

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

1.15.2 Общий принцип работы модели стека протоколов TCP/IP

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

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

Как видим, отличие модели TCP/IP от OSI 7 заключается в количестве уровней , у эталонной модели их семь, в модели стека протоколов их четыре. В модели TCP/IP объединены первых два уровня модели OSI 7 ( и ), здесь первый уровень называется уровень доступа к сети или канальный уровень. На уровне доступа к сети в модели сетка протоколов TCP/IP работают такие технологии и протоколы как: Ethernet, который есть практически в каждой локальной сети, IEEE 802.11 (Wi-Fi), PPP, в общем и целом на первом уровне модели стека протоколов TCP/IP реализуется функционал физического и канального уровней модели OSI 7.

Второй уровень модели TCP/IP соответствует третьему уровню модели OSI 7, в разных источниках вы можете встретить разные названия третьего уровня: уровень сети Интернет, сетевой уровень, межсетевой уровень. Можно сказать, что это основной и самый интересный для сетевого инженера уровень. Так как на этом уровне определяется логическая адресация узлов сети Интернет и, по сути, этот уровень является конечным для сетевого оборудования, за на более высоких уровнях уже отвечают конечные устройства: и .

Третий уровень модели TCP/IP имеет такое же название, как и в модели OSI – Транспортный уровень, правда в модели OSI этот уровень в порядке нумерации идет четвертым. Транспортный уровень отвечает за надёжность передачи для конечных устройств поверх ненадежной компьютерной сети , в которой в любой момент могут возникать самые разные проблемы. К тому же транспортный уровень помогает различать компьютерам следующее: какой трафик какое приложение генерирует и какому приложению предназначены те или иные пакеты, это возможно благодаря сокетам. На транспортном уровне для нас будут интересны два протокола: TCP, который обеспечивает надежную передачу с установкой соединения, этот протокол используется для передачи данных типа текст, файлов и так далее, а также протокол UDP, этот протокол без установки соединения и используется он для передачи данных в системах реального времени: аудио и видео связь. Про вы можете узнать из записи, опубликованной ранее.

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

1.15.3 Первый уровень модели TCP/IP или уровень доступа к сети

Первый уровень – это фундамент компьютерной сети, поверх которого строится вся логика взаимодействия. Пожалуй, основной недостаток модели стека протоколов TCP/IP заключается в том, что физический и канальный уровень модели OSI здесь объединены в один под названием уровень доступа к сети или канальный уровень . На мой взгляд, нужно отделять физические процессы, происходящие на первом уровне от логики, которая реализована в канале связи на втором уровне. Хотя тут могут быть возражения в следующем ключе: такие популярные технологии как Ethernet и IEEE 802.11 в контексте модели OSI 7 работают на двух уровнях (канальном и физическом), тогда как в контексте модели TCP/IP эти технологии реализуют свой функционал на одном уровне – уровне доступа.

Итак, на уровне доступа модели TCP/IP решаются физические вопросы, связанные с передачей сигнала в различных средах:

  • максимальный и минимальный допустимые уровни сигнала в среде передачи данных: если с минимальным все более-менее очевидно, то с максимальным немного поясню: с усилением полезного сигнала усиливаются и помехи;
  • какой уровень сигнала нужно принимать за логический ноль (логический ноль – это не отсутствие сигнала), а какой уровень сигнала будет считаться логической единицей;
  • на физическом уровне определяются технические и конструктивные требования к среде передачи данных, например, если передача по медной линии, то тут можно выделить сетевые интерфейсы типа RJ-45 и RJ-11 или, например, витая пара или коаксиальный кабель;
  • данные в чистом виде никогда не передаются по сети, по сети передаются два объединенных сигнала: полезный сигнал с данными (его еще называют модулирующий) и несущий сигнал, процесс объединения этих двух сигналов называется модуляцией, более подробно об этом читайте в книгах, .

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

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

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

Можно выделить следующие протоколы и технологии, которые работают на канальном уровне модели TCP/IP: Ethernet, IEEE 802.11 WLAN, SLIP, Token Ring, ATM. Первым двум мы выделим по целой части, так как в локальных сетях вы будете чаще всего сталкиваться именно с ними.

Еще на канальном уровне реализуется механизм обнаружения и исправления ошибок при помощи специальных кодов, очень подробно про канальные коды рассказано в книге Бернарда Скляра «Цифровая связь», здесь мы на них не останавливаемся. Из физических устройств, работающих на уровне доступа к сети можно выделить (дополнительно можете почитать про ): усилители сигнала, преобразователи сигнала (SFP-модули, медиаконвертеры и т.д.), ретрансляторы, хабы, концентраторы, радио антенны, а также коммутаторы уровня L2, которые будет представлять для нас наибольший интерес, так как их можно и нужно настраивать и у них есть различные по своей полезности механизмы для защиты сети и обеспечения надежности передачи данных.

1.15.4 Второй уровень или уровень сети Интернет

Второй уровень модели TCP/IP называется уровнем сети Интернет, сетевым или межсетевым уровнем. Это один из самых важных уровней для сетевого инженера, так как именно здесь работает протокол IP, отвечающий за логическую адресацию в компьютерных сетях и в сети Интернет, если говорить о частностях . Непосредственно протоколу IP мы уделим целых две части, сначала мы поговорим про версию IPv4, а затем разберемся с версией протокола IPv6. Также на этом уровне работают протоколы динамической маршрутизации, в этом курсе мы разберемся с протоколом RIP, который очень прост, но уже практически нигде не используется. А если будет продолжение, то мы еще будем разбираться с такими замечательными протоколами динамической маршрутизации, как OSPF и EIGRP.

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

Вообще, как я уже говорил, мы будем разбираться с протоколом IP и IP-адресами в дальнейшем, сейчас же стоит отметить, что есть так называемый мультикаст трафик и специальные IP-адреса, если нужен пример использования, то это IPTV (вот здесь вы можете немного узнать ). Так вот для работы с мультикаст IP-адресами используются такие протоколы как IGMP и PIM, которые мы не будем затрагивать в рамках этого трека, но упомянуть о них стоит. Вообще, протоколов сетевого уровня достаточно много, самые важные для нас на данном этапе мы уже перечислили, однако не упомянули протокол ARP, который помогает определить мак-адрес по известному IP-адресу, этот протокол работает между канальным и сетевым уровнем .

На межсетевом уровне единица измерения данных или PDU называется пакетом, хотя об этом вы уже догадались, когда я использовал слово IP-пакет. При этом структура заголовка IP-пакета в IPv4 достаточно сильно отличается от структуры пакета в IPv6, как и сами IP-адреса этих протоколов.

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

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

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

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

Итак, получаем, что у клиентского ПК IP-адрес: 192.168.2.3, а также клиентский ПК выдал клиентскому приложению порт с номером 23678 для установки соединения с первым сервером (пусть приложением будет браузер), а для установки со вторым сервером браузер получил порт 23698. Клиентский ПК делает запросы к , находящимся в одной сети с клиентом: у первого сервера IP-адрес: 192.168.2.8, а у второго: 192.168.2.12, при этом порт как в первом, так и во втором случае одинаковый – 80, также хочу обратить внимание на то, что клиентский ПК сообщает серверам разные порты, на которые нужно слать ответы. Таким образом, если клиентский компьютер хочет сделать запрос к первому серверу, то он использует примерно следующую конструкцию для запроса: 192.168.2.8:80, это означает, что запрос был послан машине с IP-адресом 192.168.2.8 на 80 порт, сервер же пошлет ответ, используя вот такую конструкцию 192.168.2.3:23678. Если же запрос идет на 192.168.2.12:80, то ответ будет передан на 192.168.2.3:23698.

Таким образом происходит разделение трафика и компьютер не путается. Вообще, это описание предельно упрощено, более подробно мы будем говорить о протоколах транспортного уровня в отдельной части, так как эта тема довольно большая и требует отдельного разговора, кстати сказать, в курсах Cisco ICND1 и ICND2 достаточно мало времени уделено транспортному уровню . Здесь же стоит добавить что комбинация IP-адрес + порт транспортного уровня обычно называется сокетом, при этом не имеет значения протокол транспортного уровня (TCP или UDP).

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

1.15.6 Четвертый уровень или уровень приложений

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

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

  • DHCP – протокол, позволяющий динамически выдавать клиентским машинам IP-адреса и другие данные для подключения к сети;
  • DNS – этот протокол придумали люди с дырявой памятью, которые не хотели запоминать IP-адреса, DNS позволяет преобразовывать IP-адреса в сайтов и наоборот, для практики можете разобраться с командой nslookup;
  • SNMP – протокол, который используется во всех системах управления и мониторинга компьютерных сетей;
  • SSH – протокол для безопасного удаленного управления, при использовании SSH данные шифруются;
  • Telnet – еще один протокол удаленного управления, этот протокол реализует простой текстовый сетевой интерфейс.

Вообще этот список можно продолжить, но пока этого нам достаточно. В рамках курса мы разберемся как подключаться к коммутаторам и маршрутизаторам при помощи протоколов Telnet и SSH, научимся управлять соединениями и его параметрами, также мы немного разберемся с протоколами DHCP и DNS, возможно, в дальнейшем знакомство будет продолжено, а вот протокол SNMP мы трогать не будем.

Также стоит отметить следующие протоколы, относящиеся к прикладному уровню модели стека протоколов TCP/IP: RDP для удаленного управления компьютером, SMPT, IMAP, POP3 это всё почтовые протоколы для реализации разного функционала, первый использует протокол TCP, а второй более простой использует UDP.

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

1.15.7 Сравнение моделей OSI 7 и TCP/IP, а также поиск компромисса

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

Давайте же теперь попробуем сравнить эталонную модель сетевого взаимодействия OSI 7 с моделью стека протоколов TCP/IP и посмотрим, чем практическая модель отличается от теоретической . Для начала обратите внимание на Рисунок 1.15.3.

Рисунок 1.15.3 Сравнение эталонных моделей передачи данных TCP/IP и OSI 7

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

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

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

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

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

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

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

Также модель OSI изначально не была рассчитана на то, что когда-нибудь появятся широковещательные сети. Передача данных в сетях, построенных на принципах модели OSI 7, велась от узла к узлу, с вероятностью 99% ваша домашняя сеть и сеть вашего поставщика услуг доступа в Интернет широковещательная. Поэтому разработчикам пришлось вносить коррективы, добавив новый подуровень в модель OSI. Городульки в модели OSI не закончились на канальном уровне, когда на основе модели OSI 7 начали реализовывать первые компьютерные сети, оказалось, что существующие протоколы не соответствуют спецификациям служб, поэтому в модель были добавлены дополнительные подуровни для устранения несоответствия. И в заключении: при разработке модели OSI 7 не был учтен момент интеграции и объединения нескольких небольших сетей в одну большую, предполагалось, что в каждой стране будет одна большая единая сеть, находящаяся под управлением государства.

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

Еще одно важное отличие моделей TCP/IP и OSI 7 кроется на сетевом и транспортном уровнях. Модель TCP/IP на сетевом уровне реализуется связь без установления соединения при помощи протокола IP, а на транспортном уровне предлагает два протокола: UPD и TCP. А вот модель OSI 7 предлагает инженерам выбор на сетевом уровне: можно выбрать связь с установлением соединения или без него, а на транспортном уровне есть один протокол, который поддерживает связь только с установлением соединения.

Можно выделить четыре основных пункта, из-за которых критикуют эталонную модель сетевого взаимодействия:

  1. Несвоевременность.
  2. Неудачная технология.
  3. Неудачная реализация.
  4. Неудачная политика распространения.

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

Канальный уровень модели TCP/IP на самом деле никакой не уровень и всё, что было описано выше про канальный уровень модели TCP/IP в большей степени подходит для физического и уровня передачи данных модели OSI 7, а не для первого уровня модели TCP/IP. На самом деле канальный уровень модели TCP/IP – это даже не уровень, а интерфейс, позволяющий взаимодействовать сетевому уровню с физической средой передачи данных из этого следует и то, что здесь нет различия между физическим уровнем и канальной логикой, хотя это абсолютно разные вещи.

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

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

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

1.15.8 Выводы

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

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

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

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

Транспортный уровень выполняет следующие задачи:

  • Адресация точки сервиса . Компьютеры часто выполняют несколько программ в одно и то же время. По этой причине доставка "источник - пункт назначения" означает доставку не только от одного компьютера до следующего, но также и от заданного процесса (функционирующей программы) на одном компьютере к заданному процессу (функционирующей программе) на другом. Поэтому заголовок транспортного уровня должен включать тип адреса, называемый адрес сервисной точки (или адрес порта). Сетевой уровень доставляет каждый пакет на корректный адрес компьютера; транспортный уровень доставляет полное сообщение к корректному процессу на этом компьютере.
  • Сегментация и повторная сборка . Сообщение разделено на транспортируемые сегменты, каждый сегмент содержит порядковый номер. Эти номера дают возможность транспортному уровню после достижения пункта назначения правильно повторно собрать сообщение и заменять пакеты, которые были потеряны в передаче.
  • Управление подключением . Транспортный уровень может быть ориентирован на работу без установления соединения ( connectionless transfer) или ориентирован на подключение ( connection-oriented transfer) - дейтаграммный режим. Транспортный уровень без установления соединения (по предварительно установленному виртуальному соединению) обрабатывает каждый сегмент как независимый пакет и поставляет его транспортному уровню в машине пункта назначения. Ориентированный на подключение транспортный уровень сначала перед поставкой пакетов устанавливает соединение с транспортным уровнем в компьютере пункта назначения. После того как все данные переданы, подключение заканчивается.

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

  • Управление потоком . Подобно уровню звена передачи данных, транспортный уровень несет ответственность за управление потоком. Однако управление потоком на этом уровне выполняется от "конца концу".
  • Контроль ошибок . Подобно уровню звена передачи данных, транспортный уровень несет ответственность за контроль ошибок. Транспортный уровень передачи удостоверяется, что полное сообщение достигло транспортного уровня приема без ошибки (повреждения, потери или дублирования). Исправление ошибки обычно происходит с помощью повторной передачи.

Уровень сеанса (Session Layer SL) - сетевой контроллер диалога. Он устанавливает, поддерживает и синхронизирует взаимодействие между связывающимися системами.

При помощи сеансового уровня ( Session Layer ) организуется диалог между сторонами, фиксируется, какая из сторон является инициатором, какая из сторон активна и каким образом завершается диалог.

Задачи сеансового уровня следующие:

  • Управление диалогом . Сеансовый уровень дает возможность двум системам вступать в диалог. Он позволяет обмен сообщениями между двумя процессами. При этом возможны режимы: либо полудуплексный (один путь одновременно), либо дуплексный (два пути одновременно). Например, диалог между терминалом и универсальной ЭВМ может быть полудуплексным.
  • Синхронизация . Сеансовый уровень позволяет процессу добавлять контрольные точки (точки синхронизации) в поток данных. Например, если система посылает файл из 2 000 страниц, желательно вставить контрольные точки после каждых 100 страниц, чтобы гарантировать, что каждый модуль со 100 страницами получен и опознается независимо. В этом случае, если случается нарушение в течение передачи страницы 523, единственная страница, которую требуется и которая будет снова послана после системного восстановления - страница 501 (первая страница пятой сотни)

Уровень представления (Presentation Layer) занимается формой предоставления информации нижележащим уровням, например, перекодировкой или шифрованием информации.

Задачи уровня представления следующие:

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

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

Примеры услуг, оказываемых прикладным уровнем:

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

Стек протоколов Интернета

Стек протоколов сети Интернет2 был разработан до модели OSI . Поэтому уровни в стеке протоколов Интернета не соответствуют аналогичным уровням в модели OSI . Стек протоколов Интернета состоит из пяти уровней: физического, звена передачи данных, сети, транспортного и прикладного. Первые четыре уровня обеспечивают физические стандарты, сетевой интерфейс , межсетевое взаимодействие и транспортные функции, которые соответствуют первым четырем уровням модели OSI . Три самых верхних уровня в модели OSI представлены в стеке протоколов Интернета единственным уровнем, называемым прикладным уровнем рис. 1.3.


Рис. 1.3.

ARP Address Resolution Protocol Протокол нахождения адреса
ATM Asynchronous Transfer Mode Режим асинхронной передачи
BGP Border Gateway Protocol Протокол пограничной маршрутизации
DNS Domain Name System Система доменных имен
Ethernet Ethernet Network Сеть Ethernet
FDDI Fiber Distributed Data Interface Волоконно-оптический распределенный интерфейс данных
HTTP Hyper Text Transfer Protocol Протокол передачи гипертекста
FTP File transfer Protocol Протокол передачи файлов
ICMP Internet Control Message Protocol Протокол управляющих сообщений
IGMP Internet Group Management Protocol Протокол управления группами (пользователей) в Интернете
IP Internet Protocol Межсетевой протокол
NFS Network File System Протокол сетевого доступа к файловым системам
OSPF Open Shortest Path First Открытый протокол предпочтения кратчайшего канала
PDH Plesiochronous Digital Hierarchy Плезиохронная цифровая иерархия
PPP Point-to- Point Protocol Протокол связи "точка-точка"

Протокол 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.



Рекомендуем почитать

Наверх