¿Para qué sirve el archivo de controladores de Windows \ etc \ services?

8

Normalmente hay un archivo de "servicios" en C: \ Windows \ System32 \ drivers \ etc., enumera los servicios en ejecución y el puerto que se utilizará.

Sin embargo, ¿qué significa la palabra "servicio" aquí? No es el "Servicio de Windows", que se puede ver cuando ejecuta "services.msc". Tales 2 listas no cuentan.

Y, el contenido de este archivo de "servicios" podría estar desactualizado; nadie puede actualizarlo: los programas aún pueden comunicarse a través de algún puerto sin actualizar el archivo de "servicios", si tienen algún acuerdo; Además, si algún programa no se está ejecutando, no se toma algún puerto, el "archivo de servicios de Windows" tampoco se actualiza.

Entonces, ¿para qué sirve este archivo?

¿Dónde puedo encontrar algunos documentos? Tal vez debido al nombre de archivo popular, he buscado en Internet, pero la mayoría de los enlaces son sobre "Servicios de Windows" ... no este "Archivo de Servicios de Windows" ...

EDITAR:

Una pregunta más, dado que el archivo de "servicios" puede estar desactualizado, ¿hay alguna forma de enumerar todos los "servicios" activos?

athos
fuente

Respuestas:

7

Este archivo le dice a los servicios escritos por Microsoft qué puerto usar, así como los archivos que desean usar las API de Windows y / o ese archivo para convertir un nombre de servicio en un puerto. Estos nombres de servicio están definidos por el IETF.

Aquí hay un ejemplo de instrucciones para cambiar un puerto para dejar espacio para otro servidor SMTP.

Y aquí hay más explicaciones sobre los nombres de los servicios:

servicename [en]

Una cadena terminada en NULL que contiene el nombre del servicio o el puerto de destino del host en el que se conecta para IPv4 o IPv6.

Un nombre de servicio es un alias de cadena para un número de puerto. Por ejemplo, "http" es un alias para el puerto 80 definido por Internet Engineering Task Force (IETF) como el puerto predeterminado utilizado por los servidores web para el protocolo HTTP. Los valores posibles para el parámetro servicename cuando no se especifica un número de puerto se enumeran en el siguiente archivo: %WINDIR%\system32\drivers\etc\services

- MSDN - Winsock - Función WSAConnectByName

Tamara Wijsman
fuente
2
Específicamente, el archivo de servicios respalda la [getservbyname](http://msdn.microsoft.com/en-us/library/windows/desktop/ms738538(v=vs.85).aspx)API que traduce un nombre de servicio en un número de socket.
Richard
@ Richard: Quizás, pero no menciona services.
Tamara Wijsman
Entonces, ¿este es un concepto de Windows Socket? lo siento, no estoy familiarizado aquí ... ¿es que Windows Socket es un protocolo inferior a HTTP, TCP / IP, FTP, por lo que la definición realizada en el nivel de Windows Socket puede regular el comportamiento en HTTP, TCP / IP o FTP?
athos
@athos: No, no es un protocolo. Los servicios de Windows solo traducen primero el nombre del servicio (p. Ej. http) Al puerto de servicio (p. Ej., 80For http), luego proporcionan ese puerto de servicio al protocolo correspondiente (TCP / IP).
Tamara Wijsman
44
Nota al margen: la denominación, el uso y el formato de este archivo provienen de Unix donde está el archivo /etc/services. Microsoft adoptó esto cuando comenzaron a reemplazar su protocolo de red patentado Netbeui con los protocolos TCP / IP de código abierto que se estaban volviendo más importantes. Ver kuro5hin.org/story/2001/6/19/05641/7357
RedGrittyBrick el