Practical Implementations of Network Coding

Main Lecturer:


Dr.-Ing. Juan A. Cabrera Guerrero : Postdoctoral Researcher, Lecturer

Postdoctoral Researcher, Lecturer

Dr.-Ing. Juan A. Cabrera Guerrero +49 351 463-40863


This course introduces the students to the challenges and approaches of the state-of-the-art implementations of network coding. The course is taught not just through lectures but also with hands-on exercises using the Kodo software library. Kodo is available as a C++ and Python library and web tool. Therefore, students with different programming preferences will be able to approach it.

The initial lectures refresh the knowledge of the students of the theoretical background of network coding, e.g., the min-cut max-flow of a network, inter-flow network coding, and intra-flow Random Linear Network Coding (RLNC). The student is then introduced to the state-of-the-art software library Kodo and the advanced implementations of network coding such as systematic, sparse, tunable sparse, sliding window, etc. The course also covers the benefits of network coding in distributed storage applications. By the end of the course, the student will be introduced to advanced applications of network coding, e.g., Coded TCP, MORE, FULCRUM.

The exercises will teach the students how to use sockets in python as well as the python bindings of the Kodo software library for implementing unicast and broadcast communication applications.

Language of the course and exam: English

Optional course, 8th semester


Oral exam.

Examination schedule for the SS 2023:

Date: 04.08.2023 at 9:30

Time: 120 Min.

Room: Bar-I15

Meeting rooms

The lectures will be presential when possible at BAR/I86C/U. Please check the website often because in the table below, we will announce if one particular meeting or exercise will be online.

The online links will be announced, if needed, on the fly via this website and OPAL.

Material for exercises with software


You can apply for a research license here. Specify that you are a student from the network coding course at the TUD. You will need a Github account where the source code is hosted.

Jupyter Notebook

Module Number

ET-12 10 21

Time Schedule

Wednesday 6DS (16:40 – 18:10)
Thursday (Every other week) 5DS (14:50 – 16:20)

Please, check from time to time the schedule below since it may be updated during the semester.

Lecture Videos


By loading the video, you agree to YouTube's privacy policy.
Learn more

Load video

Lectures and exercises:

05.Apr.2023L1BAR/I86C/UDigital Inter Flow Network Coding: Motivation for network coding and use cases (5G, IoT, Wireless Mesh); Butterfly example; min cut max flow. Inter Flow network coding. Index Coding. Zick Zack Coding. CATWOMAN. Alice, Relay and Bob scenario under IEEE802.11 networks and asymmetric traffic
12.Apr.2023L2BAR/I86C/UDigital Inter Flow Network Coding (continuation)
13.Apr.2023L3BAR/I86C/UAnalog Inter Flow Network Coding: Introduction to Physical-layer Network Coding (PNC) and Analog Network Copding (ANC); Basic concepts; Implementation on Software Defined Radios; Potential gains
Digital Intra-flow Network Coding: Introduction to Random Linear Network Coding; Performance parameters field size and generation size; impact on resilience and latency; decodability for different field sizes; code variants: full RLNC/sliding window/sparse/seed/systematic/perpetual; overhead considerations for different field sizes and sparsity levels; heterogeneous packet sizes.
26.Apr.2023L5BAR/I86C/UIntroduction to the KODO library and examples
27.Apr.2023L6BAR/I86C/UDigital Intra-flow Network Coding (continuation)
03.May.2023L7BAR/I86C/UDigital Intra-flow Network Coding (continuation)
17.May.2023E1BAR/I86C/UKodo Python and our Jupyter hub. Getting Started
24.May.2023E2BAR/I86C/UE1 continuation. Basic UDP transmissions over WIFI and an implementation of Alice, Relay and Bob scenario with digital inter-flow network coding (both with Python)
25.May.2023L8BAR/I86C/UAnalog Inter Flow Network Coding - Continuation
31.May.2023E3BAR/I86C/UIntroduction to Finite field operations
07.Jun.2023E4BAR/I86C/UAnalysis to decoding probability of RLNC
08.Jun.2023L9BAR/I86C/U Fulcrum Network codes - Continuation
14.Jun.2023E5BAR/I86C/UExcercise in Person
21.Jun.2023L10BAR/I86C/UIntroduction to PRAC; dealing with bit errors rather than packet ereasure
22.Jun.2023E6BAR/I86C/UAnalysis of cross topologies with and without overhearing
28.Jun.2023E7BAR/I86C/UNetwork coding in multihop scenarios
-FAL07/08No lecture/Holiday.
CancelledFAL07/08No lecture/Cancelled
CancelledFAL07/08No lecture/ Business trip
-FAL07/08No lecture/Holiday.
Werbeagentur Dresdenbetreut von der |Feuerpanda GmbH |Design & Technik || www.feuerpanda.dePNG  ��� IHDR���������x��� pHYs����od���tEXtSoftware�<�� �IDATx{de}'f.@($@6Ȑ,fS[j^$JQ ݀%j5aSAS M TdD"Pn#e.3 sLWO_>?(y9 ����������������������������������������������������������������������������������������������������������������������������������������������������0� QQ&{%ߴi${OmQݧ9ލdq-8דl~o$yy$SRl?CE�!e+vIf$U]Oyڄfk^N-ՈĶTS(caCщ/'yi>.a�1otǞ5}j(Lc!TaC1 �P|$$9zYӶfnw۲3*ojc%9�ن$M{(}87Žwlo.�f]5I~du{;�exIޓTM~�T%'?'YޢZ8Ԇ1I~7I~+թp�0I~$WTCg@T`8<|HN�P&%wI(ɉ5p[IN]X�$&y�腭Iϊ޺i2Tu�InNnV L�(S|.{�&I./.d6]LЯޕ2ƙh}oG�75�ؚ$_ovԗLHr]_�I@,*wd*/ɞuӬoF�;䄺k.Xu@a0MrG Ijhܤ I.�豿Hߊj`-j �K~3.hZWu|y-LO":�Ě$ɓnNrh�ГB@Oo;Ee$ߏ�cKm{6P&ǧ:^}'� Q$z�B�$b:L'a#]�0KuK�dI?�Њ$yOltm`Y�Zub]vz72x|�f&:xWEn׭(_$wAAttP �#WI^$A;:PVh�)$N'9Qs;&7y N�asN#�3?�tˢ$_:�׉c�S:L~@Y_꒿�@w="yu.%WIiL&Y�YTn\G�>�zm$�m�Յ ~dϹ��esv><�(F�d$O%Nϥx;h�Pv>n��VOny LOr_;_�tۋ{s;#���V?@,Hu ["�k~"6:pF4�7'yO+h5�hq�7oeV�~䨖�zamB@�Ց^=+LF1�@=[ �n�wfݫgLIr�^XW$o͎(#@[^&GfNtn!�PYl��ˬ6�>B�ޙՏɲ$f_�vev`PI~sf�>Z�w ��0|:�N@!�@ػ/I^N �FdT;؏>�@-oLL?� i{L@�L ,�iG�fZ!ɾ-�dޜrL�j�.�Δ|�pL �z�`����ASr��ה#�X&lJ[�]ZE}S��I썩u�&*�޽:�zd � � ��Fm4��6�6iO:�eu�I,'8,?� 2ɵ�& �w�a�`�.})��`x*�,A!�@i��.]��'��ڥ;߿L&ymv�`mO{l0q`y4�6`َ�tÛ޴s}g] ^�nz;[oyd�L: hX"YZ>uWƞ4}k(Fǂk/>�Î^�,^kO=j2i�XZC!0=6oNFä�쳓{Xl'�@_Yn#Tz�~Ux 9Zώ~�1$+WV;ja�B\ `j\p]0)'G~tir}%\Pw5`-cM? Nn1<&� Ϊ|A] 08&� y}(y+�fc� [$X�L� |{ɉ'] П�Zg}w>/[ð>`=HXZfM'EQwE@I�|w$Vw5@}M 0SOMnZ,xauW�B^+tի /�!`q�uYX �j,!T~﮻�#�@rɪU;�`c|Z50d�`c~8G `"@k�-_\}r] 0w@,Lb~wIm%7ݔqD�۽Lϋ+VT^w�Y$��[0d⋓v"5�}˖%\uWruWޢy�w#j}G] 03#�@XQ]Vk}`j�a X�O��dߟ{n�9 �cM曓j�G>;ꪂ˖] YwX#Tϯ"U%٣*~�zmyIv `DsLu퀛oN;j`>/̀�Ӽ>F�O̟s}'Ot��KN/a%��}裓oLn%9ᄺa�uV>H:j`X�yɇ>j`�{9̂�� ŋk$pRuWL��̡&_zri] %YPw�wW;j, T邫WW^_6/nuWUU7za"��#oɻ]w5P'�A'ZU8𺫁:�[C"%�q{s}G?Z]X��$Y<;O�@NJn-#�V6{ﺫN��parEڵ'%CC��Ѳe5$wݕqF@'��w$Z8Ⱥ��ZbEukM٧j9`.W5?qG@[2ǒGhR��fCɹ&矯3�_\rIr ?c@'16�D\w]r/] t��0+Yy1� /|'lպ�F֭׾|uWl$ܒ\rIuW$E��ᇓΫ5�%?_?߮`R�$��reں+i^uW {M~5�__??`�uU庫Zg �Т+/N{JmWT7Zw%@5d[dۼ ɭ[\xar)ɪUuWݦ$bjΫ&_brU+] 9�,o}+'͉��4cKnJٔ$��3$Hr꩚? ?S�06oN3I6n7�χQ26߸�R�ݰ}{r e�� ?ǓJbs  :G~0y5`*F�`hlܘ| ɟieK�M�76ɳ] 06$� ~ᄎ+˸5�� 5kyvx9 @ٰ!gk14.??Id{Y} ĶmW|ɯ~Uw5`{Hd@R �Onn] 0vLϛl#PGI??9�Br%q%+W] 0|v)�Wlݚ|k'>__w54�:rK~�@VN>j_zc� ?_?;ߩ`ۺ5WO}*yIj1i�xB`4\Y_Jؓ)�N}=7D�n/ /LN9%`̎^<$;x+H^~j�&�+.JJ�&Siߎ)"ْꎀ@+;y{y~_d؋y4 �nyU`&O摽ɗ\uU+uW0[~O �F�`*۷'freO] @�`*7 7]@k� Sٶ �b��κ��H��$��e0k�${ɎF�${]�U57d)4�� ]z���O��$��BzP�;ON0Y�y �z牉& �� ]~r2#�I,w(+>۫�Z7'O$�`X<1Ʃ�0&�� '&(��pki.�m*�<ڽ:�d'=׿L'ٔda7+�$Kd7&(mIvU�@W=:YOH5]*�Gzc�0�0y#��0 �F��` ��0 �L6$ٷ��ݶHF��ޜ)�����`8Mg �Ӧ�oMgZ(IvdE�@WmKW6ӎ�Lq!�o=<]OfH�A3c��`t$�X�e="$)eI;�@$ˊvqH}�`P<8SOf7$?c1�@o̪g ��0\nN�� YY/+g,o�۞)CflG���VvV�̺W�nn�w;[OIk-�tۣE =$�zZٹ�pS�Rnu `A�EÊdl?@lMrCU�]W4;qIos�@לP؛[]"y =~�;[mI6?�t|)$)ݓ�tijI/Z`[#�E%W,�1׶6G�L%yE�h$o)pk�R$|�sv2$)}M\�dC�H"y1r �e:q Ij $o�="yu.@$q�Yx? ъN�w8P'[6ܝlƜo4[c >~A7}K�)g&ۧYsNsxf8&6c �����������������������������������������������������������������������������������������������������������������������������������������������������vO4f