Нормативные документы rfc стек протоколов tcp ip.

Стек TCP / IP .

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

В операционной системе Microsoft Windows Server 2003 стек TCP/IP выбран в качестве основного, хотя поддерживаются и другие протоколы (например, стек IPX/SPX, протокол NetBIOS).

Стек протоколов TCP/IP обладает двумя важными свойствами:

    платформонезависимостью, т. е. возможна его реализация на самых разных операционных системах и процессорах;

    открытостью, т. е. стандарты, по которым строится стек TCP/IP, доступны любому желающему.

История создания TCP / IP .

В 1967 году Агентство по перспективным исследовательским проектам министерства обороны США (ARPA – Advanced Research Projects Agency) инициировало разработку компьютерной сети, которая должна была связать ряд университетов и научно-исследовательских центров, выполнявших заказы Агентства. Проект получил название ARPANET. К 1972 году сеть соединяла 30 узлов.

В рамках проекта ARPANET были разработаны и в 1980–1981 годах опубликованы основные протоколы стека TCP/IP – IP, TCP и UDP. Важным фактором распространения TCP/IP стала реализация этого стека в операционной системе UNIX 4.2 BSD (1983).

К концу 80-х годов значительно расширившаяся сеть ARPANET стала называться Интернет (Interconnected networks – связанные сети) и объединяла университеты и научные центры США, Канады и Европы.

В 1992 году появился новый сервис Интернет – WWW (World Wide Web – всемирная паутина), основанный на протоколе HTTP. Во многом благодаря WWW Интернет, а с ним и протоколы TCP/IP, получил в 90-е годы бурное развитие.

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

Модель OSI .

Модель взаимодействия открытых систем (OSI – Open Systems Interconnection) была разработана Международной организацией по стандартизации (ISO – International Organization for Standardization) для единообразного подхода к построению и объединению сетей. Разработка модели OSI началась в 1977 году и закончилась в 1984 году утверждением стандарта. С тех пор модель является эталонной для разработки, описания и сравнения различных стеков протоколов.

Рассмотрим кратко функции каждого уровня.


Модель OSI включает семь уровней: физический, канальный, сетевой, транспортный, сеансовый, представления и прикладной.

    Физический уровень (physical layer) описывает принципы передачи сигналов, скорость передачи, спецификации каналов связи. Уровень реализуется аппаратными средствами (сетевой адаптер, порт концентратора, сетевой кабель).

    Канальный уровень (data link layer) решает две основные задачи – проверяет доступность среды передачи (среда передачи чаще всего оказывается разделена между несколькими сетевыми узлами), а также обнаруживает и исправляет ошибки, возникающие в процессе передачи. Реализация уровня является программно-аппаратной (например, сетевой адаптер и его драйвер).

    Сетевой уровень (network layer) обеспечивает объединение сетей, работающих по разным протоколам канального и физического уровней, в составную сеть. При этом каждая из сетей, входящих в единую сеть, называется подсетью (subnet). На сетевом уровне приходится решать две основные задачи – маршрутизации (routing, выбор оптимального пути передачи сообщения) и адресации (addressing, каждый узел в составной сети должен иметь уникальное имя). Обычно функции сетевого уровня реализует специальное устройство – маршрутизатор (router) и его программное обеспечение.

    Транспортный уровень (transport layer) решает задачу надежной передачи сообщений в составной сети с помощью подтверждения доставки и повторной отправки пакетов. Этот уровень и все следующие реализуются программно.

    Сеансовый уровень (session layer) позволяет запоминать информацию о текущем состоянии сеанса связи и в случае разрыва соединения возобновлять сеанс с этого состояния.

    Уровень представления (presentation layer) обеспечивает преобразование передаваемой информации из одной кодировки в другую (например, из ASCII в EBCDIC).

    Прикладной уровень (application layer) реализует интерфейс между остальными уровнями модели и пользовательскими приложениями.

Структура TCP / IP . В основе структуры TCP/IP лежит не модель OSI, а собственная модель, называемая DARPA (Defense ARPA – новое название Агентства по перспективным исследовательским проектам) или DoD (Department of Defense – Министерство обороны США). В этой модели всего четыре уровня. Соответствие модели OSI модели DARPA, а также основным протоколам стека TCP/IP показано на рис. 2.2.

Следует заметить, что нижний уровень модели DARPA – уровень сетевых интерфейсов – строго говоря, не выполняет функции канального и физического уровней, а лишь обеспечивает связь (интерфейс) верхних уровней DARPA с технологиями сетей, входящих в составную сеть (например, Ethernet, FDDI, ATM).

Все протоколы, входящие в стек TCP/IP, стандартизованы в документах RFC.

Документы RFC .

Утвержденные официальные стандарты Интернета и TCP/IP публикуются в виде документов RFC (Request for Comments – рабочее предложение). Стандарты разрабатываются всем сообществом ISOC (Internet Society – Сообщество Интернет, международная общественная организация). Любой член ISOC может представить на рассмотрение документ для его публикации в RFC. Далее документ рассматривается техническими экспертами, группами разработчиков и редактором RFC и проходит в соответствии с RFC 2026 следующие этапы, называемые уровнями готовности (maturity levels):

    черновик (Internet Draft) – на этом этапе с документом знакомятся эксперты, вносятся дополнения и изменения;

    предложенный стандарт (Proposed Standard) – документу присваивается номер RFC, эксперты подтвердили жизнеспособность предлагаемых решений, документ считается перспективным, желательно, чтобы он был опробован на практике;

    черновой стандарт (Draft Standard) – документ становится черновым стандартом, если не менее двух независимых разработчиков реализовали и успешно применили предлагаемые спецификации. На этом этапе ещё допускаются незначительные исправления и усовершенствования;

    стандарт Интернета (Internet Standard) – наивысший этап утверждения стандарта, спецификации документа получили широкое распространение и хорошо зарекомендовали себя на практике. Список стандартов Интернета приведен в RFC 3700. Из тысяч RFC только несколько десятков являются документами в статусе «стандарт Интернета».

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

    экспериментальный (Experimental) – документ, содержащий сведения о научных исследованиях и разработках, которые могут заинтересовать членов ISOC;

    информационный (Informational) – документ, опубликованный для предоставления информации и не требующий одобрения сообщества ISOC;

    лучший современный опыт (Best Current Practice) – документ, предназначенный для передачи опыта конкретных разработок, например реализаций протоколов.

Статус указывается в заголовке документа RFC после слова Category (Категория). Для документов в статусе стандартов (Proposed Standard, Draft Standard, Internet Standard) указывается название Standards Track , так как уровень готовности может меняться.

Номера RFC присваиваются последовательно и никогда не выдаются повторно. Первоначальный вариант RFC никогда не обновляется. Обновленная версия публикуется под новым номером. Устаревший и замененный документ RFC получает статус исторический (Historic).

Все существующие на сегодня документы RFC можно посмотреть, например, на сайте www.rfc-editor.org . В августе 2007 года их насчитывалось более 5000. Документы RFC, упоминаемые в этом курсе, приведены в Приложении I.

Обзор основных протоколов.

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

Протоколы RIP (Routing Information Protocol протокол маршрутной информации) и OSPF (Open Shortest Path First – « первыми открываются кратчайшие маршруты») – протоколы маршрутизации в IP-сетях.

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

Протокол ARP (Address Resolution Protocol – протокол преобразования адресов) преобразует IP-адреса в аппаратные адреса локальных сетей. Обратное преобразование осуществляется с помощью протокола RAPR (Reverse ARP).

TCP (Transmission Control Protocol – протокол управления передачей) обеспечивает надежную передачу сообщений между удаленными узлами сети за счет образования логических соединений. TCP позволяет без ошибок доставить сформированный на одном из компьютеров поток байт на любой другой компьютер, входящий в составную сеть. TCP делит поток байт на части – сегменты и передает их сетевому уровню. После того как эти сегменты будут доставлены в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.

UDP (User Datagram Protocol – протокол дейтаграмм пользователя) обеспечивает передачу данных дейтаграммным способом.

HTTP (HyperText Transfer Protocol – протокол передачи гипертекста) – протокол доставки web-документов, основной протокол службы WWW.

FTP (File Transfer Protocol – протокол передачи файлов) – протокол для пересылки информации, хранящейся в файлах.

POP 3 (Post Office Protocol version 3 – протокол почтового офиса) и SMTP (Simple Mail Transfer Protocol – простой протокол пересылки почты) – протоколы для доставки входящей электронной почты (POP3) и отправки исходящей (SMTP).

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

SNMP (Simple Network Management Protocol – простой протокол управления сетью) предназначен для диагностики работоспособности различных устройств сети.

Стек протоколов 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 и ждать ответ на этот запрос через телефонное подключение. Как следствие, сокращается время, необходимое для подключения к требуемому ресурсу.

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

NUMBEREDHEADINGS__

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

