📄 draft-day-svrloc-exclusion-03.nr.txt
字号:
.\"-----------------------------------------------------------------.\" Registers to store heading levels as variables.\"-----------------------------------------------------------------.nr head1 0 1.nr head2 0 1.nr head3 0 1 .nr head4 0 1.nr head5 0 1.nr head6 0 1.\"-----------------------------------------------------------------.\" Return to header level 1, 2, etc. .\" resets the level registers and indent.\"-----------------------------------------------------------------.de RETURN_HDR_1.nr head2 0 1.nr head3 0 1 .nr head4 0 1.nr head5 0 1.nr head6 0 1.in 0 \.HDR_1 \\$1 ...de RETURN_HDR_2.nr head3 0 1 .nr head4 0 1.nr head5 0 1.nr head6 0 1.in 0 \.HDR_2 \\$1.. .de RETURN_HDR_3.nr head4 0 1.nr head5 0 1.nr head6 0 1.in 0 \.HDR_3 \\$1...de RETURN_HDR_4.nr head5 0 1.nr head6 0 1.in 0 \.HDR_4 \\$1...de RETURN_HDR_5.nr head6 0 1.in 0 \.HDR_5 \\$1...\"-----------------------------------------------------------------.\" Create a level 1, 2, etc,. heading .\" resets indent, creates a TOC entry.\" Parameter is the title of the heading.\"-----------------------------------------------------------------.de HDR_1.sp 1.in 0 \\n+[head1]\\ \\$1.XS\\n[head1]\\ \\$1.XE.in 3.. .de HDR_2.sp 1.in 0 \\n[head1]\\.\\n+[head2]\\ \\$1.XS\\n[head1]\\.\\n[head2]\\ \\$1.XE.in 3.. .de HDR_3.sp 1.in 0 \\n[head1]\\.\\n[head2]\\.\\n+[head3]\\ \\$1.XS\\n[head1]\\.\\n[head2]\\.\\n[head3]\\ \\$1.XE.in 3.. .de HDR_4.sp 1.in 0 \\n[head1]\\.\\n[head2]\\.\\n[head3]\\.\\n+[head4]\\ \\$1.XS\\n[head1]\\.\\n[head2]\\.\\n[head3]\\.\\n[head4]\\ \\$1.XE.in 3.. .de HDR_5.sp 1.in 0 \\n[head1]\\.\\n[head2]\\.\\n[head3]\\.\\n[head4]\\.\\n+[head5]\\ \\$1.XS\\n[head1]\\.\\n[head2]\\.\\n[head3]\\.\\n[head4]\\.\\n[head5]\\ \\$1.XE.in 3.. .de HDR_6.sp 1.in 0 \\n[head1]\\.\\n[head2]\\.\\n[head3]\\.\\n[head4]\\.\\n[head5]\\.\\n+[head6]\\ \\$1.XS\\n[head1]\\.\\n[head2]\\.\\n[head3]\\.\\n[head4]\\.\\n[head5]\\.\\n[head6]\\ \\$1.in 3.XE.. .\"-----------------------------------------------------------------.\" END MACRO DEFINITIONS.\"-----------------------------------------------------------------.pl 58.po 0.ll 72.lt 72.ds LF Day .ds RF FORMFEED[Page %]^.ds CF .ds LH INTERNET DRAFT.ds CH SLP Exclusion Directive.ds RH Exp. June 2003 .hy 0.ad l.in 0 Internet Engineering Task Force Michael DayINTERNET DRAFT IBM07 January 2003 Expires in six months.ce 1000Exclusion Extension for Service Location Protocol v2draft-day-svrloc-exclusion-03.txt.ce 0.sp 5.in 0Status of This Memo.in 3This document is an Internet-Draft and is subject toall provisions of Section 10 of RFC2026.Internet-Drafts are working documents of the Internet EngineeringTask Force (IETF), its areas, and its working groups. Note thatother groups may also distribute working documents asInternet-Drafts.Internet-Drafts are draft documents valid for a maximum of sixmonths and may be updated, replaced, or obsoleted by otherdocuments at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as"work in progress."The list of current Internet-Drafts can be accessed athttp://www.ietf.org/1id-abstracts.htmlThe list of Internet-Draft Shadow Directories can be accessed athttp://www.ietf.org/shadow.htmlThis document is an individual contribution to the InternetEngineering Task Force (IETF). Comments should be submitted to thesrvloc@srvloc.org mailing list.Distribution of this memo is unlimited. .bp.HDR_1 Introduction The Service Location Protocol, Version 2 [1] allows the use ofmulticast and broadcast discovery requests. The SLP exclusiondirective is an extension to SLP that optimizes the use ofmulticasting and broadcasting to find services on an intranet. Thisdocument hereafter refers to multicast discovery but all its contentsapply to broadcast discovery as well..HDR_2 "Present SLPv2 Multicast Behavior"Multicast discovery requests allow an SLP User Agent to discoverservices with no prior configuration. Multicast discovery requests arenot sent reliably and must be retransmitted in order to find allservices of the desired type on the network.When SLP v2 SrvRqst, SrvTypeRqst, and AttrRqst messages are multicast,they contain a <PRList> of previous respondents. Initially the<PRList> is empty. When these requests are unicast, the <PRList> isalways empty.Any DA or SA which sees its address in the <PRList> does not respondto the request (as specified in RFC 2608).The User Agent then retransmits the discovery request until the<PRList> causes no further responses to be elicited or the previousresponder list and the request will not fit into a single datagram oruntil CONFIG_MC_MAX seconds elapse[1].The PR list is an effective mechanism for suppressing duplicateresponses in smaller environments. However, because of the way PRlists are encoded with the SLP v2 header, the PR List has a limit ofas few as 90 IPv4 addressees, and even fewer IPv6 addresses. Thismeans in most environments a User Agent may suppress duplicateresponses from approximately 90 host addresses at best..HDR_2 Optimizations\ Made\ by\ Exclusion\ DirectiveThe Exclusion Directive extension presented in this document allows aUser Agent (UA) to direct those Directory Agents (DAs) and ServiceAgents (SAs) from which it has already received responses not torespond to retransmissions of a particular query. Hence subsequentretransmissions only generate responses from agents from which therequester has not already received a response.This extension can be used in conjunction with the SLP v2 PR list.SAs and DAs which do not understand the Exclusion Directive extensionwill ignore it. With the use of the Exclusion Directive extension, SLPv2 User Agents may perform multicast discovery with a high degree ofsuccess and efficiency, even when the number of respondents reachesinto the thousands. ..HDR_2 TerminologyIn this document, the key words "MAY", "MUST, "MUST NOT", "optional","recommended", "SHOULD", and "SHOULD NOT", are to be interpreted asdescribed in RFC 2119 [2]..bp.RETURN_HDR_1 Exclusion\ Extension\ FormatThe fields in an Exclusion extension form an Exclusion Directive thattells receiving agents not to respond to a specific request from aspecific host for a specific time interval.Each Exclusion Directive is fully contained within one SLP v2extension block. However, a single SLP v2 request message may containmultiple Exclusion Directives. For example, a single Service Requestmay contain three Exclusion Directives within three distinct SLP v2extension blocks..KS.HDR_2 Exclusion\ Extension\ FieldsThe Exclusion extension has the following format:.DS L 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Extension ID = 0x000? | Next Extension Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset, contd.| size | Exclusion XID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Exclusion Interval | Number of Entries | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Exclusion Entries | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | # auth blocks | authentication block (if any) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.DE.KE .HDR_3 Size\ FieldThe size field specifies the size, in bytes, of each address entry. Asize value of 4 bytes MUST be encoded as an IP v4 address in networkbyte order. A size value of 16 bytes MUST be encoded as an IP v6address in network byte order. Other address sizes are assumed to beopaque data and will not be interoperable among differentimplementations.HDR_4 Using\ the\ Size\ Field\ to\ Calculate\ Length\ of\ EntriesThe size of the Exclusion Entries field MUST be calculated bymultiplying the value of the Size field by the value of the Number ofEntries field. .RETURN_HDR_3 Exclusion\ XIDThe Exclusion XID identifies the SLP request to which the enclosingExclusion Directive applies. An Exclusion Directive always applies toexactly one specific XID from exactly one host IP address.It is possible that the value of XID field in the Exclusion Directiveand the XID in the SLP header of the message containing the ExclusionDirective will be different. This is a subtle but important point: theSLP v2 header XID and the Exclusion XID are not equivalent. Seesection 3.0 for details of how the exclusion XID works..HDR_3 NonceThe Nonce adds a unique value to each Exclusion Directive that makesit difficult to mount a denial of service attack by replayingExclusion Directives. The Nonce is a 128-bit field which MUST containa cryptographic-quality random unique value; or alternatively must befilled with zero bytes. (If the Nonce is filled with zero bytes, it isignored.)The usage of the Nonce is explained further in section 4.3..HDR_3 Exclusion\ IntervalThe Exclusion Interval indicates the lifetime, in seconds, of thecontaining Exclusion Directive. The interval begins when the SA or DAreceives the Exclusion Directive. Exclusion Directives SHOULD have aninterval from one to several seconds. However, the Exclusion Intervalmay need to be increased for unusually large networks or media withhigh latency characteristics, such as satellite links. .HDR_3 Exclusion\ EntriesThe Exclusion Entries field is the list of host IP addresses that aresubject to the containing Exclusion Directive. The length of the ExclusionEntries field is the number of IP addresses in the list multiplied bythe size of each IP address.The size of each IP address is determined by the value of the sizefield. Each Exclusion Directive therefore may only contain IPv4addresses or IPv6 addresses, but not both..HDR_4 Dual-stack\ IP\ EnvironmentsIn environments using both IPv4 and IPv6 addresses it may be necessaryto deliver two Exclusion Directives where otherwise one would besufficient. E.g., one Directive containing IPv4 addresses and anotherDirective containing IPv6 addresses. One way to accomplish this is topack two separate Exclusion Directives into a single SLPrequest. Another way involves using dummy request messages to deliverExclusion Directives. Dummy request messages are covered in section3.1 below..RETURN_HDR_3 Authentication\ BlocksThe Number of Auth Blocks indicates how many authentication blocksare contained in the containing Exclusion Directive. The format of theauthentication block is covered in section 4 below..KS.RETURN_HDR_2 Exclusion\ Directive\ FunctionalityThe purpose of the Exclusion Directive is to cause SAs or DAs tosilently discard specific SLP requests that originate from specific IPaddresses. This purpose aids in the use of multicasting to discoverservices in large network environments. The Exclusion Directive makesmulticast discovery more reliable and efficient by: .nr PI 5.nr step 1 1.RS.IP \n[step]. 3Providing a more compact mechanism to silence previous responders..IP \n+[step].Magnifying the effect of the silencing mechanism by specifying a quiet interval..RE.KE.HDR_3 Exclusion\ Directive\ State\ Table\ (EDST)When the Exclusion Directive is present in an SLP request, thereceiving agent uses the directive to create and maintain stateinformation that causes the receiving agent to ignore and discardmatching requests (possibly including the request containing theExclusion Directive).The Exclusion Directive State Table (EDST) is the collection ofinformation describing all current Exclusion Directives received bythe agent. EDST entries are a record with five fields: Source Address,Source Port, exclusion XID , exclusion nonce value, and expirationtime. (The nonce value MAY be zero filled.)The Exclusion Directive only applies to SLP v2 messages that have themulticast flag set. The SA or DA MUST respond to SLP v2 messages thatdo not have the multicast flag set as specified in [1].If the incoming request message matches a current record in thereceiving agent's EDST, and if the incoming request's Multicast flagis set in the SLP header, the DA or SA MUST silently discard themessage. When the Exclusion Interval of an Exclusion Directive has expired, theSA or DA MUST delete the corresponding record in its EDST and resumeprocessing SLP v2 multicast request as if that Exclusion Directivewas never received.If an incoming request does not contain an Exclusion Directive, thereceiving agent MUST process that request without regard to the localEDST. (In other words, process the request normally.).RETURN_HDR_1 Exclusion\ Directives\ in\ SLP\ v2\ Request\ MessagesAn SA or DA may encounter the Exclusion Directive in Service Request,Attribute Request, and Service Type Request messages. In each case,the request may also contain a PR list as described in [1].A UA MUST NOT include an Exclusion Directive in a unicast SLP v2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -