Примеры компьютерных сетевых программ

Обновлено: 21.11.2024

Сетевые архитектуры и спецификации протоколов имеют важное значение, но хорошего плана недостаточно, чтобы объяснить феноменальный успех Интернета: количество компьютеров, подключенных к Интернету, росло в геометрической прогрессии на протяжении более трех десятилетий (хотя точные цифры трудно назвать). приходи). По оценкам, к концу 2018 года число пользователей Интернета составило около 4,1 млрд – примерно половина населения мира.

Чем объясняется успех Интернета? Безусловно, этому способствовало множество факторов (включая хорошую архитектуру), но одна вещь, которая сделала Интернет столь безудержным успехом, — это тот факт, что большая часть его функций обеспечивается программным обеспечением, работающим на компьютерах общего назначения. Значение этого заключается в том, что новые функциональные возможности могут быть легко добавлены с помощью «просто небольшого программирования». В результате новые приложения и службы появляются с невероятной скоростью.

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

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

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

1.4.1 API сокетов¶

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

Хотя каждая операционная система может свободно определять свой собственный сетевой API (и большинство из них имеют), со временем некоторые из этих API стали широко поддерживаться; то есть они были перенесены на операционные системы, отличные от их родной системы. Это то, что произошло с интерфейсом сокетов, первоначально предоставленным в дистрибутиве Unix в Беркли, который теперь поддерживается практически во всех популярных операционных системах и является основой языковых интерфейсов, таких как Java. или библиотеку сокетов Python. Мы используем Linux и C для всех примеров кода в этой книге, Linux, потому что это открытый исходный код, и C, потому что он остается предпочтительным языком для внутренних сетей. (Кроме того, C имеет то преимущество, что раскрывает все низкоуровневые детали, что полезно для понимания лежащих в основе идей.)

Сокеты активировали взрыв приложения

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

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

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

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

Первый шаг — создать сокет, который выполняется с помощью следующей операции:

Причина, по которой эта операция принимает три аргумента, заключается в том, что интерфейс сокета был разработан достаточно общим, чтобы поддерживать любой базовый набор протоколов. В частности, аргумент домена определяет семейство протоколов, которые будут использоваться: PF_INET обозначает семейство Интернета, PF_UNIX обозначает конвейер Unix, а PF_PACKET обозначает прямой доступ к сетевому интерфейсу (т. е. в обход стек протоколов TCP/IP). Аргумент типа указывает семантику связи. SOCK_STREAM используется для обозначения потока байтов. SOCK_DGRAM — это альтернатива, обозначающая сервис, ориентированный на сообщения, такой как предоставляемый UDP. Аргумент протокола идентифицирует конкретный протокол, который будет использоваться. В нашем случае этот аргумент — UNSPEC, поскольку комбинация PF_INET и SOCK_STREAM подразумевает TCP. Наконец, возвращаемое значение из сокета — это дескриптор только что созданного сокета, т. е. идентификатор, по которому мы можем обращаться к сокету в будущем. Он передается в качестве аргумента для последующих операций над этим сокетом.

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

Операция привязки, как следует из ее названия, привязывает вновь созданный сокет к указанному адресу. Это сетевой адрес локального участника — сервера. Обратите внимание, что при использовании с интернет-протоколами адрес представляет собой структуру данных, которая включает в себя как IP-адрес сервера, так и номер порта TCP. Порты используются для косвенной идентификации процессов. Они представляют собой форму ключей демультиплексора. Номер порта обычно представляет собой хорошо известный номер, относящийся к предлагаемой услуге; например, веб-серверы обычно принимают соединения через порт 80.

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

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

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

После установления соединения процессы приложений вызывают следующие две операции для отправки и получения данных:

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

1.4.2 Пример клиент/сервер¶

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

Клиент¶

Начнем с клиентской стороны, которая принимает в качестве аргумента имя удаленной машины. Он вызывает утилиту Linux для преобразования этого имени в IP-адрес удаленного хоста. Следующим шагом является создание структуры адресных данных ( sin ), ожидаемой интерфейсом сокета. Обратите внимание, что эта структура данных указывает, что мы будем использовать сокет для подключения к Интернету (AF_INET). В нашем примере мы используем TCP-порт 5432 в качестве общеизвестного порта сервера; это порт, который не был назначен какой-либо другой интернет-службе. Последним шагом в настройке соединения является вызов socket и connect . После завершения операции соединение устанавливается, и клиентская программа входит в свой основной цикл, который считывает текст со стандартного ввода и отправляет его через сокет.

Сервер¶

