Возможно, это поможет вам понять семиуровневую модель OSI.

внешний интерфейс

привет~Уважаемые зрители и господа, всем привет! Обычно сначала говорят о том, почему я написал эту тему, которая возникла из-за захвата и обмена пакетами моими коллегами по бэкенду. Конечно, в то время я мало что знал о терминологии сетевого программирования, поэтому мог только неловко улыбаться. для самых основныхOSI模型, я знаю только, что он состоит из семи слоев, но что из себя представляет каждый слой, для чего он используется и какой там протокол, совершенно непонятно. Поэтому, осознав позор, я дополнил соответствующие знания чтением книг и проверкой материалов, так и родилась эта статья.

Там может быть дедушка зрителя спрашивает, передний конец знает, в чем польза, обычно не используют его? Это правда, мы обычно контактируем только с прикладным уровнем.HTTPПротокол, базовый протокол, о котором мы не можем заботиться. Но некоторые сценарии все еще требуют некоторых знаний низкого уровня. Например, общий принцип внешней оптимизации заключается в том, чтобы отправлять как можно меньше запросов, так почему же можно оптимизировать загрузку, отправляя меньше запросов, и какова ее стоимость? Другим примером является то, что недавний продукт надеется, что uv может быть уникальным на одном и том же компьютере, но вполне вероятно, что пользователи будут использовать разные клиенты для использования продукта и разработки продукта. Если хорошенько обдумать, на самом деле многие сценарии также требуют базовых знаний, так что не ненавидьте книгу, когда придет время ее использовать~

В этой статье будут представлены протоколы, относящиеся к каждому уровню в семиуровневой модели, и описана роль каждого уровня через метафору курьерской компании. Надеюсь, вы все что-нибудь получите.

Базовые знания

OSI (Open System Interconnect), открытое межсистемное соединение. Обычно известная как эталонная модель OSI, это модель сетевого взаимодействия, изученная организацией ISO (Международная организация по стандартизации) в 1985 году. Стандарт архитектуры определяет семиуровневую структуру сетевого взаимодействия (физический уровень, канальный уровень, сетевой уровень, транспортный уровень, сеансовый уровень, уровень представления и прикладной уровень), который является эталонной моделью взаимодействия открытых систем ISO. В этой структуре функции каждого уровня подробно описываются для достижения взаимосвязанности, функциональной совместимости и переносимости приложений в открытой системной среде.

Выше это BaiduOSI 模型Пока вам нужно только помнить, что модель имеет 7 слоев, первый слой — физический, а последний — прикладной. Итак, как организованы и взаимодействуют различные уровни? И посмотрите на картинку ниже:

Отправитель начинает с самого высокого уровня и передает данные в порядке сверху вниз.Когда каждый уровень получает данные, обработанные верхним уровнем, он добавляет заголовок уровня и может обрабатывать данные (например, уровень представления). Принимающая сторона меняет порядок, начиная с первого уровня, дизассемблирует содержимое данных из заголовка, соответствующего уровню, и передает его на верхний уровень. Он выглядит круглым, верно? Простое понимание может быть таким: представьте, что A собирается отправить хрупкий предмет B. На экспресс-станции, где находится A, есть процесс упаковки, состоящий из семи человек.Поставьте большую коробку и передайте ее следующему человеку. Когда предмет отправляется на экспресс-станцию, где находится B, также есть семь человек, ответственных за распаковку коробки, каждый из которых распаковывает только один и, наконец, передает предмет B. Легко ли это понять?

Когда я увидел это в свое время, я задумался, есть ли у сторожа тот же вопрос, что и у меня: На самом деле это так многослойно, должна быть одинаковая логика обработки между разными слоями, и обработка также хлопотна. ? Впрочем, эта проблема тоже хорошо изучена: после наслоения, если какой-то слой изменится, это не повлияет на всю систему. Мы также знаем, что каждый уровень на самом деле имеет другой протокол.Если уровни смешаны вместе, невозможно переключать протоколы.Каждый раз, когда уровень заменяется, вся система должна быть преобразована. Это и почему интерфейс использует фреймворки, давайте нажмемMVCилиMVVMИмеет смысл организовать код слоями. Четкое определение роли каждого уровня способствует надежности системы.

Итак, какой протокол имеет каждый уровень и что он делает? Сначала посмотрите вниз сверху.

прикладной уровень

Что касается внешнего интерфейса, прикладной уровень, безусловно, наиболее знаком. Его роль заключается в предоставлении услуг приложениям и указании деталей, связанных с обменом данными в приложениях, то есть в предоставлении услуг приложениям. Общие протоколыHTTP,FTP,TELNET,SMTPЖдать.

В нашем ежедневном развитии протоколы, с которыми мы контактируем, в основном основаны наHTTPВ основном, тогда рассматривайте браузер как приложение, когда пользователь инициирует запрос,HTTP协议Получите данные для использования браузера, это то, для чего является слой приложений. При возникновении ошибки во время запроса есть ответственность за уровню приложений для обработки ошибки.

Этот уровень можно представить как получатель курьерской компании.Когда клиент (приложение) звонит (инициирует запрос) получателю (прикладной уровень), получатель может предоставлять различные услуги (разные протоколы) в соответствии с различными потребностями пользователя. ), такие как доставка на следующий день, доставка в указанное время и т. д.

уровень представления

Роль уровня представления заключается в преобразовании информации, обрабатываемой приложением, в формат, пригодный для передачи по сети, или в преобразовании данных следующего уровня в формат, который может обрабатывать верхний уровень. Он в основном отвечает за преобразование форматов данных. В частности, это преобразование собственного формата данных устройства в формат сетевого стандарта. Общие протоколыASCII,SSL/TLSЖдать.

Эффект может показаться замысловатым, но на самом деле он вполне объясним. Я могу говорить только по-китайски, а мои японские друзья могут говорить только по-японски, поэтому мы не можем общаться. Но если мы оба говорим по-английски, когда я общаюсь, я сначала думаю о том, что хочу сказать, а потом говорю это по-английски.Когда друг-японец слышит английский и в душе переводит его на японский, он может понять, что я имею в виду. Уровень представления заключается в преобразовании языка в их собственном сознании. Браузер запрашивает кучу данных, независимо от того, преобразуются ли они в текст или изображения, определяется уровнем представления. Сжатие данных, шифрование, упаковка и другие функции также выполняются на этом уровне.

Этот слой эквивалентен упаковщику курьерской компании. Если курьер (данные) слишком раздут, он сплющит (сожмет) его, не сломав курьера. Если клиент обращает внимание на линию безопасности, всемогущая экспресс-компания также может использовать поле пароля (SSL/TLS) Упаковка и экспресс-доставка. Разумеется, упаковщик позаботится о том, чтобы распаковщик на станции экспресс-доставки смог развернуть пакет без повреждений и доставить экспресс пользователю.

сеансовый уровень

Роль сеансового уровня отвечает за установление и отключение коммуникационных соединений (логических путей для потока данных), а также за управление передачей данных, например за сегментацию данных. Общие протоколыADSP,RPCЖдать.

Уровень разговора можно рассматривать как диспетчера курьерской компании. Он управляет информацией, связанной с этим курьером. Например, в этот раз заказчик хочет отправить 100 тонн песка (данные), а куда его отправить? Это его обязанности. После отправки соответствующая информация (связь) также может быть уничтожена, что также является обязанностью диспетчера.

транспортный уровень

Транспортный уровень играет роль надежного транспорта. Он обрабатывается только на узлах обеих сторон связи, а не на маршрутизаторе. На этом уровне есть два репрезентативных протокола:TCPа такжеUDP.

TCPПротокол обеспечивает надежную передачу связи.Проще говоря, данные передаются только тогда, когда цель подтверждает, что может общаться (поэтому требуется трехстороннее рукопожатие).Если данные будут потеряны в процессе передачи, они также будут переданы повторно. а такжеUDPПротокол не имеет значения, он не подтвердит, может ли цель общаться, а только отправит его на порт адреса другой стороны в соответствии с протоколом. Что же касается того, получит его другая сторона или нет, потеряет она пакет или нет, то это вообще не имеет значения.

Важная роль транспортного уровня заключается в указании коммуникационного порта. Возьмем в качестве примера запрос данных сервера. Сервер может обрабатывать несколько протоколов, как было сказано ранее на прикладном уровне.HTTP,FTP,TELNETПодождите, а какой протокол вы используете? Сервер не знает. но если вы укажете порт, как80, сервер будет знать, что вы хотите использоватьHTTPпротокол, то он естественно будет передан обработчику соответствующего протокола для обработки.

В качестве аналогии подумайте о транспортном уровне как о торговце курьера. Ответственный мерчендайзер (использующийTCPСоглашение) гарантирует, что экспресс-доставка будет доставлена ​​заказчику. Если она не может быть доставлена, компания отправит ее повторно. Безответственный мерчендайзер (использующийUDPДоговорной) слой несет ответственность только за доставку экспресса в указанное заказчиком место, независимо от того, доставлен экспресс заказчику или нет.

Сетевой уровень

Сетевой уровень отвечает за передачу данных на адрес назначения. Адрес назначения может быть определенным адресом, образованным путем соединения нескольких сетей через маршрутизатор. Следовательно, этот уровень в основном отвечает за адресацию и маршрутизацию. В основном поIP,ICMPсостоит из двух протоколов.

Сетевой уровень отправляет данные от хоста на передающей стороне к хосту на принимающей стороне.Между двумя хостами может быть много каналов передачи данных, но сетевой уровень отвечает за поиск относительно гладкого пути для передачи данных. Передаваемый адрес использует IP-адрес. IP-адрес чем-то похож на наш адрес проживания, и наш адрес проживания можно постепенно сужать от провинции до города, а затем до улицы до нашего адреса проживания. IP-адреса также имеют возможность в конечном итоге достигать адреса назначения, постоянно перенаправляя на более близкий IP-адрес. Как выбрать этот путь, зависит от сетевого уровня.

Это как быть планировщиком маршрутов в курьерской компании. У экспресс-компании много распределительных центров.В зависимости от положения распределительного центра (независимо от того, перегружен он или нет), найдите путь через n распределительных центров для перевозки товаров (данных) по дороге.

канальный уровень

Этот уровень отвечает за передачу данных между узлами, которые взаимосвязаны на физическом уровне. Например, связь между двумя узлами, подключенными к 1 Ethernet. Общие протоколыHDLC,PPP,SLIPЖдать.

Канальный уровень делит последовательность 0, 1 на осмысленные кадры данных и передает их на противоположный конец (генерация и прием кадров данных). Например, это может быть лучше понято.В настоящее время данные, которые необходимо передать, рассматриваются как вода из разных источников.Если она выливается непосредственно в бассейн, невозможно отличить воду из разных источников. Но если налить в бутылку воду из разных источников и промаркировать ее, то можно отличить воду из разных источников. Вот почему он делится на значимые кадры данных и передается партнеру. В то же время следует отметить, что уровень канала передачи данных отвечает только за транспортировку данных на два конца физического соединения и не отвечает за отправку их непосредственно на конечный адрес.

Уровень канала передачи данных можно рассматривать как водителей курьерской компании, которые водят автомобили и перевозят упакованные товары (фреймы данных) из одного города (физического узла) в другой город.

физический слой

Физический уровень отвечает за обмен между битовым потоком 0,1 (последовательность 0,1) и уровнем напряжения и миганием света. Типичные протоколыRS 232C,RS 449/422/423,V.24а такжеX.21,X.21bisЖдать.

Выглядя высоким, он на самом деле преобразует 0 и 1 данных в электрические или оптические сигналы. Он передается на указанный адрес через такие среды, как оптическое волокно, витая пара или даже радиоволны. Концентраторы, повторители, модемы и т. д. в процессе передачи также относятся к среде передачи физического уровня. Физический уровеньOSIФизическая основа семиуровневой модели, без которой невозможна передача данных.

Физический уровень переносится физическими объектами, поэтому, по аналогии, транспортные средства, такие как дороги, автомобили и самолеты, которые перевозят товары (данные), являются символами физического уровня.

Слишком далеко,OSIКратко представлены функции и протоколы семиуровневой модели~

резюме

Вышеупомянутое простоOSIНекоторое поверхностное введение в семиуровневую модель, надеюсь, поможет вам лучше понять ее. Однако из-за нехватки места и отсутствия у меня способностей в семислойной модели есть много деталей, которые еще не освещены.

Спасибо, что читаете здесь~ Я надеюсь, что эта статья будет вам полезна. Поскольку у меня нет глубоких знаний в этом аспекте, неизбежно будут ошибки и упущения. Надеюсь, вы дадите мне пощечину и дадите мне знать, где я ошибаюсь. Я обещаю исправить это в ближайшее время~ Спасибо!

использованная литература

Графический TCP/IP

Введение в интернет-протокол (1)

Эталонная модель взаимодействия открытых систем