Как работают сетевые программы

Чем отличаются соединения в Интернете и в локальной сети? Как компьютеры обмениваются данными, и как можно это отследить?

Время чтения: 8 мин

Открыть/закрыть навигацию по статье

  1. Кратко
  2. Как понять
  1. Работа сетевых устройств
  2. Работа с данными на уровне приложений
  3. Сетевая служба и сетевые сервисы
  1. Игорь Коровченко советует

Контрибьюторы:

Обновлено 24 мая 2022

Кратко

Скопировать ссылку «Кратко» Скопировано

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

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

Winderton / Основы программирования. TCP/IP.

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

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

Передача файла по сети в виде пакетов

Как понять

Скопировать ссылку «Как понять» Скопировано

Чтобы работать с сетью, необходимо представлять себе, как работает сетевой протокол. Например, чтобы отобразить страницу в браузере, нужно задействовать протокол HTTP. Это протокол прикладного уровня (согласно модели OSI), который позволяет передавать данные между клиентом и сервером, как показано на рисунке:

Клиент-серверная архитектура на примере работы протокола HTTP

Протокол HTTP и модель OSI подробно описаны в статьях:

Разберём примерный сценарий работы протокола HTTP:

  1. Пользователь набирает адрес страницы (имя домена и внутренний путь на сайте) в адресной строке браузера и запускает загрузку страницы.
  2. Браузер обращается к сетевой службе на компьютере и формирует сетевой запрос. Запрос состоит из текстовой информации о целевой странице.
  3. Запрос разбивается на пакеты и отправляется путешествовать по сети Интернет. Адресом целевого сетевого устройства будет ближайший DNS-сервер (DNS — Domain Name System). DNS-сервер — это специальный сервер, который знает, на каких сетевых адресах расположен сайт.
  4. DNS-сервер меняет адрес целевого сетевого устройства на адрес сервера, на котором расположен запрашиваемый пользователем сайт, и отправляет пакеты дальше по сети.
  5. Запрос в виде пакетов доходит до сетевой службы сервера, собирается из пакетов и обращается к веб-серверу.
  6. Веб-сервер по запросу от пользователя формирует ответ — запрашиваемую HTML-страницу.
  7. HTML-страница и информация об адресе компьютера пользователя отдаются сетевой службе, которая разбивает всё на пакеты и отправляет в сеть.
  8. Сетевая служба пользователя принимает набор пакетов с HTML-страницей, объединяет их в один файл и отдаёт браузеру.
  9. Браузер отображает HTML-страницу. Ресурсы этой страницы (шрифты, картинки, видео, стили, JavaScript) догружаются по похожей схеме.

Работа сетевых устройств

Скопировать ссылку «Работа сетевых устройств» Скопировано

Ethernet на пальцах

У каждого сетевого устройства есть собственный сетевой адрес. В Интернете это IP-адрес (Internet Protocol — межсетевой протокол). Благодаря этому протоколу пакеты, которые отправляются по сети, находят наиболее короткий путь от источника к адресату.

Кроме IP-адреса используются ещё и порты. Порт — это число, которое обозначает номер соединения. Порт необходим для того, чтобы определить программу или драйвер устройства в сети, которые будут обрабатывать пришедший пакет или отсылать исходящий. Количество портов ограничено и находится в диапазоне от 1 до 65 535.

Для передачи пакетов от одного сетевого устройства к другому в Интернете используются протоколы транспортного уровня, которые делятся на две группы: с проверкой целостности данных и без неё.

Протоколы с проверкой целостности данных используются для передачи веб-страниц или файлов. Они проверяют целостность данных, запрашивают утерянные пакеты или пакеты, в которых была найдена ошибка. Самые распространённые — TCP (Transmission Control Protocol — протокол управления передачей) и TLS (Transport Layer Security — протокол защиты транспортного уровня).

Читайте также:
Долго удаляется программа с компьютера

Протоколы без проверки целостности используются для передачи видео или аудио, потому что они позволяют передавать больше данных, но с потерями. Пример такого протокола — это UDP (User Datagram Protocol — протокол пользовательских датаграмм), который не обращает внимания на утерянные пакеты или пакеты с ошибками.

Пары TCP/IP, TLS/IP или UDP/IP обеспечивают передачу пакетов между сетевыми устройствами и обычно называются стеками протоколов передачи данных. В современных операционных системах служба для работы с пакетами, адресами и портами часто реализуется на уровне ядра. Правила же обработки пакетов можно настраивать.

Работа с данными на уровне приложений

Скопировать ссылку «Работа с данными на уровне приложений» Скопировано

В адресной строке браузера вы наверняка видели буквы http или https. Это протоколы прикладного уровня, которые описывают уже не пакеты и адреса сетевых устройств, а правила формирования набора данных для передачи того или иного формата. Часто http ассоциируется с небезопасным сайтом, многие браузеры сообщают нам об этом.

Применение HTTPS внесло ряд новых правил обработки данных, которые отныне не должны передаваться в открытом виде, а должны шифроваться. В протоколе HTTP используется TCP в качестве транспортного протокола, который совсем никак не защищает данные. Если подключиться к одному из сетевых устройств, через которое проходят пакеты, то можно прочитать их содержимое. Протокол HTTPS использует другой протокол транспортного уровня — TLS, который подразумевает шифрование пакетов. Данные пользователя передаются в зашифрованном виде.

Подробнее о том, как защитить пользователей веб-приложений, читайте в статье «Безопасность веб-приложений и распространённые атаки».

Браузер — это одно из приложений на компьютере. Он использует один или несколько сетевых портов для отправки данных на сервер и их получения через протоколы HTTP/HTTPS, UDP и другие. Так же работает и почтовый клиент, только по другим протоколам — IMAP, POP3, SMTP. Мессенджеры тоже используют определённые протоколы для обмена сообщениями, и эти протоколы активно развиваются.

Некогда популярные протоколы ICQ и IRQ сменились мессенджерами на основе протокола XMPP (прежнее название Jabber). Протоколы прикладного уровня лишь определяют формат передаваемых данных.

Сетевая служба и сетевые сервисы

Скопировать ссылку «Сетевая служба и сетевые сервисы» Скопировано

Сетевая служба организует передачу данных на уровне операционной системы. Она обеспечивает создание соединения (сокета) для сетевого сервиса и привязку его к определённому порту. После того как такое соединение создано, сетевая служба посылает все пакеты от сервиса или к сервису через указанный порт. Сетевые сервисы — это конкретные приложения, службы, демоны, которые работают в качестве поставщика данных: веб-серверы, серверы для обмена электронной почтой, серверы сообщений для мессенджеров, FTP-серверы, VPN-серверы, серверы для IP-телефонии и прочее.

Например, в браузере для передачи веб-страниц через протокол HTTPS по умолчанию используется порт 443, то есть https://example.com и https://example.com:443 эквивалентны. Поэтому браузер подставляет :443, даже не отображая это в интерфейсе. Порт даёт понять сетевой службе на сервере, какой сервис будет использоваться для обработки данных, которые приходят в виде пакетов.

Существуют стандарты от IANA (Internet Assigned Numbers Authority — «Администрация адресного пространства Интернет»), в которых описаны номера портов и соответствующие им сетевые сервисы. В стандартах также описаны диапазоны адресов, которые можно использовать для любых задач. Например, локальные веб-серверы запускают на порте 8080 или 8000.

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

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

В этой статье рассматриваются не все инструменты для работы с сетевым окружением. Существуют утилиты для анализа трафика, мониторинга состояния сетевых интерфейсов. Для быстродействия веб-приложения важен детальный анализ не только структуры сети, но и пакетов, которые передаются по сети. Инструменты для проведения такого анализа рассмотрены в статье «Протоколы TCP/UDP».

На практике

Скопировать ссылку «На практике» Скопировано

Источник: doka.guide

Сеть и Интернет

В Windows есть API, компоненты и службы, которые поддерживают использование классическими приложениями сети и Интернета. Они предоставляют:

  • API HTTP.
  • Управление сетью и сетью.
  • DNS и DHCP.
  • Сетевые возможности, которые не зависят от конкретных сетевых реализаций.
  • Служба удаленного доступа.
  • Телефония и факс.
Читайте также:
Как в программе openoffice сделать альбомный лист

В этом разделе