Сервер такой же простой. Сначала он создает структуру данных адреса, заполняя свой собственный номер порта ( SERVER_PORT ). Не указывая IP-адрес, прикладная программа готова принимать соединения с любого из IP-адресов локального хоста. Затем сервер выполняет предварительные шаги, связанные с пассивным открытием; он создает сокет, привязывает его к локальному адресу и устанавливает максимально допустимое количество ожидающих соединений. Наконец, основной цикл ожидает, пока удаленный хост попытается подключиться, и когда он это сделает, он получит и распечатает символы, поступающие по соединению.

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

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

Знакомство с Интернетом: «Эта вещь все еще существует?» — Гомер Симпсон

Введение в протокол TCP/IP — официальные правила, позволяющие компьютерам обмениваться данными через Интернет.

Введение в IP: Интернет-протокол — от маршрутизации до IP-адресации, взгляд на протокол, который дает жизнь Интернету.

Введение в TCP: протокол управления передачей — один из наиболее важных протоколов высокого уровня в наборе протоколов Интернета.

Добро пожаловать в шестой выпуск сериала Networking 101! Я провел последние пять глав, рассказывая о теории компьютерных сетей, от истории Интернета до некоторых наиболее важных интернет-протоколов. Теперь пришло время изучить одну из многих практических сторон сетей: сетевое программирование.

Кратко о сетевом программировании

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

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

Понимание сокетов

Сокет — это абстракция потока связи. Конкретно, сокеты — это программные объекты, предоставляемые операционной системой, которые позволяют вашим программам отправлять и получать данные. В мире программирования есть два типа сокетов:

сетевые сокеты — используются для обмена данными между программами по сети или, другими словами, между двумя удаленными хостами;

Сокеты домена Unix — также известные как сокеты UNIX, они используются для обмена данными между программами, работающими на одном компьютере (т. е. на одном хосте). Это форма межпроцессного взаимодействия (IPC).

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

Как выглядит сокет?

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

Сначала создается и настраивается сокет (1), затем он используется для установления соединения с удаленным хостом (2) и отправки сообщения (3). Сокеты являются основой для более сложных программ, которые отправляют и получают данные: мы увидим несколько примеров того, что вы можете с ними делать, в последней части этой статьи.

Реализации сокетов

В приведенном выше примере используется псевдокод: настоящие сокеты поставляются с операционной системой, поэтому они написаны на низкоуровневых языках (в основном C). Однако их программный интерфейс (API) — макет объекта сокета, как его инициализировать, имена функций, . — очень похож на псевдокод выше. На самом деле такой стиль API известен как интерфейс сокетов Беркли, иногда также называемый сокетами POSIX или сокетами BSD.

Python интересен: его модуль сокетов представляет собой перевод интерфейса сокетов Беркли в объектно-ориентированный стиль Python. Преимущество в том, что вы работаете с исходным API без головной боли ручного управления памятью, необходимой для языка C. По этой причине я буду использовать Python и модуль сокетов для своих экспериментов по сетевому программированию в следующих главах этой серии.

Настройка сокета

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

Семейство сокетов

Определяет, нужен ли вам сокет, работающий через Интернет или локальный. В частности, вы можете использовать сокеты на основе IPv4, сокеты на основе IPv6 или сокеты UNIX.

Сокет, настроенный как IPv4 или IPv6, может обмениваться данными с удаленными хостами. Первый работает с IP-адресами версии 4, второй работает с IP-адресами версии 6. Сокет, настроенный как UNIX, используется для обмена данными между программами на одной машине. Windows, операционная система, отличная от UNIX, недавно добавила поддержку типа сокета UNIX.

Тип сокета

Определяет тип связи, которую вы хотите установить. Здесь выбор сводится к трем типам: потоковые сокеты для ориентированных на соединение протоколов, таких как протокол управления передачей (TCP); сокеты дейтаграмм для протоколов без установления соединения, таких как протокол пользовательских дейтаграмм; необработанные сокеты для низкоуровневых коммуникационных протоколов, таких как Интернет-протокол.

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

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

Протокол

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

Что можно делать с сокетами

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

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

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

Сервер отличается тем, что обычно он ожидает прихода новых клиентов. Вот пример псевдокода сервера, который отвечает клиентам строкой приветствия:

Помимо обычной конфигурации, API сокетов Berkeley хочет связать объект сокета с адресом (1). Это означает, что ваша программа будет реагировать на получение данных, например, от клиента с определенным IP-адресом.

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

Затем сокет получает указание прослушивать (2), чтобы он принимал входящие запросы на подключение от клиентов.Наконец, программа ожидает появления новых клиентов с помощью функции accept() (3). С этого момента сервер установил соединение с клиентом и может отправлять ему данные. На рисунке ниже показаны вызовы API, используемые в типичном сценарии, когда клиент и сервер общаются друг с другом.

Блокирующие и неблокирующие сокеты

Функция accept() в приведенном выше псевдокоде сервера блокирует: цикл while не выполняет никаких действий, пока не прибудет новый клиент. Другими словами: ваша программа застряла в ожидании новых подключений.

Та же логика применима к функции connect() в примере с клиентом: никакого прогресса не будет, пока соединение не будет установлено. Сокеты блокируются по умолчанию, но вы можете перевести их в неблокирующий режим на этапе настройки.

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

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

Проблемы с порядком байтов

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

Возьмем, к примеру, шестнадцатеричное число 0xA4FFBC01: некоторые компьютеры хранят старший байт (A4) перед младшим байтом (01), так что число в памяти отображается так, как оно записано (A4 ФФ до н.э. 01). Этот способ хранения чисел соответствует тому, как мы, люди, записываем, и называется прямым порядком байтов. Стандартный порядок байтов в сети — обратный порядок байтов, поэтому он также известен как сетевой порядок байтов.

Некоторые компьютеры делают наоборот: они сохраняют старший байт ( A4 ) после младшего байта ( 01 ), так что число в памяти отображается перевернутым ( 01 BC FF A4 ). Такой порядок байтов называется прямым порядком байтов, который на сетевом жаргоне называется порядком байтов хоста.

Итак, обмен данными между двумя компьютерами с разным порядком байтов требует настройки. Хитрость заключается в том, чтобы преобразовать данные в сетевой порядок байтов перед их отправкой и преобразовать их в порядок байтов хоста по прибытии. Это делается с помощью некоторых служебных функций, поставляемых с API сокетов Беркли, таких как семейства hton* и ntoh*: они считываются как хост-сеть и сеть-хост и выполняют преобразование байтов за вас.

Что дальше

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

Добро пожаловать, ребята! И поздравляем вас с тем, что вы сделали первый шаг к тому, чтобы стать инженером по безопасности. Э... инженер по безопасности, но что это вообще значит?

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

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

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

Что такое сеть?

Компьютерные сети предназначены для изучения и анализа процесса связи между различными вычислительными устройствами или компьютерными системами, которые связаны или объединены в сеть для обмена информацией и совместного использования ресурсов. Таким образом, для работы в сети у вас должна быть сеть. Это как сделать телефонный звонок, у вас должна быть телефонная линия. Разве это не очевидно!Итак, существует четыре основных типа компьютерных сетей:

LAN (локальная сеть)

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

WAN (глобальная сеть)

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

Следующее изображение даст вам хорошее представление о LAN и WAN:

MAN (городская сеть)

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

PAN (Личная сеть)

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

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

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

Существует 2 типа сетевых приложений:

  1. Исключительно сетевые приложения
  2. Автономное сетевое приложение

(A) Чисто сетевые приложения

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

Экспресс Outlook

Outlook Express, программа электронной почты

1. Программы электронной почты

  • Почта Пегаса
  • Экспресс Outlook
  • Почта Windows Eudora
  • Почта Fox
  • Опера
  • Домашняя почта
  • Mozilla Thunderbird
  • Почта Windows

2. Протокол передачи файлов (FTP)

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

  • Загрузка: это процесс получения файлов с сервера на рабочую станцию ​​или клиент (например, при загрузке программ и музыки с сервера).
  • Загрузка. Это получение файлов с рабочей станции на сервер (например, когда вы прикрепляете документы и загружаете их на сервер, хорошим примером является загрузка фотографий на Facebook).
  • FTP в Unix
  • FTP в Linux
  • FTP в Windows

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

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

3. Эмуляция терминала (TELNET)

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

4. Программное обеспечение для совместной работы

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

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

8 лучших альтернатив Adobe Photoshop (бесплатных и платных)

8 лучших альтернатив LastPass, которые стоит попробовать

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

(B) Автономные приложения

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

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

Вопросы и ответы

Вопрос. Что такое сетевой протокол?

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

Вопрос. Какова роль сетевых приложений?

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

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

В большинстве сетевых приложений клиентский компьютер запускает программу веб-клиента, такую ​​как Chrome, Firefox или Internet Explorer, а сервер запускает программу веб-сервера, такую ​​как Internet Information Server или Apache. На сервере обычно хранятся общие данные, к которым затем обращаются клиентские компьютеры.

Вопрос. Что такое автономное приложение?

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

Читайте также: