Модель OSI была предложена Международной организацией стандартов ISO (International Standards Organization) в 1984 году. С тех пор ее используют (более или менее строго) все производители сетевых продуктов. Как и любая универсальная модель, модель OSI довольно громоздка, избыточна и не слишком гибка, поэтому реальные сетевые средства, предлагаемые различными фирмами, не обязательно придерживаются принятого разделения функций. Эталонная модель OSI стала основной архитектурной моделью для систем передачи сообщений. При рассмотрении конкретных прикладных телекоммуникационных систем производится сравнение их архитектуры с моделью OSI/ISO. Эта модель является наилучшим средством для изучения современной технологии связи.
Эталонная модель OSI делит проблему передачи информации между абонентами на семь менее крупных и, следовательно, более легко разрешимых задач. Конкретизация каждой задачи производилась по принципу относительной автономности. Очевидно, автономная задача решается легче.
Каждой из семи областей проблемы передачи информации ставится в соответствие один из уровней эталонной модели. Два самых низших уровня эталонной модели OSI реализуются аппаратным и программным обеспечением, остальные пять высших уровней, как правило, реализуются программным обеспечением. Эталонная модель OSI описывает, каким образом информация проходит через среду передачи (например, металлические провода) от прикладного процесса-источника (например, по передаче речи) до процесса-получателя.
Стек протоколов, представленный в виде 7-уровневой структуры, показан на рисунке 9.
Рис. 9. Структура модели OSI.
В рамках модели OSIвзаимодействие двух систем представляется фактически в виде двух моделей - горизонтальной и вертикальной:
× в рамках горизонтальной модели рассматривается прямое взаимодействие (обмен данными) одинаковых уровней в двух конечных точках (хостах); для организации такого взаимодействия в каждой из конечных точек должны поддерживаться одинаковые протоколы для данного уровня;
× в вертикальной модели рассматривается обмен информацией (взаимодействие) между соседними уровнями одной системы с использованием интерфейсов API; в этой модели каждый уровень может предоставлять свои услуги вышележащему уровню и пользоваться услугами нижележащего уровня (крайние уровни модели в этом смысле представляют исключение - прикладной уровень предоставляет свои услуги пользователю, а сетевой уровень не пользуется сервисом других уровней)
Прикладной уровень (Applicationlayer)
Верхний (7-й) уровень модели, обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.
Уровень представления (Presentationlayer)
Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Сеансовый уровень (Sessionlayer)
Отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия
Транспортный уровень (Transportlayer)
4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка.
Сетевой уровень (Networklayer)
3-й уровень сетевой модели OSI, предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию пакетов, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
Канальный уровень (DataLinklayer)
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры данных, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (MediaAccessControl) регулирует доступ к разделяемой физической среде, LLC (LogicalLinkControl) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты.
В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровня между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS.
Физический уровень (Physicallayer)
Самый нижний уровень модели, предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель и соответственно их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне работают концентраторы, повторители (ретрансляторы) сигнала и сетевые адаптеры.
Уровни взаимодействуют сверху вниз и снизу вверх посредством интерфейсов и могут еще взаимодействовать с таким же уровнем другой системы с помощью протоколов.
Протоколы, использующиеся на каждом уровне модели OSI, представлены в таблице 1.
Таблица 1.
Протоколы уровней модели OSI
Уровень OSI | Протоколы |
Прикладной | HTTP, gopher, Telnet, DNS, SMTP, SNMP, CMIP, FTP, TFTP, SSH, IRC, AIM, NFS, NNTP, NTP, SNTP, XMPP, FTAM, APPC, X.400, X.500, AFP, LDAP, SIP, ITMS, ModbusTCP, BACnetIP, IMAP, POP3, SMB, MFTP, BitTorrent, eD2k, PROFIBUS |
Представления | HTTP, ASN.1, XML-RPC, TDI, XDR, SNMP, FTP, Telnet, SMTP, NCP, AFP |
Сеансовый | ASP, ADSP, DLC, Named Pipes, NBT, NetBIOS, NWLink, Printer Access Protocol, Zone Information Protocol, SSL, TLS, SOCKS |
Транспортный | TCP, UDP, NetBEUI, AEP, ATP, IL, NBP, RTMP, SMB, SPX, SCTP, DCCP, RTP, TFTP |
Сетевой | IP, IPv6, ICMP, IGMP, IPX, NWLink, NetBEUI, DDP, IPSec, ARP, RARP, DHCP, BootP, SKIP, RIP |
Канальный | STP, ARCnet, ATM, DTM, SLIP, SMDS, Ethernet, FDDI, Frame Relay, LocalTalk, Token ring, StarLan, L2F, L2TP, PPTP, PPP, PPPoE, PROFIBUS |
Физический | RS-232, RS-422, RS-423, RS-449, RS-485, ITU-T, xDSL, ISDN, T-carrier (T1, E1), модификациистандарта Ethernet: 10BASE-T, 10BASE2, 10BASE5, 100BASE-T (включает 100BASE-TX, 100BASE-T4, 100BASE-FX), 1000BASE-T, 1000BASE-TX, 1000BASE-SX |
Следует понимать, что подавляющее большинство современных сетей в силу исторических причин лишь в общих чертах, приближённо, соответствуют эталонной модели ISO/OSI.
Реальный стек протоколов OSI, разработанный как часть проекта, был воспринят многими как слишком сложный и фактически нереализуемый. Он предполагал упразднение всех существующих протоколов и их замену новыми на всех уровнях стека. Это сильно затруднило реализацию стека и послужило причиной для отказа от него многих поставщиков и пользователей, сделавших значительные инвестиции в другие сетевые технологии. В дополнение, протоколы OSI разрабатывались комитетами, предлагавшими различные и иногда противоречивые характеристики, что привело к объявлению многих параметров и особенностей необязательными. Поскольку слишком многое было необязательно или предоставлено на выбор разработчика, реализации различных поставщиков просто не могли взаимодействовать, отвергая тем самым саму идею проекта OSI.
В результате попытка OSI договориться об общих стандартах сетевого взаимодействия была вытеснена стеком протоколов TCP/IP, используемым в Интернете, и его более простым, прагматичным подходом к компьютерным сетям. Подход Интернета состоял в создании простых протоколов с двумя независимыми реализациями, требующимися для того, чтобы протокол мог считаться стандартом. Это подтверждало практическую реализуемость стандарта. Например, определения стандартов электронной почты X.400 состоят из нескольких больших томов, а определение электронной почты Интернета (SMTP) — всего несколько десятков страниц в RFC 821. Всё же стоит заметить, что существуют многочисленные RFC, определяющие расширения SMTP. Поэтому на данный момент полная документация по SMTP и расширениям также занимает несколько больших книг.