Originally posted by: bwanaaa
If I were from an advanced civilization, I would want to be efficient-and imagine the bandwidth shortage with everything being wireless.
Is TCP the most efficient packet switching form of networking (Efficiency = lowest network overhead per communicated piece of information) ?
Secondly, imagine you landed on this planet from another one, how would you go about figuring out how to decode internet traffic?
What the hell, I'll tackle the second question
Obviously, the first step would be that they somehow tap into the system to get the data in the binary form we transmit it in. I won't tackle this matter, since it would require several assumptions about the aliens. Let's just say that the aliens come built with an ethernet jack, mmkay?
So we'll assume the aliens can see all the packets going around. The next bit is to sort out the packets so that they can actually try to figure out where everything is going to and from. I'm not talking the data in the message, just actually having some idea on the top level where the data is moving between. The easiest way for this is for them to monitor packets that they are sending and receiving themselves (this is where that ethernet jack comes in handy). So let's say they've monitored some human behaviour and manage to navigate to
www.google.com. Now they sense a bunch of these little 1s and 0s going in and out of them and have some kind of context.
Source and destination addresses come easily. They would notice that everything incoming had the same destination field, and what do you know, that same number is in a different field in all the packets they send. Similarly, all the packets received from a specific site would have the same source address. So I figure any being smart enough to get this far can probably figure this much out.
The next thing that should be apparent is that a lot of the data at the start seems to often be the same. If they're clever, they'll notice one of the numbers changing relative to the size of the packets too, and figure out the length field. It's not expected that they figure out the meaning of all of the little fields (like TTL and such), just that they are usually the same for a bunch of packets.
The data portion would be easy except that there might be another 32 bits between the addresses and the data. Those bits would be difficult to figure out because they're all about various IP options. I would expect that even a clever alien would consider this part of the data until figuring out that it doesn't match.
Now, let's think about the rest of the fields. Version is always going to be the same, at least for the near future, so that'll be basically impossible to figure out (but easily ignored). Header length is something that a clever alien might figure out, by seeing that it's always the distance from the start to the data. This does require that the alien figure out that some of the fields are optional. I suspect that this would become apparent once the alien gains some understanding into how the data is encoded. If they can figure out what a picture is supposed to look like in binary, they can see where it actually starts and determine the header length from that, which should match the field and shine the proverbial light bulb over the clever alien's head or head equivalent.
Type of service is going to be pretty meaningless as well, unless they can somehow determine how important a packet is and that this influences these bits. It wouldn't be an easy thing to decode anyway.
The Identification, Flags, and Fragment Offset fields might not be too bad to figure out. Surely by this point, the clever alien has figured out that information gets split up into multiple packets. The alien probably also noticed that certain numbers follow specific trends as the data is sent. These three fields should therefore be figured out pretty quickly, maybe even before the data field is figured out. It's a little tricky seeing where the flags are and everything, but this won't put off the clever alien for too long.
Time to live is probably another difficult thing. I'd place this along with type of service in terms of complexity.
Protocol is something that the clever alien could take a shot at. It might notice that this number changes when going from website traffic over to streaming porn (hey, they just got here, they gotta research reproduction too right? Of course, they're likely to think women are impregnated through an erroneous opening, but I digress). They could gradually discover what the different numbers mean as they browse around.
Header checksum is something that takes a bit more cleverness to figure out, since it's math on the header information. This one depends completely on how the aliens think. Sure, we know the alien is clever, but we also know that I'm talking out of my ass for the most part so it's always good to make excuses like this. But let's just assume for the purpose of argument that this alien is really clever and manages to figure this one out. Hopefully it figured out to zero the field before doing anything or it'll be stuck in a recursive loop for a while.
Finally there are the options and padding fields. They might figure out padding if they figure out the length of the header is always a multiple of 32 bits. The options themselves are going to be just like TTL and service type... they might figure out what some of them mean, but it's pretty complicated.
So there's my half-assed look into the alien psyche regarding internet protocol. Please keep in mind that I learned most of what I know about IP in the last 15 minutes looking at Matthias' link, so I have no idea how many of these fields are actually used
PS: For some reason the filter didn't like me saying "take a s t a b at it", but doesn't mind shot at all. I guess 'cause it's not so bloody and up-close-and-personal?