Week 36 & 37
I really wish I remembered to write last weeks post, but there actually wasn't all that much to write about, frankly. The only major thing that went on in our computer networks course that week was coding a simple chat room between two hosts. Equal parts fascinating and frustrating, the assignments demonstrated that network programming was just as much easy to grasp as it was migraine inducingly difficult. But, then, isn't that just programming in a nutshell?
As for this week, we went over some of the internet's architecture and its quirks. One of which may be a familiar face for those who used to be a part of LAN gaming parties back in the 2000s. Much of the internet has and still is using IPv4 protocol which uses a 32-bit addressing system. 32-bits provides 4,294,967,296 unique IP addresses for devices. It seems sufficient at first glance, but 4 Billion isn't exactly a lot in the grand scheme of the world wide web. One of the ways to delay the very real possibility of running out of available addresses was NAT. NAT allowed all the devices on a given a subnet(essentially a network within a network) to use a single IP address. This freed up a lot of addresses, and spawned what would be the bane of online gaming for a lot of players, past and present. The internet was designed around the idea that every host has a globally reachable IP address. As such, games' servers and players' clients spoke directly to one another in peer-to-peer connections. Then NAT came along and effectively said "Nope, everybody hide behind one public address." which would effectively sever and prevent long-distance networked play. This was part of why the 'LAN party' existed; everybody would get all their machines together on one side of the NAT mask to play together. Nowadays, there are workarounds being implemented, like NAT traversal or port forwarding. There is the slow-but-ongoing transition to the 128-bit IPv6 protocol, but it's going to be quite a while before that happens.
Comments
Post a Comment