Сетевые сервисы

Поделись знанием:
(перенаправлено с «/etc/services»)
Перейти к: навигация, поиск

Взаимодействие компьютеров между собой, а также с другим активным сетевым оборудованием, в TCP/IP-сетях организовано на основе использования сетевых служб, которые обеспечиваются специальными процессами сетевой операционной системы (ОС) — демонами в UNIX-подобных ОС, службами в ОС семейства Windows и т. п. Примерами сетевых сервисов являются веб-серверы (в т.ч. сайты всемирной паутины), электронная почта, FTP-серверы для обмена файлами, приложения IP-телефонии и многое другое.





Сокеты, соединения

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

Номера портов

Номер порта для «привязки» службы выбирается в зависимости от его функционального назначения. За присвоение номеров портов определённым сетевым службам отвечает IANA. Номера портов находятся в диапазоне 0—65535 и разделены на 3 категории:

Номера портов Категория Описание
0—1023 Общеизвестные порты Номера портов назначены IANA и на большинстве систем могут быть использованы исключительно процессами системы (или пользователя root) или прикладными программами, запущенными привилегированными пользователями.

Не должны использоваться[1] без регистрации IANA. Процедура регистрации определена в разделе 19.9 RFC 4340 (англ.).

1024—49151 Зарегистрированные порты Номера портов включены в каталог IANA и на большинстве систем могут быть использованы процессами обычных пользователей или программами, запущенными обычными пользователями.

Не должны использоваться[1] без регистрации IANA. Процедура регистрации определена в разделе 19.9 RFC 4340.

49152—65535 Динамические порты Предназначены для временного использования (например, для тестирования приложений до регистрации IANA), а также в качестве клиентских (используемых для частных служб внутри закрытых сетей). Эти порты не могут быть зарегистрированы[2].

История регулирования соответствия

Вопросы унификации соответствия сетевых служб номерам сокетов (портов) поднимались в RFC 322 и RFC 349, первые попытки регулирования были предприняты Джоном Постелом в RFC 433 и RFC 503.

В марте 1990 года (см. RFC 1060) функция регулирования соответствия сетевых служб номерам портов была передана специальной организации — IANA, которая актуализировала список соответствия выпуском документов RFC «Assigned Numbers» (под номерами 739, 750, 755, 758, 762, 770, 776, 790, 820, 870, 900, 923, 943, 960, 990, 1010, 1060, 1340, 1700). Значительную часть этих документов готовил Джон Постел.

С января 2002 года (см. RFC 3232) IANA публикует актуальный список соответствия на своём сайте (без закрепления в RFC): www.iana.org/assignments/port-numbers.

Локальная копия списка

Локальная копия списка входит в установочный пакет сетевых операционных систем. Файл локальной копии списка обычно называется services и в различных операционных системах «лежит» в разных местах:

Windows 98/ME
C:\Windows\services
Windows NT/XP
C:\Windows\system32\drivers\etc\services
UNIX-подобные ОС
/etc/services

Состояние сетевых служб операционной системы

В большинстве операционных систем можно посмотреть состояние сетевых служб при помощи команды (утилиты)

netstat -an

В ОС семейства Windows результат работы этой команды выглядит примерно так:

Активные подключения
 Имя    Локальный адрес        Внешний адрес          Состояние
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    127.0.0.1:1026         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:12025        0.0.0.0:0              LISTENING
 TCP    127.0.0.1:12080        0.0.0.0:0              LISTENING
 TCP    127.0.0.1:12110        0.0.0.0:0              LISTENING
 TCP    127.0.0.1:12119        0.0.0.0:0              LISTENING
 TCP    127.0.0.1:12143        0.0.0.0:0              LISTENING
 TCP    192.168.0.16:139       0.0.0.0:0              LISTENING
 TCP    192.168.0.16:1572      213.180.204.20:80      CLOSE_WAIT
 TCP    192.168.0.16:1573      213.180.204.35:80      ESTABLISHED
 UDP    0.0.0.0:445            *:*
 UDP    0.0.0.0:500            *:*
 UDP    0.0.0.0:1025           *:*
 UDP    0.0.0.0:1056           *:*
 UDP    0.0.0.0:1057           *:*
 UDP    0.0.0.0:1066           *:*
 UDP    0.0.0.0:4500           *:*
 UDP    127.0.0.1:123          *:*
 UDP    127.0.0.1:1900         *:*
 UDP    192.168.0.16:123       *:*
 UDP    192.168.0.16:137       *:*
 UDP    192.168.0.16:138       *:*
 UDP    192.168.0.16:1900      *:*

В UNIX-подобных ОС результат работы команды netstat -an имеет примерно такой вид:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:37              0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:199             0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:2601            0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:2604            0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:2605            0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:13              0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:179             0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:1723            0.0.0.0:*               LISTEN      
tcp        0      0 10.0.0.254:1723         10.0.0.243:2441         ESTABLISHED 
tcp        0      0 192.168.19.34:179       192.168.19.33:33793     ESTABLISHED 
tcp        1      0 192.168.18.250:37       192.168.18.243:3723     CLOSE_WAIT  
tcp        0      0 10.0.0.254:1723         10.0.0.218:1066         ESTABLISHED 
tcp        1      0 192.168.18.250:37       192.168.18.243:2371     CLOSE_WAIT  
tcp        0      0 10.0.0.254:1723         10.0.0.201:4346         ESTABLISHED 
tcp        0      0 10.0.0.254:1723         10.0.0.30:2965          ESTABLISHED 
tcp        0     48 192.168.19.34:22        192.168.18.18:43645     ESTABLISHED 
tcp        0      0 10.0.0.254:38562        10.0.0.243:22           ESTABLISHED 
tcp        0      0 10.50.1.254:1723        10.50.1.2:57355         ESTABLISHED 
tcp        0      0 10.50.0.254:1723        10.50.0.174:1090        ESTABLISHED 
tcp        0      0 192.168.10.254:1723     192.168.13.104:65535    ESTABLISHED 
tcp        0      0 10.0.0.254:1723         10.0.0.144:65535        ESTABLISHED 
tcp        0      0 10.0.0.254:1723         10.0.0.169:2607         ESTABLISHED 
tcp        0      0 10.0.0.254:1723         10.0.0.205:1034         ESTABLISHED 
udp        0      0 0.0.0.0:1812            0.0.0.0:*                           
udp        0      0 0.0.0.0:1813            0.0.0.0:*                           
udp        0      0 0.0.0.0:161             0.0.0.0:*                           
udp        0      0 0.0.0.0:323             0.0.0.0:*                           
udp        0      0 0.0.0.0:123             0.0.0.0:*                           
raw        0      0 192.168.10.254:47       192.168.13.104:*        1           
raw        0      0 10.0.0.254:47           10.0.0.120:*            1           
raw        0      0 10.10.204.20:47         10.10.16.110:*          1           
raw        0      0 192.168.10.254:47       192.168.11.72:*         1           
raw        0      0 10.0.0.254:47           10.0.0.144:*            1           
raw        0      0 10.0.0.254:47           10.0.0.205:*            1           
raw        0      0 10.50.0.254:47          10.50.0.174:*           1           
raw        0      0 10.0.0.254:47           10.0.0.170:*            1           
raw        0      0 10.0.0.254:47           10.0.0.179:*            1

Состояние (State) LISTEN (LISTENING) показывает пассивно открытые соединения («слушающие» сокеты). Именно они и предоставляют сетевые службы. ESTABLISHED — это установленные соединения, то есть сетевые службы в процессе их использования.

Проверка доступности сетевых служб

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

Одно из самых удобных средств — команда (утилита) tcptraceroute (разновидность traceroute), которая использует TCP-пакеты открытия соединения (SYN|ACK) с указанным сервисом (по умолчанию — web-сервер, порт 80) интересующего хоста и показывает информацию о времени прохождения данного вида TCP-пакетов через маршрутизаторы, а также информацию о доступности службы на интересующем хосте, либо, в случае проблем с доставкой пакетов — в каком месте пути они возникли.

