Что такое стек протоколов.

В этой статье будут рассказаны основы модели 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 было решено объединить эти два уровня в один, так как они оба работают с физической средой.

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 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.

Привет, посетитель сайта сайт! Продолжаем изучать , напомню, что эти записи основаны на программе и помогут вам подготовиться к экзаменам 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.