ものごとを理解する手っ取り早い方法の1つは、自分で体験することだ。特にソフトの仕組みとかプロトコルなど、眼に見えないものは、実際に動作を追いかけるプログラムを作ったり、操作をしてみると理解しやすい。

 かなり昔の1985年くらいに、パソコン通信用のターミナルソフトを自作した。当時のパソコンで使えたBASICだと、COMポートにデータの着信があると割り込みが発生するので、これを利用するとほんの10行弱で単純な通信プログラムが書けた。ただ通信ログの保存もできないし、音響カプラを使った通信速度が300ビット/秒ならともかく、当時出始めた1200ビット/秒のモデムだと取りこぼしが発生した。

 そこでC言語の勉強がてら、もう少しまっとうなターミナルソフトに挑戦した。当時学生で、日経バイトに掲載されたプログラムリストを換骨奪胎して作ったものだ。こちらは割り込みではなく、COMポートを定期的に見に行って、データが入っていたら取得して表示するといった仕組みだった。こうすれば通信ができる、ということが明確に理解できた。

 プロトコルの概念を理解したのも自作だ。当時のパソコン通信では、ファイル転送にXMODEMというプロトコルが使われていた。これも実際に作ってみて、プロトコルの意味合いなども理解した。

 ネットワーク機器も実際に使ってわかったことがある。例えばリピーターハブだと上流用の接続ポートがないけど、スイッチングハブ(L2スイッチ)だと上流用の接続ポートがあって、なるほど確かに下流と上流を結ぶ接続を「切り替える(スイッチングする)」からスイッチングハブだから専用のポートが必要なんだ、ということが体感できた。何というか、頭ではわかっていたことだが、骨の髄から認識できた感じがした。