Network Coding (NC) is a technique that ca … Network Coding (NC) is a technique that can be used to improve a network’s throughput.
In addition, it has significant potential to improve the security, manageability, resilience
(to packet losses, link failures and node departures) and the support of quality of service,
in both wired and wireless network environments. The idea is to allow intermediate nodes
of the network (i.e. switches and/or routers) to mix the contents of incoming data packets
before forwarding them. Something that, traditionally carried out at source nodes, is
therefore extended to the network, creating an array of new options.
The difficulty of deploying NC on traditional switches lies in the impossibility to change
or extend their operation with the requirements of this new paradigm. The devices are
closed, the software and underlying hardware are vendor specific, and follow a fixed set
of protocols and processing pipeline. This rigidity precludes NC in today’s switches and
Fortunately, programmable switches are beginning to emerge, with some already achieving
production-levels and reaching the market (e.g., Barefoot Tofino). A new high-level
language to program these switches has recently been proposed: P4. The P4 language allows
the precise definition of how packets are processed in these programmable switches.
Namely, it enables the definition of headers, parsers, match-action tables, and the processing
pipeline itself. Therefore, by taking advantage of these constructs, P4 enables the
deployment of NC, on the switch’s data plane, for the first time.
In this dissertation, we design and implement two NC switches using the P4 language.
Both switches employ Linear Network Coding (LNC). The main difference is that the
first (P4-XOR Switch), simply performs the XOR of packets (i.e., a linear code with field
size 2). The second (P4-RLNC Switch) is more generic, allowing larger field sizes. For
this purpose it performs Random Linear Network Coding (RLNC), which is a random
variant of LNC.
The evaluation was performed on Mininet (a network emulator) and focused on the functionality
of both switches. Additionally, the performance of the P4-XOR Switch was
tested as well. The main conclusion is that our implementations correctly perform the
required operations allowing, for the first time, NC to be performed in real data planes. e, NC to be performed in real data planes.