idnits 2.17.1 draft-crowcroft-rmfp-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-25) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 285 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Abstract section. ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** There are 7 instances of too long lines in the document, the longest one being 2 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 13 has weird spacing: '...and its worki...' == Line 21 has weird spacing: '...To learn the...' == Line 23 has weird spacing: '...ctories on ...' == Line 26 has weird spacing: '...The distribut...' == Line 27 has weird spacing: '...t>, and expir...' == (2 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (Nov 1996) is 10023 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 11 errors (**), 0 flaws (~~), 8 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group J Crowcroft (UCL) 2 Z Wang (UCL) 3 Internet-Draft A Ghosh (UTS) 4 C Diot (INRIA) 5 Nov 1996 7 RMFP: A Reliable Multicast Framing Protocol 9 Status of this Memo 11 This document is an Internet-Draft. Internet-Drafts are working 12 docu ments of the Internet Engineering Task Force (IETF), its 13 areas, and its working groups. Note that other groups may also 14 distribute working documents as Internet-Drafts. 16 Internet-Drafts are draft documents valid for a maximum of six months 17 and may be updated, replaced, or obsoleted by other documents at any 18 time. It is inappropriate to use Internet-Drafts as reference material 19 or to cite them other than as ``work in progress.'' 21 To learn the current status of any Internet-Draft, please check the 22 ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow 23 Directories on ds.internic.net (US East Coast), nic.nordu.net 24 (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). 26 The distribution of this memo is unlimited. It is filed as 27 , and expires 15 May, 1997. 28 Please send comments to the authors. 30 1. Introduction 32 There has been considerable interest in reliable multicast, and 33 a number of reliable multicast transport systems have been 34 proposed in the past years. 36 Reliable multicast transport is considerably more complex than 37 reliable unicast. It is difficult to build a generic reliable 38 transport protocol for muitlcast, much as TCP is a generic transport 39 protocol for unicast, since different applications often have very 40 different reliability requirements and modes of operation. 42 In this document we propose a framing protocol for reliable multicast 43 transport - Reliable Multicast Framing Protocol (RMFP). RMFP 44 runs over multicast UDP and itself does not provide any reliability 45 (or functionality in a larger extend). Reliability and other 46 protocol functionalities will be defined in specific profiles. 47 The purpose of RMFP is to provides a common framework upon 48 which a set of reliable multicast systems can be built and 49 share similar functionalities where exist. 51 The philosophy of RMFP is in many respects similar to the one 52 of RTP. However, RMFP is different from RTP, as we believe that 53 using RTP for reliable multicast is not a right approach and 54 will not lead to a clean application design. 56 This draft is intended to stimulate more discussion on the 57 one issue of a generic framing protocol for reliable multicast. 59 2. RMFP Packet Format 61 RMFP packet header inclcudes common per-packet related fields. An 62 application may include application-specific fields in a 63 preamble header. 65 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 2 66 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 67 | V |R|E| FLAGS | PAYLOAD TYPE | SEQUENCE NUMBER | 68 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 69 | SOURCE ID | 70 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 71 | OFFSET | 72 | | 73 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 75 Version(V): 2 bits 76 This field identifies the version of RMFP. 78 Retransmission (R): 1 bit 79 This bit, when set, indicates that it is a retransmitted 80 information. 82 Forward Error Correction (E): 1 bit 83 This bit, when set, indicates that FEC is used. The exact 84 format of FEC is determined by Payload Type and its profile. 86 Flags: 4 bits 87 The flags are used for indicating significant features such 88 as object (or ADUs) boundaries. Object boundaries can be used for 89 multiplexing multiple objects within a single session. For 90 example, one can multicast several files within one session. 92 0000: reserved 93 0001: start mark - the start of an object 94 0010: end mark - the end of an object 95 other: reserved 97 Payload Type: 8 bits 98 This field identifies the format of the payload and 99 determines its intepretation by the application. 100 Profiles will be defined for each payload type. 102 Sequence Number: 16 bits 104 The sequence number increments by one for each data packet 105 sent. Sequence number can be used to determine packet 106 losses (including both data packet and retransmitted packets) 108 Source ID: 32 bits 109 This field identifies the source. It is generated randomly 110 similar to the SSRC field in RTP. It can be used to detect 111 packet losses. 113 Offset: 64 bits 114 This field identifies the position of the data relative to 115 the beginning of the session. 117 3. RMFP Control Packet Format 119 RMFP control packets include sender's report packets and 120 receiver's report packets. 122 Sender's Report Packet 124 Sender's report is sent periodically by the sender about the 125 data transmitted in the session. 127 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 2 128 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 129 | V | RESERVED | PAYLOAD TYPE | HEADER LENGTH | 130 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 131 | SOURCE ID | 132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 133 | NTP TIMESTAMP | 134 | | 135 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 136 | HIGHEST OCTET NUMBER SENT | 137 | | 138 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 139 | MAXIMUM OCTET NUMBER EXPECTED | 140 | | 141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 142 | OBJECT NAME | 143 | ... | 144 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 146 Version(V): 2 bits 147 This field identifies the version number. 149 Payload Type: 8 bits 150 This field is set to xxx for Sender's Report Packets 152 Header Length: 16 bits 153 This field specifies the length of the header. 155 Source ID: 32 bits 156 This field identifies the source of the sender 158 NTP Timestamp: 64 bits 159 The NTP timestamp when the report is sent. 161 Highest Octet Number Sent: 64 bits 162 This field indicates the data sent at the time the report 163 is sent. 165 Maximum Octet Number Expected: 64 bits 166 This field indicates the total size of the object. An 167 application may use the information to allocate space for the 168 session. Set to zero if the size is unknown. 170 Object Name 171 This is a variable length field identifying the name of the 172 object. It may be a filename, a URL, a message name etc. 174 Receiver's Report Packet 176 Receiver's report is periodically sent by the receivers to 177 give feedback on congestion and packet losses. 179 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 2 180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 181 | V | RESERVED | PAYLOAD TYPE | HEADER LENGTH | 182 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 183 | SOURCE ID | 184 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 185 | HIGHEST OCTET NUMBER RECEIVED | 186 | | 187 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 188 | LAST SENDER'S REPORT TIMESTAMP | 189 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 190 | DELAY SINCE LAST SENDER'S REPORT | 191 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 192 | FRACTION LOST | RESERVED | 193 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 194 | SPAN BLOCKS | 195 | ..... | 196 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 198 Version(V): 2 bits 199 This field identifies the version number. 201 Payload Type: 8 bits 202 This field is set to xxx for Receiver's Report Packets 204 Header Length: 16 bits 205 This field specifies the length of the header. 207 Source ID: 32 bits 208 This field identifies the source of the report 210 Highest Octet Number Received: 64 bits 211 This field indicates the highest octet of the data received so far. 213 Last Sender's Report Timestamp: 32 bits 214 The middle 32 bits of the NTP Timestamp of the most recent 215 Sender's Report 217 Delay Since Last Sender's Report: 32 bits 218 The delay, expressed in units of 1/65536 seconds, between 219 receiving last Sender's report and sending of this report 221 Fraction Lost: 8 bits 222 The fraction of packets lost since last Sender's report, 223 expressed as a fixed point number with the binary 224 point at the left edge of the field. Fraction lost is the 225 loss rate seen by the receiver. The information may be 226 used for congestion control, error recovery purpose by the 227 sender. 229 SPAN Blocks: 64 bits + 32 bits each block 230 Each block specifies the offset number and the length of 231 a missing data block. The information is used for 232 retransmission of lost packets. 234 4. Open Issues 236 Profiles for applications 238 Various and numerous mechanisms can be used to control reliability. 239 Consequently, control information specific to each mechanism 240 cannot be provided ion the RMFP protocol. We propose a profile to be 241 defined for each mechanism. The SRM profile could be based on Parnes' work 242 on reliable RTP, for example. Other profiles could be defined for the 243 various FEC types. 245 Explicit join/leave 247 Some reliable applications may need an explicit Join and Leave mechanism. 248 It is not clear to us today how this facility should be provided, or if it 249 has to be provided in RMFP (using reports or a new packet type). 251 5. Authors's Addresses 253 J Crowcroft, Zheng Wang 254 {j.crowcroft, z.wang}@cs.ucl.ac.uk 255 Department of Computer Science 256 University College London 257 Gower Street 258 London 259 WC1E 6BT 261 Atanu Ghosh 262 atanu@socs.uts.EDU.AU 263 School of Computing Sciences 264 University of Technology 265 Sydney 266 PO Box 123 , Broadway 267 NSW 2007 268 Australia 270 Christophe Diot 271 Christophe.Diot@sophia.inria.fr 272 INRIA 273 Sophia Antipolis, 2004 274 route des Lucioles 275 BP93 06902 276 France