Изучение телекоммуникации в компьютерных системах

1656543156 izuchenie telekommunikaczii v kompyuternyh sistemah

от Шер Дон

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

AboxQNs-z1kZCMDrUuPqdsHzdyVLBBE5MeFL

Обзор

В этой серии мы будем рассматривать такие основы, как:
(Часть 1) Как работает DNS?
(Часть 2) Сетевой стек, модель OSI [You are here!]
(Часть 3) Методы и форматы HTTP
(Часть 4) Идентификация клиента
(Часть 5) Основная/Дайджест-аутентификация
(Часть 6) HTTPS, работающий с SSL/TLS

Модель OSI

Модель взаимосвязи открытых систем (OSI) – это стандартизированная модель телекоммуникаций в компьютерных системах. Он рассматривает не основную технологию, а слои, участвующие в коммуникации. Давайте исследуем разные слои в модели OSI:

Yc4ZTugFjR4A1zuGQqAQbN6Ez77yBttblRUI
Типичная 5-слойная модель OSI

1. Уровень программы

Этот уровень позволяет программам общаться через сеть после установления соединения, например от веб-браузера (программы) к серверу. Примеры протоколов на этом уровне включают HTTP и TELNET.

Протокол передачи гипертекста (HTTP)

Набор правил для передачи файлов через Интернет. Например, когда вы вводите URL-адрес в браузер, браузер отправляет HTTP-запрос для веб-страницы. Затем хост возвращает веб-страницу вместе со всеми элементами, такими как изображение, текст, видео, стилизованные шрифты и т.д.

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

Этот уровень отвечает за передачу сообщений между хостом. Примеры протоколов на этом уровне включают TCP и UDP.

Протокол управления передачей (TCP)

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

aZwDUnYpTUmP4-20iIQpxYRqP2PGJRAI52N5

Пользователь, запрашивающий данные, отправит на сервер пакет данных SYN с запросом синхронизации. Затем сервер ответит пользователю SYN-ACK, что указывает, что он сделал признали пакет данных, и вы также хотели бы подключиться. Таким образом, соединение устанавливается, когда пользователь посылает серверу последний ACK.

TCP наиболее распространен благодаря своей элегантности, в которой он способен предложить следующее:

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

Надежность
Используя контрольные суммы, он гарантирует, что передаваемые и полученные пакеты данных одинаковы. Если отсутствуют/повреждены пакеты, он запрашивает повторную передачу пакетов данных, отправляя отправителю сообщение NACK.

Заказать
Пакеты данных нумеруются и передаются. Таким образом, TCP обеспечит переупорядочение полученных пакетов перед доставкой программы.

Управление потоком
Скорость передачи данных регулируется, чтобы повысить эффективность, одновременно предотвращая переполнение/занижение буфера, когда данные посылаются быстрее, чем получатель может их обработать, и наоборот.
Механика по этому объясняется ниже в разделе TCP Slow Start.

Мультиплексирование
По сути, он способен передавать несколько потоков информации одновременно через один и тот же сокет. Это делается через разные порты на сокете. Мы обсудим отличия между мультиплексированием и конвейером далее в статье.

Протокол дейтаграмм пользователя (UDP)

Хотя он похож на TCP, он протокол без соединения. Это полная противоположность TCP, что делает его ненадежным и неупорядоченным. Пропущенные пакеты не будут повторно переданы, что приведет к пробелам в данных.

-YFU7rjDOESeBDk4iwsJJ3DXbF7kTF4FPKPQ

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

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

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

Интернет-протокол (IP)

Определяет структуру пакетов данных, а также обозначает их информацию об источнике и назначении.

Информация об источнике и назначении представлена ​​в виде IP-адресов, которые могут быть в форме 104.16.121.127(IPv4), или 2001:db8:0:1234:0:567:8:1(IPv6).

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

Визуализация маршрутов

Использование tracert google.comмаршрут можно проследить от клиентской стороны (вашего компьютера) до хоста (google.com).

hcYgb-j6sNT4L3em4eSD-K5DzC798H6zwYDn

Сверху вы можете увидеть маршрут, начинающийся с моего устройства 192.168.1.254 к маршрутизатору 10.243.128.1перед прохождением через Интернет-провайдера (ISP), расположенного в Португалии, и так далее.

Дополнительные слои

Модель TCP/IP

75nPgdIHhsTD5xSIbj1bTjRlNryTU3291Ndo
TCP запросит повторную передачу утраченных пакетов данных и упорядочивает их

IP отвечает только за структуру пакета данных. Таким образом, он не повредит, если пакет данных будет поврежден или потерян. Здесь вступает в игру TCP, нумеруя пакеты данных перед отправкой клиенту. На стороне клиента TCP запрашивает повторную передачу утраченных/поврежденных пакетов, а затем переставляет пакеты данных.

Модель HTTP/TCP

Как мы уже упоминали ранее, HTTP теперь может запрашивать через соединение, созданное TCP Handshake. Но как они дополняют друг друга?

Постоянные соединения HTTP
Это позволит получить несколько запросов/ответов HTTP на одном TCP-соединении, а не открывать новое соединение во время каждого запроса/ответа.

-F9J9R9grtdhm7aQ1Y1ptqz1xL8Ft8c4x-0T
Образец ответа для постоянного подключения

Это делается через HTTP Header, где Connection: Keep-Alive. По умолчанию соединение закроется только после другого ответа. Connection: Close посылается через 30 секунд простоя.

Медленный запуск TCP
Как уже упоминалось ранее, TCP поддерживает управление потоками. Это делается с помощью TCP Slow Start, который является формой предотвращения перегрузки сети.

rV1aQqU5LxUsUJaX1-jDTn1VVCpKORoM10lb

Отправитель имеет окно перегрузки (CWND), а получатель имеет окно получателя (RWND). Если данные больше, чем окно перегрузки/приемника, буфер будет недостаточно/переполнен соответственно.

Чтобы предотвратить это, отправитель начнет отправлять пакет данных с небольшим окном перегрузки (CWND = 1), чтобы медленно исследовать получатель на наличие окна получателя.

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

Работая вместе
Таким образом, TCP Slow Start может определить оптимальное количество пакетов данных для отправки к закрытию соединения. Это позволит оптимизировать объем данных, отсылаемых от хоста к клиенту, без риска переполнения буфера (данные посылаются быстрее, чем их можно получить).

Другие функции HTTP

HTTP Pipelining

Lw7lr7o1l1yyIyMDwRugYYE0DR4jjgNoxFuE

Эта функция в версии HTTP/1.1 позволяет одновременно посылать несколько запросов на один и тот же сокет, не дожидаясь ответа. Однако в более новой версии HTTP/2 его заменили на мультиплексирование TCP.

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

В мультиплексировании порядок не имеет значения. Это позволит ускорить время доставки.

Эти методы лучше всего использовать для идемпотентного метода, который является методами, которые соответствуют независимо от количества запрашиваемых раз — например, многократный запрос веб-страницы будет отвечать на ту же веб-страницу.

Параллельные соединения

Вы когда-нибудь открывали веб-страницу и видели, как несколько компонентов веб-страницы (панель видео, эскизы, кнопки) загружаются одновременно?

kSoqraJbI4QgwnlADZzo32d5E2dQb2408ODU
Одновременная загрузка нескольких компонентов Фото предоставлено Cloudflare Mobile SDK

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

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

Вывод

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

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

Пока я прошел через 5-слойную модель OSI, тогда как существует также 7-слойная модель OSI, которая также касается идентификации, аутентификации и шифрования данных.

Это часть 2 серии HTTP Introductions. Первую статью о важности DNS-серверов вы можете прочесть в Части 1. Давайте исследуем структуру HTTP-запросов далее в Части 3!

Привет! Я Шер Дон, сейчас учусь по специальности Data Science. Я технический директор Paralegal Bot, и вы можете найти мой веб-сайт ниже. Спасибо, что прочли!

Раздраженный;
Качественный контент Мы предлагаем лучший контент для сложных для понимания понятий. Мы были там и чувствовали то же, что и вы…www.piqued.co

Добавить комментарий

Ваш адрес email не будет опубликован.