• A Layman's Guide to Deep Packet Inspection

    What is Deep Packet Inspection?

    Suppose you send a postcard to someone. On the left hand side of the post card, you write your return address, you write the address you want the card to be delivered to, and hopefully you remember to add some stamps. On the right hand side, you fill in the message you want to send ("Hey mom! Wish you were here!"). Then you drop your postcard into a mailbox. Your postcard will be picked up by a mail carrier, and go through a sorting process. Postal workers will look at the destination address to decide where to send the postcard, and it will move from postal center to postal center until eventually it arrives in the hands of a postman who delivers it right to the door of your intended recipient. This is similar to the way the Internet works. Instead of using postcards, the Internet works by sending data in "packets". A packet has a "header" which has some information about what computer the packet is from and what computer or server the packet is going to, and a body which contains the actual message that is being sent ("Hey mom! Wish you were here!"). When your computer sends a packet out into the Internet, it is passed through a series of "routers"; each router reads the address of the computer the packet is destined for from the header, and either passes it on to another router, or else passes it on to the destination computer. Or at least, that is how it has worked up until very recently. Routers have been getting smarter, and modern routers use a technology called "Deep Packet Inspection", or "DPI", to decide what to do with their packets. When you send a postcard, you expect it to be delivered based on what your write on the left hand side, but suppose for a minute that postal workers also read the right hand side of your card, and used that information to decide how to handle its delivery. For example, the post office might decide to give priority to messages it thought were important; if there are too many postcards to deliver in a day, your "Hi mom!" message might have to wait until tomorrow so that a postcard could be delivered today that said "Patient at our hospital needs a new heart. Send transplant right away!" Or, a somewhat more nefarious use; the post office might decide to simply not deliver any postcards that said something bad about the post office. Or what if the post office decided to start keeping a database of all the businesses you sent and received postcards to and from, so that they could sell this information to advertisers? This is exactly what DPI is all about; DPI enabled routers will route packets based not only on the header of the packet, but also based on the content of the message, and may use the contents of those messages for other purposes as well.
  • Things I Hate about Firefox 3, and How to Fix Them

    Firefox 3 is here! While there's a lot to like about the new Firefox, there's plenty of things to dislike, too. This is a quick run down of the things that bother me the most, and how to fix them.

  • Internationalization in Java

    This is a quick tutorial on how to make it easy to support multiple languages in your Java programs.
  • Gallery2 on Ubuntu 7.10

    Gallery 2 is a popular web based photo album application. This details how to install Gallery2 on Ubuntu 7.10 (Gutsy Gibbon). These instructions assume you have installed Apache2, PHP, and MySQL (as per an install of Ubuntu Server).

  • Space Debris

    I wrote this little Java game a while back. This was actually my first ever Java project. I’d quite forgotten about it, but I just came across it, and thought I would post it here for your enjoyment.

subscribe via RSS