Wozu dient die Windows-Treiberdatei \ etc \ services?

8

Normalerweise befindet sich in C: \ Windows \ System32 \ drivers \ etc eine "Dienste" -Datei, in der die ausgeführten Dienste und der zu verwendende Port aufgeführt sind.

Was bedeutet das Wort "Service" hier? Es ist nicht der "Windows-Dienst", der beim Ausführen von "services.msc" angezeigt wird. Solche 2 Listen stimmen nicht überein.

Und der Inhalt dieser "Dienste" -Datei könnte veraltet sein - niemand kann ihn aktualisieren: Programme können weiterhin über einen Port kommunizieren, ohne die "Dienste" -Datei zu aktualisieren, wenn sie eine Vereinbarung haben. Wenn ein Programm nicht ausgeführt wird, ein Port nicht belegt ist, wird auch die "Windows-Dienstedatei" nicht aktualisiert.

Wofür ist diese Datei?

Überall konnte ich einige Dokumente finden? Vielleicht habe ich wegen des beliebten Dateinamens im Internet gesucht, aber die meisten Links beziehen sich auf "Windows Services" ... nicht auf diese "Windows Services-Datei" ...

BEARBEITEN:

Eine weitere Frage: Gibt es eine Möglichkeit, alle aktiven "Dienste" aufzulisten, da die Datei "Dienste" veraltet sein kann?

Athos
quelle

Antworten:

7

Diese Datei teilt den von Microsoft geschriebenen Diensten mit, welcher Port verwendet werden soll, sowie Dateien, die Windows-APIs und / oder diese Datei verwenden möchten, um einen Dienstnamen in einen Port umzuwandeln. Diese Dienstnamen werden von der IETF definiert.

Hier finden Sie ein Beispiel für Anweisungen zum Ändern eines Ports, um Platz für einen anderen SMTP-Server zu schaffen.

Und hier finden Sie weitere Erklärungen zu den Dienstnamen:

Servicename [in]

Eine NULL-terminierte Zeichenfolge, die den Dienstnamen oder den Zielport des Hosts enthält, über den eine Verbindung für IPv4 oder IPv6 hergestellt werden soll.

Ein Dienstname ist ein Zeichenfolgenalias für eine Portnummer. Beispielsweise ist "http" ein Alias ​​für Port 80, der von der Internet Engineering Task Force (IETF) als Standardport definiert wird, der von Webservern für das HTTP-Protokoll verwendet wird. Mögliche Werte für den Parameter servicename, wenn keine Portnummer angegeben ist, sind in der folgenden Datei aufgeführt: %WINDIR%\system32\drivers\etc\services

- MSDN - Winsock - WSAConnectByName-Funktion

Tamara Wijsman
quelle
2
Insbesondere unterstützt die Servicedatei die [getservbyname](http://msdn.microsoft.com/en-us/library/windows/desktop/ms738538(v=vs.85).aspx)API, die einen Servicenamen in eine Socket-Nummer übersetzt.
Richard
@ Richard: Vielleicht, aber es wird nicht erwähnt services.
Tamara Wijsman
Das ist also ein Windows Socket-Konzept? Entschuldigung, ich bin hier nicht vertraut ... Ist Windows Socket ein Protokoll, das niedriger als HTTP, TCP / IP, FTP ist, sodass die Definition auf Windows Socket-Ebene das Verhalten auf HTTP-, TCP / IP- oder FTP-Ebene regulieren kann?
Athos
@athos: Nein, es ist kein Protokoll. Windows-Dienste übersetzen zunächst nur den Dienstnamen (z. B. http) in den Dienstport (z. B. 80für http) und stellen diesen Dienstport dann dem entsprechenden Protokoll (TCP / IP) zur Verfügung.
Tamara Wijsman
4
Nebenbemerkung: Die Benennung, Verwendung und das Format dieser Datei stammen von Unix, wo sich die Datei befindet /etc/services. Microsoft übernahm dies, als das proprietäre Netzwerkprotokoll Netbeui durch die immer wichtiger werdenden Open-Source-TCP / IP-Protokolle ersetzt wurde. Siehe kuro5hin.org/story/2001/6/19/05641/7357
RedGrittyBrick