reading mastering TCP/IP
なぜTCP/IPを学ぶべきか
現在はインターネットを通した無数の通信が行われている。
例えばあなたの手元のPCからメールを送るのも、ブラウザにyoutube.comと打ち込むとyoutubeの画面が表示されるのも全てあなたのPCと企業のサービスにコネクションが確立している(これを方言で疎通するともいう)からである。
これはあなた(クライアント)の要求が企業(ホスト)に正確に届き、その要求に正しく答えたデータが送られてきて初めて成立する。
しかしどうだろう、もしあなたの使っているPCと企業の使っているPC(サーバー)が違って、電圧の変換方式が違ったら?文字コードが違ったら?ipアドレスの記述方法が違ったら?遠く離れた企業のサーバーからデータが届くか怪しいし、辛うじてやりとりができても文字化けしたり途切れ途切れになったwebページはとても見られたものではないだろう。
このような不便を避けるため通信の方法(プロトコルという)のデファクトスタンダードとなっているのが、TCP/IPというものである。
そのためTCP/IPを学ぶことで通信が疎通する過程でIPアドレスがどのように使われているか、DNSサーバーは何をしているか、同じアプリケーション間の通信がなぜできるのかなどを理解することができる。
通信の裏で動いている仕組みを普段から意識する場面は少ないかもしれない。しかし一方で、あなたがネットワークのエラーという壁にぶつかった時にその原因を知りたい、自分でサーバーを運用してみたいといった時に必ず役に立つ知識だと考えられる。またTCP/IPが基礎的な役割を担っていることから、今学ぶことは将来も風化しにくいということも利点である。
上記が一通りのモチベーションになるが、単純に通信という技術が面白いからやっているという側面もある。筆者は2023/05/10に「Linuxで動かして学ぶTCP/IP入門」を読んだ。継続的な学習の次のステップとして「マスタリングTCP/IP 第6版」を読んでまとめていく。それがこのbookの意義である。