よく聞くけど知らない?TCP/IPについて
TCP/IPとは
TCP/IPとは通信プロトコルの総称です。インターネットは別々に発達してきた様々な通信技術を組み合わせたものです。そのような組み合わせを実現するための応用力を持つ技術がTCP/IPです。
プロトコルって何?なぜ必要?
プロトコルとはコンピューターとコンピューターがネットワークを利用して通信するために決められた「約束ごと」になります。
メーカーやCPUやOSが違うコンピューター同士でも同じプロトコルを使えば互いに通信することができます。逆にいうとプロトコルを使用しなければ通信することはできません。
プロトコルにはいくつもの種類があり、それぞれ仕様が明確に決められていて、コンピューター同士が互いに通信するためには、両者が同じプロトコルを理解し、処理できなければなりません。
人間なら知能、応用力、理解力を持っているので、ある程度ルールから外れても意思疎通を図ることができますが、
コンピューターによる通信の場合は、コネクタの形状のような物理的なレベルからアプリケーションの種類のようなソフトウェアのレベルまで、様々な部分で明確な「約束ごと」を決めてそれを守るようにしなければ正しく通信することができません。
マスタリングTCP/IP入門編
TCP/IPについてコンピューターとネットワーク登場の背景から、コンピューターとネットワークの発展の歴史とそれにまつわるTCP/IPについてOSI参照モデルの機能分類にTCP/IPの機能を当てはめる形で一つ一つ詳しく解説されています。
通信に必要な機能について多くの通信のプロトコルはOSI参照モデルの7層のどれかに当てはめて考えることができます。
詳細を知るには、個々のプロトコルの仕様書をその都度読む必要がありますが、おおよその役割はこの階層モデルのどの層に当たるかで見当をつけることができます。
なぜこの本に興味をもったのか
業務での通信エラーなどでプロトコルについて幅広く知識をつけておくことで原因を特定しやすくなるのではないかと思ったことと、ネットワークについて歴史的な発展とともに発達してきた技術について背景を知った方が今後の技術習得がスムーズになると思ったので読みました。
OSI参照モデル7層の各層の役割
7.アプリケーション層
アプリケーションの中で通信に関係する部分を定めていて、ファイル転送や電子メール、遠隔ログイン(仮想端末)などを実現するためのプロトコルがある。
6.プレゼンテーション層
機器固有のデータ表現形式(データーフォーマット)などをネットワーク共通のデータ形式に変換する役割がある。
5.セッション層
コネクション(データの流れる論理的な通信路)の確立や切断、転送するデータの切れ目の設定などデータ転送に関する管理を行います。
4.トランスポート層
宛先のアプリケーションにデータを確実に届ける役目がある。通信を行う両端のノードだけで処理され途中のルーターでは処理されません。
3.ネットワーク層
宛先までデータを届ける役割を持ちます。宛先は複数のネットワークがルーターにつながった先にある場合もあり、そのためのアドレス体系決めやどの経路を使うかなどの経路選択の役割を持ちます。
2.データリンク層
直接接続された機器間でのデータフレームの識別と転送。0と1の数字の列を意味のあるかたまり(フレーム)に分けて相手に伝えます。(フレームの生成と受信)
1.物理層
ビットの列(0と1の数字の列)を電圧の高低や光の点滅に変換したり、逆に電圧の高低や光の点滅をビットの列に変換したりします。
TCP/IPのアプリケーション層
TCP/IPのプロトコルは4層に分けて説明されますが、その中のアプリケーション層をOSI参照モデルに当てはめると、第5層、第6層、第7層のすべての機能が埋め込まれます。
通信コネクションの管理などのセッション層の機能や、データフォーマットの変換というプレゼンテーション層の機能、相手ホストのとのやり取りというアプリケーション層の機能はすべてアプリケーションプログラムが担っています。
学んだこと
OSI参照モデルでの一つ一つの紹介はここでは長くなるので割愛しますが、業務でSSLの更新などに携わることがあり、工程としてアプリケーション層での遠隔ログインと呼ばれるSSH接続をします。
以前には遠隔ログインシステムにはTELNETというものもあり、TELNETではログイン時でのパスワードが暗号化されずに送信されるので、通信を盗聴されると不正侵入される危険性があり、SSHという通信内容が暗号化される遠隔ログインシステムが登場し普及したなど、当時はTELNETというシステムが一般的だったのが、システムの脆弱性から新しい技術が発展し、今SSHが普及しているなど、今の技術に至るまでの歴史的な背景や仕組みなどが図になって説明されていたのですごく理解が深まりました。
業務で活かせることができる点
今、安心安全とされている技術であっても数年後には脆弱性が見つかり使われなくなったりするので、(SSHにはバージョン1とバージョン2が存在しバージョン1には脆弱性があり、バージョン2の利用が推奨されているなど)エンジニアとして常に新しい技術に対してキャッチアップしていきながら、今使用している技術に対して満足することなく問題がないかを確認し、問題がある場合は日々更新、改善していく意識を忘れずにもつことが大事だなと改めて感じました。
Author Profile
スターフィールド編集部
SHARE