1
Presented by:
Mohamed Y. Selim
Visiting Scholar at Iowa State University
Lecturer Assistant at Suez Canal University
myousef@ieee.org
I. Introduction to Network Coding
NetworkNetwork
CodingCoding
WhyWhy??
DefinitionsDefinitions
22 of 47
CodingCoding
WhyWhy??
What?What?
I. Introduction to Network Coding
What is Network Coding
Network Coding is a field of information theory
and coding theory and is a method of attaining
maximum information flow in a network.
33 of 47
maximum information flow in a network.
Network Coding Theory points out that it is
necessary to consider encoding/decoding data on
nodes in network in order to achieve optimal
throughput.
I. Introduction to Network Coding
What is Network Coding
44 of 47
I. Introduction to Network Coding
What is Network Coding
InformationInformation
theorytheory
WirelessWireless
networksnetworks
ChannelChannel
codingcoding
QuantumQuantum
informationinformation
theorytheory
GraphGraph
theorytheory
55 of 47
ComputerComputer
networksnetworks
SwitchingSwitching
theorytheory
ComputerComputer
sciencescience
CryptographyCryptography
OptimizationOptimization
theorytheory
GameGame
theorytheory
MatroidMatroid
theorytheory DataData
storagestorage
I. Introduction to Network Coding
Example: Two-way Relay Comm.
66 of 47
I. Introduction to Network Coding
Example: Two-way Relay Comm.
77 of 47
I. Introduction to Network Coding
Example: Two-way Relay Comm.
88 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
99 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1010 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1111 of 47
I. Introduction to Network Coding
Kirchhoff Versus Network Coding
1212 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1313 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1414 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1515 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1616 of 47
I. Introduction to Network Coding
Network Coding: The Butterfly
1717 of 47
I. Introduction to Network Coding
Linear Network Coding
• Random Processes in a Linear
Network
Source Input:
Info. Along Edges:
{ }),...,(),,(),( 10 lvxlvxlvX =
The index is a
{ }),...(),()( 10 eyeyeY =Weighted Combination
of processes
Weighted Combination
of processes from
1818 of 47
Info. Along Edges:
Sink Output:
• Relationship among them
The index is a
time index
{ }),...(),()( 10 eyeyeY =
{ }),...,(),,(),( 10 lvzlvzlvZ =
∑∑ ==
+=
)(´)(´:
´,
)(
1
, ´)(),()(
etaileheade
ee
v
l
el eYlvXeY βα
µ
∑ =
=
veheade
je eYjvZ
´)(´:
´, ´)(),( ε
e comes
out of v
of processes
generated at v
of processes from
adjacent edges of e
Weighted
Combination from all
incoming edges
I. Introduction to Network Coding
Linear Network Coding (The Transfer Matrix)
v2
e1
e2
e5
)1,( 1vX )1,(vZ
)3,()2,()1,()( 111 ,3,2,11 vXvXvXeY eee ααα ++=
)3,()2,()1,()( 222 ,3,2,12 vXvXvXeY eee ααα ++=
)3,()2,()1,()( 333 ,3,2,13 vXvXvXeY eee ααα ++=
)()()( eYeYeY ββ +=
))3,(),2,(),1,(( 111 vXvXvXxLet =
))3,(),2,(),1,(( 444 vZvZvZz=
Mxz ⋅=
1919 of 47
e4v1
v3
v4
e2
e3
e6
e7
)1,( 1vX
)2,( 1vX
)3,( 1vX
)1,( 4vZ
)2,( 4vZ
)3,( 4vZ
)()()( 2,1,4 4241
eYeYeY eeee ββ +=
)()()( 2,1,5 5251
eYeYeY eeee ββ +=
)()()( 4,3,6 6463
eYeYeY eeee ββ +=
)()()( 4,3,7 7473
eYeYeY eeee ββ +=
)()()()1,( 71,61,51,4 765
eYeYeYvZ eee εεε ++=
)()()()2,( 72,62,52,4 765
eYeYeYvZ eee εεε ++=
)()()()3,( 73,63,53,4 765
eYeYeYvZ eee εεε ++=
BAM
eeee
eeeeeeeeee
eeeeeeeeee
⋅










⋅=
7363
7442644252
7441644151
,,
,,,,,
,,,,,
0 ββ
βββββ
βββββ










=
321
321
321
,3,3,3
,2,2,2
,1,1,1
eee
eee
eee
A
ααα
ααα
ααα










=
3,2,1,
3,2,1,
3,2,1,
777
666
555
eee
eee
eee
B
εεε
εεε
εεε
I. Introduction to Network Coding
Linear Network Coding (Solution)
• We want
• Choose to be
an identity matrix.
BAM eeeeeeeeee
eeeeeeeeee
⋅





⋅= 7442644252
7441644151
,,,,,
,,,,,
βββββ
βββββ
Mxz ⋅=
xz =
A
2020 of 47
an identity matrix.
• Choose B to be the
inverse of










=
3,2,1,
3,2,1,
3,2,1,
777
666
555
eee
eee
eee
B
εεε
εεε
εεε
,
321
321
321
,3,3,3
,2,2,2
,1,1,1










=
eee
eee
eee
A
ααα
ααα
ααα
BAM
eeee
eeeeeeeeee ⋅






⋅=
7363
7442644252
,,
,,,,,
0 ββ
βββββ










7363
7442644252
7441644151
,,
,,,,,
,,,,,
0 eeee
eeeeeeeeee
eeeeeeeeee
ββ
βββββ
βββββ
NETWORK CODING
SOLUTION EXISTS IF
DETERMINANT OF M
IS NON-ZERO
I. Introduction to Network Coding
Random Linear Network Coding
Ho, Koetter, Medard, Karger, Effros (2003/06)
Random coefficients for linear network coding
2121 of 47
Can decode with probability ≈ 1
Enables network coding in unknown network topologies
I. Introduction to Network Coding
Random Linear Network Coding
• How to select the coefficients ξ ?
Randomly Select
Coefficients are chosen uniformly at random from a finite field F
2222 of 47
Coefficients are chosen uniformly at random from a finite field Fq
(Fq is the set of integers from 0 to q-1, where q=2g )
If q is large, then the probability of that two coefficient vectors are
dependent is small.
I. Introduction to Network Coding
Signal-Level Network Coding (PNC)
Allows wireless signals to add up physically
Can further improve the efficiency of wireless network coding
2323 of 47
Physical-Layer NC: Zhang, Liew, and Lam (2006)
Analog NC: Katti, Gollakota, and Katabi (2007)
I. Introduction to Network Coding
Signal-Level Network Coding (PNC)
2424 of 47
I. Introduction to Network Coding
Signal-Level Network Coding (PNC)
2525 of 47
For more details:
http://arxiv.org/ftp/arxiv/papers/1105/1105.4261.pdf
I. Introduction to Network Coding
Network Coding Applications (VANET Application)
Computer Networks
Wireless/Satellite Communications
2626 of 47
Distributed information storage/ dissemination
(e.g., Bit-Torrent)
Robust Network Management
Network Error Correction
I. Introduction to Network Coding
Network Coding Applications (VANET Application)
C1 Sends Block 1
B1
C3 Sends Block 2
B2
C2 Sends Block 2
B1 B2
B2 B2
2727 of 47
C3C2C1
C6C5C4
B1 B2B2
C5 Sends Block 2
B2 B2
B1 is STILL missing!!
Without Network
Coding
I. Introduction to Network Coding
Network Coding Applications
C1 Sends Block 1
B1
C3 Sends Block 2
B2
C2 Sends a Coded Block: B1+B2
B1 B2
B2 B1+B2
B1+B2
B1
B1+B2
2828 of 47
C3C2C1
C6C5C4
B1 B2B1+B2
C5 Sends a Coded Block: B1+B2
B1+B2 B1+B2B2 B1
C4 and C6 successfully recovered both blocksWith Network
Coding
I. Introduction to Network Coding
Network Coding Applications (VANET Application)
CarTorrent is a BitTorrent-like file protocol VANET.
A car passing by an access point, pulls as many blocks as
2929 of 47
A car passing by an access point, pulls as many blocks as
possible. Once it’s out-of-range, it’ll start talking to others to
pull blocks.
Each peer sends the availability of blocks to others.
I. Introduction to Network Coding
Network Coding Applications (VANET Application)
Internet
R
Y
YY
RRR
Without Network
Coding
3030 of 47
Downloading Blocks from AP
Exchange Blocks via multi-hop pulling
G
Y2
Gossiping Availability of Blocks
Y
I. Introduction to Network Coding
Network Coding Applications (VANET Application)
Internet
Buffer
Buffer
Buffer
With Network
Coding
3131 of 47
Downloading Coded Blocks from AP
Outside Range of AP
Buffer
Re-Encoding: Random Linear Comb.
of Encoded Blocks in the Buffer
Exchange Re-Encoded Blocks
Meeting Other Vehicles with Coded Blocks
“coded” block
B1
File:kblocks
B2
B3
Bk
+
*a1
*a2
*a3
*ak
Random Linear Combination
I. Introduction to Network Coding
Network Coding Applications
3232 of 47
I. Introduction to Network Coding
Network Coding Applications
3333 of 47
I. Introduction to Network Coding
Network Coding Applications
3434 of 47
Satellite/Wireless Application
I. Introduction to Network Coding
35
Satellite/Wireless Application
I. Introduction to Network Coding
36
Satellite/Wireless Application
I. Introduction to Network Coding
37
Satellite/Wireless Application
I. Introduction to Network Coding
38
Satellite/Wireless Application
I. Introduction to Network Coding
39
Satellite/Wireless Application
I. Introduction to Network Coding
40
Satellite/Wireless Application
I. Introduction to Network Coding
41
Satellite/Wireless Application
I. Introduction to Network Coding
42
A+B
I. Introduction to Network Coding
Satellite/Wireless Application
43
I. Introduction to Network Coding
Network Coding Practical Problems
• Network Delay
• Centralized Knowledge of Graph Topology
• Packet Loss
4444 of 47
• Packet Loss
• Link Failures
• Change in Topology or Capacity
I. Introduction to Network Coding
References
4545 of 47
I. Introduction to Network Coding
References
4646 of 47
‫ن‬ ‫ا‬ ‫رب‬ ‫د‬ ‫ا‬
Thank You
4747 of 47
‫ن‬ ‫ا‬ ‫رب‬ ‫د‬ ‫ا‬

Introduction to Network Coding

  • 1.
    1 Presented by: Mohamed Y.Selim Visiting Scholar at Iowa State University Lecturer Assistant at Suez Canal University myousef@ieee.org
  • 2.
    I. Introduction toNetwork Coding NetworkNetwork CodingCoding WhyWhy?? DefinitionsDefinitions 22 of 47 CodingCoding WhyWhy?? What?What?
  • 3.
    I. Introduction toNetwork Coding What is Network Coding Network Coding is a field of information theory and coding theory and is a method of attaining maximum information flow in a network. 33 of 47 maximum information flow in a network. Network Coding Theory points out that it is necessary to consider encoding/decoding data on nodes in network in order to achieve optimal throughput.
  • 4.
    I. Introduction toNetwork Coding What is Network Coding 44 of 47
  • 5.
    I. Introduction toNetwork Coding What is Network Coding InformationInformation theorytheory WirelessWireless networksnetworks ChannelChannel codingcoding QuantumQuantum informationinformation theorytheory GraphGraph theorytheory 55 of 47 ComputerComputer networksnetworks SwitchingSwitching theorytheory ComputerComputer sciencescience CryptographyCryptography OptimizationOptimization theorytheory GameGame theorytheory MatroidMatroid theorytheory DataData storagestorage
  • 6.
    I. Introduction toNetwork Coding Example: Two-way Relay Comm. 66 of 47
  • 7.
    I. Introduction toNetwork Coding Example: Two-way Relay Comm. 77 of 47
  • 8.
    I. Introduction toNetwork Coding Example: Two-way Relay Comm. 88 of 47
  • 9.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 99 of 47
  • 10.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1010 of 47
  • 11.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1111 of 47
  • 12.
    I. Introduction toNetwork Coding Kirchhoff Versus Network Coding 1212 of 47
  • 13.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1313 of 47
  • 14.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1414 of 47
  • 15.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1515 of 47
  • 16.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1616 of 47
  • 17.
    I. Introduction toNetwork Coding Network Coding: The Butterfly 1717 of 47
  • 18.
    I. Introduction toNetwork Coding Linear Network Coding • Random Processes in a Linear Network Source Input: Info. Along Edges: { }),...,(),,(),( 10 lvxlvxlvX = The index is a { }),...(),()( 10 eyeyeY =Weighted Combination of processes Weighted Combination of processes from 1818 of 47 Info. Along Edges: Sink Output: • Relationship among them The index is a time index { }),...(),()( 10 eyeyeY = { }),...,(),,(),( 10 lvzlvzlvZ = ∑∑ == += )(´)(´: ´, )( 1 , ´)(),()( etaileheade ee v l el eYlvXeY βα µ ∑ = = veheade je eYjvZ ´)(´: ´, ´)(),( ε e comes out of v of processes generated at v of processes from adjacent edges of e Weighted Combination from all incoming edges
  • 19.
    I. Introduction toNetwork Coding Linear Network Coding (The Transfer Matrix) v2 e1 e2 e5 )1,( 1vX )1,(vZ )3,()2,()1,()( 111 ,3,2,11 vXvXvXeY eee ααα ++= )3,()2,()1,()( 222 ,3,2,12 vXvXvXeY eee ααα ++= )3,()2,()1,()( 333 ,3,2,13 vXvXvXeY eee ααα ++= )()()( eYeYeY ββ += ))3,(),2,(),1,(( 111 vXvXvXxLet = ))3,(),2,(),1,(( 444 vZvZvZz= Mxz ⋅= 1919 of 47 e4v1 v3 v4 e2 e3 e6 e7 )1,( 1vX )2,( 1vX )3,( 1vX )1,( 4vZ )2,( 4vZ )3,( 4vZ )()()( 2,1,4 4241 eYeYeY eeee ββ += )()()( 2,1,5 5251 eYeYeY eeee ββ += )()()( 4,3,6 6463 eYeYeY eeee ββ += )()()( 4,3,7 7473 eYeYeY eeee ββ += )()()()1,( 71,61,51,4 765 eYeYeYvZ eee εεε ++= )()()()2,( 72,62,52,4 765 eYeYeYvZ eee εεε ++= )()()()3,( 73,63,53,4 765 eYeYeYvZ eee εεε ++= BAM eeee eeeeeeeeee eeeeeeeeee ⋅           ⋅= 7363 7442644252 7441644151 ,, ,,,,, ,,,,, 0 ββ βββββ βββββ           = 321 321 321 ,3,3,3 ,2,2,2 ,1,1,1 eee eee eee A ααα ααα ααα           = 3,2,1, 3,2,1, 3,2,1, 777 666 555 eee eee eee B εεε εεε εεε
  • 20.
    I. Introduction toNetwork Coding Linear Network Coding (Solution) • We want • Choose to be an identity matrix. BAM eeeeeeeeee eeeeeeeeee ⋅      ⋅= 7442644252 7441644151 ,,,,, ,,,,, βββββ βββββ Mxz ⋅= xz = A 2020 of 47 an identity matrix. • Choose B to be the inverse of           = 3,2,1, 3,2,1, 3,2,1, 777 666 555 eee eee eee B εεε εεε εεε , 321 321 321 ,3,3,3 ,2,2,2 ,1,1,1           = eee eee eee A ααα ααα ααα BAM eeee eeeeeeeeee ⋅       ⋅= 7363 7442644252 ,, ,,,,, 0 ββ βββββ           7363 7442644252 7441644151 ,, ,,,,, ,,,,, 0 eeee eeeeeeeeee eeeeeeeeee ββ βββββ βββββ NETWORK CODING SOLUTION EXISTS IF DETERMINANT OF M IS NON-ZERO
  • 21.
    I. Introduction toNetwork Coding Random Linear Network Coding Ho, Koetter, Medard, Karger, Effros (2003/06) Random coefficients for linear network coding 2121 of 47 Can decode with probability ≈ 1 Enables network coding in unknown network topologies
  • 22.
    I. Introduction toNetwork Coding Random Linear Network Coding • How to select the coefficients ξ ? Randomly Select Coefficients are chosen uniformly at random from a finite field F 2222 of 47 Coefficients are chosen uniformly at random from a finite field Fq (Fq is the set of integers from 0 to q-1, where q=2g ) If q is large, then the probability of that two coefficient vectors are dependent is small.
  • 23.
    I. Introduction toNetwork Coding Signal-Level Network Coding (PNC) Allows wireless signals to add up physically Can further improve the efficiency of wireless network coding 2323 of 47 Physical-Layer NC: Zhang, Liew, and Lam (2006) Analog NC: Katti, Gollakota, and Katabi (2007)
  • 24.
    I. Introduction toNetwork Coding Signal-Level Network Coding (PNC) 2424 of 47
  • 25.
    I. Introduction toNetwork Coding Signal-Level Network Coding (PNC) 2525 of 47 For more details: http://arxiv.org/ftp/arxiv/papers/1105/1105.4261.pdf
  • 26.
    I. Introduction toNetwork Coding Network Coding Applications (VANET Application) Computer Networks Wireless/Satellite Communications 2626 of 47 Distributed information storage/ dissemination (e.g., Bit-Torrent) Robust Network Management Network Error Correction
  • 27.
    I. Introduction toNetwork Coding Network Coding Applications (VANET Application) C1 Sends Block 1 B1 C3 Sends Block 2 B2 C2 Sends Block 2 B1 B2 B2 B2 2727 of 47 C3C2C1 C6C5C4 B1 B2B2 C5 Sends Block 2 B2 B2 B1 is STILL missing!! Without Network Coding
  • 28.
    I. Introduction toNetwork Coding Network Coding Applications C1 Sends Block 1 B1 C3 Sends Block 2 B2 C2 Sends a Coded Block: B1+B2 B1 B2 B2 B1+B2 B1+B2 B1 B1+B2 2828 of 47 C3C2C1 C6C5C4 B1 B2B1+B2 C5 Sends a Coded Block: B1+B2 B1+B2 B1+B2B2 B1 C4 and C6 successfully recovered both blocksWith Network Coding
  • 29.
    I. Introduction toNetwork Coding Network Coding Applications (VANET Application) CarTorrent is a BitTorrent-like file protocol VANET. A car passing by an access point, pulls as many blocks as 2929 of 47 A car passing by an access point, pulls as many blocks as possible. Once it’s out-of-range, it’ll start talking to others to pull blocks. Each peer sends the availability of blocks to others.
  • 30.
    I. Introduction toNetwork Coding Network Coding Applications (VANET Application) Internet R Y YY RRR Without Network Coding 3030 of 47 Downloading Blocks from AP Exchange Blocks via multi-hop pulling G Y2 Gossiping Availability of Blocks Y
  • 31.
    I. Introduction toNetwork Coding Network Coding Applications (VANET Application) Internet Buffer Buffer Buffer With Network Coding 3131 of 47 Downloading Coded Blocks from AP Outside Range of AP Buffer Re-Encoding: Random Linear Comb. of Encoded Blocks in the Buffer Exchange Re-Encoded Blocks Meeting Other Vehicles with Coded Blocks “coded” block B1 File:kblocks B2 B3 Bk + *a1 *a2 *a3 *ak Random Linear Combination
  • 32.
    I. Introduction toNetwork Coding Network Coding Applications 3232 of 47
  • 33.
    I. Introduction toNetwork Coding Network Coding Applications 3333 of 47
  • 34.
    I. Introduction toNetwork Coding Network Coding Applications 3434 of 47
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
    A+B I. Introduction toNetwork Coding Satellite/Wireless Application 43
  • 44.
    I. Introduction toNetwork Coding Network Coding Practical Problems • Network Delay • Centralized Knowledge of Graph Topology • Packet Loss 4444 of 47 • Packet Loss • Link Failures • Change in Topology or Capacity
  • 45.
    I. Introduction toNetwork Coding References 4545 of 47
  • 46.
    I. Introduction toNetwork Coding References 4646 of 47
  • 47.
    ‫ن‬ ‫ا‬ ‫رب‬‫د‬ ‫ا‬ Thank You 4747 of 47 ‫ن‬ ‫ا‬ ‫رب‬ ‫د‬ ‫ا‬