В качестве альтернативы можно использовать отдельно

  • traceroute для диагностики маршрута доставки пакетов (недостаток — использование UDP-пакетов для диагностики) и
  • telnet или netcat на порт проблемной службы для проверки её отклика.

См. также

Напишите отзыв о статье "Сетевые сервисы"

Примечания

  1. 1 2 Термин не должны в данном контексте используется в значении определения SHOULD NOT, данного в RFC 2119 (англ.):

    «НЕ ДОЛЖЕН» или «НЕ РЕКОМЕНДУЕТСЯ» означает, что при определённых обстоятельствах возможны отдельные случаи, обусловленные вескими причинами, когда нарушение указанных рекомендаций приемлемо или даже предпочтительно, но такие причины и обстоятельства должны быть понятны и тщательно взвешены, прежде чем нарушить рекомендации, помеченные данной фразой.

  2. Термин не могут в данном контексте используется в значении определения MUST NOT, данного в RFC 2119 (англ.):

    «НЕ МОЖЕТ» обозначает, что установлен абсолютный запрет.

Ссылки

  • [www.iana.org/assignments/port-numbers Актуальный список номеров портов // IANA] (англ.)
  • RFC 322 (англ.) Well Known Socket Numbers
  • RFC 349 (англ.) Proposed Standard Socket Numbers (отменён RFC 433)
  • RFC 433 (англ.) Socket Number List (отменён RFC 503)
  • RFC 503 (англ.) Socket Number List (отменён RFC 739)
  • RFC 739 (англ.) ASSIGNED NUMBERS (первый список присвоенных номеров, был заменён рядом RFCs, последний из которых RFC 1700)
  • RFC 768 (англ.) User Datagram Protocol
  • RFC 793 (англ.) TRANSMISSION CONTROL PROTOCOL
  • RFC 1700 (англ.) ASSIGNED NUMBERS (последний список присвоенных номеров, отменён RFC 3232)
  • RFC 3232 (англ.) Assigned Numbers: RFC 1700 is Replaced by an On-line Database
  • RFC 4340 (англ.) Datagram Congestion Control Protocol (DCCP) — PROPOSED STANDARD

Отрывок, характеризующий Сетевые сервисы

Как ни странно кажется с первого взгляда предположение, что Варфоломеевская ночь, приказанье на которую отдано Карлом IX, произошла не по его воле, а что ему только казалось, что он велел это сделать, и что Бородинское побоище восьмидесяти тысяч человек произошло не по воле Наполеона (несмотря на то, что он отдавал приказания о начале и ходе сражения), а что ему казалось только, что он это велел, – как ни странно кажется это предположение, но человеческое достоинство, говорящее мне, что всякий из нас ежели не больше, то никак не меньше человек, чем великий Наполеон, велит допустить это решение вопроса, и исторические исследования обильно подтверждают это предположение.
В Бородинском сражении Наполеон ни в кого не стрелял и никого не убил. Все это делали солдаты. Стало быть, не он убивал людей.
Солдаты французской армии шли убивать русских солдат в Бородинском сражении не вследствие приказания Наполеона, но по собственному желанию. Вся армия: французы, итальянцы, немцы, поляки – голодные, оборванные и измученные походом, – в виду армии, загораживавшей от них Москву, чувствовали, что le vin est tire et qu'il faut le boire. [вино откупорено и надо выпить его.] Ежели бы Наполеон запретил им теперь драться с русскими, они бы его убили и пошли бы драться с русскими, потому что это было им необходимо.
Когда они слушали приказ Наполеона, представлявшего им за их увечья и смерть в утешение слова потомства о том, что и они были в битве под Москвою, они кричали «Vive l'Empereur!» точно так же, как они кричали «Vive l'Empereur!» при виде изображения мальчика, протыкающего земной шар палочкой от бильбоке; точно так же, как бы они кричали «Vive l'Empereur!» при всякой бессмыслице, которую бы им сказали. Им ничего больше не оставалось делать, как кричать «Vive l'Empereur!» и идти драться, чтобы найти пищу и отдых победителей в Москве. Стало быть, не вследствие приказания Наполеона они убивали себе подобных.
И не Наполеон распоряжался ходом сраженья, потому что из диспозиции его ничего не было исполнено и во время сражения он не знал про то, что происходило впереди его. Стало быть, и то, каким образом эти люди убивали друг друга, происходило не по воле Наполеона, а шло независимо от него, по воле сотен тысяч людей, участвовавших в общем деле. Наполеону казалось только, что все дело происходило по воле его. И потому вопрос о том, был ли или не был у Наполеона насморк, не имеет для истории большего интереса, чем вопрос о насморке последнего фурштатского солдата.
Тем более 26 го августа насморк Наполеона не имел значения, что показания писателей о том, будто вследствие насморка Наполеона его диспозиция и распоряжения во время сражения были не так хороши, как прежние, – совершенно несправедливы.
Выписанная здесь диспозиция нисколько не была хуже, а даже лучше всех прежних диспозиций, по которым выигрывались сражения. Мнимые распоряжения во время сражения были тоже не хуже прежних, а точно такие же, как и всегда. Но диспозиция и распоряжения эти кажутся только хуже прежних потому, что Бородинское сражение было первое, которого не выиграл Наполеон. Все самые прекрасные и глубокомысленные диспозиции и распоряжения кажутся очень дурными, и каждый ученый военный с значительным видом критикует их, когда сражение по ним не выиграно, и самью плохие диспозиции и распоряжения кажутся очень хорошими, и серьезные люди в целых томах доказывают достоинства плохих распоряжений, когда по ним выиграно сражение.
Диспозиция, составленная Вейротером в Аустерлицком сражении, была образец совершенства в сочинениях этого рода, но ее все таки осудили, осудили за ее совершенство, за слишком большую подробность.
Наполеон в Бородинском сражении исполнял свое дело представителя власти так же хорошо, и еще лучше, чем в других сражениях. Он не сделал ничего вредного для хода сражения; он склонялся на мнения более благоразумные; он не путал, не противоречил сам себе, не испугался и не убежал с поля сражения, а с своим большим тактом и опытом войны спокойно и достойно исполнял свою роль кажущегося начальствованья.


Вернувшись после второй озабоченной поездки по линии, Наполеон сказал:
– Шахматы поставлены, игра начнется завтра.
Велев подать себе пуншу и призвав Боссе, он начал с ним разговор о Париже, о некоторых изменениях, которые он намерен был сделать в maison de l'imperatrice [в придворном штате императрицы], удивляя префекта своею памятливостью ко всем мелким подробностям придворных отношений.
Он интересовался пустяками, шутил о любви к путешествиям Боссе и небрежно болтал так, как это делает знаменитый, уверенный и знающий свое дело оператор, в то время как он засучивает рукава и надевает фартук, а больного привязывают к койке: «Дело все в моих руках и в голове, ясно и определенно. Когда надо будет приступить к делу, я сделаю его, как никто другой, а теперь могу шутить, и чем больше я шучу и спокоен, тем больше вы должны быть уверены, спокойны и удивлены моему гению».
Окончив свой второй стакан пунша, Наполеон пошел отдохнуть пред серьезным делом, которое, как ему казалось, предстояло ему назавтра.
Он так интересовался этим предстоящим ему делом, что не мог спать и, несмотря на усилившийся от вечерней сырости насморк, в три часа ночи, громко сморкаясь, вышел в большое отделение палатки. Он спросил о том, не ушли ли русские? Ему отвечали, что неприятельские огни всё на тех же местах. Он одобрительно кивнул головой.
Дежурный адъютант вошел в палатку.
– Eh bien, Rapp, croyez vous, que nous ferons do bonnes affaires aujourd'hui? [Ну, Рапп, как вы думаете: хороши ли будут нынче наши дела?] – обратился он к нему.
– Sans aucun doute, Sire, [Без всякого сомнения, государь,] – отвечал Рапп.
Наполеон посмотрел на него.
– Vous rappelez vous, Sire, ce que vous m'avez fait l'honneur de dire a Smolensk, – сказал Рапп, – le vin est tire, il faut le boire. [Вы помните ли, сударь, те слова, которые вы изволили сказать мне в Смоленске, вино откупорено, надо его пить.]
Наполеон нахмурился и долго молча сидел, опустив голову на руку.
– Cette pauvre armee, – сказал он вдруг, – elle a bien diminue depuis Smolensk. La fortune est une franche courtisane, Rapp; je le disais toujours, et je commence a l'eprouver. Mais la garde, Rapp, la garde est intacte? [Бедная армия! она очень уменьшилась от Смоленска. Фортуна настоящая распутница, Рапп. Я всегда это говорил и начинаю испытывать. Но гвардия, Рапп, гвардия цела?] – вопросительно сказал он.
– Oui, Sire, [Да, государь.] – отвечал Рапп.
Наполеон взял пастильку, положил ее в рот и посмотрел на часы. Спать ему не хотелось, до утра было еще далеко; а чтобы убить время, распоряжений никаких нельзя уже было делать, потому что все были сделаны и приводились теперь в исполнение.
– A t on distribue les biscuits et le riz aux regiments de la garde? [Роздали ли сухари и рис гвардейцам?] – строго спросил Наполеон.
– Oui, Sire. [Да, государь.]
– Mais le riz? [Но рис?]
Рапп отвечал, что он передал приказанья государя о рисе, но Наполеон недовольно покачал головой, как будто он не верил, чтобы приказание его было исполнено. Слуга вошел с пуншем. Наполеон велел подать другой стакан Раппу и молча отпивал глотки из своего.
– У меня нет ни вкуса, ни обоняния, – сказал он, принюхиваясь к стакану. – Этот насморк надоел мне. Они толкуют про медицину. Какая медицина, когда они не могут вылечить насморка? Корвизар дал мне эти пастильки, но они ничего не помогают. Что они могут лечить? Лечить нельзя. Notre corps est une machine a vivre. Il est organise pour cela, c'est sa nature; laissez y la vie a son aise, qu'elle s'y defende elle meme: elle fera plus que si vous la paralysiez en l'encombrant de remedes. Notre corps est comme une montre parfaite qui doit aller un certain temps; l'horloger n'a pas la faculte de l'ouvrir, il ne peut la manier qu'a tatons et les yeux bandes. Notre corps est une machine a vivre, voila tout. [Наше тело есть машина для жизни. Оно для этого устроено. Оставьте в нем жизнь в покое, пускай она сама защищается, она больше сделает одна, чем когда вы ей будете мешать лекарствами. Наше тело подобно часам, которые должны идти известное время; часовщик не может открыть их и только ощупью и с завязанными глазами может управлять ими. Наше тело есть машина для жизни. Вот и все.] – И как будто вступив на путь определений, definitions, которые любил Наполеон, он неожиданно сделал новое определение. – Вы знаете ли, Рапп, что такое военное искусство? – спросил он. – Искусство быть сильнее неприятеля в известный момент. Voila tout. [Вот и все.]
Рапп ничего не ответил.
– Demainnous allons avoir affaire a Koutouzoff! [Завтра мы будем иметь дело с Кутузовым!] – сказал Наполеон. – Посмотрим! Помните, в Браунау он командовал армией и ни разу в три недели не сел на лошадь, чтобы осмотреть укрепления. Посмотрим!
Он поглядел на часы. Было еще только четыре часа. Спать не хотелось, пунш был допит, и делать все таки было нечего. Он встал, прошелся взад и вперед, надел теплый сюртук и шляпу и вышел из палатки. Ночь была темная и сырая; чуть слышная сырость падала сверху. Костры не ярко горели вблизи, во французской гвардии, и далеко сквозь дым блестели по русской линии. Везде было тихо, и ясно слышались шорох и топот начавшегося уже движения французских войск для занятия позиции.