1# Transport-Wide Congestion Control 2 3This RTP header extension is an extended version of the extension defined in 4<https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01> 5 6**Name:** "Transport-wide congenstion control 02" 7 8**Formal name:** 9<http://www.webrtc.org/experiments/rtp-hdrext/transport-wide-cc-02> 10 11**Status:** This extension is defined here to allow for experimentation. Once 12experience has shown that it is useful, we intend to make a proposal based on 13it for standardization in the IETF. 14 15The original extension defines a transport-wide sequence number that is used in 16feedback packets for congestion control. The original implementation sends these 17feedback packets at a periodic interval. The extended version presented here has 18two changes compared to the original version: 19* Feedback is sent only on request by the sender, therefore, the extension has 20 two optional bytes that signals that a feedback packet is requested. 21* The sender determines if timing information should be included or not in the 22 feedback packet. The original version always include timing information. 23 24Contact <kron@google.com> or <sprang@google.com> for more info. 25 26## RTP header extension format 27 28### Data layout overview 29Data layout of transport-wide sequence number 30 1-byte header + 2 bytes of data: 31 32 0 1 2 33 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 34 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 35 | ID | L=1 |transport-wide sequence number | 36 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 37 38Data layout of transport-wide sequence number and optional feedback request 39 1-byte header + 4 bytes of data: 40 41 0 1 2 3 42 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 43 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 44 | ID | L=3 |transport-wide sequence number |T| seq count | 45 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 46 |seq count cont.| 47 +-+-+-+-+-+-+-+-+ 48 49### Data layout details 50The data is written in the following order, 51* transport-wide sequence number (16-bit unsigned integer) 52* feedback request (optional) (16-bit unsigned integer)<br> 53 If the extension contains two extra bytes for feedback request, this means 54 that a feedback packet should be generated and sent immediately. The feedback 55 request consists of a one-bit field giving the flag value T and a 15-bit 56 field giving the sequence count as an unsigned number. 57 - If the bit T is set the feedback packet must contain timing information. 58 - seq count specifies how many packets of history that should be included in 59 the feedback packet. If seq count is zero no feedback should be be 60 generated, which is equivalent of sending the two-byte extension above. 61 This is added as an option to allow for a fixed packet header size. 62 63