grimsniffer: (Default)
Recently at work, I've been delving into the IGMP protocol structure. And this as always, means reading its RFC - which in my case means going over three different RFCs (IGMPv2, IGMPv3 and IGMP Snooping). I never minded reading RFC documents, and very deeply investigating the various bits and pieces of a certain networking protocol. I actually find it rather interesting. But when you have to read a few tens of thousands of words for most of your waking hours, your mind usually begins to wander...

While pausing to clear my mind, I took a look at RFC 1, as I'm sure most curious networking people have done at one stage or another. It's entitled "Host Software" and is dated April 7th, 1969. It speaks of recommendations for IMPs (Interface Message Processors) which seemed to have been refrigerator-sized machines connecting the four sites of the ARPANET. Today they are known as routers, and well... we all know how big they are.

The first RFC was a result of several meetings and exchanges between four representatives of the four sites of the ARPANET. All of them graduate students who were constantly working out efficient ways to make these computers speak to each other, in a time where "computer networking" wasn't even a field. All of them reached the wise conclusion, that if they were going to make this thing work - they had to reach some agreements together regarding how they want this "protocol" to function. And so they released this document to all the relevant people as a very raw suggestion for a protocol, openly inviting additions and comments.

Reading about this "Host Software", I couldn't help but smile. These brave pioneers actually wrote a full networking protocol years before TCP\IP, the 7 layer OSI-model or any sort of guidelines as to how this could be done. And it's definitely apparent. This one protocol mixes both packet routing (or messages, as they called them), error checking, session management, bandwidth allowance, etc. etc. Things that any sane protocol designer today would split across at least three or four layers. And yet they made it work - and that document laid down the foundations of what we today call "The Internet".

By reading the first few RFC documents, you very clearly see the spirit of camaraderie and sharing reflected by them. These people cared about their work, they were passionate about it - and they were passionate about cooperating with one another in order to complete it. It's a spirit that I see nowadays in the Open Source community, but sadly enough - not in the recent RFCs. Networking has become a vital necessity in our modern world, and when the co-writers of RFC documents nowadays are high-ranking corporate-types from Cisco and the like - I can definitely understand why that spirit has died.

Corporate interests and capitalism (if I'd be allowed to wear my Marxist hat for just a short moment) have taken away sharing and friendship. They have taken away the passion from the world of computer networking. This can be very easily seen by reading the first fifty or so RFCs and then reading a recent one. It seems as if they come from vastly differing approaches, only clinging on to similar formats and typesets for tradition's sake.

Nowadays, networking devices and applications are developed with the RFCs and standards as rough guidelines. If there's a line in an RFC that's inconvenient or would take too long to develop, it's usually disregarded (even if it's marked "MUST"). The company developing the product deciding to only fix it if the need arises. The companies do not wish to be 100% compatible with the standard (or with the recommendations), they only wish to save time and thus - money. This field is no longer a passion, it's cold necessity and monetary interests.

And that's why, in my opinion - computer networking (and indeed, most other fields of public or enterprise computing - but more on that some other time) has dwindled so much in recent years.

It's true that computer networks are much larger today, and do considerably more than they did in the past. Exponentially more, in fact. But it's very clear that the addition of this new functionality is at the expense of making the old functionality actually work better. Network equipment is known to be unstable (not as much as server computers, obviously - but still unstable). It has to constantly be maintained, upgraded and patched. Networking is not the robust science that it used to be in those early days of IMPs and RFC 1 - it is at best a large collection of half-working devices of a million different kinds and sorts that somehow manage to work together... most of the time.

When minds come together and try to work something out because they're passionate about it, because they simply want to bring something to an artistic perfection - wonders come out. The foundations of the Internet are laid down.

When corporations artificially create such collaboration, we get three different versions of IGMP over less than ten years with severe issues of backward-compatibility built right into the protocol, and companies not even fully adhering to those protocols later.

Profile

grimsniffer: (Default)
grimsniffer

February 2010

S M T W T F S
 123456
78910111213
14151617181920
2122 2324 252627
28      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags