Сетевая модель OSI
Материал из Википедии — свободной энциклопедии
Сетевая модель OSI (англ. Open Systems Interconnection Reference Model — модель взаимодействия открытых систем) — абстрактная модель для сетевых коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и понятнее.
Разумеется, в настоящее время основным используемым протоколом является TCP/IP, разработка которого не была связана с моделью OSI. За все время существования модели OSI она не была реализована, и, по-видимому, не будет реализована никогда.
Сегодня используется только некоторое подмножество модели OSI. Считается, что модель слишком сложна, а её реализация займёт слишком много времени.
Отдельные специалисты утверждают также, что история модели OSI является типичным примером неудачного и оторванного от жизни проекта.
Содержание |
[править] История
В 1978 году Международный комитет по стандартизации (ISO) разработал стандарт архитектуры ISO 7498, для объединения различных сетей. В разработке участвовало 7 комитетов, каждому из них был отведён свой уровень. В 1980 году IEEE опубликовал спецификацию 802, детально описавшую механизмы взаимодействия физических устройств на канальном и физическом уровнях модели OSI. В 1984 году спецификация модели OSI была пересмотрена и принята как международный стандарт для сетевых коммуникаций.
[править] Уровни модели OSI
Модель состоит из 7-ми уровней, расположенных вертикально друг над другом. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции.
Уровень OSI | Протоколы |
---|---|
Прикладной | HTTP, gopher, Telnet, SMTP, SNMP, CMIP, FTP, TFTP, SSH, IRC, AIM, NFS, NNTP, NTP, SNTP, XMPP, FTAM, APPC, X.400, X.500, AFP, LDAP, SIP, ITMS, Modbus TCP, BACnet IP, IMAP, POP3, SMB, MFTP, BitTorrent, eD2k, PROFIBUS
Это всего лишь несколько самых распространенных протоколов прикладного уровня, коих существует великое множество. Все их невозможно описать в рамках данной статьи. |
Представления | HTTP/HTML, ASN.1, XML, 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, STP, TFTP |
Сетевой | IP, IPv6, ICMP, IGMP, IPX, NWLink, NetBEUI, DDP, IPSec, ARP, RARP, DHCP, BootP, SKIP |
Канальный (Звена данных) | ARCnet, ATM, DTM, SLIP, SMDS, Ethernet, FDDI, Frame Relay, LocalTalk, Token ring, PPP, PPPoE, StarLan, WiFi, PPTP , L2F, L2TP, 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-TX, 100BASE-FX, 100BASE-T, 1000BASE-T, 1000BASE-TX, 1000BASE-SX |
[править] Прикладной уровень (Application layer)
Верхний (7-й) уровень модели, обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.
[править] Уровень представления (Presentation layer)
Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может осуществляться сжатие/распаковка или кодирование/раскодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
[править] Сеансовый уровень (Session layer)
Отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.
[править] Транспортный уровень (Transport layer)
4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка.
[править] Сетевой уровень (Network layer)
3-й уровень сетевой модели OSI, предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию пакетов, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
[править] Канальный уровень (Data Link layer)
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры данных, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты и сетевые адаптеры.
В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровня между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS.
[править] Физический уровень (Physical layer)
Самый нижний уровень модели, предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель и соответственно их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне работают концентраторы и повторители (ретрансляторы) сигнала.
[править] Взаимодействие уровней
Уровни взаимодействуют сверху вниз и снизу вверх посредством интерфейсов и могут еще взаимодействовать с таким же уровнем другой системы с помощью протоколов. Подробнее можно посмотреть на рисунке.
[править] Модель OSI и реальные протоколы
Семиуровневая модель OSI является теоретической, и содержит ряд недоработок. Реальные сетевые протоколы вынуждены отклоняться от неё, обеспечивая непредусмотренные возможности, поэтому привязка некоторых из них к уровням OSI является несколько условной.
Основная недоработка OSI — непродуманный транспортный уровень. На нём OSI позволяет обмен данными между приложениями (вводя понятие порта — идентификатора приложения), однако, возможность обмена простыми датаграммами в OSI не предусмотрена — транспортный уровень должен образовывать соединения, обеспечивать доставку, управлять потоком и т. п. Реальные же протоколы реализуют такую возможность.
[править] Семейство TCP/IP
Семейство TCP/IP имеет два транспортных протокола: TCP, полностью соответствующий OSI, и UDP, отвечающий транспортному уровню только наличием порта, обеспечивающий обмен датаграммами между приложениями.
[править] Семейство IPX/SPX
В семействе IPX/SPX, порты (называемые «сокеты» или «гнёзда») появляются в протоколе сетевого уровня IPX, обеспечивая обмен датаграммами между приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI.
Кроме того, IPX не имеет адреса для хоста, полагаясь на адресацию канального уровня (например, MAC-адреса для Ethernet).
[править] См. также
- IEEE 802
- Сетевой протокол