Network Coding Architecture - Use cases, protocols and building blocks -

Network Coding Architecture - Use cases, protocols and building blocks - Victor Firoiu, Vincent Roca, Brian Adamson, Marie-Jose Monpetit Draft 2014-1...
5 downloads 0 Views 96KB Size
Network Coding Architecture - Use cases, protocols and building blocks -

Victor Firoiu, Vincent Roca, Brian Adamson, Marie-Jose Monpetit Draft 2014-11-11

Overview • Goal: Present ideas for Network Coding Architecture • Ideally, this architecture would accommodate all possible use cases – not practical • Start with several use cases with potential for practical applications, such as existing implementations • Foster innovation in protocol design and use cases • Design principles:  Protocol instances constructed from building blocks (BB)  BBs have common functionality between use cases  Try to reuse existing BBs Note: Some of these ideas are still under discussion among authors. Here we submit them to discussion in NWCRG. 2

Use Cases 1. NC shim* layer - under TCP, UDP, SSH 2. NC transport, in-net 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: a non-traditional layer, 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. 3

Use Case 1: NC Shim Layer – under TCP, UDP, SSH App

App

TCP

TCP

App data Congestion signal, Recv window NC shim NC shim Coding vectors, coded pkts NC Reliability Feedback (rank, null space) NC Reliability Coded symbols, Rate control Rank test Congestion signal, NC Cong NC NC Cong NC Backlog size Coding Ctrl Ctrl Coding

IP

• • • •

Unicast Routing

IP

Unicast Routing

IP

Unicast Routing

Coding: end-end. Passes CC signaling. Optional: in-network re-coding. Coding nodes determined by: static configuration, routing or control signaling. Usage: reliability, similar to source coding. 4

Use Case 2: NC Transport, In-Network Coding, App

App

App data

NC Transport Coded symb, Rank test

NC Reliability

Coding vectors, NC Transport coded pkts Feedback NC Rel

NC Transport NC Reliability

Rate control

NC Coding

NC Cong Ctrl

NC Cod

NC CC

NC Cong Ctrl

NC Coding

Cong. signals Up/down neighbors Splitting ratios Link quality

IP

Multi-path Routing M-path Fwd

Multi-path Routing M-path Fwd

Multi-path Routing M-path Fwd

IP

IP IP

• Assisted by multi-path (subgraph) routing • Usage: reliability, resilience to link and node outage. • Supports both Unicast and Multicast

5

Use Case 3: NC Transport over Overlay Network App

App

NC Transport NC Reliability

Coding vectors, NC Transport coded pkts Feedback NC Rel

NC Transport NC Reliability

Rate control

Coded symb, Rank test NC Coding

NC Cong Ctrl

NC Cod

NC CC

NC Cong Ctrl

NC Coding

Cong. signals Up/down neighbors Splitting ratios

Coded pkts, Select link

Overlay Routing Overlay Fwd UDP

UDP

IP

Overlay link

Overlay Routing Overlay Fwd

Overlay Routing Overlay Fwd

UDP

UDP

UDP

IP

• Overlay links can be reliable (TCP) or unreliable (UDP). • Requires both reliability and congestion control functions • Usage: reliability, resilience to link and node outage, anonymity.

UDP

IP

6

Use Case 4: NC Shim under Tunnel (MPLS, IPsec) App

App

App

App

TCP/ UDP

TCP/ UDP

TCP/ UDP

TCP/ UDP

MPLS Tunnel

MPLS Tunnel

NC shim

NC shim Coding vectors, coded pkts Feedback (rank, null space)

NC Reliability Coded symbols, Rank test NC Coding

NC Reliability

Rate control NC Cong Ctrl

Congestion signal, Backlog size

Configured routes

IP

NC Coding

Configured routes Tunnel 1

IP

NC Cong Ctrl

Tunnel 2

IP

• Usage: Provides reliable forwarding under MPLS tunnel • Assumes configured IP tunnels or routes under NC shim

IP

7

Use Case 5: Coded TCP (or TCP-like) over Disjoint Paths App

App

MPTCP

MPTCP

Coded symbols, NC Reliability Rank test

Coding vectors, coded pkts Feedback (rank, null space)

NC Reliability NC Coding

NC Coding Or NC Cong Ctrl

TCP

TCP

NC Rel*

NC Rel*

Or NC Cong Ctrl

Or NC Cong Ctrl

(*) optional

Tunnel 1 or Netw 1 (eg LTE)

IP IP

Tunnel 2 or Netw 2 (eg, WiFi)

TCP

TCP

NC Rel*

NC Rel*

Or NC Cong Ctrl

IP IP

• Coding: over all paths • Congestion control: separate for each path 8

Some terminology  input flow terminology  an input flow enters a NC protocol instance  an input flow contains input packets  a packet may be a UDP datagram, an IP datagram, a frame, an application data unit, a file slice, etc.

 an input packet contains input symbol(s)  plus protocol headers, control information, etc.  packet/symbol mapping can be 11 or 1multiple (not assumed to be frequent) or multiple1 (if fragmented, when needed by the use-case)

 an input symbol can be a source symbol or a repair symbol (encoded one or more times)

9

Some terminology… (cont’)  output flow terminology  output flow/packet are similar  an output symbol is an encoding symbol, i.e., either a source symbol (at a decoder or in case of a systematic FEC) or a repair symbol

 NB: “encoding symbol” definitions in current RFC  [RFC 6363]  Encoding Symbol: Unit of data generated by the encoding process. With systematic codes, source symbols are part of the encoding symbols.

 [RFC 5052]  Encoding symbol: A source symbol or a repair symbol. 10

Close-up on the FEC building block  let’s see the FEC BB terminology NC Protocol Instantiation

input flow(s)

contain input packets

mapping to BB’s input symbols (can be 1⇒1 or more complex) input symbols

FEC BB

output flow(s)

output symbols

contain output packets

11

An example  let’s consider an RLC FEC BB mit’s just an example, other FEC BB will be considered in future mexample: encoding side

Example: basic RLC BB input symbols

current encoding window

c0 c1 c2 c3

output symbols

element i is c0*symb0[i] + … + c3*symb3[i]

element in FF(2m) (e.g. byte if FF(28)) 12

More about FEC terminology  FEC scheme (fully specified, see RFC 5052)

FEC Scheme = {identifier + code specifications + signaling }  each scheme is uniquely identified (IANA registry)  FEC Encoding ID 

ex. 5 for Reed-Sol. over FF(28) in the context of RMT

 all the code details are specified non ambiguously  interoperability is a MUST

 signaling enables encoder/decoder synchronization, for a given object transfer 13

More about FEC terminology… (cont’)  yes, we need a FEC Encoding ID  for instance:     

FEC Encoding ID 100 FEC Encoding ID 101 FEC Encoding ID 102 FEC Encoding ID 103 FEC Encoding ID 104

binary RLC RLC over GF(24) RLC over GF(28) Structured RLC another FEC solution…

 NB: ID 100 can also refer to RLC over GF(2m), where m is carried in the signaling part… It works too!

 this FEC Encoding ID points to a specific FEC BB and a specific way of doing signaling  so that a NC instance knows exactly how to process it 14

Network Coding System Decomposition

System

Functional Area 1

Building Block

Functional Area 2

Building Block

Building Block

Functional Area ‘N’

Building Block

15

Network Coding Functional Areas & Building Blocks 1/3 • NC Coding – all coding operations  E.g., encoding, decoding, test for “innovative”, rank, null space  Using operations such as finite field and linear transformations

• NC Reliability – data and control to support reliable transfer  Includes reliability logic (end-to-end and/or hop-by-hop), coding vectors, feedback.  May be subdivided in FEC BB + coefficient BB + header BB

16

Network Coding Functional Areas & Building Blocks 2/3 • NC Congestion Control – controls transmission rates  Flavors: unicast CC, multicast CC, subgraph CC  Should try to use algorithms developed in other WGs when possible, such as TCP-Friendly based on the PFTK formula [1], as in NORM [2]  Subgraph CC - most likely new

[1]

J. Padhye, V. Firoiu, D. Towsley, J. Kurose, "Modeling TCP Throughput: A Simple Model and its Empirical Validation“, ACM SIGCOMM 1998.

[2]

B. Adamson, C. Borman, M. Handley, J. Macker,”NACK-Oriented Reliable Multicast (NORM) Transport Protocol”, RFC5740.

17

Network Coding Functional Areas & Building Blocks 3/3 • Multi-path routing, multi-path forwarding  Related to NC reliability BB through: splitting ratios (fwd factors), up/down neighbors, link quality  Most likely: augment existing routing and fwd protocols

• Security – First option: rely on existing solutions  Unless creating a new security protocol with NC as essential part  Can do: pollution detection at the packet level, without decoding, or detection and correction at a layer that decodes

18

Conclusions, Issues and Open Questions • Modular reuse approach based on BB seems to work: all use cases presented can be built using a very small number of BBs • Architecture of use cases needs (a lot of) work to be mapped/ integrated into the IETF layers/ areas. • NC Coding and NC Reliability BBs – are core elements • Congestion Control – can use existing algorithms  CC for general subgraphs does not exist  NC under TCP can raise questions about fairness – some answers exist. Need to clarify.

19