IP-сеть

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Транспортный уровень (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. Для лучшего понимания описаны основные протоколы и службы. Главное - не торопиться и стараться понимать каждую вещь поэтапно. Все они взаимосвязаны и без понимания одной, трудно будет понять другую. Здесь скомпонована весьма поверхностная информация, так что эту статью смело можно назвать «стеком протоколов TCP/IP для чайников». Однако, многие вещи здесь не так трудны для понимания, как может показаться на первый взгляд.

TCP/IP

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

Стек протоколов сети TCP/IP имеет 4 уровня:

  1. Канальный (Link).
  2. Сетевой (Internet).
  3. Транспортный (Transport).
  4. Прикладной (Application).

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

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

  • HTTP;
  • SMTP;

Каждый протокол определяет собственный порядок и принципы работы с данными.

HTTP (HyperText Transfer Protocol) предназначен для передачи данных. По нему отправляются, например, документы в формате HTML, которые служат основой веб-страницы. Упрощенно схема работы представляется как «клиент - сервер». Клиент отправляет запрос, сервер его принимает, должным образом обрабатывает и возвращает конечный результат.

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

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

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

Заголовок (Header)

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

Например, заголовок, вложенный на транспортном уровне, на другой стороне может быть обработан только транспортным уровнем. Другие просто его проигнорируют.

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

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

Протоколы передачи данных:

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

UDP (User Datagram Protocol) - второй по популярности протокол. Он также отвечает за передачу данных. Отличительное свойство кроется в его простоте. Пакеты просто отправляются, не создавая особенной связи.

TCP или UDP?

У каждого из этих протоколов есть своя область применения. Она логически обусловлена особенностями работы.

Основное преимущество UDP заключается в скорости передачи. TCP является сложным протоколом с множеством проверок, в то время как UDP представляется более упрощенным, а значит, и более быстрым.

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

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

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

Сетевой уровень

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

IP-адрес (Internet Protocol address) - логический адрес устройства. Содержит информацию о местоположении устройства в сети. Пример записи: .

MAC-адрес (Media Access Control address) - физический адрес устройства. Используется для идентификации. Присваивается сетевому оборудованию на этапе изготовления. Представлен как шестибайтный номер. Например: .

Сетевой уровень отвечает за:

  • Определение маршрутов доставки.
  • Передачу пакетов между сетями.
  • Присвоение уникальных адресов.

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

Самый популярный протокол этого уровня - IP.

IP (Internet Protocol) - интернет-протокол, предназначенный для адресации в сети. Используется для построения маршрутов, по которым происходит обмен пакетами. Не обладает никакими средствами проверки и подтверждения целостности. Для обеспечения гарантий доставки используется TCP, который использует IP в качестве транспортного протокола. Понимание принципов этой транзакции во многом объясняет основу того, как работает стек протоколов TCP/IP.

Виды IP-адресов

В сетях используются два вида IP-адресов:

  1. Публичные.
  2. Приватные.

Публичные (Public) используются в Интернете. Главное правило - абсолютная уникальность. Пример их использования - маршрутизаторы, каждый из которых имеет свой IP-адрес для взаимодействия с сетью Интернет. Такой адрес называется публичным.

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

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

IPv4

Самая распространенная версия интернет-протокола. Предшествует IPv6. Формат записи - четыре восьмибитных числа, разделенные точками. Через знак дроби указывается маска подсети. Длина адреса - 32 бита. В подавляющем большинстве случаев, когда речь идет об IP-адресе, имеется в виду именно IPv4.

Формат записи: .

IPv6

Эта версия предназначается для решения проблем предыдущей версией. Длина адреса - 128 бит.

Основная проблема, которую решает IPv6 - это исчерпание адресов IPv4. Предпосылки начали проявляться уже в начале 80-х годов. Несмотря на то, что эта проблема вступила в острую стадию уже в 2007-2009 годах, внедрение IPv6 очень медленно «набирает обороты».

Главное преимущество IPv6 - более быстрое интернет-соединение. Это происходит из-за того, что для этой версии протокола не требуется трансляции адресов. Выполняется простая маршрутизация. Это является менее затратным и, следовательно, доступ к интернет-ресурсам предоставляется быстрее, чем в IPv4.

Пример записи: .

Существует три типа IPv6-адресов:

  1. Unicast.
  2. Anycast.
  3. Multicast.

Unicast - тип одноадресных IPv6. При отправке пакет достигает только интерфейса, расположенного на соответствующем адресе.

Anycast относится к групповым IPv6-адресам. Отправленный пакет попадет в ближайший сетевой интерфейс. Используется только маршрутизаторами.

Multicast являются многоадресными. Это значит, что отправленный пакет достигнет всех интерфейсов, находящихся группе мультивещания. В отличие от broadcast, который является «вещанием для всех», multicast вещает лишь определенной группе.

Маска подсети

Маска подсети выявляет из IP-адреса подсеть и номер хоста.

Например, IP-адрес имеет маску . В таком случае формат записи будет выглядеть так . Число «24» - это количество бит в маске. Восемь бит равняется одному октету, который также может называться байтом.

Если подробнее, то маску подсети можно представить в двоичной системе счисления таким образом: . В ней имеется четыре октета, и запись состоит из «1» и «0». Если сложить количество единиц, то получим в сумме «24». К счастью, считать по единице не обязательно, ведь в одном октете - 8 значений. Видим, что три из них заполнены единицами, складываем и получаем «24».

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

Рассмотрим небольшой пример. Есть IP-адрес и маска подсети . Считаем и записываем: . Теперь сопоставляем маску с IP-адресом. Те октеты маски, в которых все значения равны единице (255) оставляют соответствующие им октеты в IP-адресе без изменения. Если же в значении нули (0), то октеты в IP-адресе также становятся нулями. Таким образом, в значении адреса подсети получаем .

Подсеть и хост

Подсеть отвечает за логическое разделение. По сути, это устройства, использующие одну локальную сеть. Определяется диапазоном IP-адресов.

Хост - это адрес сетевого интерфейса (сетевой карты). Определяется из IP-адреса с помощью маски. Например: . Так как первые три октета - подсеть, то остается . Это и есть номер хоста.

Диапазон адресов хоста - от 0 до 255. Хост под номером «0» является, собственно, адресом самой подсети. А хост под номером «255» является широковещательным.

Адресация

Для адресации в стеке протоколов TCP/IP используются три типа адресов:

  1. Локальные.
  2. Сетевые.
  3. Доменные имена.

Локальными называются MAC-адреса. Они используются для адресации в таких технологиях локальной сети как, например, Ethernet. В контексте TCP/IP слово «локальные» означает, что они действуют лишь в пределах подсети.

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

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

Домен первого уровня представляет конкретную информацию. Общие (.org, .net) не ограничены какими-либо строгими границами. Обратная ситуация - с локальными (.us, .ru). Они, как правило, привязаны территориально.

Домены низших уровней - это все остальное. Он может быть любого размера и содержать любое количество значений.

Например, "www.test.quiz.sg" - корректное доменное имя, где «sg» - локальный домен первого (верхнего) уровня, «quiz.sg» - домен второго уровня, «test.quiz.sg» - домен третьего уровня. Доменные имена также могут называться DNS-именами.

DNS (Domain Name System) устанавливает соответствие между доменными именами и публичным IP-адресом. При наборе доменного имени в строке браузера DNS обнаружит соответствующий IP-адрес и сообщит устройству. Устройство обработает этот и вернет его в виде веб-страницы.

Канальный уровень

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

Самые распространенные протоколы:

  1. Ethernet.
  2. WLAN.

Ethernet - наиболее распространенная технология проводных локальных сетей.

WLAN - локальная сеть на основе беспроводных технологий. Взаимодействие устройств происходит без физических кабельных соединений. Пример самого распространенного метода - Wi-Fi.

Настройка TCP/IP для использования статического IPv4-адреса

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

Для настройки стека протоколов TCP/IP на использование постоянного IPv4-адреса необходимо ввести в консоль команду ipconfig/all и найти следующие данные.

Настройка TCP/IP для использования динамического IPv4-адреса

Динамический IPv4-адрес используется какое-то время, сдается в аренду, после чего меняется. Присваивается устройству автоматически при подключении к сети.

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

Способы передачи данных

Данные передаются через физическую среду тремя способами:

  • Simplex.
  • Half-duplex.
  • Full Duplex.

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

Примеры симплексной связи:

  • Телевещание.
  • Сигнал от спутников GPS.

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

Пример полудуплексной связи - общение по рации на одной частоте.

Full Duplex - полноценная двусторонняя связь. Устройства могут одновременно транслировать сигнал и производить прием. Они не конфликтуют за среду передачи. Этот режим применяется при использовании технологии Fast Ethernet и соединении с помощью витой пары.

Пример - общение по телефону через мобильную сеть.

TCP/IP vs OSI

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

  1. Физический (Physical).
  2. Канальный (Data Link).
  3. Сетевой (Network).
  4. Транспортный (Transport).
  5. Сеансовый (Session).
  6. Представительский (Presentation).
  7. Прикладной (Application).

В данный момент не стоит сильно углубляться в эту модель, но необходимо хотя бы поверхностное понимание.

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

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

Сетевой уровень также не изменен. Выполняет ровно те же задачи.

Канальный уровень в TCP/IP соответствует двум последним уровням OSI. Канальный уровень устанавливает протоколы передачи данных через физическую среду.

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