Bachelorarbeit: Implementation of a Multicast Module for the Floodlight SDN Controller
In many network scenarios, a server needs to send the same data to multiple clients or vice versa. For this purpose, traditional IP communication allows either to send data to all hosts on the network (broadcast) or to a subset of them (multicast). In application scenarios like video conferencing or online gaming, a subset of all hosts demands the same data from a server. In online gaming for example, only the players near a certain player need to be updated about his actions and movement because they are the only ones who can see him and need to display his actions on the screen.
Broadcasting the data in this scenario would cause a lot of unnecessary traffic. Using a multicast approach is a lot more effcient. IP multicast follows a subscription approach. Every host interested in data from the server subscribes to the same multicast group with a multicast address from a pool of reserved ones for this purpose. In the IPv4 protocol for example, the whole class D address space (18.104.22.168 to 22.214.171.124) is used for multicast. The server only needs to send the data once to the multicast address the hosts are subscribed to, instead of sending the packets to each single host. Internally the network components create multicast distribution trees to dene the routes through the network topology. When a node in the network, typically a router or a switch, receives data for a multicast group, it sends the same packet along the predefined distribution tree to ensure every endpoint receives the data. This way packets get replicated along the way to every endpoint by the network components in a way that every packet passes a node only once.
With this subscription approach, the server does not know which hosts receive his data because every host is subscribed by itself. It is also possible for every host to become a sender instead of staying a receiver with sending data to the multicast address. Every member in a multicast group is equal, thus able to receive and send, and the network components only pass the data along the distribution tree without checking the source it came from.
An approach of multicast without these drawbacks can be realized using Software Dened Networking (SDN). SDN's are networks made programmable through the separation of the data and the control layer in the network components. The nodes no longer decide here to send incoming packets but are connected to a controller with an overview of the network which determines the routes. Floodlight is an example for a community-developed open-source SDN Controller. Applications can communicate with it through a so-called Northbound API. The OFERTIE Project specied a Northbound API and implemented it in the so-called 'SDN-Module'. With SDN and the 'SDN-Module', an application can inform the controller that it wants to send data to a group of hosts, the so-called multicast-group. With the module developed in this thesis the controller will then set up specic flows on the network components. These flows tell the network components to send packets coming from the server, with the groups multicast address as destination, to every specied endpoint.
With this approach, the server has full control of where the data is going because it created the multicast-group. Only the server is able to communicate to the group because the source of the packet has to be the servers address, like it is specified in the flows on the network components as described before.
Bachelorarbeit (6 Wochen Bearbeitungszeit).