The other day I was riding home on the bus and received an e-mail on my iPhone. It was from the office. Someone needed a jar file deployed to production. I connected to the VPN, logged into the cloud server with a terminal app, made the change and replied to the e-mail which set everything in motion.
And then I just shook my head, smiling. Do you have any idea of how many different technologies I used in that brief exchange? And how about the fact I was able to perform all this while on the move? While some people would accept all this without a moment’s thought, I’ve been in this industry for a long time and marvel at what is possible these days.
But you should appreciate that it’s all a matter of building on what has come before. The IP (Internet Protocol) which we all take for granted was defined in RFC 791 back in 1981; that’s 34 years ago! RFCs, for those unfamiliar with the term, are Requests For Comment. RFC 791 was prepared for DARPA, the Defence Advanced Research Projects Agency.
Many people these days don’t realize that what we call the Internet was originally developed to ensure the integrity of military communications even in the face of an enemy nuclear attack. They needed a resilient network which would continue to function even if nodes were damaged or destroyed. The data had to be able to dynamically route around inoperative nodes. Don’t forget, this was still the age of the “cold war.”
Many protocols were built on the foundation of IP, most notably TCP (Transmission Control Protocol,) RFC 793. This provided guaranteed delivery and sequencing of packets, so even if packets took different routes through the network, they could be reassembled in sequence by the receiver. There were acknowledgements (ACKs) so the sender could be sure that the packets had actually been successfully received.
The protocol, like many developed contemporaneously, utilized concepts such as sequence numbers and “sliding windows” for efficiency. I’ll leave it up to you to read the available documentation for edification on these concepts, if you’re so inclined. The very fact that these protocols have survived to the current day is testament to their robustness. The developers were a bunch of really “smart cookies.” Check out the Internet Hall of Fame.
My iPhone was using the Post Office Protocol version 3 (POP3,) defined in RFC 1081, published in 1988, to check for available messages. When I sent my reply, after completing the work, my iPhone used SMTP (RFC 821, Jon Postel, 1982) to communicate with the outgoing mail gateway. All of this on top of the Cellular Digital Packet Data (CDPD) network. IP Mobility Support was defined in RFC 2002, published in 1996.
For the VPN component, I was using L2TP (Layer 2 Tunneling Protocol, RFC 2661, 1999) with IPSec encryption (RFC 2401, 1998.) One of the authors of RFC 2401 was Stephen Kent of BBN (Bolt, Beranek and Newman,) the company which produced the very first Internet routers. I set up the VPN cloud server, and can tell you that it’s no “walk in the park.” It’s arcane with a number of different configuration files and “moving parts.”
And that’s the point. All of these technologies, working flawlessly in concert, is a wonder to behold. While it can be easy to simply accept what is available today, for someone like me, who has witnessed too many examples of impedance mismatches, it’s truly miraculous. Science fiction author Arthur C. Clarke‘s third law states that “any sufficiently advanced technology is indistinguishable from magic.” I couldn’t agree more!