Nikhil Ramesh is currently a final-year student at Birla Institute of Technology and Science, Pilani, pursuing a dual degree in MSc economics and BE manufacturing engineering. His interests are quite diverse, including operating systems, cryptography and network security. He started with web development and has now ventured into learning how a computer works in all levels. He intends to spend his time visiting new places and trying out different cuisines after graduation.
Project: Capturing Packets from a Network Interface
Goal of the project:
The aim of the project was to add support for capturing network packets on any particular interface to Mathematica. The functions should aid in debugging network problems and capturing packets that use TCP and UDP protocols.The idea is to create a new function that then invokes a C++ library in the background, which starts sniffing packets. Based on the "time" and "protocol" variable set in the function parameter, the library returns the packet data to Mathematica, which can then be used to make inferences and plot graphs that, in turn, can be used to help in debugging network issues.
Summary of work:
Functions that print out TCP, UDP, DNS data were added on the Mathematica side, which use the "libtins" C++ library on the back end. The entire TCP/UDP packet is serialized and sent to Mathematica, where it is parsed. Fields are returned inside Source/Destination IP/Port, Checksum, Length, Headersize, ack, timestamp, etc.
Results and future work:
The same work can be extended to make it function in real time, where we are able to visualize the traffic in Mathematica.