⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2022.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   formatted address assigned to the physical ATM interface). Therefore   implementors MUST allow for multiple independent 'layer 3 over ATM'   interfaces too, each with its own configured MARS (or table of MARSs,   as discussed in section 5.4), and ability to be attached to the same   or different clusters.Armitage                    Standards Track                    [Page 16]RFC 2022          Multicast over UNI 3.0/3.1 based ATM     November 1996   The initial signalling path between a MARS client (managing an   endpoint) and its associated MARS is a transient point to point,   bidirectional VC.  This VC is established by the MARS client, and is   used to send queries to, and receive replies from, the MARS. It has   an associated idle timer, and is dismantled if not used for a   configurable period of time. The minimum suggested value for this   time is 1 minute, and the RECOMMENDED default is 20 minutes.  (Where   the MARS and ARP Server are co-resident, this VC may be used for both   ATM ARP traffic and MARS control traffic.)   The remaining signalling path is ClusterControlVC, to which the MARS   client is added as a leaf node when it registers (described in   section 5.2.3).   The majority of this document covers the distribution of information   allowing endpoints to establish and manage outgoing point to   multipoint VCs - the forwarding paths for multicast traffic to   particular multicast groups. The actual format of the AAL_SDUs sent   on these VCs is almost completely outside the scope of this   specification.  However, endpoints are not expected to know whether   their forwarding path leads directly to a multicast group's members   or to an MCS (described in section 3). This requires additional per-   packet encapsulation (described in section 5.5) to aid in the the   detection of reflected AAL_SDUs.5.1  Transmit side behaviour.   The following description will often be in terms of an IPv4/ATM   interface that is capable of transmitting packets to a Class D   address at any time, without prior warning. It should be trivial for   an implementor to generalise this behaviour to the requirements of   another layer 3 data protocol.   When a local Layer 3 entity passes down a packet for transmission,   the endpoint first ascertains whether an outbound path to the   destination multicast group already exists. If it does not, the MARS   is queried for a set of ATM endpoints that represent an appropriate   forwarding path. (The ATM endpoints may represent the actual group   members within the cluster, or a set of one or more MCSs. The   endpoint does not distinguish between either case. Section 6.2   describes the MARS behaviour that leads to MCSs being supplied as the   forwarding path for a multicast group.)Armitage                    Standards Track                    [Page 17]RFC 2022          Multicast over UNI 3.0/3.1 based ATM     November 1996   The query is executed by issuing a MARS_REQUEST.  The reply from the   MARS may take one of two forms:      MARS_MULTI - Sequence of MARS_MULTI messages returning the set of                   ATM endpoints that are to be leaf nodes of an                   outgoing point to multipoint VC (the forwarding                   path).      MARS_NAK - No mapping found, group is empty.   The formats of these messages are described in section 5.1.2.   Outgoing VCs are established with a request for Unspecified Bit Rate   (UBR) service, as typified by the IETF's use of VCs for unicast IP,   described in RFC 1755 [6].  Future documents may vary this approach   and allow the specification of different ATM traffic parameters from   locally configured information or parameters obtained through some   external means.5.1.1   Retrieving Group Membership from the MARS.   If the MARS had no mapping for the desired Class D address a MARS_NAK   will be returned. In this case the IP packet MUST be discarded   silently. If a match is found in the MARS's tables it proceeds to   return addresses ATM.1 through ATM.n in a sequence of one or more   MARS_MULTIs.  A simple mechanism is used to detect and recover from   loss of MARS_MULTI messages.   (If the client learns that there is no other group member in the   cluster - the MARS returns a MARS_NAK or returns a MARS_MULTI with   the client as the only member - it MUST delay sending out a new   MARS_REQUEST for that group for a period no less than 5 seconds and   no more than 10 seconds.)   Each MARS_MULTI carries a boolean field x, and a 15 bit integer field   y - expressed as MARS_MULTI(x,y). Field y acts as a sequence number,   starting at 1 and incrementing for each MARS_MULTI sent.  Field x   acts as an 'end of reply' marker. When x == 1 the MARS response is   considered complete.   In addition, each MARS_MULTI may carry multiple ATM addresses from   the set {ATM.1, ATM.2, .... ATM.n}. A MARS MUST minimise the number   of MARS_MULTIs transmitted by placing as many group members'   addresses in a single MARS_MULTI as possible. The limit on the length   of an individual MARS_MULTI message MUST be the MTU of the underlying   VC.Armitage                    Standards Track                    [Page 18]RFC 2022          Multicast over UNI 3.0/3.1 based ATM     November 1996   For example, assume n ATM addresses must be returned, each MARS_MULTI   is limited to only p ATM addresses, and p << n. This would require a   sequence of k MARS_MULTI messages (where k = (n/p)+1, using integer   arithmetic), transmitted as follows:      MARS_MULTI(0,1) carries back {ATM.1 ... ATM.p}      MARS_MULTI(0,2) carries back {ATM.(p+1) ... ATM.(2p)}            [.......]      MARS_MULTI(1,k) carries back { ... ATM.n}   If k == 1 then only MARS_MULTI(1,1) is sent.   Typical failure mode will be losing one or more of MARS_MULTI(0,1)   through MARS_MULTI(0,k-1). This is detected when y jumps by more than   one between consecutive MARS_MULTI's. An alternative failure mode is   losing MARS_MULTI(1,k).  A timer MUST be implemented to flag the   failure of the last MARS_MULTI to arrive. A default value of 10   seconds is RECOMMENDED.   If a 'sequence jump' is detected, the host MUST wait for the   MARS_MULTI(1,k), discard all results, and repeat the MARS_REQUEST.   If a timeout occurs, the host MUST discard all results, and repeat   the MARS_REQUEST.   A final failure mode involves the MARS Sequence Number (described in   section 5.1.4.2 and carried in each part of a multi-part MARS_MULTI).   If its value changes during the reception of a multi-part MARS_MULTI   the host MUST wait for the MARS_MULTI(1,k), discard all results, and   repeat the MARS_REQUEST.   (Corruption of cell contents will lead to loss of a MARS_MULTI   through AAL5 CPCS_PDU reassembly failure, which will be detected   through the mechanisms described above.)   If the MARS is managing a cluster of endpoints spread across   different but directly accessible ATM networks it will not be able to   return all the group members in a single MARS_MULTI. The MARS_MULTI   message format allows for either E.164, ISO NSAP, or (E.164 + NSAP)   to be returned as ATM addresses. However, each MARS_MULTI message may   only return ATM addresses of the same type and length. The returned   addresses MUST be grouped according to type (E.164, ISO NSAP, or   both) and returned in a sequence of separate MARS_MULTI parts.Armitage                    Standards Track                    [Page 19]RFC 2022          Multicast over UNI 3.0/3.1 based ATM     November 19965.1.2   MARS_REQUEST, MARS_MULTI, and MARS_NAK messages.   MARS_REQUEST is shown below. It is indicated by an 'operation type   value' (mar$op) of 1.   The multicast address being resolved is placed into the the target   protocol address field (mar$tpa), and the target hardware address is   set to null (mar$thtl and mar$tstl both zero).   In IPv4 environments the protocol type (mar$pro) is 0x800 and the   target protocol address length (mar$tpln) MUST be set to 4. The   source fields MUST contain the ATM number and subaddress of the   client issuing the MARS_REQUEST (the subaddress MAY be null).      Data:       mar$afn      16 bits  Address Family (0x000F).       mar$pro      56 bits  Protocol Identification.       mar$hdrrsv   24 bits  Reserved. Unused by MARS control protocol.       mar$chksum   16 bits  Checksum across entire MARS message.       mar$extoff   16 bits  Extensions Offset.       mar$op       16 bits  Operation code (MARS_REQUEST = 1)       mar$shtl      8 bits  Type & length of source ATM number. (r)       mar$sstl      8 bits  Type & length of source ATM subaddress. (q)       mar$spln      8 bits  Length of source protocol address (s)       mar$thtl      8 bits  Type & length of target ATM number (x)       mar$tstl      8 bits  Type & length of target ATM subaddress (y)       mar$tpln      8 bits  Length of target group address (z)       mar$pad      64 bits  Padding (aligns mar$sha with MARS_MULTI).       mar$sha      roctets  source ATM number       mar$ssa      qoctets  source ATM subaddress       mar$spa      soctets  source protocol address       mar$tpa      zoctets  target multicast group address       mar$tha      xoctets  target ATM number       mar$tsa      yoctets  target ATM subaddress   Following the RFC1577 approach, the mar$shtl, mar$sstl, mar$thtl and   mar$tstl fields are coded as follows:                7 6 5 4 3 2 1 0               +-+-+-+-+-+-+-+-+               |0|x|  length   |               +-+-+-+-+-+-+-+-+Armitage                    Standards Track                    [Page 20]RFC 2022          Multicast over UNI 3.0/3.1 based ATM     November 1996   The most significant bit is reserved and MUST be set to zero.  The   second most significant bit (x) is a flag indicating whether the ATM   address being referred to is in:      - ATM Forum NSAPA format (x = 0).      - Native E.164 format (x = 1).   The bottom 6 bits is an unsigned integer value indicating the length   of the associated ATM address in octets. If this value is zero the   flag x is ignored.   The mar$spln and mar$tpln fields are unsigned 8 bit integers, giving   the length in octets of the source and target protocol address fields   respectively.   MARS packets use true variable length fields. A null (non-existant)   address MUST be coded as zero length, and no space allocated for it   in the message body.   MARS_NAK is the MARS_REQUEST returned with operation type value of 6.   All other fields are left unchanged from the MARS_REQUEST (e.g. do   not transpose the source and target information. In all cases MARS   clients use the source address fields to identify their own messages   coming back).   The MARS_MULTI message is identified by an mar$op value of 2. The   message format is:      Data:       mar$afn      16 bits  Address Family (0x000F).       mar$pro      56 bits  Protocol Identification.       mar$hdrrsv   24 bits  Reserved. Unused by MARS control protocol.       mar$chksum   16 bits  Checksum across entire MARS message.       mar$extoff   16 bits  Extensions Offset.       mar$op       16 bits  Operation code (MARS_MULTI = 2).       mar$shtl      8 bits  Type & length of source ATM number. (r)       mar$sstl      8 bits  Type & length of source ATM subaddress. (q)       mar$spln      8 bits  Length of source protocol address (s)       mar$thtl      8 bits  Type & length of target ATM number (x)       mar$tstl      8 bits  Type & length of target ATM subaddress (y)       mar$tpln      8 bits  Length of target group address (z)       mar$tnum     16 bits  Number of target ATM addresses returned (N)       mar$seqxy    16 bits  Boolean flag x and sequence number y.       mar$msn      32 bits  MARS Sequence Number.       mar$sha      roctets  source ATM number       mar$ssa      qoctets  source ATM subaddress       mar$spa      soctets  source protocol address       mar$tpa      zoctets  target multicast group addressArmitage                    Standards Track                    [Page 21]RFC 2022          Multicast over UNI 3.0/3.1 based ATM     November 1996       mar$tha.1    xoctets  target ATM number 1       mar$tsa.1    yoctets  target ATM subaddress 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -