Network	
  Coding	
  Research	
  Group	
  
(NWCRG)	
  Overview	
  
IAB	
  Review	
  
13	
  November	
  2014	
  
	
  
Brian	
  Adamson	
  
Victor	
  Firoiu	
  
Network	
  Coding	
  
• Network	
  coding	
  is	
  a	
  method	
  of	
  opHmizing	
  the	
  
flow	
  of	
  digital	
  data	
  in	
  a	
  network	
  by	
  
transmiMng	
  digital	
  evidence	
  about	
  
messages	
  ...	
  	
  
• PotenHal	
  benefits	
  for	
  
– Capacity	
  
– Robustness	
  
– Security	
  
– Energy	
  efficiency	
  
Bu#erfly	
  Example	
  
MoHvaHon	
  for	
  NWCRG	
  
• Research	
  proved	
  performance	
  gains	
  and	
  pracHcal	
  
algorithms	
  
– From:	
  Netcoding	
  mulHcast	
  achieves	
  max	
  flow-­‐min	
  cut	
  	
  
– To:	
  Coding	
  scheme	
  for	
  reliable	
  communicaHon	
  over	
  packet	
  
networks	
  	
  
– To:	
  results	
  in	
  capacity	
  of	
  wireless	
  networks	
  using	
  network	
  
coding	
  
– And	
  many	
  others	
  	
  
– Much	
  research	
  remains	
  to	
  be	
  done.	
  
• Mature	
  ImplementaHons	
  
– Full	
  network	
  coding	
  systems	
  have	
  been	
  demonstrated	
  
– Network	
  coding	
  has	
  begun	
  “popping	
  up”	
  in	
  various	
  IRTF,	
  
IETF,	
  and	
  other	
  forums	
  
– More	
  general	
  applicability	
  and	
  opportunity	
  seen	
  with	
  new	
  
paradigms	
  such	
  as	
  InformaHon	
  Centric	
  Networking	
  and	
  
Soware	
  Defined	
  Networking	
  
	
  
3	
  
Open	
  Research	
  Areas	
  
• Aspects	
  of	
  packet	
  network	
  systems	
  
– Control,	
  RouHng	
  /	
  forwarding,	
  Transport,	
  Physical	
  layers	
  
• How	
  can	
  network	
  coding	
  be	
  effecHvely	
  and	
  
pragmaHcally	
  applied	
  to	
  a	
  scalable,	
  distributed	
  network	
  
like	
  the	
  Internet?	
  
– CongesHon	
  control,	
  End	
  vs.	
  Intermediate	
  System,	
  Edge	
  
(wireless)	
  
• Where	
  does	
  network	
  coding	
  provide	
  benefit?	
  
• Architecture,	
  operaHon	
  and	
  applicaHons	
  
– End-­‐to-­‐end	
  vs.	
  hop-­‐by-­‐hop	
  
– Intra-­‐flow	
  and	
  inter-­‐flow	
  
– ApplicaHon-­‐layer	
  use	
  
– Service	
  paradigms:	
  Best	
  Effort,	
  Content,	
  MulHmedia	
  
Candidate	
  Areas	
  for	
  standardizaHon	
  
(longer	
  term)	
  
• Common	
  encoding	
  algorithms	
  
• Protocols:	
  	
  
– Network	
  Coding	
  Transport	
  
– RouHng:	
  subgraph	
  construcHon	
  
– Forwarding	
  on	
  subgraphs	
  	
  
• Service	
  descripHons	
  
• Packet	
  formats	
  
Current	
  AcHviHes	
  and	
  Approach	
  
• InformaHon	
  exchange	
  
– Coding	
  techniques	
  
– Protocol	
  concepts	
  
– Use	
  cases	
  
• Taxonomy	
  and	
  architecture	
  development	
  
– AdempHng	
  to	
  derive	
  a	
  building	
  block	
  approach	
  
from	
  key	
  use	
  cases	
  and	
  idenHfiable	
  funcHonal	
  
areas	
  
Building	
  Blocks	
  
Applica0ons	
  
Prior	
  Example:	
  RMT	
  Building	
  Block	
  Approach	
  
TFMCC	
  	
  
PGMCC*	
  
WEBRC	
   Reed	
  
Solomon	
  
Security	
  
NACK	
  
FEC	
  
Raptor(Q)	
  
LDPC	
  
NORM	
   ALC	
  
FCAST	
   FLUTE	
  
LCT	
  
Protocol	
  Instan0a0ons	
  
TRACK*	
   GRA*	
  
*	
  Unrealized	
  building	
  blocks	
  
No-­‐Code	
  
Network Coding System Decomposition
8
System
	
  
Func0onal	
  
Area	
  1
	
  
Func0onal	
  
Area	
  2
	
  
Func0onal	
  
Area	
  ‘N’
	
  
Buildin
g	
  Block
	
  
Buildin
g	
  Block
	
  
Buildin
g	
  Block
	
  
Buildin
g	
  Block
	
  
Network Coding Use Cases
1. NC shim* layer - under TCP, UDP, SSH
2. NC transport, in-network coding
3. NC transport over overlay network
4. NC shim* under tunnel (MPLS, IPsec)
5. Coded TCP (or TCP-like) over disjoint paths
6. NC content dissemination at application layer
(*) Shim: usually between routing and transport
Note: This is not an exhaustive list, but hopefully a large
enough set to help identify key building blocks that can
be reapplied for different use cases.
9
M-­‐path	
  Fwd	
   M-­‐path	
  Fwd	
  
M-­‐path	
  Fwd	
  
MulH-­‐path	
  
RouHng	
  
Use	
  Case	
  2:	
  NC	
  Transport,	
  In-­‐Network	
  Coding	
  	
  
	
  
10	
  
App
NC	
  Coding	
   NC	
  Cong	
  Ctrl	
  
NC	
  Transport	
  
NC	
  Reliability	
  
IP IP
App
NC	
  Coding	
  
NC	
  Cong	
  Ctrl	
  
NC	
  Transport	
  
IP
NC	
  Reliability	
  
Coding vectors,
coded pkts
Feedback
Cong. signals
App data
Rate control
Coded symb,
Rank test
NC	
  Cod	
   NC	
  CC	
  
NC	
  Transport	
  
NC	
  Rel	
  
Up/down neighbors
Splitting ratios
Link quality
MulH-­‐path	
  
RouHng	
  
MulH-­‐path	
  
RouHng	
  
IP
• Assisted	
  by	
  mulH-­‐path	
  (subgraph)	
  rouHng	
  
• Usage:	
  reliability,	
  resilience	
  to	
  link	
  and	
  node	
  outage.	
  
• Supports	
  both	
  Unicast	
  and	
  MulHcast	
  
Network Coding Functional Areas
• NC Coding
– All coding operations
• NC Reliability
– Data and control to support reliable transfer
• NC Congestion Control
– Controls transmission rates
– Try to use existing algorithms
• Multi-path routing, multi-path forwarding
– How network coding is distributed over network from
source(s) to destination(s)
• Security
– First option: rely on existing solutions
– Coding can be used for pollution detection and correction,
anonimization, protection against denial of service
11
Network	
  Coding	
  RG	
  AcHviHes	
  
• Chartered	
  on	
  2013-­‐11-­‐13	
  
• ~28	
  research	
  presentaHons	
  over	
  4	
  meeHngs	
  
• Network	
  Coding	
  Taxonomy,	
  now	
  an	
  RG	
  dra	
  
dra-­‐irk-­‐nwcrg-­‐network-­‐coding-­‐taxonomy-­‐00	
  
• Individual	
  dras	
  
dra-­‐amdouni-­‐nwcrg-­‐cisew-­‐00	
  
dra-­‐detchart-­‐nwcrg-­‐tetrys-­‐00	
  
dra-­‐khasnabish-­‐nwcrg-­‐impact-­‐of-­‐vir-­‐and-­‐sdn-­‐02	
  
• Proposal	
  for	
  a	
  Network	
  Coding	
  Architecture	
  
• Planned:	
  Network	
  Coding	
  Tutorial	
  dra	
  
Issues	
  and	
  MiHgaHon	
  
• IPR:	
  Some	
  aspects	
  (coding,	
  etc)	
  have	
  IPR	
  claims	
  
– Reminders	
  and	
  follow-­‐ups	
  to	
  file	
  disclosures	
  
– Architecture	
  open	
  to	
  full	
  range	
  of	
  algos	
  	
  
• Need	
  for	
  interacHon	
  with	
  other	
  IRTF	
  research	
  
groups	
  and/or	
  IETF	
  working	
  groups	
  
– Build	
  stronger	
  awareness,	
  parHcipaHon	
  within	
  NWCRG	
  
• Current	
  emphasis	
  on	
  end-­‐to-­‐end	
  transport	
  
– Encourage	
  consideraHon	
  of	
  richer	
  network	
  coding	
  
approaches	
  
Backup	
  
NWCRG	
  MoHvaHon:	
  Research	
  Advances	
  
Research	
  proved	
  performance	
  gains	
  and	
  pracHcal	
  algorithms	
  
• Ahlswerde	
  et	
  al,	
  2000	
  
– Network	
  coded	
  mulHcast	
  achieves	
  max	
  flow-­‐min	
  cut	
  	
  
• S	
  Li	
  et	
  al	
  2003	
  
– Linear	
  coding	
  w/	
  finite	
  symbol	
  size-­‐	
  sufficient	
  for	
  mulHcast	
  	
  
• Koeder,	
  Medard	
  2003	
  
– Algebraic	
  framework	
  for	
  linear	
  network-­‐coding	
  	
  
– Min-­‐cut	
  max-­‐flow	
  achieved	
  w	
  Hme-­‐invariant	
  soluHons	
  for	
  
networks	
  with	
  delay	
  and	
  cycles.	
  	
  
• Ho	
  et	
  al	
  2003	
  
– Distributed	
  randomized	
  network	
  coding	
  	
  
• Lun	
  et	
  al	
  2005	
  
– coding	
  scheme	
  for	
  reliable	
  transport	
  over	
  packet	
  networks	
  	
  
• And	
  many	
  others.	
  Much	
  research	
  remains	
  to	
  be	
  done.	
  
Use	
  Case	
  1:	
  NC	
  Shim	
  Layer	
  –	
  under	
  
TCP,	
  UDP,	
  SSH	
  
	
  
16	
  
Unicast	
  
RouHng	
  
Unicast	
  
RouHng	
  
Unicast	
  
RouHng	
  
TCP
App
NC	
  
Coding	
  
NC	
  Cong	
  
Ctrl	
  
NC	
  shim	
  
NC	
  Reliability	
  
IP IP IP
TCP
App
NC	
  
Coding	
  
NC	
  Cong	
  
Ctrl	
  
NC	
  shim	
  
NC	
  Reliability	
  
Coding vectors, coded pkts
Feedback (rank, null space)
Congestion signal,
Backlog size
Congestion signal,
Recv window
App data
Rate control
Coded symbols,
Rank test
• Coding:	
  end-­‐end.	
  Passes	
  CC	
  signaling.	
  	
  
• OpHonal:	
  in-­‐network	
  re-­‐coding.	
  	
  
• Coding	
  nodes	
  determined	
  by:	
  staHc	
  configuraHon,	
  rouHng	
  or	
  control	
  signaling.	
  	
  
• Usage:	
  reliability,	
  similar	
  to	
  source	
  coding.	
  	
  
Overlay	
  
RouHng	
  
Use	
  Case	
  3:	
  NC	
  Transport	
  over	
  Overlay	
  
Network	
  
	
  
17	
  
App
NC	
  Coding	
   NC	
  Cong	
  Ctrl	
  
NC	
  Transport	
  
NC	
  Reliability	
  
IP IP
App
NC	
  Coding	
  
NC	
  Cong	
  Ctrl	
  
NC	
  Transport	
  
IP
NC	
  Reliability	
  
Coding vectors,
coded pkts
Feedback
Cong. signals
Rate control
Coded symb,
Rank test NC	
  Cod	
   NC	
  CC	
  
NC	
  Transport	
  
NC	
  Rel	
  
Up/down neighbors
Splitting ratios
Coded pkts,
Select link
Overlay	
  Fwd	
  
UDP UDP
Overlay	
  
RouHng	
  
Overlay	
  Fwd	
  
UDP UDP
Overlay link
Overlay	
  
RouHng	
  
Overlay	
  Fwd	
  
UDP UDP
• Overlay	
  links	
  can	
  be	
  reliable	
  (TCP)	
  or	
  unreliable	
  (UDP).	
  	
  
• Requires	
  both	
  reliability	
  and	
  congesHon	
  control	
  funcHons	
  
• Usage:	
  reliability,	
  resilience	
  to	
  link	
  and	
  node	
  outage,	
  anonymity.	
  
Use	
  Case	
  4:	
  NC	
  Shim	
  under	
  Tunnel	
  
(MPLS,	
  IPsec)	
  
	
  
18	
  
TCP/
UDP
App
NC	
  Coding	
   NC	
  Cong	
  Ctrl	
  
NC	
  shim	
  
NC	
  Reliability	
  
IP IP
NC	
  Coding	
  
NC	
  Cong	
  Ctrl	
  
NC	
  shim	
  
NC	
  Reliability	
  
Coding vectors, coded pkts
Feedback (rank, null space)
Congestion signal,
Backlog size
Rate control
Coded symbols,
Rank test
TCP/
UDP
App
MPLS	
  Tunnel	
  
Configured	
  routes	
  
IP IP
Configured	
  routes	
  
Tunnel 1
Tunnel 2
TCP/
UDP
App
TCP/
UDP
App
MPLS	
  Tunnel	
  
• Usage:	
  Provides	
  reliable	
  forwarding	
  under	
  MPLS	
  tunnel	
  
• Assumes	
  configured	
  IP	
  tunnels	
  or	
  routes	
  under	
  NC	
  shim	
  
Use	
  Case	
  5:	
  Coded	
  TCP	
  (or	
  TCP-­‐like)	
  over	
  
Disjoint	
  Paths	
  
	
  
19	
  
• Coding:	
  over	
  all	
  paths	
  
• CongesHon	
  control:	
  separate	
  for	
  each	
  path	
  
NC	
  Coding	
  
NC	
  Reliability	
  
IP IP
NC	
  Coding	
  
Coding vectors, coded pkts
Feedback (rank, null space)
Coded symbols,
Rank test
IP IP
Tunnel 1 or Netw 1 (eg LTE)
Tunnel 2 or Netw 2 (eg, WiFi)
MPTCP
App
TCP TCP
NC	
  Rel*	
   NC	
  Rel*	
  
NC	
  Reliability	
  
TCP TCP
NC	
  Rel*	
   NC	
  Rel*	
  
(*) optional
MPTCP
App
Or	
  NC	
  Cong	
  
Ctrl	
  
Or	
  NC	
  Cong	
  
Ctrl	
  
Or	
  NC	
  Cong	
  
Ctrl	
  
Or	
  NC	
  Cong	
  
Ctrl	
  

NWCRG-IAB-Review-IETF91.pdf

  • 1.
    Network  Coding  Research  Group   (NWCRG)  Overview   IAB  Review   13  November  2014     Brian  Adamson   Victor  Firoiu  
  • 2.
    Network  Coding   •Network  coding  is  a  method  of  opHmizing  the   flow  of  digital  data  in  a  network  by   transmiMng  digital  evidence  about   messages  ...     • PotenHal  benefits  for   – Capacity   – Robustness   – Security   – Energy  efficiency   Bu#erfly  Example  
  • 3.
    MoHvaHon  for  NWCRG   • Research  proved  performance  gains  and  pracHcal   algorithms   – From:  Netcoding  mulHcast  achieves  max  flow-­‐min  cut     – To:  Coding  scheme  for  reliable  communicaHon  over  packet   networks     – To:  results  in  capacity  of  wireless  networks  using  network   coding   – And  many  others     – Much  research  remains  to  be  done.   • Mature  ImplementaHons   – Full  network  coding  systems  have  been  demonstrated   – Network  coding  has  begun  “popping  up”  in  various  IRTF,   IETF,  and  other  forums   – More  general  applicability  and  opportunity  seen  with  new   paradigms  such  as  InformaHon  Centric  Networking  and   Soware  Defined  Networking     3  
  • 4.
    Open  Research  Areas   • Aspects  of  packet  network  systems   – Control,  RouHng  /  forwarding,  Transport,  Physical  layers   • How  can  network  coding  be  effecHvely  and   pragmaHcally  applied  to  a  scalable,  distributed  network   like  the  Internet?   – CongesHon  control,  End  vs.  Intermediate  System,  Edge   (wireless)   • Where  does  network  coding  provide  benefit?   • Architecture,  operaHon  and  applicaHons   – End-­‐to-­‐end  vs.  hop-­‐by-­‐hop   – Intra-­‐flow  and  inter-­‐flow   – ApplicaHon-­‐layer  use   – Service  paradigms:  Best  Effort,  Content,  MulHmedia  
  • 5.
    Candidate  Areas  for  standardizaHon   (longer  term)   • Common  encoding  algorithms   • Protocols:     – Network  Coding  Transport   – RouHng:  subgraph  construcHon   – Forwarding  on  subgraphs     • Service  descripHons   • Packet  formats  
  • 6.
    Current  AcHviHes  and  Approach   • InformaHon  exchange   – Coding  techniques   – Protocol  concepts   – Use  cases   • Taxonomy  and  architecture  development   – AdempHng  to  derive  a  building  block  approach   from  key  use  cases  and  idenHfiable  funcHonal   areas  
  • 7.
    Building  Blocks   Applica0ons   Prior  Example:  RMT  Building  Block  Approach   TFMCC     PGMCC*   WEBRC   Reed   Solomon   Security   NACK   FEC   Raptor(Q)   LDPC   NORM   ALC   FCAST   FLUTE   LCT   Protocol  Instan0a0ons   TRACK*   GRA*   *  Unrealized  building  blocks   No-­‐Code  
  • 8.
    Network Coding SystemDecomposition 8 System   Func0onal   Area  1   Func0onal   Area  2   Func0onal   Area  ‘N’   Buildin g  Block   Buildin g  Block   Buildin g  Block   Buildin g  Block  
  • 9.
    Network Coding UseCases 1. NC shim* layer - under TCP, UDP, SSH 2. NC transport, in-network coding 3. NC transport over overlay network 4. NC shim* under tunnel (MPLS, IPsec) 5. Coded TCP (or TCP-like) over disjoint paths 6. NC content dissemination at application layer (*) Shim: usually between routing and transport Note: This is not an exhaustive list, but hopefully a large enough set to help identify key building blocks that can be reapplied for different use cases. 9
  • 10.
    M-­‐path  Fwd  M-­‐path  Fwd   M-­‐path  Fwd   MulH-­‐path   RouHng   Use  Case  2:  NC  Transport,  In-­‐Network  Coding       10   App NC  Coding   NC  Cong  Ctrl   NC  Transport   NC  Reliability   IP IP App NC  Coding   NC  Cong  Ctrl   NC  Transport   IP NC  Reliability   Coding vectors, coded pkts Feedback Cong. signals App data Rate control Coded symb, Rank test NC  Cod   NC  CC   NC  Transport   NC  Rel   Up/down neighbors Splitting ratios Link quality MulH-­‐path   RouHng   MulH-­‐path   RouHng   IP • Assisted  by  mulH-­‐path  (subgraph)  rouHng   • Usage:  reliability,  resilience  to  link  and  node  outage.   • Supports  both  Unicast  and  MulHcast  
  • 11.
    Network Coding FunctionalAreas • NC Coding – All coding operations • NC Reliability – Data and control to support reliable transfer • NC Congestion Control – Controls transmission rates – Try to use existing algorithms • Multi-path routing, multi-path forwarding – How network coding is distributed over network from source(s) to destination(s) • Security – First option: rely on existing solutions – Coding can be used for pollution detection and correction, anonimization, protection against denial of service 11
  • 12.
    Network  Coding  RG  AcHviHes   • Chartered  on  2013-­‐11-­‐13   • ~28  research  presentaHons  over  4  meeHngs   • Network  Coding  Taxonomy,  now  an  RG  dra   dra-­‐irk-­‐nwcrg-­‐network-­‐coding-­‐taxonomy-­‐00   • Individual  dras   dra-­‐amdouni-­‐nwcrg-­‐cisew-­‐00   dra-­‐detchart-­‐nwcrg-­‐tetrys-­‐00   dra-­‐khasnabish-­‐nwcrg-­‐impact-­‐of-­‐vir-­‐and-­‐sdn-­‐02   • Proposal  for  a  Network  Coding  Architecture   • Planned:  Network  Coding  Tutorial  dra  
  • 13.
    Issues  and  MiHgaHon   • IPR:  Some  aspects  (coding,  etc)  have  IPR  claims   – Reminders  and  follow-­‐ups  to  file  disclosures   – Architecture  open  to  full  range  of  algos     • Need  for  interacHon  with  other  IRTF  research   groups  and/or  IETF  working  groups   – Build  stronger  awareness,  parHcipaHon  within  NWCRG   • Current  emphasis  on  end-­‐to-­‐end  transport   – Encourage  consideraHon  of  richer  network  coding   approaches  
  • 14.
  • 15.
    NWCRG  MoHvaHon:  Research  Advances   Research  proved  performance  gains  and  pracHcal  algorithms   • Ahlswerde  et  al,  2000   – Network  coded  mulHcast  achieves  max  flow-­‐min  cut     • S  Li  et  al  2003   – Linear  coding  w/  finite  symbol  size-­‐  sufficient  for  mulHcast     • Koeder,  Medard  2003   – Algebraic  framework  for  linear  network-­‐coding     – Min-­‐cut  max-­‐flow  achieved  w  Hme-­‐invariant  soluHons  for   networks  with  delay  and  cycles.     • Ho  et  al  2003   – Distributed  randomized  network  coding     • Lun  et  al  2005   – coding  scheme  for  reliable  transport  over  packet  networks     • And  many  others.  Much  research  remains  to  be  done.  
  • 16.
    Use  Case  1:  NC  Shim  Layer  –  under   TCP,  UDP,  SSH     16   Unicast   RouHng   Unicast   RouHng   Unicast   RouHng   TCP App NC   Coding   NC  Cong   Ctrl   NC  shim   NC  Reliability   IP IP IP TCP App NC   Coding   NC  Cong   Ctrl   NC  shim   NC  Reliability   Coding vectors, coded pkts Feedback (rank, null space) Congestion signal, Backlog size Congestion signal, Recv window App data Rate control Coded symbols, Rank test • Coding:  end-­‐end.  Passes  CC  signaling.     • OpHonal:  in-­‐network  re-­‐coding.     • Coding  nodes  determined  by:  staHc  configuraHon,  rouHng  or  control  signaling.     • Usage:  reliability,  similar  to  source  coding.    
  • 17.
    Overlay   RouHng   Use  Case  3:  NC  Transport  over  Overlay   Network     17   App NC  Coding   NC  Cong  Ctrl   NC  Transport   NC  Reliability   IP IP App NC  Coding   NC  Cong  Ctrl   NC  Transport   IP NC  Reliability   Coding vectors, coded pkts Feedback Cong. signals Rate control Coded symb, Rank test NC  Cod   NC  CC   NC  Transport   NC  Rel   Up/down neighbors Splitting ratios Coded pkts, Select link Overlay  Fwd   UDP UDP Overlay   RouHng   Overlay  Fwd   UDP UDP Overlay link Overlay   RouHng   Overlay  Fwd   UDP UDP • Overlay  links  can  be  reliable  (TCP)  or  unreliable  (UDP).     • Requires  both  reliability  and  congesHon  control  funcHons   • Usage:  reliability,  resilience  to  link  and  node  outage,  anonymity.  
  • 18.
    Use  Case  4:  NC  Shim  under  Tunnel   (MPLS,  IPsec)     18   TCP/ UDP App NC  Coding   NC  Cong  Ctrl   NC  shim   NC  Reliability   IP IP NC  Coding   NC  Cong  Ctrl   NC  shim   NC  Reliability   Coding vectors, coded pkts Feedback (rank, null space) Congestion signal, Backlog size Rate control Coded symbols, Rank test TCP/ UDP App MPLS  Tunnel   Configured  routes   IP IP Configured  routes   Tunnel 1 Tunnel 2 TCP/ UDP App TCP/ UDP App MPLS  Tunnel   • Usage:  Provides  reliable  forwarding  under  MPLS  tunnel   • Assumes  configured  IP  tunnels  or  routes  under  NC  shim  
  • 19.
    Use  Case  5:  Coded  TCP  (or  TCP-­‐like)  over   Disjoint  Paths     19   • Coding:  over  all  paths   • CongesHon  control:  separate  for  each  path   NC  Coding   NC  Reliability   IP IP NC  Coding   Coding vectors, coded pkts Feedback (rank, null space) Coded symbols, Rank test IP IP Tunnel 1 or Netw 1 (eg LTE) Tunnel 2 or Netw 2 (eg, WiFi) MPTCP App TCP TCP NC  Rel*   NC  Rel*   NC  Reliability   TCP TCP NC  Rel*   NC  Rel*   (*) optional MPTCP App Or  NC  Cong   Ctrl   Or  NC  Cong   Ctrl   Or  NC  Cong   Ctrl   Or  NC  Cong   Ctrl