Internet DRAFT - draft-guo-tsvwg-ctfrc

draft-guo-tsvwg-ctfrc



Internet Engineering Task Force                               Yuchun Guo
INTERNET-DRAFT                                             Changjia Chen
draft-guo-tsvwg-ctfrc-01.txt                              Yongxiang Zhao
                                                 Univ. Northern Jiaotong
                                                             
                                                              Oct. 2001
                                                    Expires: April 2002




               CTFRC(Coupon TFRC): An enhanced version of TFRC
                             Protocol Specification

Status of this Memo

This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.

Internet Drafts are working documents of the Internet Engineering Task 
Force (IETF), its areas, and its working groups.  Note that other groups 
may also distribute working documents as Internet-Drafts.

Internet Drafts are draft documents valid for a maximum of six months 
and may be updated, replaced, or obsoleted by other documents 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 at
http://www.ietf.org/ietf/1id-abstracts.txt

The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.


Abstract

This document proposes CTFRC (Coupon TFRC), an end-to-end congestion
control mechanism friendly to both continuous streams and TCP flows,
based on the modification of TFRC protocol and RED protocol. Taking 
account of the specific requirements of continuous streams, CTFRC 
protocol introduces a coupon function into TFRC to represent the 
bandwidth utilization of each stream, and revises RED to adjust drop 
probability according to the coupon value carried in each packet header.
It inherits the merits of TFRC and promotes the QoS for continuous 
streams to a much higher level.





Chen/Zhao/Guo                                                   [Page 1]


INTERNET-DRAFT           Expires: April 2002              October 2001

Table of Contents

1. Specification  . . . . . . . . . . . . . . . . . . . . .   3
2. Introduction . . . . . . . . . . . . . . . . . . . . . .   3
3. Protocol Mechanism . . . . . . . . . . . . . . . . . . .   4
3.1 Framework of CTFRC  . . . . . . . . . . . . . . . . .   4
3.2 Coupon mechanism  . . . . . . . . . . . . . . . . . .   4
3.2.1 Coupon evaluation mechanism . . . . . . . . . . .   4
3.2.2 Coupon execution mechanism  . . . . . . . . . . .   5
3.3 Packet contents and coupon field  . . . . . . . . . .   5
4. Protocol specifications  . . . . . . . . . . . . . . . .   5
4.1 End-protocol  . . . . . . . . . . . . . . . . . . . .   5
4.2 Network-protocol  . . . . . . . . . . . . . . . . . .   7
5. Fairness Criterion of Coupon Function  . . . . . . . . .   8
6. Authors' Addresses . . . . . . . . . . . . . . . . . . .   8
7. Reference  . . . . . . . . . . . . . . . . . . . . . . .   8




































Chen/Zhao/Guo                                                 [Page 2]


INTERNET-DRAFT           Expires: April 2002              October 2001


1. Specification

In this document, the key words "MUST", "MUST NOT", "REQUIRED",
 "SHALL","SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",
 "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119.


2. Introduction

TFRC [1] is a TCP-friendly congestion control mechanism designed for
streaming media. It has much lower variations of throughput over time
compared with TCP, which makes it much suitable for continuous
applications than TCP. 

While to probe smoother bandwidth than TCP does is the main object of
TFRC, the bandwidth it probes still has large fluctuations observed in 
our simulations, thus only adaptive or layered coding schemes might 
exploit such a probed bandwidth efficiently.

More seriously, TFRC does not give enough considerations to the specific
characteristics distinguishing realtime streams  from non-realtime 
applications including the following:
(1) A realtime stream has its own traffic characteristics independent of
the available network resources;
(2) A realtime stream is delay-sensitive;
(3) A realtime stream cannot endure the heavy network loss as a 
non-realtime flow does.
TFRC assumes each flow can use up its fair share of bandwidth. However 
in many cases, a realtime application, such as the IP voice or low 
quality IP video application in today's Internet can consume only a 
fraction of the bandwidth it is allocated and won't change its working 
rate as the network bandwidth increases. Furthermore our simulation 
shows that for any stream transported by TFRC, no matter its working 
rate is smaller or larger than the TCP fair bandwidth, the loss rate and
time delay it endures is at least in the same order as that of a 
competing TCP connection. Today's Internet has a loss rate in the order 
of 10%, which is intolerable for most applications. In this sense, we 
think TFRC is not so friendly to real-time streams as it is friendly to 
TCP in the network aspect. 

CTFRC is proposed to be friendly both to the TCP flows and continuous
streams. The friendliness to continuous streams is defined as that the
control mechanism manages to satisfy the specific requirements of
continuous streams with best effort. When the working rate of a realtime
stream is higher than the network fair bandwidth, CTFRC transmits this
stream at the fair rate. Otherwise the CTFRC will pay back the stream 
some favorite QoS treatments as a compensation for the unused fraction 
of its fair share. This compensation could be a lower network loss rate,



Chen/Zhao/Guo                                                 [Page 3]


INTERNET-DRAFT           Expires: April 2002              October 2001


a shorter delay, or a less delay jitter, or some combination of them,
compared with that of TCP flows. With CTFRC, QoS can be dynamically
adjusted at the transport layer and a straightforward encoding scheme 
can be used at the application layer.

To implement this double friendliness, CTFRC introduces the concept of
coupon that represents the intensity of some QoS favorite rights 
bartered with the unused bandwidth share and connects the network 
fairness with the QoS. Current coupon value is calculated and attached 
to a data packet header at the source terminal. Proper Per-Hop-Behavior
(PHB) can be specified in the network to put the QoS favorites into 
effect according to the coupon. In this document a modified RED (Random
Early Discard) algorithm is used in the network to tradeoff lower loss
rate with unused bandwidth.  

To maintain the continuity in protocol stack and reduce the unnecessary
work in programming of the protocol code, CTFRC proposed in this draft 
has very little modification to the already proposed protocols of TFRC
and RED. In fact CTFRC can be viewed as a part of a new version of TFRC
with a coupon mechanism. When the coupon mechanism is disabled in this
new version of TFRC, it is the original TFRC.

3. Protocol Mechanism

3.1 Framework of CTFRC

A model of CTFRC consists of two parts: end-protocol and network
protocol. The end-protocol is essential a TFRC with only one change to
add a coupon evaluation mechanism to calculate a coupon which is
attached to the header of each sending packet. The network protocol is a
slightly modified RED, which uses the coupon value carried by the
received packet to adjust its dropping probability for this packet. 

Since the protocol of CTFRC is essential a modification to the existed
two protocols, only the modified parts to these two existed protocols are
specified in this draft. The essential part of these two protocols (TFRC
and RED) is not changed and is embedded in the protocol of CTFRC as a
whole. In the rest part of this document, the word "TFRC" and "RED" 
stand for the TFRC and RED part embedded in CTFRC if there has no any
further specifications.

3.2 Coupon mechanism 

Coupon mechanism is the main feature CTFRC contributed to TFRC. It
consists two parts: the coupon evaluation mechanism at the sending
terminal and the coupon execution mechanism at the network. 

3.2.1 Coupon evaluation mechanism

Coupon evaluation mechanism uses a coupon function to evaluate a current

Chen/Zhao/Guo                                                   [Page 4]


INTERNET-DRAFT            Expires: April 2002             October 2001


coupon value from probed bandwidth r_pb and user-consumed rate r_use, 
and attaches this coupon value to the header of each sending packet. In 
this draft, the probed bandwidth is provided by TFRC, the user-consumed
rate is either estimated at the sending terminal (which needs a new
component in CTFRC) or adopted from the report of receiving terminal
(which has been specified in TFRC). 

