18. Трансляция сетевых адресов. Технология nat
NAT реализует механизм взаимодействия внутренней и внешней сети на основе динамической подмены IPv4 частных адресов на публичные.
Причины использования NAT
дефицит публичных IPv4 адресов
безопасность внутренней сети
Традиционная технология NAT организует сеансы связи исходящие из локальной сети.
Идея NAT технологии
На марщрутизаторе связывающем внутреннюю и внешнюю сети устанавливается программный модуль поддержки NAT.
Такое NAT устройство динамически отображает набор частных адресов на набор публичных IPv4 адресов.
Виды технологии NAT
1)Базовая трансляция сетевых адресов
BasicNAT применяется когда количество локальных узлов=публичному количеству адресов IPv4.

Протокольные стеки ipx/spx, NetBios/smb, sna
Стек SNA
SNA (Systems Network Architecture) является патентованной архитектурой компании IBM, созданной в 1974 году в соответствии с иерархической моделью построения сетей, которой в то время придерживалась IBM. В эту иерархию включились мэйнфреймы (хост), коммуникационные контроллеры, кластерные (групповые) контроллеры и терминалы [4.8].
Уровневая архитектура и основные протоколы стека SNA в сопоставлении с архитектурой ISO/OSI представлены на рис. 4.9, 4.10. Как видно, модель SNA напоминает модель ISO/OSI. Но функции в ней сгруппированы по-другому.
Верхний уровень службы транзакций (Transaction Services) обеспечивает средства приложений для распределенной обработки и управления сетью. К прикладным протоколам относятся:
DIA (Document Interchange Architecture) — определяет стандарты обмена документами между разнородными вычислительными системами; координирует передачу файлов, поиск документов и их хранение;
SNADS (SNA Distributed Service) — управляет распространением документов и сообщений (инфраструктура для распространения электронной почты);
DDM (Distributed Data Management) — обеспечивает прозрачный удаленный доступ к файлам за счет механизма перенаправления запросов.
Уровень службы представления данных (Presentation Services) выполняет часть функций шестого уровня модели ISO/OSI (трансляция данных) и частично седьмого по административному управлению совместного использования ресурсов и синхронизации операций.
Уровень управления потоком данных (Data Flow Control) по своим функциям в основном соответствует сеансовому уровню модели ISO/OSI. Он управляет диалогами, обработкой запросов и ответов, групповых сообщений и прерыванием потока данных по запросу.
Уровень управления передачей (Transmission Control) выполняет функции транспортного уровня ISO/OSI по управлению передачей данных в пределах установленных сессий и некоторые функции (шифрование/дешифрование и др.) шестого уровня.
Уровень управления маршрутом (Path Control) определяет функции, в основном входящие в сетевой уровень модели ISO/OSI, а также включает в себя управление потоками данных (в модели ISO/OSI это функция канального уровня).
Уровень звена данных (Data Link) почти аналогичен второму уровню эталонной модели и совместим с ним по используемому протоколу, так как протоколы 802.2 и SDLC входят в семейство оригинального протокола HDLC.
На этих уровнях располагаются протоколы:
APPC (Advanced Program-to-Program Communication) — выполняет функции сеансового и транспортного уровней ISO/OSI; на сеансовом уровне обеспечивает администрирование сеанса и трансляцию синтаксиса файлов, а на транспортном — организацию последовательностей сегментов и сквозное управление потоком данных.
CICS (Customer Information Control System) — инструментальное средство для построения приложений обработки транзакций, организует доступ к распределенной файловой системе, защиту информации, многозадачность и пр.
IMS (Information Management System) — еще одна среда обработки транзакций, подобная CICS, позволяющая нескольким приложениям совместно использовать базы данных и планировать приоритеты транзакций.
TSO (Time Sharing Operation) — обеспечивает интерактивный пользовательский терминальный интерфейс, реализуя одновременную поддержку множества независимых параллельных пользовательских сеансов; каждый пользователь TSO при помощи специальных команд получает возможность выполнять операции над наборами данных, запускать задания и контролировать ход их выполнения, использовать устройства, связываться с другими пользователями и т.п.
Среди них коммуникационные:
APPN (Advanced Peer-to-Peer Networking) — работает на сетевом и транспортном уровнях и обеспечивает одноранговое сетевое взаимодействие между несколькими физическими устройствами (миникомпьютерами, кластерными контроллерами, шлюзами, рабочими станциями и пр.); предусматривает управление окном передач и службу каталогов.
VTAM (Virtual Telecommunication Access Method) — обеспечивает управление, обмен данными и управление потоками данных в сетях SNA; на сеансовом уровне VTAM управляет диалогом и реализует управление сеансом, а на транспортном уровне обеспечивает сквозное управление потоками данных.
NCP (Network Control Program) — протокол управления ресурсами, подключенными к коммуникационным контроллерам; частично выполняет функции сетевого уровня (маршрутизация, шлюзование) и частично — канального уровня (управление доступом к каналу, физическая и логическая адресация, управление потоком данных).
Первый уровень — физический (Physical) подобно модели ISO/OSI определяет характеристики сопряжения со средой передачи данных. Решения этого уровня основаны преимущественно на тех же стандартах и рекомендациях, что и модель ISO/OSI.

Рис. 4.9. Уровневые компоненты сетевых архитектур, отображенные на модели ISO/OSI

Рис. 4.10. Три стека протоколов, отображенные на модели ISO/OSI
Стек IPX/SPX
Этот стек является оригинальным стеком протоколов фирмы Novell, разработанным для сетевой операционной системы NetWare еще в начале 80-х годов. Протоколы сетевого и сеансового уровней Internetwork Packet Exchange (IPX и Sequenced Packet Exchange, SPX), которые дали название стеку, являются прямой адаптацией протоколов XNS фирмы Xerox, распространенных в гораздо меньшей степени, чем стек IPX/SPX.
Популярность стека IPX/SPX непосредственно связана с операционной системой Novell NetWare, которая долгое время сохраняла мировое лидерство по числу установленных систем, хотя в последнее время ее популярность намного снизилась, и по темпам роста она заметно отстает от Microsoft Windows NT.
Многие особенности стека IPX/SPX обусловлены ориентацией ранних версий ОС NetWare (до версии 4.0) на работу в локальных сетях небольших размеров, состоящих из персональных компьютеров со скромными ресурсами. Понятно, что для таких компьютеров компании Novell нужны были протоколы, на реализацию которых требовалось бы минимальное количество оперативной памяти (ограниченной в IBM-совместимых компьютерах под управлением MS-DOS объемом 640 Кбайт) и которые быстро работали бы на процессорах небольшой вычислительной мощности. В результате протоколы стека IPX/SPX до недавнего времени хорошо работали в локальных сетях и не очень — в больших корпоративных сетях, так как они слишком перегружали медленные глобальные связи широковещательными пакетами, которые интенсивно используются несколькими протоколами этого стека (например, для установления связи между клиентами и серверами). Это обстоятельство, а также тот факт, что стек IPX/SPX является собственностью фирмы Novell, и на его реализацию нужно получать лицензию (то есть открытые спецификации не поддерживались), долгое время ограничивали его поле деятельности только сетями NetWare. Однако с момента выпуска версии NetWare 4.0 специалисты Novell внесли и продолжают вносить в протоколы серьезные изменения, направленные на их адаптацию для работы в корпоративных сетях. Сейчас стек IPX/SPX реализован не только в NetWare, но и в нескольких других популярных сетевых ОС, например SCO UNIX, Sun Solaris, Microsoft Windows NT.
Стек NetBIOS/SMB
Этот стек широко применяется в продуктах компаний IBM и Microsoft. На его физическом и канальном уровнях используются все наиболее распространенные протоколы Ethernet, Token Ring, FDDI и другие. На верхних уровнях работают протоколы NetBEUI и SMB.
Протокол NetBIOS (Network Basic Input/Output System) появился в 1984 году как сетевое расширение стандартных функций базовой системы ввода/вывода (BIOS) IBM PC для сетевой программы PC Network компании IBM. В дальнейшем этот протокол был заменен так называемым протоколом расширенного пользовательского интерфейса NetBEUI — NetBIOS Extended User Interface. Для обеспечения совместимости приложений в качестве интерфейса к протоколу NetBEUI был сохранен интерфейс NetBIOS. Протокол NetBEUI разрабатывался как эффективный протокол, потребляющий немного ресурсов и предназначенный для сетей, насчитывающих не более 200 рабочих станций.
Протокол NetBEUI выполняет много полезных сетевых функций, которые можно отнести к сетевому, транспортному и сеансовому уровням модели OSI, однако он не обеспечивает возможность маршрутизации пакетов. Это ограничивает применение протокола NetBEUI локальными сетями, не разделенными на подсети, и делает невозможным его использование в составных сетях.
Некоторые ограничения NetBEUI снимаются в реализации этого протокола NBF (NetBEUI Frame), которая включена в операционную систему Microsoft Windows NT.
Протокол SMB (Server Message Block) выполняет функции сеансового, представительного и прикладного уровней. На основе SMB реализуется файловая служба, а также службы печати и передачи сообщений между приложениями.
Стеки протоколов SNA компании IBM, DECnet корпорации Digital Equipment и AppleTalk/AFP компании Apple применяются в основном в операционных системах и сетевом оборудовании этих фирм.
На рис. 9.3 показано соответствие некоторых наиболее популярных протоколов уровням модели OSI. Часто это соответствие весьма условно, так как модель OSI — это только руководство к действию, причем достаточно общее, а конкретные протоколы разрабатывались для решения специфических задач, причем многие из них появились до разработки модели OSI. В большинстве случаев разработчики стеков отдавали предпочтение скорости работы сети в ущерб модульности: ни один стек, кроме стека OSI, не разбит на семь уровней. Чаще всего в стеке явно выделяются 3–4 уровня: уровень сетевых адаптеров, в котором реализуются протоколы физического и канального уровней, сетевой уровень, транспортный уровень и уровень служб, объединяющий функции сеансового, представительного и прикладного уровней.
Уровни модели OSI
Многоуровневая модель OSI очень важна для понимания того, как машины взаимодействуют друг с другом. В этой статье мы рассмотрим основы модели OSI и опишем уровни взаимосвязи различных систем между собой.
Уровни помогают сетевому специалисту визуализировать, что происходит в сетях, а также помогают определить источник проблемы в сети – на программном или аппаратном уровне.
Модель OSI также помогает разработчику приложения определить, с какими уровнями ему нужно работать. Поставщики технологий часто основываются на модели OSI, чтобы помочь клиентам понять, с каким уровнем работают их продукты.
Что такое модель OSI?
OSI (Open Systems Interconnection) — концептуальная модель взаимодействия открытых систем, которая объединяет все коммуникационные функции вычислительных или телекоммуникационных систем. OSI демонстрирует, как компьютеры или другие типы систем коммуницируют друг с другом.
Поскольку каждая система имеет свои технологические особенности и работает с разными телекоммуникационными протоколами, поставить ее в один ряд с системой с теми же характеристиками может оказаться очень сложно. Именно для этого нам и нужна модель OSI — для создания универсального стандарта связи между устройствами. Например, OSI позволяет нам отправить электронное письмо с мобильного устройства на настольный ПК и наоборот.
Модель OSI состоит из 7 взаимозависимых слоев (уровней), каждый из которых описывает путь данных от одной машины к другой. Каждый уровень выполняет определенные функции, которые решают проблемы передачи данных, такие как физическая адресация, контроль доступа, маршрутизация, повторная сборка данных и многое другое. Мы познакомимся с ними в статье. Модель OSI состоит из следующих уровней:
- Уровень 1: Физический (Physical).
- Уровень 2: Канальный (Data link).
- Уровень 3: Сетевой (Network).
- Уровень 4: Транспортный (Transport).
- Уровень 5: Сеансовый (Session).
- Уровень 6: Уровень представления (Presentation).
- Уровень 7: Прикладной (Application).
Физический, канальный и сетевой уровни считаются уровнями среды, поскольку они ориентированы на аппаратное обеспечение (т. е. каждая функция обрабатывается аппаратными средствами). Транспортный, сеансовый, уровень представления и прикладной считаются уровнями хоста, поскольку они ориентированы на программное обеспечение.
Описание уровней OSI
1. Физический уровень (уровень 1)
Первый уровень OSI описывает физическую среду, необходимую для передачи необработанных двоичных данных между узлами (т. е. машинами). Физический уровень, помимо прочих, включает следующие компоненты:
- характеристика кабеля (например, тонкий коаксиальный кабель, витая пара категорий 3, 4, 5, оптоволокно);
- повторитель;
- сетевой адаптер;
- адаптер главной шины;
- контроллер сетевого интерфейса (сетевая плата);
- беспроводные технологии
Протоколы уровня 1 — RS-232, PON, DSL, Bluetooth, USB, Ethernet, ИК-порт и т. д.
Функции физического уровня
Битовая синхронизация.
При межузловой связи битовые потоки «текут» между отправителем и получателем, и наоборот. Чтобы обеспечить идеальную синхронизацию сигнала (т. е. знать, где сигнал начинается и заканчивается), мы используем часы. Это называется фазовая автоподстройка частоты (ФАПЧ, PLL).
Управление битрейтом.
Чтобы во время передачи от узла к узлу не возник маленький поток, нужен механизм управления скоростью. Функция управления битрейтом служит именно для этой цели: она определяет, сколько битов отправляется или принимается каждую секунду.
Физические топологии.
Физический уровень также дает представление о том, как различные узлы и устройства организованы в сети. Существует 4 типа сетевых топологий:
- физическая (описывает физическую схему сети);
- логическая (описывает то, как эта сеть спроектирована, т.е. сетевую архитектуру);
- информационная (описывает направление потоков информации, передаваемых по сети);
- управление обменом (принцип передачи права на пользование сетью).
Режим передачи.
Первый уровень также обрабатывает способ передачи данных между узлами. На физическом уровне определены 3 режима передачи данных:
- симплекс (связь является односторонней, т. е. получатель не может ответить на сообщение отправителя);
- полудуплекс (действие двустороннее, но по одному, например, отправитель и получатель последовательно меняются местами и отправляют сообщения по очереди);
- полный дуплекс (отправитель и получатель могут получать и отправлять ответы одновременно).
2. Канальный уровень (уровень 2)
Канальный уровень (Data Link Layer, DLL) помогает понять, как отправлять данные с одного узла на другой через физический уровень (уровень 1). Например, первый уровень работает с битами и символами, а второй уровень обрабатывает кадры (контейнеры для сетевых пакетов).
Поскольку канальный уровень построен поверх физического уровня, он должен гарантировать, что данные, отправленные с одного узла, действительно достигают другого узла без ошибок. Поскольку второй уровень обрабатывает все: от передачи до контроля ошибок, ему нужны дополнительные усилия в виде двух подуровней: LLC (управление логическим каналом) и MAC (управление доступом к среде). Давайте подробнее рассмотрим каждый из них.
Подуровни канального уровня
-
Управление логическими связями (Logical Link Control, LLC)
Задача самого верхнего подуровня DLL – обеспечение соединения между DLL и вторым подуровнем (MAC). LLC также играет ключевую роль в мультиплексировании (объединении нескольких аналоговых или цифровых сигналов в один сигнал, который проходит через общую среду), обеспечивает управление потоком, идентифицирует протоколы сетевого уровня и инкапсулирует их.
Второй подуровень DLL отвечает за управление аппаратным аспектом взаимодействия между устройствами. MAC также предоставляет сетевым платам уникальные теги – MAC-адреса, которые важны для доставки данных на правильный компьютер, подключенный внутри сети. MAC позволяет взаимодействовать компьютерам, расположенным только в одной сети.
Протоколы уровня 2 — ATM, ARP, MAC, SLIP, L2TP, PLIP и т.д.
Функции канального уровня
Кадрирование.
Кадрирование означает создание контейнера для данных, передаваемых между двумя устройствами. Кадр состоит из четырех элементов:
- заголовок (содержит адреса отправителя и получателя);
- поле полезной нагрузки (тело сообщения);
- трейлер (содержит биты, используемые для обнаружения и корректировки ошибок);
- флаг (используется для обозначения начала и конца кадра).
Физическая адресация.
Кадры можно сравнить с конвертом. Чтобы письмо дошло до адресата, нам нужно указать правильный адрес на конверте. В сети канальный уровень заключает MAC-адрес отправителя/получателя в заголовок кадра, чтобы информация дошла до конкретного получателя.
Контроль ошибок.
Канальный уровень предоставляет средства для выявления и исправления ошибок, которые могут возникнуть во время передачи. Если он обнаружит потерянные или поврежденные кадры, он автоматически ретранслирует их.
Управление потоком.
Если будет отправлено слишком много данных, само сообщение может быть повреждено. Управление потоком необходимо для оптимизации передачи данных между узлами.
Контроль доступа.
Когда несколько устройств пытаются обменяться данными по одному и тому же каналу, второй подуровень (MAC) выберет, какое устройство может контролировать канал связи в данный момент.
3. Сетевой уровень (уровень 3)
Этот уровень позволяет устройствам, расположенным в разных сетях, взаимодействовать друг с другом. Сетевой уровень использует IP-адреса и маршрутизацию пакетов для обеспечения того, чтобы правильное сообщение достигло нужной стороны.
Протоколы уровня 3 — Ipv4, IPv6, ICMP, IPX, PLP, AppleTalk и т.д.
Функции сетевого уровня
Маршрутизация
Кратчайшее расстояние между двумя точками — это прямая линия, но в сетях это работает иначе, потому что иногда кратчайший маршрут может оказаться нежизнеспособным. Чтобы решить эту проблему, сетевой уровень использует протоколы для построения наилучшего возможного маршрута.
Логическая адресация
IP относится к сетевому уровню так же, как MAC относится к канальному уровню. IP позволяет системе идентифицировать каждый хост, подключенный к объединенной сети, и разработать схему адресации. Подобно физической адресации на втором уровне, при логической адресации IP-адреса отправителя и получателя будут помещены в заголовок.
4. Транспортный уровень (уровень 4)
Транспортный уровень обрабатывает все, что связано с транспортировкой пакетов. Это включает в себя сквозную доставку, подтверждение успешной передачи данных и контроль потока и ошибок. Задача четвертого уровня заключается в повторной передаче данных в случае обнаружения ошибки. Поскольку это программно-ориентированный слой, помимо обычных функций, в нем есть еще и службы.
Протоколы уровня 4 — TCP, UDP, SCTP, DCCP, SPX.
Функции транспортного уровня
Сегментация и повторная сборка
В большинстве случаев сообщение, передаваемое между отправителем и получателем, может быть слишком большим, чтобы быть переданным за один сеанс. Транспортный уровень использует функцию сегментации, чтобы разбить сообщение, переданное с сеансового уровня (уровень 5). Разбитое сообщение затем отправляется ниже на транспортный уровень (уровень 4), который повторно собирает сообщение.
Адресация точки обслуживания
Сетевые функции используют множество приложений и процессов. Чтобы узнать, какое именно приложение должно получить сообщение, используется адресация точки обслуживания Эта функция позволяет транспортному уровню добавлять к заголовку сообщения специальный тип адреса. Так уровень точно узнает, куда должно быть доставлено сообщение. Этот адрес называется адресом точки обслуживания (адресом порта).
Службы транспортного уровня
Служба с установкой соединения.
Это упрощенная версия трехстороннего рукопожатия TCP/IP на транспортном уровне. Служба состоит из трех этапов: подключение, передача данных и отключение. Отправитель соединяется с получателем, сообщение передается, и получатель подтверждает передачу. Если все в порядке, соединение разрывается.
Служба без установки соединения.
Службы без установки соединения обрабатывают только часть передачи данных, т.е. получателю не требуется подтверждать прием пакета. Служба без установки соединения менее безопасна и надежна, но значительно быстрее службы с установкой соединения.
5. Сеансовый уровень (уровень 5)
Сеансовый уровень является вторым хост-уровнем (программно-ориентированным) и отвечает за безопасность, аутентификацию, обслуживание сеанса и установление соединения.
Протоколы уровня 5 — NetBIOS, SAP, PPTP, RTP, SOCKS и т.д.
Функции сеансового уровня
Установка и завершение сеанса
Сеансовый уровень сообщает двум сторонам (отправителю и получателю), как взаимодействовать, а также как устанавливать и завершать связь.
Синхронизация
Механизм контроля ошибок сеансового уровня позволяет процессу добавлять контрольные точки (флаги) в передачу, чтобы идентифицировать и исправлять любые несоответствия по метке.
Диалоговое управление
Сеансовый уровень может «заставить» процесс передавать сообщения в полудуплексном или полнодуплексном режиме.
6. Уровень представления (уровень 6)
Этот уровень отвечает за перевод информации, полученной с прикладного уровня (уровня 7). По этой причине уровень представления также называют уровнем перевода. Другими словами, уровень 6 представляет данные в понятном человеку и машине виде, включая текст, изображения и аудио/видеоданные.
Протоколы уровня 6 — MIME, XDR, ASN.1, ASCII, PGP.
Функции уровня представления
Уровень представления переводит текст из одной кодировки в другую. Например, из ASCII в обычный текст.
Шифрование/дешифрование
Шифрование означает использование ключа для преобразования обычного текста в зашифрованный текст и использование того же ключа для расшифровки сообщения.
Уровень представления использует функцию сжатия для удаления нескольких битов из сообщения, чтобы сделать передачу более плавной.
7. Прикладной уровень (уровень 7)
Уровень приложения (уровень рабочего стола) — это среда, где мы можем фактически работать с уровнями OSI. Сюда входят браузеры, почтовые клиенты, игры, видеоплееры и многое другое.
Протоколы уровня 7 — SIP, DNS, FTP, Gopher, HTTP, NFS, SMTP, Telnet, DHCP и т.д.
Функции прикладного уровня
Сетевой виртуальный терминал (Network Virtual Terminal, NVT)
NVT — это приложение, которое позволяет пользователю удаленно подключаться к другому хосту или серверу с помощью программной эмуляции.
Доступ к передаче файлов и управление ими (File Transfer Access and Management, FTAM)
FTAM — это протокол, который позволяет пользователям распространять файлы по сети и манипулировать ими. По сравнению с FTP, FTAM имеет более широкие возможности. Например, печать и буферизация, создание сетевых файловых систем и поиск записей в удаленных базах данных.
Службы прикладного уровня
Почтовые службы
Эта функция обеспечивает пересылку и хранение электронной почты. Outlook можно считать ярким примером почтовой службы прикладного уровня.
Службы каталогов
Это комплексная программная инфраструктура, помогающая находить, организовывать и управлять сетевыми ресурсами (например, LDAP, DNS, служба каталогов Netware и т.д.).
Вывод
В этой статье мы описали 7 основных уровней OSI. Важно отметить, что каждый уровень OSI имеет еще один или несколько уровней. Модель OSI является эталоном построения сетей. Она поможет понять, как работает компьютерная сеть и как правильно построить эту сеть. Зная архитектуру сети, вы сможете настроить ее и диагностировать в случае неполадок.
Сети для Самых Маленьких. Микровыпуск №5. FAQ по сетевым технологиям
Пока весь мир с замиранием ждёт 11-го выпуска СДСМ, посвящённого MPLS BGP L3VPN, я решил сделать вольный перевод неплохой статьи Джереми Стреча с Packetlife.net.
Это подборка небольших FAQ для новичков.
#На каком уровне OSI работает протокол Ч?
Первая вещь, с которой сталкивается любой, кто изучает сети — это модель OSI (Open Systems Interconnection). Это семиуровневая эталонная модель, официально определённая в IOS/IEC 7498-1. Вы встретите её в любой когда либо напечатанной учебной литературе. Это совершенно обычное дело — ссылаться на OSI при обсуждении взаимодействия между протоколами. Так, например, TCP — это протокол четвёртого уровня, и он сидит на шее IP — протоколе третьего уровня.
Но что это значит на самом деле? Кто решает какому уровню принадлежит протокол? Модель OSI была задумана ещё в 70-е годы, как часть семейства протоколов OSI, которая на полном серьёзе позиционировалась как соперник стеку TCP/IP (спойлер: TCP/IP таки выиграл). Если исключить горстку выживших (наверняка, вы слышали про протокол динамической маршрутизации IS-IS), то протоколы OSI сейчас фактически не используются. Однако эталонная модель OSI, описывающая, как они должны были взаимодействовать, живее всех живых. Что, впрочем, заставляет нас привязывать протоколы одного семейства к уровням, определённым для другого.
По большей части всё работает прекрасно: TCP и UDP едут верхом на IP, который в свою очередь передвигается на Ethernet, PPP или чём бы там ни было другом. Но сорокалетняя модель не всегда может удовлетворить нужны современных протоколов. Возьмём для примера MPLS. Часто его относят к уровню 2,5, потому что он работает поверх канального, но ниже сетевого, не осуществляя при этом ни формирования фреймов ни сквозную адресацию (в отличии от IP-адресов, метки MPLS меняются на каждом узле по мере продвижения пакета к точке назначения). Разумеется, добавление нового уровня между двумя другими разрушает стандартную модель.
Строго говоря, ни один протокол из стека TCP/IP не закреплён официально за каким-либо уровнем OSI именно по той причине, что это разные семейства. Яблоки и апельсины. Эталонная модель — это эталон (Прим. переводчика: всё-таки русское название немного не соответствует Reference Model, эталон предполагает свою идеальность и стремление ему соответствовать). OSI помогает иллюстрировать зависимость одних протоколов от других, и кто кем погоняет, но она не может диктовать, как им функционировать.
Но если вдруг кто-то спросит, отвечайте, что MPLS — это протокол третьего уровня.
#Какая разница между маршрутизатором и многоуровневым коммутатором?
В стародавние времена, маршрутизаторы служили для того чтобы передавать пакеты на основе IP-адресов и предоставляли широкий диапазон интерфейсов: Ethernet, E1, Serial, OC-3 итд. В то же время коммутатор передавал пакеты (кадры, прим. для лиги зануд), основываясь на MAC-адресах, и имели только порты Ethernet.
Но в начале 2000-х нашему чёткому пониманию этой разницы пришёл конец — вырисовывались две важные тенденции. Во-первых, появились многоуровневые коммутаторы, которые не просто получили право передавать пакеты, основываясь на IP-адресах, но и участвовать в протоколах динамической маршрутизации, как самые настоящие маршрутизаторы. Во-вторых, операторы начали необратимый процесс миграции с технологий с коммутацией каналов на модерновый Ethernet, предоставляющий высокие скорости за низкую плату. Сегодня совершенно в порядке вещей, если маршрутизатор имеет только Ethernet-интерфейсы, как будто бы он коммутатор.
Где лежит граница между маршрутизатором и многоуровневым коммутатором? Существует ли ещё эта граница?
Фактическая разница между ними сводится к следующим нескольким пунктам:
- Плотность портов. Коммутаторы уровня Enterprise обычно несут на борту 24 или 48 портов. Иногда они могут стекироваться для ещё большего расширения. Основная цель: засунуть настолько много интерфейсов, насколько позволяет передняя панель. Маршрутизатор напротив обычно имеет намного меньше интерфейсов, возможно, разнесённых по разным сменным платам. (Прим. переводчика: если речь идёт о оборудовании операторского класса, то плотность портов на линейных платах маршрутизатора вполне сравнится с коммутаторскими).
- Скорость. Коммутаторы созданы для того, чтобы молотить трафик. Сейчас даже скромные офисные коммутаторы зачастую предоставляют пропускную способность на скорости линии. Это достигается засчёт того, что обработка трафика происходит на аппаратных чипсетах без участия CPU. (Прим. переводчика: следует и тут заметить, что и маршрутизаторы сейчас преимущественно используют для передачи трафика FPGA и ASIC и в своей пропускной способности не уступают коммутаторам).
- Интеллект. Ключевое же различие, которое может вынудить вас выбрать маршрутизатор — интеллектуальная начинка. Маршрутизатор предоставляет такие функции, как NAT, DPI, Stateful файрвол, шифрование итд — всё это, как правило, не поддерживается коммутатором.
#Какая разница между forwarding и control planes?
Для новичков это, несомненно, источник путаницы.
Forwarding plane часто называют Data Plane, а по-русски самый удачный вариант — плоскость коммутации. Её задача — доставить пакет из пункта А в пункт Б. Плоскость коммутации коммутирует.
Control plane — плоскость управления — обслуживает функции предписывающие, как должна работать плоскость коммутации. Плоскость управления управляет.
Вот например, у вас есть маршрутизатор с OSPF. Он обменивается маршрутной информацией с соседними маршрутизаторами OSPF, составляет граф всей сети и вычисляет маршруты. Когда таблица маршрутизации (RIB) построена, маршрутизатор инсталлирует лучший маршрут до каждой известной точки назначения в таблицу коммутации (FIB). Это функции control plane.
Когда тот же маршрутизатор получает IP-пакет, он ищет адрес назначения в своей таблице коммутации, чтобы определить интерфейс, в который пакет нужно отправить. Далее пакет передаётся в буфер выходного интерфейса и затем в кабель. Это функции forwarding plane.
Чувствуете различие? Плоскость коммутации отвечает за приём и передачу пакетов, в то время как плоскость управления — за то, как именно принимается решение о передаче пакета.
Плоскость коммутации реализована, как правило, в железе, иными словами выполняется специальными чипсетами (например, Network Processor обращается к TCAM, чтобы быстро извлечь выходной интерфейс из FIB), не требуя обращения к CPU.
Плоскость управления же работает на CPU и в обычной памяти, что очень похоже на работу персонального компьютера. Дело в том, что уровень управления выполняет очень сложные функции, которые с одной стороны не нужны в реальном времени, а с другой их проблематично реализовать в железе. Например, совершенно не важна задержка в несколько миллисекунд, когда маршрутизатор инсталлирует маршрут в таблицу коммутации, в то время как для уровня коммутации это может быть серьёзной деградацией производительности.
#Какая разница между MTU и MSS?
Maximum transmission unit (MTU) говорит о максимальном объёме данных, который может нести один пакет. Обычно мы говорим о MTU в отношении Etherner (хотя другие протоколы, конечно, тоже имеют свои MTU). MTU по умолчанию на большинстве платформ — 1500 байтов. Это означает, что узел может передать кадр, несущий 1500 байтов полезной нагрузки. Сюда не включены 14 байтов заголовка Ethernet (18 в случае 802.1q) и 4 байта поля FSC. Итоговый же размер кадра 1518 байтов (1522 в случае 802.1q). Многие узлы сейчас поддерживают джамбофреймы (jumbo), для этого стандартный MTU увеличивается до 9000+ байтов.
Maximum segment size (MSS) — это величина характерная для TCP, которая показывает максимальную полезную TCP нагрузку в пакете, фактически это MTU для TCP. TCP MSS вычисляется, исходя из значения Ethernet MTU (а, может, и не Ethernet) на интерфейсе. Поскольку TCP должен втиснуться в кадр Ethernet, MSS должен быть меньше, чем MTU. В идеале MSS должен быть максимально возможным: MTU-размер заголовка IP-размер заголовка TCP.
Предположим MTU 1500 байтов, вычитаем из него 20 байтов IPv4 адреса и ещё 20 байтов TCP и получаем MSS 1460 байтов. IPv6 с его удлинённым заголовком оставит для MSS всего 1440 байтов.
TCP MSS определяется один раз в ходе установления соединения. Каждый узел включает свой MSS в опции TCP в первый пакет (тот, что с флагом SYN), и оба узла выбирают наименьшее значение из двух как MSS сессии. Однажды установленный MSS уже не меняется в течение жизни сессии.
#Какая разница между интерфейсами VLAN и BVI?
VLAN-интерфейс, известный также как SVI (Switch Virtual Interface) или RVI (Routed VLAN Interface) — это виртуальный интерфейс на многоуровневом коммутаторе. Он обеспечивает маршрутизацию и часто служит шлюзом по умолчанию для локального сегмента сети. VLAN-интерфейс обычно ведёт себя и настраивается как физический интерфейс маршрутизатора: на него можно назначить IP, он участвует в VRRP, может иметь ACL итд. Вы можете представить себе, что это физический интерфейс внутри коммутатора, а можете, наоборот, вообразить, что это маршрутизирующий интерфейс вне коммутатора, на котором терминируется данный VLAN.
Bridge group Virtual Interface (BVI) служит похожим целям, но существует на маршрутизаторе, на котором нет концепции VLAN, потому что всего его порты обычно работают на L3 (Прим. переводчика: на маршрутизаторах концепция VLAN вполне может присутствовать). Bridge group заставляет два или более портов работать на L2, разделяя между ними широковещательный домен. BVI связывает интерфейсы в Bridge Group и служит виртуальными L3-интерфейсом для всех сегментов, подключенных к нему. Когда маршрутизатор работает одновременно на L2 и L3, его называют Integrated Routing and Bridging (IRB).
В то время, как VLAN-интерфейс — жизненная необходимость многоуровневого коммутатора, IRB — нишевая вещь, которая может использоваться, например, на точках доступа WiFi.
#Как работает туннельный интерфейс?
Многие люди испытывают трудности с пониманием концепции туннельных интерфейсов (Прим. переводчика: действительно?). Туннелирование — это просто инкапсуляция одних пакетов внутрь других при передаче их между двумя точками. Туннельный интерфейс используется для достижения такой инкапсуляции для маршрутизируемых VPN, которые позволяют защититься и абстрагироваться от топологии нижележащей сети. Существует много методов инкапсуляции, включающие IPSec, GRE, MPLS итд.
Несмотря на то, что туннельный интерфейс имеет виртуальную природу, ведёт себя он как и любой другой, когда дело доходит до маршрутизации, с той лишь разницей, что когда пакет выходит через туннельный интерфейс, он упаковывается в новый пакет, для которого снова принимается решение о маршрутизации. Новый беременный пакет отправляется в среду и достигает в конечном счёте точки назначения. На другом конце туннеля внешние заголовки снимаются, и на свет выходит оригинальный пакет, над которым снова принимается решение о маршрутизации.
#Что означают четыре типа адресов в NAT?
- Inside global
- Inside local
- Outside local
- Outside global
Возьмём для примера случай, когда вы с компьютера с приватным адресом 192.168.0.10 хотите зайти по telnet на адрес в Интернете 94.142.241.111. Из пула NAT вам выделен IP-адрес 192.0.2.10.
Вот так будет выглядеть таблица трансляций:
Inside Global — как внутренний узел выглядит извне. Сервер в Интернете действительно видит адрес из вашего пула NAT.
Inside Local — как внутренний адрес выглядит изнутри — приватный адрес компьютера
Outside Local — как внешний адрес выглядит инзнутри — видим его публичный адрес и порт 23.
Outside Global — тут должно быть то, как выглядит внешний адрес извне, но ваш NAT таких трансляций не умеет, поэтому адрес совпадает с Outside Local.
#Могу ли я использовать адрес сети и широковещательный адрес в NAT-пуле?
Во-первых, в контексте пула NAT вообще нет понятий маски адрес сети и широковещательный адрес.
Во-вторых адрес сети и широковещательный адрес определяются маской подсети — без неё они теряют смысл. Поэтому считать ли адрес 192.168.0.255 широковещательным адресом, а 192.168.1.0 адресом сети зависит целиком и полностью от маски: для /23 ответ нет, для /24 и более ответ да, а для /32 снова нет.
Поэтому адрес 192.168.0.255 вы можете не только указать в пуле, но даже настроить на интерфейсе с маской /23.
#Почему нам нужны IP-адреса? Разве нам не хватит MAC-адресации для всего?
Когда новичок начинает изучение MAC-адресов, он видит, что они должны быть уникальными глобально. И возникает закономерный вопрос, почему бы не использовать MAC-адреса для сквозной адресации через весь Интернет, не прибегая вообще к IP? Однако существует несколько достаточно весомых причин привлечь IP.
Во-первых, не все сети имеют MAC-адресацию. Вообще такой тип свойственен только семейству 802. Очень легко забыть об этом в мире, где практически всё — Ethernet или его вариации (например IEEE 802.11 WiFi). Но во времена юности Ethernet несколько десятилетий назад буйствовало беззаконие в сфере протоколов: Token Ring, Ethernet, Frame Relay, ATM боролись за место в маршрутизаторе. И обеспечить взаимодействие узлов из Token Ring с узлами из ATM посредством MAC-адресов было проблематично — нужен был протокол сетевого уровня.
Во-вторых, IP-адреса мобильны — они могут назначаться администраторами или даже выдаваться автоматически, в то время, как MAC-адреса вшиты в сетевой адаптер на веки вечные. Технически MAC-адрес, конечно, тоже можно поменять, но это не предполагалось изначально и сейчас нет никаких средств для удобного управления ими.
Но самая главная причина третья — IP масштабируем и может связывать огромные сети, а Ethernet — удел небольших сегментов. Пространство IP-адресов иерархично, MAC-адресов — плоско. 254 узла одной локальной сети могут быть агрегированы в одну подсеть /24. 8 подсетей /24 могут быть агрегированы в одну /21. Это возможно, потому что блоки адресов обычно располагаются рядом в Интернете. Всё, о чём нужно заботиться в этом случае маршрутизатору — как добраться до подсети.
MAC-адреса же каждый сам по себе, так как назначаются псевдослучайным образом на производстве, и два адреса, различающихся только в последнем бите, могут оказаться в диаметральных концах планеты. Если вдруг кому-то взбредёт в голову использовать MAC-адреса для сквозной адресации в Интернете, он столкнётся с тем, что маршрутизаторам будет нужно знать адрес каждого отдельно взятого узла в глобальной сети. Здравствуй, интернет вещей.
Далее прим. переводчика.
Освещённый в оригинальной статье вопрос на самом деле простой — одного отсутствия масштабирования достаточно для того, чтобы отказаться от этой идеи.
Гораздо интереснее обратный вопрос: Почему нам нужны MAC-адреса? Разве нам не хватит IP-адресации для всего? Тут всё не так однозначно. Почему бы действительно в современном мире, где скоро название стека можно менять на TCP/IP/Ethernet, не отказаться совсем от адресации на L2 и позволить узлам в сегменте взаимодействовать по IP?
ARP больше не нужен — пакет коммутируется по IP (кстати, уже сейчас существуют коммутаторы, которые действительно могут производить IP Learning вместо MAC Learning). Широковещание доступно так же через адрес 255.255.255.255.
При этом, я не предлагаю отказаться от Ethernet или L2 совсем, нет — утот уровень абстракции необходим — сетевой не должен работать напрямую с физическим, заниматься фреймингом, проверкой целостности итд; мы просто убираем адресацию из L2.
Сложность начинается на самом деле при передаче пакета из одной подсети в другую через череду маршрутизаторов. Тут даёт о себе знать широковещательная природа Ethernet. В заголовке IP, адрес назначения фиксирован и не меняется по мере продвижения пакета. Поэтому встаёт вопрос, как правильно переслать пакет между маршрутизаторами. Сейчас как раз для этого используются MAC-адреса Next-Hop. Дело в том, что за Ethernet-интерфейсом маршрутизатора может быть не один соседний маршрутизатор, а два, три, десяток, и здесь придётся добавлять ещё какой-то идентификатор Next-hop.
В реальном мире в 99,9% мы используем P2P линии между маршрутизаторами и тут нет необходимости в добавлении адреса Next-hop в пакет — больше ведь и слать некому — просто отправляем кадр в кабель. Тут можно вспомнить PPP, где хоть формально поле «адрес» и есть, но оно фактически не используется.
Но концепция Ethernet, который изначально планировался только для локальных сегментов с пользовательскими машинами, не предусматривает сценарий P2P отдельно.
В итоге адресацию с уровня Ethernet мы не можем убрать. Однако тут до сих пор остаётся вопрос — зачем MAC-адреса, ведь в заголовке Ethernet мы могли бы указывать IP-адрес Next-Hop, который менялся бы также на каждом узле.
В целом это верно, но такой подход ломает идеологию стека протоколов, предполагающую независимость уровней друг от друга. Сейчас, например, легко можно выкинуть Ethernet и вместо него использовать xDSL или PON или, прости Лейбниц, Frame Relay — сложности лишь административные и финансовые. Также, поверх Ethernet технически вы можете пустить собственный сетевой протокол IPЧ — и это всё будет работать с минимальными изменениями (добавить новый Ethertype).
Замечу, что этот вопрос нельзя обсуждать в отрыве от исторического и административного контекста. Даже если мы возьмём на себя смелость предположить, что мы нашли идеальное сочетание идеальных протоколов IP+Ethernet, и ближайшие 300 лет нам не грозят глобальные изменения, нужно помнить, что 20 лет назад мир был другим, как мы уже говорили выше, и Ethernet был лишь одним из. Мы не могли так жёстко связывать сетевой и канальный уровни. А теперь сети, которые уже работают, и нам для этого как правило не нужно прилагать титанических усилий, никто не будет переделывать просто потому, что кажется избыточным одновременное использование IP и MAC-адресации.
Кстати, возможно, вы будете несколько удивлены, но часть описанных идей войдут в нашу с вами жизнь в лице IPv6 с его концепцией Link-Local адресов.
#Позволяет ли QoS расширить пропускную способность?
Среди новичков иногда существует заблуждение, что QoS — это волшебная технология, позволяющая пропихнуть через линию больше пакетов, чем она может. Это не так. К примеру, если ваш интернет-канал ограничен 10Мб/с, вы никогда не сможете отправить в него больше. Задача QoS — отдавать предпочтения одним типам трафика над другими. Таким образом во время перегрузки на линии (при попытке отправить больше 10 Мб/с) менее важный трафик будет отброшен в пользу свободной передачи более приоритетного.
Обычно QoS применяется для того, чтобы защитить трафик реального времени, такой как голос или видеоконференции от трафика, терпимого к задержкам и потерям — WEB, почта, FTP, Torrent итд. Кроме того QoS поможет избежать оккупирования всей полосы передачей большого объёма трафика, типа резервного копирования серверов.
Рассмотрим ситуацию, когда у вас есть офис, подключенный через два канала E1 с общей пропускной способностью 4Мб/с. По этой линии передаётся и голос и данные. Чтобы во время перегрузки голосовой трафик не испытывал деградацию, с помощью QoS можно выделить гарантированную полосу для него. Оставшаяся часть будет доступна для данных. Однако если после этого трафик с данными заметно ухудшится, то QoS уже не поможет — в этом случае придётся расширять канал.
Переводчик позволил себе некоторые вольности в русскоязычных терминах, которые позволят, как ему кажется, лучше понять смысл.
Сетевые стандарты: семиуровневая эталонная модель OSI
Модель взаимодействия открытых систем (Open System Interconnection, OSI) определяет различные уровни взаимодействия систем в сетях с коммутацией пакетов, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень.
Модель OSI была разработана на основании большого опыта, полученного при создании компьютерных сетей, в основном глобальных, в 70-е годы. Полное описание этой модели занимает более 1000 страниц текста.
В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический . Каждый уровень имеет дело с определенным аспектом взаимодействия сетевых устройств.
Contents
Физический уровень [ ]
Физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким, как коаксиальный кабель, витая пара, оптоволоконный кабель или цифровой территориальный канал. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, передающих дискретную информацию, такую как крутизна фронтов импульсов, уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме того, здесь стандартизируются типы разъемов и назначение каждого контакта. Реализуется аппаратно.
Протоколы физического уровня OSI:
- USB, Firewire
- IEEE 802.15 (Bluetooth), IRDA
- EIA RS-232, EIA-422, EIA-423, RS-449, RS-485
- Ethernet (включая 10BASE-T, 10BASE2, 10BASE5, 100BASE-TX, 100BASE-FX, 100BASE-T, 1000BASE-T, 1000BASE-SX и другие)
- DSL, ISDN
- SONET/SDH
- 802.11 Wi-Fi
- Etherloop
- GSM Um radio interface
- ITU и ITU-T
- TransferJet
- ARINC 818
- G.hn/G.9960
Канальный уровень [ ]
Канальный уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Другая задача канального уровня — реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames). Канальный уровень обеспечивает корректность передачи каждого кадра помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая все байты кадра определенным способом, и добавляет контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров . Необходимо отметить, что функция исправления ошибок для канального уровня не является обязательной, поэтому в некоторых протоколах этого уровня она отсутствует, например в Ethernet и frame relay. Реализуются программно-аппаратно.
Спецификация IEEE 802 разделяет этот уровень на два подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня.
На этом уровне работают коммутаторы, мосты.
Протоколы канального уровня:
- ARCnet
- ATM
- Cisco Discovery Protocol (CDP)
- Controller Area Network (CAN)
- Econet
- Ethernet, Ethernet Automatic Protection Switching (EAPS), Fiber Distributed Data Interface (FDDI), Frame Relay
- High-Level Data Link Control (HDLC), IEEE 802.2 (provides LLC functions to IEEE 802 MAC layers), Link Access Procedures, D channel (LAPD)
- IEEE 802.11 wireless LAN
- LocalTalk
- Multiprotocol Label Switching (MPLS)
- Point-to-Point Protocol (PPP)
- Serial Line Internet Protocol (SLIP) (obsolete)
- StarLan
- Spanning tree protocol
- Token ring
- Unidirectional Link Detection (UDLD)
- x.25
В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS, UDI.
Сетевой уровень [ ]
Сетевой уровень сетевой модели OSI предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и «заторов» в сети.
Протоколы сетевого уровня маршрутизируют данные от источника к получателю.
На этом уровне работает маршрутизатор (роутер).
Сетевой уровень — доставка пакета:
- между любыми двумя узлами сети с произвольной топологией;
- между любыми двумя сетями в составной сети;
- сеть — совокупность компьютеров, использующих для обмена данными единую сетевую технологию;
- маршрут — последовательность прохождения пакетом маршрутизаторов в составной сети.
На сетевом уровне работают протоколы еще одного типа, которые отвечают за отображение адреса узла, используемого на сетевом уровне, в локальный адрес сети. Такие протоколы часто называют протоколами разрешения адресов — Address Resolution Protocol, ARP. Иногда их относят не к сетевому уровню, а к канальному, хотя тонкости классификации не изменяют сути.
Пример: IP/IPv4/IPv6 (Internet Protocol), IPX (Internetwork Packet Exchange, протокол межсетевого обмена), X.25 (частично этот протокол реализован на уровне 2) CLNP (сетевой протокол без организации соединений), IPsec (Internet Protocol Security), ICMP (Internet Control Message Protocol), RIP (Routing Information Protocol), OSPF (Open Shortest Path First), ARP (Address Resolution Protocol).
Транспортный уровень [ ]
Транспортный уровень (Transport layer) обеспечивает приложениям или верхним уровням стека — прикладному и сеансовому — передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное — способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.
Транспортный уровень — обеспечение доставки информации с требуемым качеством между любыми узлами сети:
- разбивка сообщения сеансового уровня на пакеты , их нумерация;
- буферизация принимаемых пакетов;
- упорядочивание прибывающих пакетов;
- адресация прикладных процессов;
- управление потоком.
Пример: ATP (AppleTalk Transaction Protocol), CUDP (Cyclic UDP), DCCP (Datagram Congestion Control Protocol), FCP (Fiber Channel Protocol), IL (IL Protocol), NBF (NetBIOS Frames protocol), NCP (NetWare Core Protocol), SCTP (Stream Control Transmission Protocol), SPX (Sequenced Packet Exchange), SST (Structured Stream Transport), TCP (Transmission Control Protocol), UDP (User Datagram Protocol).
Сеансовый уровень [ ]
Сеансовый уровень (Session layer) обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все сначала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.
Сеансовый уровень — управление диалогом объектов прикладного уровня:
- установление способа обмена сообщениями (дуплексный или полудуплексный);
- синхронизация обмена сообщениями;
- организация «контрольных точек» диалога.
Пример: ADSP (AppleTalk Data Stream Protocol), ASP (AppleTalk Session Protocol), H.245 (Call Control Protocol for Multimedia Communication), ISO-SP (OSI Session Layer Protocol (X.225, ISO 8327)), iSNS (Internet Storage Name Service), L2F (Layer 2 Forwarding Protocol), L2TP (Layer 2 Tunneling Protocol), NetBIOS (Network Basic Input Output System), PAP (Password Authentication Protocol), PPTP (Point-to-Point Tunneling Protocol), RPC (Remote Procedure Call Protocol), RTCP (Real-time Transport Control Protocol), SMPP (Short Message Peer-to-Peer), SCP (Secure Copy Protocol), ZIP (Zone Information Protocol), SDP (Sockets Direct Protocol).
Представительный уровень [ ]
Представительный уровень (Presentation layer) имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например в кодах ASCII и EBCDIC. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP.
Уровень представления — согласовывает представление (синтаксис) данных при взаимодействии двух прикладных процессов:
- преобразование данных из внешнего формата во внутренний;
- шифрование и расшифровка данных.
Пример: AFP — Apple Filing Protocol, ICA — Independent Computing Architecture, LPP — Lightweight Presentation Protocol, NCP — NetWare Core Protocol, NDR — Network Data Representation RDP — Remote Desktop Protocol, XDR — eXternal Data Representation, X.25 PAD — Packet Assembler/Disassembler Protocol.
Прикладной уровень [ ]
Прикладной уровень (Application layer) — это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют совместную работу, например с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message).
Прикладной уровень — набор всех сетевых сервисов, которые предоставляет система конечному пользователю: