Switch Codes for Computer Networks Hui Zhang Joint work with Yeow Meng Chee, Fei Gao and Samuel Tien Ho Teo Institute of Computer Science University of Tartu Oct. 3, 2015
Network Switches 1 1 Image from http://www.cisco.com/c/en/us/support/docs/ lan-switching/spanning-tree-protocol/5234-5.html
Switch Memory Subsystem Input Ports Write Controller Memory Banks Read Controller Output Ports
Data Flow Input Ports: 2 C D A B Write Controller C D Memory Banks: 2 A B Read Controller A B Output Ports: 2
Data Flow with Conflict Input Ports: 2 C D A B Write Controller C D Memory Banks: 2 A B Read Controller A C Output Ports: 2
Solution by Replication Input Ports: 2 C D A B Write Controller C C D D Memory Banks: 4 A A B B Read Controller A C Output Ports: 2
Solution by Coding 2 Input Ports: 2 C D A B Write Controller C D C+D Memory Banks: 3 A B A+B Read Controller A C Output Ports: 2 2 Z. Wang, O. Shaked, Y. Cassuto, and J. Bruck, “Codes for network switches,” in ISIT 2013 , pp. 1057–1061.
Problem Formulation ◮ R in : number of input ports ◮ n : number of memory banks ◮ R out : number of output ports ◮ Redundancy : n − R in ◮ Generation : data packets written in the same time slot ◮ Σ
Problem Formulation: Encoding f : { Σ R in } i ≥ 0 − → { Σ n } i ≥ 0 (1) { U i } i ≥ 0 �− → { X i } i ≥ 0 , where U i = ( u i , 0 , u i , 1 , . . . , u i , R in − 1 ) and X i = ( x i , 0 , x i , 1 , . . . , x i , n − 1 ) are input and written bits of one generation, with the subscript i indexing generations. Usually, we use f : Σ R in − → Σ n U �− → X ,
Problem Formulation: Requests Let ( u i 0 , l 0 , u i 1 , l 1 , . . . , u i R out − 1 , l R out − 1 ) be arbitrary R out request bits from previous generations. We call the multiset L as request vector : L = ( l 0 , l 1 , . . . , l R out − 1 ) . If the request bits are from t ≤ R out different generations, we denote the elements in the i -th generation by L i , 0 ≤ i ≤ t − 1, and call them the request sets .
Problem Formulation: Decoding A solution to a request of R out bits is a way to recover these bits by retrieving no more than one bit from each memory bank. The solution to a request from t generations consists of ◮ a partition P = { P 0 , P 1 , . . . , P t − 1 } of [0 , n − 1], ◮ a bijection φ from { L i : i ∈ [0 , t − 1] } to P : φ : L i �− → φ ( L i ) ∈ P (2) ◮ and t decoding functions g i , 0 ≤ i ≤ t − 1, such that the request bits are correctly recovered, that is, g i : { x j : j ∈ φ ( L i ) } �− → { u k : k ∈ L i } . (3)
Problem Formulation: Definitions Definition ◮ A t - consecutive-generation switch code , or more precisely an ( n , R in , R out ; t ) switch code , is a pair of encoding and decoding functions that satisfies the conditions (1)–(3).
Recall: Solution by Replication Input Ports: 2 C D A B Write Controller C C D D Memory Banks: 4 A A B B Read Controller A C Output Ports: 2
Questions ◮ Only through replication: n = R in R out ◮ Code redundancy: reduce n given R in and R out . ◮ Systematic codes : the input packets are stored directly into the first R in of a total of n memory banks, and the rest are parity bits.
t -consecutive-generation requests The t -consecutive-generation switch codes are applicable when the data packets expire after a fixed time slot and only the newest t generations are of interest. ◮ Example: ( u 0 , u 1 , u 2 ) �→ ( u 0 , u 1 , u 2 , u 0 + u 1 , u 1 + u 2 ) Any 2-consecutive-generation requests of size 3 can be solved. ◮ Graphic view: u 1 + u 2 u 0 + u 1 u 0 u 2 u 1
t -consecutive-generation requests ◮ There is an ( n , R in , R out ; t ) switch code with redundancy ( R in − 1)( t − 1), provided: t − 1 ≤ ⌊ R in / 2 ⌋ and t − 1 ≤ R in − ⌊ R out / t ⌋ . Proof. Decomposition of Hamiltonian paths of K R in .
( n , R in , R out ) switch codes A solution for requests from R out generations implies a solution for the same request for less than R out generations. An ( n , R in , R out ) switch code: each request are from R out generations ◮ Wang et al.: An ( R + R ( R − 1) / 2 , R , R ) switch code solving any request exists. ◮ Equivalent to batch codes .
One-Burst Requests ◮ A one-burst request : only one integer repeats in the request vector. ◮ Example: R = 5, L = (1 , 1 , 1 , 3 , 4) Input Ports #0 #1 #2 #3 #4 Write Controller Memory Banks Read Controller #0 #1 #2 #3 #4 Output Ports
Switch Codes for One-Burst Requests ◮ An ( n , R , R ) switch code solving any one burst request, with redundancy n − R = R ( R − 1) / 3. ◮ Wang et al.: R is an odd prime and − 3 is a perfect square in F R . ◮ Our result: R ≡ 0 , 1 (mod 6) for R sufficiently large.
Some Tech Details Triple system ( X , B ): Let X be { 0 , 1 , . . . , R − 1 } , and B be a set of triples of X , satisfying (C0) Each pair of X appears in exactly 2 triples; (C1) |B a ∩ B b | = 1 for all distinct a , b ∈ X , where B a = {{ x , y } : { a , x , y } ∈ B} ; (C2) There do not exist three blocks of the form { a , b , c } , { a , b , d } , { b , c , d } in B .
Example: R = 6 X = { 0 , 1 , 2 , 3 , 4 , 5 } , B = {{ 0 , 1 , 2 } , { 0 , 2 , 3 } , { 0 , 1 , 4 } , { 1 , 2 , 5 } , { 0 , 3 , 5 } , { 2 , 3 , 4 } , { 0 , 4 , 5 } , { 1 , 3 , 4 } , { 1 , 3 , 5 } , { 2 , 4 , 5 }} . ( u 0 , u 1 , . . . , u 5 ) �→ ( u 0 , u 1 , · · · , u 5 , u 0 + u 1 + u 2 , u 0 + u 2 + u 3 , · · · , u 2 + u 4 + u 5 ) By using sums of triples in B as parity check-bits, we have an ( R + R ( R − 1) / 3 , R , R ) switch code for any one-burst request.
Conclusion ◮ Using techniques from graph theory and combinatorics, we give constructions of switch codes for certain parameters. ◮ It is still interesting to give constructions of switch codes with smaller redundancy. THE END!
Recommend
More recommend