Subject: [rmcat] The Definition of Fairness

From: Dan Weber <[email-masked]>
Date: Fri, 29 Mar 2013 14:33:12 -0600

As we all are aware, defining fairness presents challenges.  Michael
Ramhalko gives the best metaphor for describing it we know today, "I know
it when I see it".

To even more elaborate on his point, we can't say what is fair by seeing
it, we can only identify what is unfair.  When is something unfair?  Two
situations come to mind.

"That's not fair!"  These are the infamous words children say everyday when
they don't get their way.  Often times it could be some toy that is in use,
or maybe someone gets preferential treatment.  The child *"harmed'" *is
limited from participating in the same way as the other.  A similar case
could be waiting on a list at a busy restaurant. If you've been waiting on
the list for an hour, and someone walks in the door only to know the host
personally and jump ahead to the next available table.

Based on these examples, defining *unfairness* might be "when a participant
seeks out its own self interest at the expense of everyone else".  Because
when that man cuts you in line, he probably does so without acknowledging
your existence.  Merely assuming there are other participants can allow one
to adjust for their presence whether or not if their existence is clear.

Then, the antonym of my unfairness definition or the fairness definition is
the golden rule: "Treat others as you wish to be treated"  If the man who
cut in line then was subject to his own behavior elsewhere, he may become
upset with it as well and change his own behavior.  This is one of the
major issues with bittorrent.  Since bittorrent is so aggressive, everyone
else finds themselves in positions trying to protect their own applications
from its behavior, including competing bittorrents.

In light of this, we come to the question, "Is seeking RTP fairness with
itself enough?"  I say yes.

RTP in its current form exhibits the following behaviors:

   - It can be be short lived (short video clip)
   - It can be long lived (long telephone calls)
   - It can be bursty (i-frames go across the network)
   - It can be constant rate (constant bit rate audio codecs like mulaw)
   - It can be variable rate (video streams in general targeting consistent
   quality with changes in motion or picture)
   - It can be used in ways to maximize throughput (e.g. streaming movies
   at the highest quality a client can receive acceptably -- Hulu or
   equivalent)
   - It can be unresponsive to changes in the network (without any form of
   congestion control, RTP continues to send oblivious to other participants)
   - It competes with itself in the average case (audio + video streams
   from the same sender, multiple video streams for multi party conferencing)
   - It is time sensitive (as in real time media needs to be played back
   without prior to changes in human perception)
   - It assumes that network behavior is unpredictable (existence of RTCP +
   use of things like adaptive jitter buffers)

Let's say we agree on all of these behaviors.  It is safe to assume then
that competing with RTP is a superset of behaviors then it is to compete
with TCP, LEDBAT, or a web browser alone is it not?

Thanks,
Dan

---

From: "Bill Ver Steeg (versteb)" <[email-masked]>
Date: Fri, 29 Mar 2013 21:08:57 +0000

At the risk of starting a philosophical debate, I think we should consider some lessons from game theory.

The “Prisoner’s Dilemma” comes to mind. If an application senses that the programs that it is sharing a link with are “fair” (where fair boils down to “give me a reasonable amount of BW and do not excessively delay my traffic”), the logical thing to is to also be fair. When an application senses that another program is taking up all of the available link BW and/or causing delay for its data, that program would be foolish to allow the more aggressive competitor to seize all of the link BW. It would, in turn, be aggressive in its behavior. There are a few solutions to this problem, and I encourage the group to look into this a bit. The winning game theory strategies boil down to variations on “tit for tat”, in which participant starts out being cooperative, but becomes uncooperative when peers are seen to be uncooperative.

The “tragedy of the commons” is a similar example.

In a perfect world, the network would have a way to influence application behaviors towards the desired behavior. Misbehaving applications would suffer from the delay penalty, but well behaved applications would not.

There are some theoretical solutions that fit the bill. For instance, the middlebox could segregate the traffic into a (set of) sub-queue(s) on a per QOS bucket basis. Theses sub queues would be designed such that  cooperative applications competed with other cooperative applications in a (set of) sub queue(s) and aggressive/misbehaving applications competed with other similar traffic. So, if you tend to respond to congestion signals, you will be in a (set of) sub-queue(s) with good delay characteristics and will get your “fair” share. If you tend to not respond to congestion signals, you will be in a (set of) sub-queue(s) with poor delay characteristics and the network will bias the BW towards the well behaved queue(s).

Unfortunately, this behavior is easier to visualize than to implement. It is fraught with corner cases, lots of state and tough decisions. I return you to  the networking discussions……..

Bvs

From: [email-masked] [mailto:[email-masked]] On Behalf Of Dan Weber
Sent: Friday, March 29, 2013 4:33 PM
To: [email-masked]
Subject: [rmcat] The Definition of Fairness

As we all are aware, defining fairness presents challenges.  Michael Ramhalko gives the best metaphor for describing it we know today, "I know it when I see it".

To even more elaborate on his point, we can't say what is fair by seeing it, we can only identify what is unfair.  When is something unfair?  Two situations come to mind.

"That's not fair!"  These are the infamous words children say everyday when they don't get their way.  Often times it could be some toy that is in use, or maybe someone gets preferential treatment.  The child "harmed'" is limited from participating in the same way as the other.  A similar case could be waiting on a list at a busy restaurant. If you've been waiting on the list for an hour, and someone walks in the door only to know the host personally and jump ahead to the next available table.

Based on these examples, defining unfairness might be "when a participant seeks out its own self interest at the expense of everyone else".  Because when that man cuts you in line, he probably does so without acknowledging your existence.  Merely assuming there are other participants can allow one to adjust for their presence whether or not if their existence is clear.

Then, the antonym of my unfairness definition or the fairness definition is the golden rule: "Treat others as you wish to be treated"  If the man who cut in line then was subject to his own behavior elsewhere, he may become upset with it as well and change his own behavior.  This is one of the major issues with bittorrent.  Since bittorrent is so aggressive, everyone else finds themselves in positions trying to protect their own applications from its behavior, including competing bittorrents.

In light of this, we come to the question, "Is seeking RTP fairness with itself enough?"  I say yes.

  *   It can be be short lived (short video clip)
  *   It can be long lived (long telephone calls)
  *   It can be bursty (i-frames go across the network)
  *   It can be constant rate (constant bit rate audio codecs like mulaw)
  *   It can be variable rate (video streams in general targeting consistent quality with changes in motion or picture)
  *   It can be used in ways to maximize throughput (e.g. streaming movies at the highest quality a client can receive acceptably -- Hulu or equivalent)
  *   It can be unresponsive to changes in the network (without any form of congestion control, RTP continues to send oblivious to other participants)
  *   It competes with itself in the average case (audio + video streams from the same sender, multiple video streams for multi party conferencing)
  *   It is time sensitive (as in real time media needs to be played back without prior to changes in human perception)
  *   It assumes that network behavior is unpredictable (existence of RTCP + use of things like adaptive jitter buffers)
Let's say we agree on all of these behaviors.  It is safe to assume then that competing with RTP is a superset of behaviors then it is to compete with TCP, LEDBAT, or a web browser alone is it not?

Thanks,
Dan

---

From: Dan Weber <[email-masked]>
Date: Fri, 29 Mar 2013 15:32:35 -0600

Hi Bill,

The prisoner's dilemma is a good example if you want to use the court of
public opinion as a moral compass.  My suggestion is to have merely give
RTP a conscience for its own behavior and not others.  It seeks to treat
itself and others by its own standards.  In a world where land is
plentiful, water flows cleanly, and sunlight is abundant, enough food can
be grown to support everyone's needs.  When battling plague or handling
severe drought, everyone needs the bare minimum for survival.   If that
bare minimum can not be attained while seeking to apply each's own general
principles first, than that man shall perish by the survival of the
fittest.

We have to run on the assumption that everyone will play fair and
reasonably, otherwise, we run the risk of a never ending game.  The US
court system exists to implement fairness understands these problems and
has settled on the premise that everyone acts in good faith unless proven
otherwise.

Thanks,
Dan

On Fri, Mar 29, 2013 at 3:08 PM, Bill Ver Steeg (versteb) <[email-masked]
> wrote:

>  At the risk of starting a philosophical debate, I think we should
> consider some lessons from game theory.****
>
> ** **
>
> The “Prisoner’s Dilemma” comes to mind. If an application senses that the
> programs that it is sharing a link with are “fair” (where fair boils down
> to “give me a reasonable amount of BW and do not excessively delay my
> traffic”), the logical thing to is to also be fair. When an application
> senses that another program is taking up all of the available link BW
> and/or causing delay for its data, that program would be foolish to allow
> the more aggressive competitor to seize all of the link BW. It would, in
> turn, be aggressive in its behavior. There are a few solutions to this
> problem, and I encourage the group to look into this a bit. The winning
> game theory strategies boil down to variations on “tit for tat”, in which
> participant starts out being cooperative, but becomes uncooperative when
> peers are seen to be uncooperative. ****
>
> ** **
>
> The “tragedy of the commons” is a similar example.****
>
> ** **
>
> In a perfect world, the network would have a way to influence application
> behaviors towards the desired behavior. Misbehaving applications would
> suffer from the delay penalty, but well behaved applications would not. **
> **
>
> ** **
>
> There are some theoretical solutions that fit the bill. For instance, the
> middlebox could segregate the traffic into a (set of) sub-queue(s) on a per
> QOS bucket basis. Theses sub queues would be designed such that
>  cooperative applications competed with other cooperative applications in a
> (set of) sub queue(s) and aggressive/misbehaving applications competed with
> other similar traffic. So, if you tend to respond to congestion signals,
> you will be in a (set of) sub-queue(s) with good delay characteristics and
> will get your “fair” share. If you tend to not respond to congestion
> signals, you will be in a (set of) sub-queue(s) with poor delay
> characteristics and the network will bias the BW towards the well behaved
> queue(s).****
>
> ** **
>
> Unfortunately, this behavior is easier to visualize than to implement. It
> is fraught with corner cases, lots of state and tough decisions. I return
> you to  the networking discussions……..****
>
> ** **
>
> ** **
>
> Bvs****
>
> ** **
>
> ** **
>
> *From:* [email-masked] [mailto:[email-masked]] *On Behalf
> Of *Dan Weber
> *Sent:* Friday, March 29, 2013 4:33 PM
> *To:* [email-masked]
> *Subject:* [rmcat] The Definition of Fairness****
>
> ** **
>
> it when I see it".****
> ** **
> situations come to mind.****
>
> ** **
>
> "That's not fair!"  These are the infamous words children say everyday
> when they don't get their way.  Often times it could be some toy that is in
> use, or maybe someone gets preferential treatment.  The child *"harmed'" *is
> personally and jump ahead to the next available table.****
>
> ** **
>
> Based on these examples, defining *unfairness* might be "when a
> participant seeks out its own self interest at the expense of everyone
> else".  Because when that man cuts you in line, he probably does so without
> acknowledging your existence.  Merely assuming there are other participants
> can allow one to adjust for their presence whether or not if their
> existence is clear.  ****
>
> ** **
>
> Then, the antonym of my unfairness definition or the fairness definition
> is the golden rule: "Treat others as you wish to be treated"  If the man
> who cut in line then was subject to his own behavior elsewhere, he may
> become upset with it as well and change his own behavior.  This is one of
> the major issues with bittorrent.  Since bittorrent is so aggressive,
> everyone else finds themselves in positions trying to protect their own
> applications from its behavior, including competing bittorrents.****
>
> ** **
>
> itself enough?"  I say yes.****
>
> ** **
>
> RTP in its current form exhibits the following behaviors:****
>
>    - It can be be short lived (short video clip)****
>    - It can be long lived (long telephone calls)****
>    - It can be bursty (i-frames go across the network)****
>    - It can be constant rate (constant bit rate audio codecs like mulaw)**
>    **
>    - It can be variable rate (video streams in
>    general targeting consistent quality with changes in motion or picture)
>    ****
>    equivalent)****
>    - It can be unresponsive to changes in the network (without any form
>    of congestion control, RTP continues to send oblivious to other
>    participants)****
>    ****
>    without prior to changes in human perception)****
>    - It assumes that network behavior is unpredictable (existence of RTCP
>    + use of things like adaptive jitter buffers)****
>
> with TCP, LEDBAT, or a web browser alone is it not?****
>
> ** **
>
> Thanks,****
>
> Dan****
>
>  ****
>