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

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

Сеть — инструмент вза­и­мо­дей­ст­вия ком­пью­тер­ных плат­форм в ши­ро­ком смыс­ле это­го сло­ва. Ком­муникации на­чи­на­ют­ся на уров­не ин­тер­фей­сов (net­work in­ter­face con­trol­ler, NIC), про­дол­жаются в сре­де пе­ре­да­чи дан­ных с по­мо­щью се­те­во­го обо­ру­до­ва­ния, фор­ми­ру­ю­ще­го ту или иную то­по­ло­гию. Ска­зан­ное толь­ко при­бли­жа­ет нас к по­ни­ма­нию се­те­вой мо­де­ли 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 для защищенной передачи файлов.