Сетевые приложения и сервисы
Сетевые приложения и сервисы — это программы и протоколы, которые работают на периферии сети и предоставляют ценность пользователям — от веба и электронной почты до системы доменных имен и сетей доставки контента — построенные на транспортных сервисах, расположенных под ними.
Definition
Прикладной уровень — это самый верхний уровень протоколов, где сетевые прикладные процессы обмениваются сообщениями в соответствии с протоколами, специфичными для приложений; сетевые сервисы — это поддерживающая инфраструктура, такая как именование и доставка контента, от которой зависят эти приложения.
Scope
Эта область охватывает прикладной уровень и поддерживающие его инфраструктурные сервисы: архитектуры приложений (клиент-серверные и одноранговые), основные прикладные протоколы, такие как HTTP, SMTP и FTP, систему доменных имен, которая сопоставляет удобочитаемые имена с адресами, сети доставки контента, которые реплицируют контент рядом с пользователями, и обзор сетевой безопасности в применении к взаимодействующим системам. Она исключает механизмы транспортного уровня, на которые она опирается, фокусируясь вместо этого на сервисах, предоставляемых приложениями, и протоколах, на которых они работают.
Sub-topics
Core questions
- Как структурированы сетевые приложения — клиент-серверные или одноранговые — и каковы их компромиссы?
- Как основные прикладные протоколы, такие как HTTP и SMTP, определяют форматы сообщений и взаимодействия?
- Как система доменных имен преобразует имена в адреса масштабируемым, распределенным способом?
- Как сети доставки контента уменьшают задержку и нагрузку, реплицируя контент рядом с пользователями?
- Какие свойства безопасности — конфиденциальность, целостность, аутентификация — должны обеспечивать сетевые приложения, и как?
Key concepts
- клиент-серверная архитектура
- одноранговая архитектура
- HTTP и веб
- протоколы электронной почты (SMTP, IMAP)
- система доменных имен (DNS)
- кэширование и иерархия DNS
- сети доставки контента (CDN)
- сокеты и API приложений
- конфиденциальность, целостность и аутентификация
- безопасность транспортного уровня (TLS)
Key theories
- Клиент-серверные и одноранговые архитектуры
- Приложения организуются либо вокруг постоянно работающих серверов, к которым обращаются клиенты, что централизует управление, но концентрирует нагрузку, либо как одноранговые системы, где участвующие хосты как запрашивают, так и обслуживают, что масштабируется с ростом числа пользователей, но усложняет управление и безопасность.
- Иерархическое, распределенное именование (DNS)
- Система доменных имен разрешает имена в адреса через иерархию делегированных авторитетных серверов и агрессивное кэширование, предоставляя масштабируемый, отказоустойчивый сервис поиска, который ни одна организация не контролирует полностью.
- Репликация и распространение контента
- Сети доставки контента размещают копии контента на серверах рядом с пользователями и направляют каждый запрос к подходящей реплике, сокращая задержку, нагрузку на исходный сервер и трафик магистрали — ключевая причина хорошей производительности крупномасштабных веб- и потоковых сервисов.
Clinical relevance
Прикладной уровень — это то, с чем пользователи фактически взаимодействуют: здесь находятся веб, потоковое мультимедиа, обмен сообщениями и облачные сервисы. DNS является критически важной зависимостью для почти каждого онлайн-взаимодействия, и сбои в нем широко распространяются. Сети доставки контента переносят большую долю интернет-трафика и играют центральную роль в масштабной доставке видео и программного обеспечения, в то время как безопасность на прикладном уровне через TLS защищает конфиденциальность и целостность повседневной связи.
History
Ранними интернет-приложениями были электронная почта и передача файлов; Всемирная паутина, изобретенная Тимом Бернерсом-Ли около 1990 года с HTTP и HTML, превратила Интернет в средство массовой информации. Система доменных имен (Мокапетрис, середина 1980-х годов) заменила плоский файл имен хостов масштабируемым распределенным каталогом. Сети доставки контента появились в конце 1990-х годов, чтобы справиться с ростом веба, а шифрование на прикладном уровне развилось из SSL в TLS для обеспечения безопасности связи.
Debates
- Централизованные клиент-серверные облачные сервисы против децентрализованных одноранговых систем
- Централизованные облачные архитектуры предлагают управляемость и стабильную производительность, но концентрируют контроль и создают единые точки отказа, в то время как одноранговые и децентрализованные конструкции распределяют нагрузку и контроль ценой сложности; этот баланс повторяется в файлообмене, доставке контента и развивающихся децентрализованных веб-проектах.
Key figures
- Tim Berners-Lee
- Paul Mockapetris
- Roy Fielding
- Jon Postel
Related topics
Seminal works
- kurose2021
- rfc9110
- rfc1035
Frequently asked questions
- Что делает система доменных имен?
- DNS преобразует удобные для человека имена, такие как example.com, в IP-адреса, которые необходимы сетевому уровню для маршрутизации пакетов. Это распределенная, иерархическая база данных с кэшированием, поэтому поиск происходит быстро, и система масштабируется на весь Интернет без необходимости хранения всех имен на одном сервере.
- Как сеть доставки контента ускоряет работу в интернете?
- CDN хранит копии контента на множестве серверов, расположенных по всему миру, и направляет запрос каждого пользователя к ближайшей копии. Это сокращает сетевой путь, уменьшая задержку и потерю пакетов, а также разгружает исходный сервер и снижает трафик на дальние расстояния, что в совокупности улучшает скорость и надежность.