Мережеві сервіси

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Сокети, з'єднання

[ред. | ред. код]

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

Номери портів

[ред. | ред. код]

Номер порту для «прив'язки» служби вибирається залежно від його функціонального призначення. За привласнення номерів портів певним мережним службам відповідає IANA. Номери портів знаходяться в діапазоні 0-65535 і розділені на 3 категорії:

Номери портів Категорія Опис
0—1023 загальновідомі

порти

Номери портів призначені IANA і на більшості систем можуть бути використані виключно процесами системи (або користувача root), або прикладними програмами, запущеними привілейованими користувачами.

Не повинні використовуватися без реєстрації IANA. Процедура реєстрації визначена в розділі 19.9 RFC 4340(англ.).

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

Не повинні використовуватися без реєстрації IANA. Процедура реєстрації визначена в розділі 19.9 RFC 4340.

49152—65535 динамічні порти Призначені для тимчасового використання (наприклад, для тестування додатків до реєстрації IANA), а також як клієнтські (використовуваних для приватних служб у середині мереж). Ці порти не можуть бути зареєстровані.

Історія регулювання відповідності

[ред. | ред. код]

Питання уніфікації відповідності мережевих служб номерами сокетів (портів) піднімалися в 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): http://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 на порт проблемної служби для перевірки її відгуку.

Посилання

[ред. | ред. код]
  • Актуальный список номеров портов // 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