The key component of coupon evaluation mechanism is the coupon function
C(r_pb, r_use). The choice of coupon functions is largely influenced by 
the fairness criterion one may take. Further more, even for a given
fairness criterion, one needs to slightly tune a given coupon function
to overcome some implementation problems. In this document, we will
specify CTFRC with an arbitrary coupon function, which will leave the
room for the protocol to adopt any possible fairness considerations.
saving space and further more for easy to understand what is changed, we
discussion and test. In Section 5, the relations of coupon function and
fairness criterion are discussed for further development in the protocol.

3.2.2 Coupon execution mechanism

Coupon execution mechanism is an AQM scheme. It drops a packet with a 
probability that is related to the average buffer occupation and the 
coupon value stamped at the packet. In this document, modified RED is
suggested as the coupon execution mechanism. This does not mean to 
exclude other possible AQM schemes to play a role in coupon execution
mechanism.

3.3 Packet contents and coupon field

CTFRC follows the TFRC specifications for the contents of data packets
and feedback packets in [1] except of an additional coupon field 
inserted to the TFRC data packet header. This coupon field holds the 
coupon value the sender calculates for a packet. 

4. Protocol specifications

4.1 End-protocol

The end-protocol of CTFRC is a slightly modification to TFRC [1]. For
saving space and further more for easy to understand what is changed, we 
use IETF draft [1] as the main body of the end-protocol of CTFRC. Only
the changed parts are listed here. In this section we will use the
following conventions:
/number/, to indicate the section number in [1], for example /1.2/ means
          the Sec.1.2 in [1]. 
/text/, to denote the original sentences in draft [1]. 
//number//, to indicate the addition section we add to draft [1], for 
          example //4.7// leads a section that we add to [1] and is 



Chen/Zhao/Guo                                                   [Page 5]


INTERNET-DRAFT            Expires: April 2002             October 2001


          numbered according to the numbering sequence in [1].

Following are the changed parts to [1].

Add in /3.2.1/:
      /3.2.1. Data Packets
      Each data packet sent by the data sender contains the following
      information:
      o   A ...
      .../
   o   A coupon value. The coupon value attached in packet i is denoted by C_i. 

Add a new section in /4/:
      /4. Data Sender Protocol
       The data ...
       We specify the sender-side protocol in the following steps: 
       Measurement .... 
       ..../
       .../
      /4.6. ...
      ... If t_gran is not known, a value of 10 ms can be safely assumed./

   //4.7.// Coupon evaluation mechanism	

    Probed bandwidth and user-consumed rate are denoted as r_pb and 
    r_use respectively. The coupon function used is denoted as
    C(r_pb, r_use).

   // 4.7.1.// Calculation of user-consumed rate

    There are two options in getting user-consumed rate: estimated at the
    sending part (option E ) or adopted from the report of the receiving
    part (option A ):
	    If option E
	         r_use=r_ue
	    Else if option A
	         r_use= X_recv.
    Where X-recv is the actual user-consumed rate measured by the 
    receiver (See Sec. 6.2 in [1]), r_ue is the estimated sending rate and 
    can be calculated as follows [3]:
         r_ue = (1-exp(-T_i/K)) * l_i/T_i + exp(-T_i/K) * r_ue
    Where
         T_i = t_i - t_[i-1], the inter-packet interval, 
         t_i, the arrival time of the packet i respectively, 
         l_i, the length of the packet i respectively, 
         l_i/T_i , the currently measured value of r, 
         K, a constant,
         exp(-T_i/K), the exponential weight.

    

Chen/Zhao/Guo                                                   [Page 6]


INTERNET-DRAFT            Expires: April 2002             October 2001


    //4.7.2// Calculation of the coupon value

     For packet i that is sending do
           If nofeedback timer is not expired
                 C_i = C(r_pb, r_use)
           Else
                 C_i = 1

    //4.7.3// Coupon Function

     In this document, following 3 coupon functions are recommended:
      1). Simple coupon function:
              Cs(r_pb, r_use) = r_use/r_pb;

      2). Lower-Limited Simple coupon function: the coupon value is 
          lower bounded by a pre-set number of b_lower. The LL-S coupon
          function is denoted as CLL(r_pb, r_use) and defined as
          follows: 
              If Cs(r_pb, r_use) >= b_lower
                     CLL(r_pb, r_use) = Cs(r_pb, r_use) 
              Else 
                     CLL(r_pb, r_use) = b_lower.

      3). Run-Length Simple coupon function: In RL-S, the coupon 
          function is varied periodically with a fixed number of 
          packets being sent out. The period is named as the 
          Coupon-Period and denoted as PC. In fact the value of PC can
          be chosen according to different applications and different
          network conditions just like b_lower for LL-S. The coupon
          function, after k packets being sent out from the start of a
          new period, is denoted as CRL(r_pb, r_use, k) for RL- S. The
          coupon function is defined as follows:
              If k = 0
                    CRL(r_pb, r_use,k) = 1
              Else if 0< k < P_c
                    CRL(r_pb, r_use, k) = (1-W_c) * CRL(r_pb, r_use, k-1)
                                            + W_c*r_use/r_pb.

4.2. Network-protocol

CRED has only an additional function put on RED. A router calculates a 
drop probability p_drop based on the conventional RED algorithm. At
receiving a packet i, the router extracts its coupon value C_i and
weights the drop probability as follows:
       p_drop = p_drop* C_i .
Then it drops this newly arrived packet with this modified probability
much smaller than the real loss rate of the network when the coupon
value is smaller than 1.



Chen/Zhao/Guo                                                 [Page 7]


INTERNET-DRAFT            Expires: April 2002             October 2001


5. Fairness Criterion of Coupon Function

We define Rate Consumption Factor f_rc as the consumed rate r_use 
normalized by the TCP-Fair Bandwidth r_tcp: f_rc = r_use/r_tcp. In 
general a coupon function should be a non-decreasing function of f_rc
with an upper limit of 1. This will guarantee the fairness among CTFRC
flows and the TCP friendliness of the resulted protocol in all cases. 
The simple coupon function we proposed above equivalents to 
Cs(r_pb, r_use) = min (f_rc^2,1) [2]. We name the inverse of a coupon
value as the loss gain factor f_lg. The inverse of a coupon function
 1/C(r_pb, r_use) physically means the gain factor of a CTFRC flow 
acquired in the loss probability compared with that of a TCP or TFRC 
flow in same network conditions. A fairness criterion is a rule that
specifies how to trade the Rate Consumption Factor f_rc with the loss 
gain factor f_lg(f_rc). The fairness criterion adopted by the simple 
coupon function is f_lg(f_rc) = f_rc^(-2) approximately. The framework
of the proposed CTFRC is broad enough to accommodate any possible 
fairness criterion simply by modifying the coupon function.

6. Authors' Addresses

  Yuchun Guo, Changjia Chen, Yongxiang Zhao 
   Faculty of Electrical and Information Engineering
   Northern Jiaotong University  
   Beijing, 100044
   People's Republic of China
   guoyuchun21@sina.com.cn, changjiachen@sina.com.cn,
   yongxiang_zh@sina.com.cn


7. Reference

[1] Mark Handley, Jitendra Padhye, Sally Floyd, Joerg Widmer, "TCP
    Friendly Rate Control (TFRC): Protocol Specification", 
    INTERNET-DRAFT, 20 July 2001. draft-ietf-tsvwg-tfrc-03

[2] Yongxiang Zhao, and Chang-jia Chen. "Coupon TFRC: A Mechanism Being
    Friendly to Both TCP and Continuous Streams", Computer Networks
    Journal, 2001.8ú¼accepted .

[3] I. Stoica, S. Shenker, and H. Zhang, "Core-Stateless Fair Queue: A
    Scalable Architecture to Approximate Fair Bandwidth Allocation in 
    High Speed Networks", In Proc. of ACM SIGCOMM'98, September 1998.









Chen/Zhao/Guo                                                  [Page 8]