Skip to content

1. Архитектура современных информационных систем

  • Основные сетевы компоненты
  • Клиен серверная архитектура
  • HTTP
  • SSL/TLS
  • DNS

Основные сетевы компоненты

Устройства - Компьютеры, смартфоны, серверы — устройства, которые подключаются к Интернету. - Маршрутизаторы (роутеры) — устройства, которые направляют данные между сетями. - Серверы — мощные компьютеры, которые хранят и предоставляют данные (например, веб-сайты).

alt text

Типы подключения к интернету: - По выделенной линии(проводное). - По беспроводной сети Wi-Fi (Вай-Фай). - По модему (через телефонную сеть). - По беспроводному модему (мобильный интернет).

[text](https://lh3.googleusercontent.com/proxy/Pj1zmG1EttwF_0EBrUzvi35ShJqBNQhyPFmOJ7ppfvIUIVtCSxfchWnXFW6xV7dSn5k0KAttaM-hqm-4UnQt68v5uqiccEWXcLSEya4FfQ)

Витая пара, коаксиальный кабель и оптоволокно представляют собой три основных типа кабелей, используемых для передачи данных, каждый из которых имеет свои уникальные свойства и области применения. Витая пара состоит из двух изолированных проводников, скрученных вместе, и часто используется в сетевых кабелях, таких как Ethernet. Она бывает экранированной (STP) и неэкранированной (UTP), причем экранированная версия лучше защищена от электромагнитных помех. Скорость передачи данных для витой пары обычно достигает 1 Гбит/с на расстоянии до 100 метров, что делает ее подходящей для локальных сетей и телефонных систем.

Коаксиальный кабель, в свою очередь, имеет более сложную структуру, состоящую из центрального проводника, окруженного изоляцией, металлическим экраном и внешней оболочкой. Это обеспечивает высокую степень защиты от внешних помех и позволяет достигать скорости передачи данных до 10 Гбит/с и выше. Коаксиальный кабель способен передавать сигналы на большие расстояния, до нескольких километров, без значительных потерь, что делает его идеальным для передачи телевизионных сигналов и в системах видеонаблюдения. Хотя он обычно дороже витой пары, его стоимость все же ниже, чем у оптоволокна.

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

Сети бывают PAN — персональная сеть

LAN — локальная сеть (небольшие сети, например, в доме или офисе)

CAN — кампусная сеть

MAN — региональная сеть

WAN — глобальная сеть (объединяют множество локальных сетей (например, Интернет)

GAN — глобальная зональная сеть

VPN — виртуальная частная сеть

alt text

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

Основные сетевые протоколы включают: TCP (Transmission Control Protocol): Протокол, обеспечивающий надежную передачу данных между устройствами. Он разбивает данные на пакеты, контролирует их доставку и обеспечивает их правильный порядок. TCP используется в таких приложениях, как веб-серфинг и электронная почта.

IP (Internet Protocol): Протокол, отвечающий за адресацию и маршрутизацию пакетов данных в сети. IP определяет, как данные должны быть упакованы и адресованы, чтобы достичь конечного пункта назначения. Существует две версии: IPv4 и IPv6.

HTTP (Hypertext Transfer Protocol): Протокол, используемый для передачи веб-страниц и других ресурсов в интернете. Он работает поверх TCP и позволяет клиентам (например, веб-браузерам) запрашивать данные у серверов.

FTP (File Transfer Protocol): Протокол, предназначенный для передачи файлов между компьютерами в сети. Он позволяет пользователям загружать и скачивать файлы, а также управлять файлами на удаленных серверах.

DNS (Domain Name System): Протокол, который переводит доменные имена (например, www.example.com) в IP-адреса, позволяя пользователям легко находить ресурсы в интернете.

DHCP (Dynamic Host Configuration Protocol): Протокол, который автоматически назначает IP-адреса устройствам в сети, упрощая процесс подключения новых устройств.

TCP и IP часто используются вместе (TCP/IP), где IP отвечает за маршрутизацию пакетов, а TCP — за их надежную доставку. HTTP работает поверх TCP, обеспечивая передачу веб-контента, а DNS помогает пользователям находить нужные ресурсы, переводя удобные для восприятия доменные имена в машинные IP-адреса.

alt text

Алгоритм работы Интернета 1. Вы вводите https://www.vk.com в браузере. 2. Браузер отправляет запрос DNS-серверу, чтобы узнать IP-адрес vk.com. 3. DNS-сервер возвращает IP-адрес. 4. Браузер отправляет HTTPS-запрос на сервер с этим IP-адресом. 5. Сервер возвращает HTML-страницу. 6. Браузер отображает страницу на вашем устройстве.

Пакеты Данные передаются не целиком, а разбиваются на пакеты. Каждый пакет содержит: - Данные (часть файла, сообщения и т.д.). - IP-адрес отправителя и получателя. - Номер пакета (чтобы собрать их в правильном порядке).

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

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

alt text

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


Клиен серверная архитектура

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

Клиент-серверная архитектура — это модель взаимодействия между двумя типами устройств: - Клиент — устройство, которое запрашивает данные или услуги. - Сервер — устройство, которое предоставляет данные или услуги.

Клиент и сервер взаимодействуют через сеть (например, Интернет) с использованием протоколов (например, HTTP, FTP, TCP/IP).

alt text

Пример работы 1. Запрос: Клиент отправляет запрос серверу. Например, вы вводите адрес сайта в браузере. 2. Обработка: Сервер получает запрос, обрабатывает его (например, находит нужную страницу). 3. Ответ: Сервер отправляет результат клиенту (например, HTML-страницу). 4. Отображение: Клиент (браузер) отображает полученные данные.

Наиболее популярные протоколы - HTTP/HTTPS: Для передачи веб-страниц. - FTP: Для передачи файлов. - SMTP/POP3/IMAP: Для работы с электронной почтой. - TCP/IP: Основной протокол для передачи данных.

Типы серверов

alt text

Веб-сервер - Предоставляет веб-страницы и приложения. - Примеры: Apache, Nginx.

Сервер баз данных - Хранит и управляет данными. - Примеры: MySQL, PostgreSQL, MongoDB.

Файловый сервер - Хранит и предоставляет доступ к файлам. - Примеры: FTP-сервер, облачные хранилища.

Почтовый сервер - Обрабатывает электронную почту. - Примеры: Microsoft Exchange, Postfix.

![Типы серверов](https://via.placeholder.com/600x400?text=Типы+серверов)

Преимущества клиент-серверной архитектуры

Централизованное управление - Все данные хранятся на сервере, что упрощает управление и резервное копирование.

Масштабируемость - Можно увеличивать мощность серверов для обработки большего числа запросов.

Безопасность - Серверы могут быть защищены с помощью брандмауэров, шифрования и других технологий.

Разделение обязанностей - Клиент отвечает за интерфейс, а сервер — за обработку данных.

Недостатки клиент-серверной архитектуры

Зависимость от сервера - Если сервер выйдет из строя, клиенты не смогут получить данные.

Высокая стоимость - Серверы требуют мощного оборудования и обслуживания.

Сложность настройки - Требуется квалификации для настройки и поддержки серверов.

Примеры использования

Веб-сайты - Браузер (клиент) запрашивает страницы с веб-сервера.

Онлайн-игры - Игровое приложение (клиент) взаимодействует с игровым сервером.

Облачные сервисы - Приложения (клиенты) используют облачные серверы для хранения данных и вычислений.

Альтернативы клиент-серверной архитектуре

Peer-to-Peer (P2P) - Устройства взаимодействуют напрямую без центрального сервера. - торренты, Skype (ранние версии).

Децентрализованные системы - Данные хранятся на множестве устройств (например, блокчейн).


HTTP

HTTP (Hypertext Transfer Protocol) — это протокол, который используется для передачи данных в интернете. Он является основой для обмена информацией между клиентами (например, веб-браузерами) и серверами. HTTP позволяет запрашивать и передавать различные ресурсы, такие как веб-страницы, изображения, видео и другие файлы.

alt text

Основные принципы работы HTTP

Клиент-серверная модель: HTTP работает по модели "клиент-сервер", где клиент отправляет запросы к серверу, а сервер отвечает на эти запросы. Клиентом обычно является веб-браузер, а сервером — веб-сервер, на котором размещены запрашиваемые ресурсы.

Запросы и ответы: Взаимодействие между клиентом и сервером происходит через HTTP-запросы и HTTP-ответы. Запросы содержат информацию о том, какой ресурс запрашивается, а ответы содержат сам ресурс и статус выполнения запроса.

Методы HTTP: HTTP определяет несколько методов, которые указывают, какое действие необходимо выполнить:

  • GET: Запрашивает ресурс с сервера.

  • POST: Отправляет данные на сервер, например, при заполнении форм.

  • PUT: Обновляет существующий ресурс на сервере.

  • DELETE: Удаляет ресурс с сервера.

Статусы ответов: Каждый HTTP-ответ содержит код состояния, который указывает на результат выполнения запроса. Например:

200 OK: Запрос выполнен успешно.

404 Not Found: Запрашиваемый ресурс не найден.

500 Internal Server Error: Ошибка на стороне сервера.

HTTP-запрос (request) состоит из:

  • Метода (например, GET или POST)

  • URL (адрес запрашиваемого ресурса)

  • Версии протокола (например, HTTP/1.1)

  • Заголовков (дополнительная информация, например, тип контента)

  • Тела запроса (опционально, используется в методах, таких как POST)

alt text

HTTP-ответ (response) состоит из:

  • Версии протокола

  • Кода состояния

  • Сообщения состояния (например, "OK" для 200)

  • Заголовков (информация о сервере, типе контента и т.д.)

  • Тела ответа (содержит запрашиваемый ресурс)

alt text

Современные версии HTTP

HTTP/1.1 Это наиболее распространенная версия протокола, которая была стандартизирована в 1999 году. Она поддерживает постоянные соединения (keep-alive), что позволяет отправлять несколько запросов по одному соединению, уменьшая задержки.

HTTP/2 Эта версия была представлена в 2015 году и включает множество улучшений по сравнению с HTTP/1.1:

Мультиплексирование: Позволяет отправлять несколько запросов и получать ответы одновременно по одному соединению, что значительно увеличивает скорость загрузки.

Сжатие заголовков: Уменьшает объем передаваемых данных, что также ускоряет загрузку.

Приоритеты: Позволяет клиенту указывать приоритеты для запросов, что помогает оптимизировать загрузку ресурсов.

HTTP/3: Это самая новая версия протокола, которая использует QUIC (Quick UDP Internet Connections) вместо TCP. QUIC обеспечивает более быструю установку соединений и улучшенную обработку потерь пакетов, что делает HTTP/3 более эффективным для современных веб-приложений.


SSL/TLS


DNS

DNS (Domain Name System) — это система, которая преобразует удобные для человека доменные имена (например, google.com) в IP-адреса, которые понимают компьютеры. Без DNS нам пришлось бы запоминать числовые адреса сайтов, что крайне неудобно. В этой лекции мы разберем, как устроена и работает DNS, какие компоненты в нее входят и как она обеспечивает стабильность и безопасность Интернета.

Основная задача DNS DNS переводит доменные имена (например, youtube.com) в IP-адреса (например, 142.250.185.14), чтобы браузеры и другие программы могли находить нужные серверы в Интернете.

  • Людям проще запоминать слова (доменные имена), чем числа (IP-адреса).
  • IP-адреса могут меняться, но доменные имена остаются постоянными.
  • DNS позволяет распределять нагрузку между серверами.

Основные компоненты DNS

Доменное имя - Это адрес сайта, который вы вводите в браузере (например, example.com). - Состоит из нескольких частей: - Корневой домен (. — невидимая точка в конце, например, example.com.). - Домен верхнего уровня (TLD) (например, .com, .org, .ru). - Домен второго уровня (например, example в example.com). - Поддомен (например, www в www.example.com).

DNS-серверы - Это специальные серверы, которые хранят информацию о доменах и их IP-адресах. - Существует несколько типов DNS-серверов: - Корневые серверы — хранят информацию о доменах верхнего уровня (TLD). - Серверы TLD — хранят информацию о доменах второго уровня. - Авторитативные серверы — хранят информацию о конкретных доменах. - Рекурсивные серверы — выполняют запросы от имени клиентов.

DNS-запись или ресурсные записи - Это запись в базе данных DNS, которая связывает доменное имя с IP-адресом или другой информацией. - Основные типы DNS-записей: - A-запись — связывает домен с IPv4-адресом. - AAAA-запись — связывает домен с IPv6-адресом. - CNAME-запись — связывает домен с другим доменом (алиас). - MX-запись — указывает почтовый сервер для домена. - TXT-запись — содержит текстовую информацию (например, для проверки владения доменом).

alt text

Шаги разрешения доменного имени 1. Запрос от клиента: Вы вводите доменное имя (например, example.com) в браузере. 2. Обращение к рекурсивному DNS-серверу: - Браузер отправляет запрос к рекурсивному DNS-серверу (обычно предоставляется вашим интернет-провайдером). 3. Поиск корневого сервера: - Рекурсивный сервер обращается к корневому DNS-серверу, чтобы узнать, где находится информация о домене верхнего уровня (.com). 4. Поиск сервера TLD: - Корневой сервер направляет запрос к серверу домена верхнего уровня (.com). 5. Поиск авторитативного сервера: - Сервер TLD указывает на авторитативный сервер, который хранит информацию о домене example.com. 6. Получение IP-адреса: - Авторитативный сервер возвращает IP-адрес для example.com. 7. Ответ клиенту: - Рекурсивный сервер передает IP-адрес вашему браузеру. 8. Установка соединения: - Браузер использует IP-адрес для подключения к серверу и загрузки сайта.

Процесс DNS

Кэширование - Чтобы ускорить процесс, DNS-серверы и браузеры кэшируют (сохраняют) результаты запросов. - Если домен уже был запрошен ранее, его IP-адрес может быть получен из кэша без повторного обращения к серверам.

Типы DNS-запросов

Рекурсивный запрос - Клиент (например, браузер) отправляет запрос рекурсивному DNS-серверу, который полностью обрабатывает запрос и возвращает результат.

Итеративный запрос - DNS-сервер возвращает клиенту ссылку на другой сервер, который может помочь в разрешении запроса. Клиент сам продолжает процесс.

Угрозы - DNS-спуфинг: Злоумышленники подменяют DNS-запросы, чтобы перенаправить пользователя на фишинговый сайт. - DDoS-атаки: Атаки на DNS-серверы, чтобы сделать их недоступными.

Защита - DNSSEC (DNS Security Extensions): Технология, которая добавляет цифровую подпись к DNS-записям, чтобы предотвратить подмену. - DNS over HTTPS (DoH): Шифрование DNS-запросов для защиты от перехвата.


WEB3

VPN