Subnetting (read "Logarithmic") Arithmetic

All networking types daily make use of arithmetical operations optimized to deal with a fixed number of digits in base-2. These operations are most often performed mentally, with little thought given to the underlying rules the optimized manipulations obey. This is not to say the mechanics of the operations are not considered--indeed, it is only by acute awareness of the binary structure that one may come to grok subnetting at all--but rather the leap from binary arithmetic to subnetting arithmetic is often only tacitly understood. However, in tutoring others on this topic, I've come to develop what I gather is a very clear picture of how we optimize our day-to-day calculations. And, most importantly, my insights are universal in that many others have independently arrived at the same conclusions I have. Therefore, I believe my attempts at developing rigorous notions of these optimizations can be of some value.


Adventures in Internet Pollution

One of my coworkers noticed a large and sudden increase in unallocated bogons on the Internet. This normally indicates a new set of IP allocations have been advertised in BGP before the regional registries have had time to update, and, indeed, such was the case here. However, something was different--immensely different: among the blocks being advertised was, LACNIC's last IPv4 block.

Taken from http://bgp.he.net/AS237


Hypergraphs and Layer-3 Topology

In 2009, I posted some code to document a network's topology from a layer-3 perspective. Since that time, the quick-and-dirty BASH scripts have slowly been replaced, and a database and web interface have been added, making for a surprisingly robust tool that I may, one day, package and release for public consumption and scrutiny. But, while being able to draw layer-3 topologies is very nice, it is the addition of a centralized database, filled with topology data, that is the catalyst for continued exploration.

In January of this year, I worked out a simple algorithm to tackle the following problem:

Given an undirected graph G = (VE), find all simple paths having terminal vertices vs and vt for all vs ∈ V.

Some time has elapsed, but I was finally able to put code to my paperbound scrawl. Fortunately, this problem is easily solved (though my own approach is almost certain to be far from optimal), but before proceeding to the subject of implementation, allow me to first state the problem more plainly and explain its significance.


Cylinder Fun

One of the many oddball questions festering in the back of my skull for the last year had to do with finding the volume of a cylinder. The most common methods in calculus for determining the volume of such a solid make use of discs or shells; I've never found these very satisfying. The reason for this is I prefer to think about solids of revolution as being composed of infinitely many wedge-shaped slices of infinitesimal volume. This is far more intuitive to me than discs and shells, and the idea works for many other solids.