Для чего нужен файл драйверов Windows \ etc \ services?

8

Обычно в C: \ Windows \ System32 \ drivers \ etc есть файл «services», в котором перечислены работающие службы и используемый порт.

Однако что здесь означает слово «сервис»? Это не «Служба Windows», которую можно увидеть при запуске «services.msc». Такие 2 списка не соответствуют.

И это содержимое файла «services» может быть устаревшим - никто не сможет его обновить: программы по-прежнему могут взаимодействовать через некоторый порт без обновления файла «services», если у них есть какое-то соглашение; также, если какая-то программа не запущена, какой-то порт не занят, «файл служб Windows» также не обновляется.

Так для чего этот файл?

Где-нибудь я мог найти некоторые документы? Возможно из-за популярного имени файла, я искал в Интернете, но большинство ссылок о "Службах Windows" ... не этот "Файл Служб Windows" ...

РЕДАКТИРОВАТЬ:

Еще один вопрос, поскольку файл «services» может быть устаревшим, есть ли способ перечислить все активные «services»?

athos
источник

Ответы:

6

Этот файл сообщает сервисам, написанным Microsoft, какой порт использовать, а также файлы, которые хотят использовать API-интерфейсы Windows и / или этот файл для преобразования имени сервиса в порт. Эти сервисные имена определены IETF.

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

А вот еще пояснение по поводу названий сервисов:

имя_службы [в]

Строка с нулевым символом в конце, которая содержит имя службы или порт назначения хоста, к которому нужно подключиться для IPv4 или IPv6.

Имя службы - это псевдоним строки для номера порта. Например, «http» - это псевдоним для порта 80, определенный Инженерной рабочей группой по Интернету (IETF) как порт по умолчанию, используемый веб-серверами для протокола HTTP. Возможные значения параметра servicename, если номер порта не указан, перечислены в следующем файле: %WINDIR%\system32\drivers\etc\services

- MSDN - Winsock - функция WSAConnectByName

Tom Wijsman
источник
2
В частности, файл служб поддерживает [getservbyname](http://msdn.microsoft.com/en-us/library/windows/desktop/ms738538(v=vs.85).aspx) API, который переводит имя сервиса в номер сокета.
Richard
@Richard: Возможно, но это не упоминает services,
Tom Wijsman
так это концепция Windows Socket? извините, я здесь не знаком ... разве Windows Socket является протоколом ниже, чем HTTP, TCP / IP, FTP, поэтому определение, выполненное на уровне Windows Socket, может регулировать поведение на уровне HTTP, TCP / IP или FTP?
athos
@athos: Нет, это не протокол. Службы Windows просто сначала переводят имя службы (например, http ) в сервисный порт (например, 80 за http ), затем укажите этот сервисный порт для соответствующего протокола (TCP / IP).
Tom Wijsman
4
Sidenote: наименование, использование и формат этого файла происходит из Unix, где файл /etc/services, Microsoft приняла это, когда начала заменять свой собственный сетевой протокол Netbeui протоколами TCP / IP с открытым исходным кодом, которые становились все более важными. Увидеть kuro5hin.org/story/2001/6/19/05641/7357
RedGrittyBrick