Skip to main content

Jamie Nicol, BSc (Hons)



NAT Protocol

Back to top Back to top

Network Address Translation (NAT) is an essential system to enable cheap home networks, but it also has an inherent disadvantage which causes problems for many applications utilising server ('listening') ports. The disadvantage can be partially overcome using port forwarding. This is a cumbersome and wasteful technique, requiring frequent reconfiguration and is often beyond the scope of home users.

My full project report [MS Word or PDF] describes the NAT Protocol (NATP) project, a novel system which aims to alleviate the difficulties of port forwarding by providing a fully automated client/server based Dynamic Port Forwarding (DPF) system. The automatic and dynamic nature of the system completely removes the need for manual port forwarding configuration - especially useful for home network users.

The system uses client applications to discover open listening ports on Windows and Linux hosts, and then communicate this data to the server. The server application interprets client requests and then reconfigures a Linux router's port forwarding using IPtables. The Java-based applications communicate using a new application layer protocol - NAT Protocol.

The project report outlines the complete project from inception to end product, including a full analysis, design, system testing and conclusion, as well as an example implementation.


Linksweeper

Back to top Back to top

Linksweeper is my first attempt at programming a multi-threaded VB.NET application for Windows. It's purpose is to "sweep" your Internet Explorer Favorites to find errors and broken links, and then action those broken shortcuts depending on the errors. The concept is based on Linksweeper by Left Side Software, however the code for this product was designed and written entirely by me.

Linksweeper requires the Microsoft .NET Framework 2.0 in order to run.