draft-guttman-svrloc-rfc2608bis-03.txt
来自「Pegasus is an open-source implementation」· 文本 代码 · 共 791 行 · 第 1/3 页
TXT
791 行
SAs MUST listen for unsolicited multicast DA Advertisements. DAs MUST support all required and optional SLP message types in the table. In the absence of multicast routing support in a network, broadcast MAY be used.+----------------------+----+----+-----+-----+-------------------------+| Message |CODE| UA | SA | DA | Purpose |+----------------------+----+----+-----+-----+-------------------------+| Service Register | 3 | | MUST| MUST| Register a service (url,|| (SrvReg) | | NA | send| recv| attrs, etc.) with a DA. |+----------------------+----+----+-----+-----+-------------------------+| Service Deregister | 4 | | MAY | MUST| Deregisters a service || (SrvDereg) | | NA | send| recv| from a DA. |+----------------------+----+----+-----+-----+-------------------------+| Service Acknowledge | 5 | | MUST| MUST| Contains a DA's response|| (SrvAck) | | NA | recv| send| to SrvReg and SrvDereg. |+----------------------+----+----+-----+-----+-------------------------+| Service Request | 1 |MUST| MUST| MUST| Requests services that || (SrvRqst) | |send|s & r| recv| match query criteria. |+----------------------+----+----+-----+-----+-------------------------+| Service Reply | 2 |MUST| MUST| MUST| Returns services that || (SrvRply) | |recv| send| send| match query criteria. |Guttman & Kempf Expires: 3 February 2003 [Page 5]Internet Draft SLPv2 Revision August 2002+----------------------+----+----+-----+-----+-------------------------+| DA Advertisement | 8 |MUST| MUST| MUST| Contains location, DA || (DAAdvert) | |recv| recv| send| attributes and more. |+----------------------+----+----+-----+-----+-------------------------+| SA Advertisement | 11 |MAY | MUST| | Contains location, SA || (SAAdvert) | |recv| send| NA | attributes and more. |+----------------------+----+----+-----+-----+-------------------------+| Service Type Request | 9 |MAY | MAY | MUST| Requests available || (SrvTypeRqst) | |send| recv| recv| service types. |+----------------------+----+----+-----+-----+-------------------------+| Service Type Reply | 10 |MAY | MAY | MUST| Contains all available || (SrvTypeRply) | |recv| send| send| service types. |+----------------------+----+----+-----+-----+-------------------------+| Attribute Request | 6 |MAY |SHOULD MUST| Requests attributes for || (AttrRqst) | |send| recv| recv| a particular service. |+----------------------+----+----+-----+-----+-------------------------+| Attribute Reply | 7 |MAY |SHOULD MUST| Contains all attributes || (AttrRply) | |recv| send| send| of a particular service.|+----------------------+----+----+-----+-----+-------------------------+ Table 1 - Summary of Required and Optional SLP Message Types and Requirement Level4. Protocol ElementsAll integer fields in SLP messages MUST be in network byte order.4.1 Error CodesIf the Error Code in a SLP reply message is nonzero, the rest of themessage MAY be truncated. No data is necessarily transmitted or shouldbe expected after the header and the error code, except if some optionalextensions are sent to clarify the error.Errors MUST be return for unicast requests. Multicast requests thatresult in an error MUST BE silently discarded. A reply MUST NOT be sentif a multicast request results in an error.The following is a list of SLP error codes. Error codes marked with a'*' can be returned in response to any request message, all others arereturned only for specific messages. Error codes returned for specificmessages are described in the sections where the messages are specified.OK * 0 The request was successful.LANGUAGE_NOT_SUPPORTED 1 The request could not be processed due to the Language Lag. Resending the request SHOULD NOT fail if the default Language Tag 'en' is used.Guttman & Kempf Expires: 3 February 2003 [Page 6]Internet Draft SLPv2 Revision August 2002PARSE_ERROR * 2 The message fails to obey SLP syntax. The error may be due to misalignment in the binary format of the message, a missing header Language Tag, a syntax error in the header Language Tag, or a syntax error in a message-specific string such as a service query or scope string.INVALID_REGISTRATION 3 A problem occurred with the parameters of a SrvReg or SrvDereg message, other than with the syntax of string parameters.SCOPE_NOT_SUPPORTED * 4 The scope-list lacks a supported scope.VER_NOT_SUPPORTED * 9 The SLP version number is not supported.INTERNAL_ERROR * 10 The DA or SA failed for some reason.DA_BUSY_NOW * 11 The DA is currently busy processing other requests. The UA or SA SHOULD retry, using exponential back off.OPTION_NOT_UNDERSTOOD *12 The DA or SA received an unknown SLP option from the mandatory range.INVALID_UPDATE 13 A SrvReg was received without the FRESH bit set.MSG_NOT_SUPPORTED 14 The SA received an unsupported request.REFRESH_REJECTED 15 The SA sent a SrvReg with too low a lifetime. The SA SHOULD consult the DA's minimum refresh interval attribute (Section 9.4) for the minimum advertisement lifetime.4.2 SLP Message Header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version | Code | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length, contd.|O|F|R| Reserved |Next Ext Offset| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Extension Offset, contd.| XID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Language Tag Length | Language Tag \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ All SLP messages begin with this header.Guttman & Kempf Expires: 3 February 2003 [Page 7]Internet Draft SLPv2 Revision August 2002 - Version: This field MUST be set to 2. Else, a VER_NOT_SUPPORTED error results. - Code: Identifies the messsage type, see Table 1. Any value outside those defined in Table 1 or standards track protocols extending SLP MUST be treated as a PARSE_ERROR result. - Length: Three byte unsigned integer containing the number of bytes in the SLP message including the header. - Flags: O Field is (0x80). "OVERFLOW" MUST be set to 1 when a message length exceeds the path MTU and the message contents doesn't fit into a datagram. See Section 5.1.3. Otherwise, MUST be 0. F Field is (0x40). "FRESH" MUST be set to 1 on every SrvReg. Otherwise, MUST be 0. R Field is (0x20). "REQUEST MCAST" MUST be set when multicasting or broadcasting requests. Otherwise, MUST be 0. Reserved This bits MUST be set to zero on transmission and ignored on reception. See Section 4.5. - Next Extension Offset: MUST be set to 0 unless the message has any extensions. If the message has extensions, MUST contain the offset from the beginning of the message, in bytes, to the first extension header. Extensions SHOULD come after the message body. See Section 7.1. - XID: The Transaction Identifier MUST be set to a unique value for each unique request. See Section 9 for the special case of unsolicited DAAdverts. - Lang Tag Length: Two byte unsigned integer giving the length in bytes of the Language Tag field. MUST NOT be zero. - Language Tag: MUST contain a variable length field, RFC 3066 [RFC3066] language local string. This specifies the language locale for all human readable strings in the message. See Section 14. A PARSE_ERROR results if the header is syntactically incorrect.Guttman & Kempf Expires: 3 February 2003 [Page 8]Internet Draft SLPv2 Revision August 20024.3 Strings Strings in SLP messages MUST be encoded using UTF-8 [RFC2279]. Strings MUST not be null terminated and MUST always be preceded by a two byte unsigned length field indicating the number of bytes that follow. Optional strings MAY be omitted. In this case, the Length field is set to zero and the string MUST be absent. The specifications for the syntax of string-based protocol elements in this document conform to ABNF [RFC2234].4.3.1 General String Comparisons String comparisons MUST NOT be case sensitive. For example "STRING1" is equal to "String1" and is also equal to "string1". This corresponds to the LDAPv3 string matching rule caseIgnoreMatch. [RFC2252] WARNING! SPECIAL CASE: caseIgnoreMatch specifies that leading and trailing spaces in strings are elided before string comparison is performed. This feature is not supported in SLPv2. White spaces in strings MUST NOT be elided for the purposes of string comparison. For example, "string1 " is not equal " string1" nor is it equal to "string1". In practice this means that (a) UTF-8 based strings are converted to Unicode, (b) comparisons are done on the basis of numerical magnitude ordering except that (c) case folding occurs according to specific code page rules. 'a' (0x0041) and 'A' (0x0061) are equivalent, as are "u umlaut" (0x00db) and "U umlaut" (0x00fb), both offset by 0x20. Note that on other code pages the offset is different - as Cyrillic "e accent aigue" (0x4400) and "E accent aigue" (0x4450) are offset by 0x50!4.3.2 Lists A List is a comma delimited set of strings, which can be of zero length. Since the list is comma delimited, the comma is a reserved character in string list items. A comma must be escaped to be considered as a data item. For example "a\2Cb,c\2Cd" is a string list with two items "a\2Cb" and "c\2Cd". These items include escaped commas; un-escaped they are "a,b" and "c,d" respectively.4.3.3 Previous Responder List The Previous Responder List (PR List) is a List of dotted decimal notation IPv4 addresses. When SLP messages are unicast, PR lists MUST be ignored. When SLP SrvRqst, SrvTypeRqst, and AttrRqst messages are multicast, they SHOULD contain a PR List (see Section 4.3.1) indicating allGuttman & Kempf Expires: 3 February 2003 [Page 9]Internet Draft SLPv2 Revision August 2002 responders from which the sender has received replies. Each responder's IP address (in dotted decimal form) SHOULD be added to form the new List before the request is multicast again.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?