[Ndn-interest] Hop-by-Hop Flow Balance

Ignacio.Solis at parc.com Ignacio.Solis at parc.com
Mon Mar 14 16:09:34 PDT 2016

[ Disclaimer: CCN currently uses flow balance as well ]

The current Hop-by-Hop Flow Balance is nonsense.

On 3/10/16, 11:46 PM, "Ndn-interest on behalf of Alex Afanasyev" <ndn-interest-bounces at lists.cs.ucla.edu on behalf of aa at CS.UCLA.EDU> wrote:
>[6] **Hop-by-Hop Flow Balance**:
>    Over each link, one interest packet should bring back no more than one data packet.

Seriously, who thinks this actually works?

Let me quote the webpage ( http://named-data.net/project/ndn-design-principles/ ):
"[6] Hop-by-Hop Flow Balancing: Over each link, one interest packet should bring back no more than one data packet.
Hop-by-hop flow balancing enables each node to control load over its links. By deciding to sending interest over a link, router commits bandwidth for the returned data. By limiting the number of interests sent, each router and client node in the network control how much data it will receive.

Either there is a lot of information missing here to justify why this is so, or this is very naïve.

First, if what you want to do is limit the number of content objects (or packets) returned, you don’t need to send one interest.  _Specially_ for NDN, which has prefix matching, you could send one interest with a count number (10) and expect to receive 10 content objects back.  There is no reason why I need to send 10 exact copies of the same interest.   Even if the interests had small variations, why send 10? Why not send 1 + the 10 deltas?   I guess it’s possible you may call that part of the “network adaptation layer”, who knows.

Also by requiring 1-to-1, you are always requiring an overhead (on the requester side) that is quite high. If you think of today’s type of networks, where a packet (internet sized) is around 1500 bytes, that means that even if we send interests of 30 bytes, we are incurring quite a bit of overhead in the upstream. This becomes considerable when doing high bandwidth video.

Please explain why the 1-to-1 is good.

Second, NDN allows very large packet sizes.  So, when I send 1 interest, I don’t now if what I’m going to get back is 1 byte or 18 exabytes.  How do routers use this information to control how much data they’re going to receive? Are they going to reserve 18 exabytes of traffic time?

If this principle were to be re-written as:
“Allow network nodes to participate in flow control” then the actual engineering solution might be able to achieve this.

Finally, at least we should acknowledge the limitations this type of approach requires; like symmetrical forwarding. 

It would be awkward if the only way for NDN to work over Satellite links would be to break the principles.


PS. Yes, there are people in this community who have looked at other ways to do flow-balance and flow-control. Maybe we should be learning from those and not just claiming as principle what we do today because we don’t want it questioned.

Nacho (Ignacio) Solis
Protocol Architect
Principal Scientist
Palo Alto Research Center (PARC)
Ignacio.Solis at parc.com

More information about the Ndn-interest mailing list