Интерфейсы, протоколы, порты в интернете

25 Фев 2018

Сеть – инструмент взаимодействия компьютерных платформ в широком смыс­ле этого слова. Ком­муникация начинаются на уровне интерфейсов (NIC – network interface controller), про­дол­жаются в среде передачи дан­ных с помощью сетевого оборудования, формирующего ту или иную то­по­ло­гию. Сказанное не вполне соответствует парадигме сетевой модели OSI, но хорошо отображает проблематику построения ком­му­ни­ка­ци­он­ных систем и аппаратного взаимодействия внутри них. Рассмотрим ряд примеров, наи­бо­лее полно иллюстрирующих прикладное интернет-вза­и­мо­дей­ствие.

Управление удаленными платформами

Доступ к операционным системам, выполняемым на удаленных платформах, является одной из самых вос­тре­бо­ван­ных функций. Хрестоматийный пример – управление разнородными средами через защищенное соединение SSH (Secure Shell).

Означенная аббревиатура – просто сетевой протокол прикладного (L7, наивысшего в модели OSI) уровня. Его глобальная задача – обеспечить туннель для TCP-соединения, по которому формируется уп­рав­ле­ние удаленной платформой и доступ к ее ресурсам. Это возможно только в том случае, когда уда­лен­ный сервер принимает SSH-подключения, т.е. мониторит состояние своего сетевого порта («слу­шает порт»). Для данного типа соединений – это порт 22, номер которого за­ре­ги­ст­ри­ро­ван организацией IANA (Internet Assigned Numbers Authority) в качестве системного.

Порт для импортно-экспортных операций

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

В процессе создания интернет такими объектами оказались порты, задействованные в недействительном ныне про­токоле NCP. Передача с их использованием велась в полудуплексном режиме, чего на первых портах казалось впол­не достаточно. Основоположники «всемирной паутины» Роберт Кан и Винтон Серф, опираясь на NCP, раз­ра­бо­та­ли TCP/IP — сетевую модель, востребованную по сей день.

Кстати, в рамках протоколов TCP и UDP для установки соединения нужен только один порт, что сделало чётные номера на некоторое время атавизмом — даже сегодня некоторых из них нет в диапазоне общеизвестных. Общее же количество сетевых портов связано с ограничением 16-битной адресации. Все порты разделены на три не­пе­ре­се­ка­ю­щих­ся диапазона:

  • Системные (0—1023)
  • Пользовательские (1024—49151)
  • Динамические или частные (49152—65535)

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

Всемирная паутина

Одной из самых востребованных сетевых реализаций является гипертекстовое представление в интернет. Доступ к нему в окне броузера становится возможным, благодаря работе веб-сервера как приложения опе­ра­ци­он­ной сис­те­мы. Это может быть IIS от Microsoft или Apache-сервер в Unix-среде.

Узел пользователя получает доступ к веб-ресурсам с помощью протокола передачи гипертекста (HTTP) либо его за­щищенной версии – HTTPS. Гипертекстовый протокол представляет собой набор правил для обмена текстом, гра­фи­че­скими изображениями, звуком и видео по интернету. HTTPS обеспечивает поддержку шифрования и служб аутентификации с использованием протокола уровня защищенных сокетов (SSL) или более нового про­то­ко­ла за­щи­ты транспортного уровня (TLS). HTTP обращается к веб-серверу через порт 80, а HTTPS работает через порт 443.

Путь к веб-серверу строится с помощью сервера доменных имен (DNS), который преобразует URL-имя интернет-ресурса, известного пользователю, в числовой IP-адрес. Взаимно однозначное соответствие этих адресов обес­пе­чи­ва­ет­ся сервисом доменных имен – DNS. Забота о поддержке доменных имен лежит на регистраторах, в обя­зан­но­сти которых входит обслуживание, как минимум двух DNS-серверов, работающих на разных узлах всемирной паутины.

Забота о контенте веб-сервера лежит на веб-мастерах. Кроме систем управления (CMS), они используют средства удаленного доступа к веб-ресурсам. Еще недавно повсеместно таковым было применение FTP (File Transfer Pro­to­col) — стандартного протокола, обеспечивающего передачу файлов по TCP-сетям с подключением по 21-й порту. FTP-загрузка позволяет наполнять каталоги веб-сервера изображениями, сетевыми страницами, документами в PDF-формате. Для этого на локальным компьютере веб-мастера должен быть проинсталлирован и настроен FTP-клиент.

Коммуникации по протоколу FTP между клиентом и хостинговой платформой предполагают установку двух кон­нек­тов: управляющего соединений для обмена сообщениями и соединение для передачи данных (файлов). Пер­вое из них инициирует TCP-соединение с динамического порта локального компьютера к 21-му порту на уда­лен­ном сервере для аутентификации с помощью логина и пароля. Дальнейший сценарий зависит от выбора ре­жи­ма пе­ре­да­чи файлов. Возможны два варианта взаимодействия: активный и пассивный (Passive Release).

  • В активном режиме клиент сообщает серверу номер своего порта (из динамического диапазона 1024-65535), чтобы сервер мог установить соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента, используя 20-й порт TCP для передачи данных.
  • В пассивном режиме сервер сообщает номер TCP-порта (из динамического диапазона 1024-65535), к которому следует подключиться клиенту для установки соединения и последующей передачи данных.

Главное отличие наиболее востребованного режима Passive Release от его активного варианта – распределение ролей, инициирующих соединение для передачи данных. В активном режиме обязанности открыть соединение лежат на FTP-сервере. В пассивном режиме забота клиента состоит в том, чтобы распознать номер динамического порта веб-сервера, полученный в 21-м порту, через который будет осуществляться обмен данными.

На сегодня использование FTP-протокола в открытых сетях считается небезопасным, поэтому вместо него ре­ко­мен­ду­ет­ся устанавливать защищенные соединения следующими средствами:

  • Защищенный протокол передачи файлов (FTPS) — клиент FTP может запросить сеанс передачи файлов с шифрованием с помощью TLS, файловый сервер может принять или отклонить запрос.
  • Протокол передачи файлов поверх SSH (SFTP) — SFTP является расширением протокола Secure Shell (SSH) и может использоваться для создания защищенного сеанса передачи файлов.
  • Протокол защищенного копирования (SCP) — SCP также использует SSH для защищенной передачи файлов.
Теги: