Das Service Location Protocol (SLP) ist ein Netzwerkprotokoll zum Auffinden von Ressourcen, welche von anderen Computern über ein TCP/IP-basierendem Netz angeboten werden.
Will ein Host nun in einem Netz einen Dienst anbieten, so muss dieser Host über einen Dienstagenten verfügen. Dieser Dienstagent registriert den Dienst, der angeboten werden soll, beim Verzeichnisagenten. Die beiden Agenten kommunizieren in definierten Zeitintervallen, ob der Dienst noch verfügbar ist oder ob es zu einer Adress- oder Dienständerung gekommen ist. Dieses Zeitintervall ist frei definierbar und wird in der Regel vom Dienstagenten bei der ersten Registrierung dem Verzeichnisagenten mitgeteilt.
Wenn ein Client nun einen Netzdienst benötigt, so kann der Benutzeragent, der auf dem Client vorhanden sein muss, beim Verzeichnisagenten nachfragen, ob es den gewünschten Dienst im Netz gibt. Der Verzeichnisagent teilt dem Benutzeragenten daraufhin mit, ob es diesen Dienst gibt, und wenn ja, unter welcher Netzadresse der Client den Dienst erreichen kann.
Die Kommunikation findet hierbei in den meisten Fällen mittels Unicast statt. In einigen Fällen kann es jedoch sein, dass auch Multicast eingesetzt wird. Multicast wird eingesetzt, wenn ein Benutzeragent oder ein Dienstagent die Adresse des Verzeichnisagenten noch nicht kennt. In diesem Fall wird ein SLP-Discover mit Multicast durchgeführt. Dies kann unterbunden werden, indem sowohl dem Dienst- als auch dem Benutzeragenten in den entsprechenden Konfigurationsdateien die IP-Adresse des oder der Verzeichnisagenten vorgegeben wird.
Für Kleinstnetzwerke sieht SLP allerdings das Small-Network-Szenario vor, der Host (User Agent) fragt einfach nach dem gewünschten Service in die Runde, jeder Service Agent, der sich angesprochen fühlt, antwortet dann.
Novell setzt seit der Netware Version 5.x das SLP als Nachfolgelösung für das SAP ein.