Раздел Описание
Оптимизация доставки (DO) Оптимизация доставки — это управляемая облаком одноранговая служба обновления клиента, которая предоставляет обновления сетевым устройствам организации. Оптимизация доставки позволяет устройствам скачивать обновления из альтернативных источников (например, других одноранговых узлов в сети) в дополнение к серверам Майкрософт. Оптимизация доставки объединяет частичные биты с локальных устройств и частичные биты с серверов Майкрософт для обновления устройств в сетевой среде. Ожидаемым результатом является сокращение использования пропускной способности и более быстрый процесс обновления.
Служба доменных имен (DNS) Система доменных имен (DNS), служба указателя в Microsoft Windows, — это стандартный отраслевой протокол, который находит компьютеры в сети на основе IP-адресов.
Протокол DHCP Api-интерфейс DHCP, также называемый параметрами DHCP-клиента, позволяет клиентам Microsoft Windows запрашивать определенные параметры с DHCP-серверов. Это позволяет клиентам Windows запрашивать параметры конкретного поставщика, предоставляемые через DHCP-серверы.
Служба факсов Служба факсов предоставляет функции факса для клиентов в локальной сети.
Api получения подключенного мастера Программный интерфейс (API) мастера подключения позволяет разработчикам создавать сетевые подключения, подключения к Интернету и виртуальной частной сети (VPN), определять наличие подключения к Интернету и регистрировать страницы мастера для записи необходимых сведений о пользователях для определенных типов подключений.
API сервера HTTP API HTTP-сервера позволяет приложениям обмениваться данными по протоколу HTTP без использования microsoft INTERNET Information Server (IIS).
Вспомогательная служба IP API вспомогательного ip-протокола (IP Helper) позволяет получать и изменять параметры конфигурации сети для локального компьютера.
База сведений об управлении API базы данных управления (MIB) предоставляет набор структур, используемых для хранения данных управления сетью и сетью для ряда технологий, включая службы маршрутизации удаленного доступа, вспомогательный ip-протокол и протокол SNMP.
Служба очередей сообщений (MSMQ) Технология очереди сообщений (MSMQ) позволяет приложениям, работающим в разное время, обмениваться данными между разнородными сетями и системами, которые могут временно находиться в автономном режиме.
Протокол динамического распределения клиентов для многоадресной рассылки адресов (MADCAP) Протокол MADCAP позволяет приложениям получать, обновлять и освобождать адреса многоадресной рассылки.
Сетевые интерфейсы В этом разделе описываются высокоуровневые концепции сетевых интерфейсов в Windows, включая способы их идентификации в коде и их свойства.
Диспетчер списков сетей API network List Manager позволяет приложениям получать список доступных сетевых подключений. Приложения могут фильтровать сети на основе атрибутов и подписей и выбирать сети, наиболее подходящие для их задач. Инфраструктура Network List Manager уведомляет приложения об изменениях в сетевой среде, позволяя приложениям динамически обновлять сетевые подключения.
Управления сетями Функции управления сетью позволяют управлять учетными записями пользователей и сетевыми ресурсами.
Управление общей сетевой папкой Управление общими сетевыми ресурсами позволяет приложениям управлять и отслеживать обмен данными между клиентами и серверами Windows с помощью протокола SMB.
Одноранговая связь Одноранговые технологии используются для упрощения обмена данными в режиме реального времени и совместной работы в распределенных сетях.
Качество обслуживания (QOS) Качество обслуживания (QOS), общепромышленная инициатива, обеспечивает более эффективное использование сети.
Удаленный вызов процедур (RPC) Microsoft Remote Procedure Call (RPC) определяет мощную технологию для создания распределенных клиентских и серверных программ. Заглушки и библиотеки времени выполнения RPC управляют большинством процессов, связанных с сетевыми протоколами и взаимодействием. Это позволяет сосредоточиться на подробных сведениях о приложении, а не на сведениях о сети.
Служба маршрутизации и удаленного доступа Службу удаленного доступа (RAS) можно использовать для создания клиентских приложений. Эти приложения отображают общие диалоговые окна RAS, управляют подключениями и устройствами удаленного доступа, а также управляют записями телефонной книги.
Протокол SNMP Реализация протокола SNMP в Microsoft Windows используется для настройки удаленных устройств, мониторинга производительности сети, аудита использования сети и обнаружения сетевых ошибок или неправильного доступа.
API управления SMB API управления SMB предоставляет классы и методы WMI для управления общими папками и доступом к ним.
Интерфейсы программирования приложений телефонии (TAPI) Программные интерфейсы приложений телефонии Майкрософт поддерживают разработку коммуникационных приложений для Windows.
Протокол Teredo Teredo — это технология перехода IPv6, которая обеспечивает назначение адресов и автоматическое туннелирование между узлами для одноадресного трафика IPv6, если узлы IPv6/IPv4 расположены за одним или несколькими переводчиками сетевых адресов IPv4 (NAT).
API компонента протокола WebSocket API компонента протокола WebSocket включает асинхронные двунаправленные каналы связи по протоколу HTTP, которые работают через существующих сетевых посредников.
Платформа фильтрации Windows Платформа фильтрации Windows (ВПП) — это набор API и системных служб, которые предоставляют платформу для создания приложений фильтрации сети. API ВПП позволяет разработчикам писать код, взаимодействующий с обработкой пакетов, которая выполняется на нескольких уровнях сетевого стека операционной системы. Сетевые данные можно фильтровать и изменять до того, как они достигнут назначения.
Технологии брандмауэра Windows Брандмауэр Windows в режиме повышенной безопасности и связанные технологии брандмауэра позволяют разработчикам совместно использовать подключения к Интернету, защищать подключения с помощью брандмауэра и предоставлять преобразование сетевых адресов (NAT).
Сеть Windows (WNet) Сетевые функции Windows (WNet) позволяют реализовать сетевые возможности в приложении без предоставления разрешений для конкретного поставщика сети или физической реализации сети.
Виртуализация сети Windows Виртуализация сети Windows позволяет клиентским сетям виртуальных машин отделять сети виртуальных машин от физических сетей, обеспечивает гибкость подготовки виртуальных машин и позволяет клиентам переносить СВОИ IP-адреса и топологии в облачные центры обработки данных.
Платформа WINDOWS RSS Платформа WINDOWS RSS — это API, который позволяет приложениям получать доступ к общему списку веб-каналов, коллекции RSS-каналов, на которые подписан пользователь, и управлять ими.
Сокеты Windows 2 Windows Sockets 2 (Winsock) позволяет программистам создавать расширенные приложения Интернета, интрасети и других сетевых приложений для передачи данных приложений по сети независимо от используемого сетевого протокола.
API веб-служб Windows WWSAPI — это реализация SOAP в машинном коде, которая обеспечивает основные функции сетевого взаимодействия, поддерживая набор WS-* и . Семейство протоколов NET-*.
Webdav Веб-распределенная разработка и управление версиями (WebDAV) — это расширение протокола HTTP, которое определяет, как основные функции файлов, такие как копирование, перемещение, удаление и создание, выполняются с помощью ПРОТОКОЛА HTTP.
Службы WINDOWS HTTP (WinHTTP) Службы MICROSOFT Windows HTTP (WinHTTP) предоставляют разработчикам клиентский программный интерфейс HTTP (API) для отправки запросов по протоколу HTTP на другие HTTP-серверы.
HTTP-запрос XML 2 Интерфейсы HTTP-запроса 2 XML позволяют приложению выполнять операции HTTP-запросов в многопоточных квартирах (MTA) и использовать обратные вызовы для получения уведомлений о необходимых сведениях во время обработки ответа.
Windows Internet (WinINet) Программный интерфейс (API) Microsoft Windows Internet (WinINet) позволяет приложениям получать доступ к стандартным протоколам Интернета, таким как FTP и HTTP. Для простоты использования WinINet абстрагирует эти протоколы в высокоуровневый интерфейс.
Читайте также:
Программа для уменьшения громкости звука на компьютере

Источник: learn.microsoft.com

Основные категории сетевых приложений.

3.Малышев В.Н. «Передача и обработка информации в АСУ ВМФ». С.-Пб.: ВМА, 1994.

1.Новиков Ю.В., Кондратенко С.В. Локальные сети. – М.: Эком, 2001Нанс Б. «Компьютерные сети». М.: Бином, 1995;

2.Шатт С. «Мир компьютерных сетей». Киев: BHV, 1996

3.Гусева А.И. «Технология межсетевых взаимодействий». М.: ДИАЛОГ-МИФИ, 1997

Введение

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

Основные категории сетевых приложений.

К приложениям относят: текстовые процессоры, электронные таблицы, базы данных, графические редакторы и т.п. Приложения делятся на автономные и сетевые.

Автономное приложение – это программа, которая не предназначена для работы в сети, ее работа на сетевой станции не отличается от работы на компьютере, не подключенном к сети.

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

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

— Блокировки файлов, т.е. невозможность доступа к файлу одновременно несколькими пользователями;

— Защиты файлов от несанкционированного доступа, т.е. возможность предоставлять пользователям различные уровни доступа;

— Обмена данными по электронной почте.

Категории сетевых приложений:

· электронная почта и обмен сообщениями;

· планирование;

· групповое программное обеспечение.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru