Приветствую, коллеги! Меня зовут @ProstoKirReal, и я сетевой инженер, который пришел в эту профессию из совершенно другой сферы. На начальном этапе было особенно трудно разобраться в сложных терминах и принципах работы сетевых протоколов и оборудования. Мне захотелось написать цикл статей, посвященных специфике работы сетей и сетевых протоколов. Прежде всего, я делаю это для себя, чтобы наконец разобраться в тех понятиях, которые до конца не понимаю. Надеюсь, эта информация будет полезна и вам, а если нет, то послужит хорошей шпаргалкой для меня самого.
В первой статье цикла я хочу начать с базовых понятий, которые пригодятся всем начинающим сетевым инженерам, студентам и тем, кто связан с сетевыми технологиями. Это модель OSI и TCP/IP. Это база, которую необходимо знать. Вначале мне было трудно запомнить и понять суть этих моделей и их связь с настройками обычного коммутатора. Однако понимание модели OSI облегчает понимание работы различных протоколов и позволяет общаться с коллегами на одном языке. Меня раньше часто поправляли из-за того, что я говорил неправильно, не зная базовых понятий.
Итак, давайте разберемся с базовой информацией.
Модель OSI (Open Systems Interconnection) — это эталонная модель, разработанная для описания функций телекоммуникационных или вычислительных систем, необходимых для сетевого взаимодействия. Она разделяет процесс сетевого взаимодействия на семь взаимосвязанных уровней. Каждый уровень выполняет специфические функции и взаимодействует с уровнями непосредственно выше и ниже.
Звучит сложно?
Если проще, то информация, передающаяся по сети, делится на семь разных по смыслу уровней. На каждом уровне кабели, оборудование, приложения и т.д. работают с одними и теми же данными по-разному. Например, кабели передают информацию в виде нулей и единиц, а сетевое оборудование использует эти данные для передачи информации в другую точку страны, чтобы пользователь мог прочитать эту статью на Хабре. Кабелю не нужно знать, что за буквы в данной информации, а пользователю незачем знать последовательность нулей и единиц. Надеюсь, это объяснение понятно.
Модель OSI — это эталонная модель, которая, к сожалению, не нашла широкого применения в реальном мире. Поэтому появилась модель TCP/IP, по которой работает вся наша текущая сеть. Однако, когда два сетевика общаются между собой, они используют более распространенную модель OSI для лучшего понимания.
Если какие-то термины и понятия по тексту будут непонятны, я разберу их в следующих статьях, посвященных каждому уровню отдельно, или вы можете изучить их самостоятельно.
Теперь рассмотрим модель OSI и каждый из ее уровней.
Физический уровень L1 (Physical Layer):
Функции: определяет электрические, механические, процедурные и функциональные характеристики для активации, поддержания и деактивации физических соединений между конечными системами.
Примеры: кабели, разъемы, электрические напряжения, физические топологии сетей.
Необходимые для этого уровня понятия: RS-232, RJ45, V.34, 100BASE-TX, SDH, DSL, 802.11.
Если совсем просто, это нули и единицы, передающиеся в кабелях с помощью электрических сигналов (витая пара) или света (оптоволоконные кабели).
Канальный уровень L2 (Data Link Layer):
Функции: обеспечивает надежную передачу данных через физический канал. Включает задачи по обнаружению и исправлению ошибок, а также управление доступом к среде передачи.
Примеры: Ethernet, MAC-адреса, фреймы, коммутаторы.
Необходимые для этого уровня понятия: Ethernet, 802.11, MAC/LLC, VLAN, ATN, HDP, Fibre Channel, FrameReplay, HDLC, PPP, Q.921, Token Ring.
Если совсем просто, на этом уровне происходит передача информации в рамках одной локальной подсети с помощью таких устройств, как коммутатор. Эти устройства не обрабатывают данные выше L2 уровня и передают их с помощью определенных алгоритмов.
Сетевой уровень L3 (Network Layer):
Функции: отвечает за маршрутизацию пакетов данных между узлами сети. Обеспечивает логическую адресацию и определяет пути передачи данных через различные сети.
Примеры: IP-адресация, маршрутизаторы, IP-протокол.
Необходимые для этого уровня понятия: IP, ARP, IPsec, ICMP, IGMP, OSPF.
Если совсем просто, на этом уровне происходит передача информации между различными локальными сетями с помощью таких устройств, как маршрутизатор. Эти устройства не обрабатывают данные выше L3 уровня и передают их с помощью определенных алгоритмов между разными подсетями.
Транспортный уровень L4 (Transport Layer):
Функции: обеспечивает надежную передачу данных, контроль ошибок, сегментацию и повторную сборку данных. Гарантирует, что данные передаются без потерь и дубликатов.
Примеры: TCP (Transmission Control Protocol), UDP (User Datagram Protocol).
Необходимые для этого уровня понятия: TCP, UDP, SCTP, SSL, TLS.
Если совсем просто, на этом уровне информация передается по сети с помощью протоколов уровня L4. Например, это могут быть файлы с вашего компьютера или потоковое видео, которое вы смотрите на видео хостинге.
Сеансовый уровень L5 (Session Layer):
Функции: управляет сеансами связи между приложениями. Обеспечивает установку, поддержание и завершение сеансов, а также синхронизацию и управление обменом данными.
Примеры: управление сеансами, контроль диалога.
Необходимые для этого уровня понятия: Session establishment in TCP, SIP, RTP, RPC-Named pipes.
Если совсем просто, то осуществляется установление, управление и завершение сеансов связи между приложениями с помощью протоколов.
Представительный уровень L6 (Presentation Layer):
Функции: отвечает за преобразование данных в формат, подходящий для приложения или сети. Включает задачи по шифрованию, дешифрованию, сжатию и преобразованию данных.
Примеры: шифрование, кодирование данных, преобразование форматов.
Необходимые для этого уровня понятия: HTML, DOC, JPEG, MP3, AVI, Sockets.
Если совсем просто, происходит шифрование, сжатие и кодирование информации для обеспечения совместимости и безопасности передачи данных между различными системами.
Прикладной уровень L7 (Application Layer):
Функции: обеспечивает доступ приложений к сетевым услугам. Реализует протоколы, которые поддерживают конечные пользовательские процессы и сетевые приложения.
Примеры: HTTP (HyperText Transfer Protocol), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol).
Необходимые для этого уровня понятия: DNS, WWW, HTTP, P2P, EMAIL, POP, SMTP, TELNET, SSH, FTP, TFTP.
Если совсем просто, осуществляется взаимодействие пользователя с приложениями, обеспечивая веб-серфинг, электронную почту и передачу файлов.
Теперь, познакомившись с моделью OSI, перейдем к модели TCP/IP. Эта модель почти полностью повторяет эталонную, но имеет свои особенности.
Первый уровень – канальный. В данной модели он объединяет L1 и L2 уровни модели OSI.
Второй уровень – межсетевой. Он идентичен сетевому уровню L3 модели OSI.
Третий уровень – транспортный. Он идентичен транспортному уровню L4 модели OSI.
Четвертый уровень – прикладной. Он объединяет L5 – L7 уровни модели OSI.
Надеюсь, эта статья была полезна и поможет вам в дальнейшем изучении сетевых технологий. В следующих статьях я подробнее разберу каждый уровень и соответствующие протоколы.
Комментарии (31)
duke_alba
08.06.2024 13:41+5А физический уровень точно работает с нулями и единицами? Я всегда думал, что он работает на уровне электрических импульсов, а нули с единицами - это то, что у него на выходе.
Milanovru
08.06.2024 13:41Про канальный уровень я бы еще добавил ARP.
ProstoKirReal Автор
08.06.2024 13:41На самом деле ARP это самый важный для меня протокол. В следующих статьях уделю ему немного больше времени)
kaaman
08.06.2024 13:41+3По моему скромному субъективному мнению, серия постов "сети для самых маленьких", лучшее что я читал на хабре
ProstoKirReal Автор
08.06.2024 13:41+1На самом деле СДСМ это действительно лучший цикл статей для начинающих, для того чтобы научиться настраивать оборудование. Но к сожалению он мне не дал полного понимания как это все работает. Меня к примеру ставил в ступор вопрос, почему трафик будет передаваться в сеть с наименьшей маской. Это догма, но почему так это работает я долго не мог понять.
lexa
08.06.2024 13:41+3Нормальный вопрос на понимание: "в каких местах TCP/IP противоречат модели OSI"
max-himik
08.06.2024 13:41+1Мда... статья а-ля "напиши неправильно, и куча олдов за тебя все поправят"! Хитро, ничего не скажешь, но не оригинально - баян
MaksimusDecius
08.06.2024 13:41+1Статья полезная, но есть небольшое замечание названиям уровней в стеке tcp/ip - они называются не так, лучше написать фактические названия и просто сопоставить с уровнями модели osi.
Gay_Lussak
08.06.2024 13:41+1Функции: обеспечивает надежную передачу данных, контроль ошибок, сегментацию и повторную сборку данных. Гарантирует, что данные передаются без потерь и дубликатов.
Примеры: TCP (Transmission Control Protocol), UDP (User Datagram Protocol).
UDP не относится ни к чему, что приведено в функциях.
Raegdan
08.06.2024 13:41Сегментацию и сборку разве UDP не обеспечивает?
lexa
08.06.2024 13:41На уровне IP происходит
Raegdan
08.06.2024 13:41Могу ошибаться, но вроде ведь UDP-пакет может разбиваться на несколько IP-пакетов, IP-пакеты имеют право приходить вразнобой по времени, но при этом в пакете UDP перемешивания данных не происходит. Разве нет?
lexa
08.06.2024 13:41+1Фрагментация-сборка происходят на уровне IP, как я и написал выше
Ну или не происходят, если флажок DF стоит у IP-пакета
syrus_the_virus
08.06.2024 13:41Эталонная модель OSI не нашла применения в мире - ложное утверждение, которое говорит, что вы не до конца поняли стек. Именно модель OSI используется везде и повсюду, как в традиционной реализации, так и в виде модификации, вроде TCP/IP. OSI - это базовый класс библиотеки, от которого наследуются все другие, если говорить языком языка программирования с++.
JustANickName
08.06.2024 13:41+1Вы не правы, и в свою очередь приводите ненужную, ложную, даже мешающую аналогию про классы. TCP/IP не является ни наследованием, ни реализацией OSI, как и многие другие стеки. Как раз именно реализации модели OSI вроде и нет.
Модель OSI, если не подводит память, планировалась изначально именно реализовывать. Но по факту - осталась именно как удобная модель для изучения / пояснения. А в реализациях совсем не она: и уровней может быть другое число, и разделение может быть совсем по-другому.
Raegdan
08.06.2024 13:41+2Физический с канальным очень даже разделены. У Ethernet, Wi-Fi и оптики совершенно разный физический - электричество, радио и свет соответственно; но в целом одинаковый канальный - MAC адреса и Ethernet фреймы.
Foggy4
08.06.2024 13:41+1Мне непонятно, почему некоторые исследователи относят протокол SSL/TLS к транспортному уровню, если он работает поверх протоколов транспортного уровня TCP/UDP и об этом сказано даже в RFC 5246. Когда я учился, вроде принято было относить его к presentation layer (в английской википедии он по-прежнему к нему и относится).
KirSecurity
08.06.2024 13:41Полностью согласен, прошерстил и универские тетради, и еще статьи, нигде не нашел причастность к транспортному уровню. Возможно автор связал их из-за функции транспортного уровня - обеспечить надежность?
Но SSL/TLS сугубо протоколы шифрования и с надежностью доставки в данном контексте не связаны.
Magic_Mamaliga
08.06.2024 13:41+1Автор, продолжай в том же духе, всегда найдутся те кто будет порицать, но и всегда найдутся те кто преисполнится за счёт твоего благого творчества - люди которым это будет нравится. Спасибо!
Kotik_Kung-Fu
08.06.2024 13:41Большое спасибо за хорошую статью, ранее при обучении в колледже когда объясняли модель OSI было все как то мутно и не понятно, у вас очень хорошо описаны уровни, главное понятно и простым языком :)
Evgenchick
08.06.2024 13:41Добрый день, а мне кажется на иллюстрации в модели ошибка, данные сначала нужно сделать zip а уже после зашифровать . А там нарисовано наоборот.
AndreyAf
Самое главное нужно пояснить что когда сетевой кабель выдергивают это затрагивает только физический уровень, и если он не передаёт своё состояние выше, то TCP/IP никак про это не узнает (для него специально для этого придумали KeepAlive)
ProstoKirReal Автор
Хорошее замечание, учту при написании следующих статей.