こんにちは、ウイルです。
今回は、TCP/IPの概要について説明します。
ネットワークや通信はなかなか想像しづらく、苦手意識を感じている方も多くいらっしゃるのではないでしょうか。私も基本情報技術者試験を受けた時は、ぼんやりと暗記していました、、
今回は、「なぜ必要なのか?」という点も含め、できるだけ分かりやすく説明していきます
インターネットとは
TCP/IPについて理解する前に、インターネットについて復習しておきましょう。
皆さんはインターネットとは?と聞かれたときにどのように回答しますか?
インターネットについてざっくりいうと、ネットワーク同士がつながったものです。
インターネットにつなげるためには、Yahoo!BBやBIGLOBE、eo光などのプロバイダーと契約をしますね。
元々、インターネットはプロバイダー同士をつないだものだったのですが、現在はIX(Internet Exchange point)というインターネットの接続点をつないだものになっています。
IXは日本で東京の大手町など、10か所前後存在しているようです。
TCP/IPとは
ネットワーク同士をつなぐ共通の通信方法
先ほどの図のようにネットワーク同士をつなげるためには、「みんなが同じ方法で」通信しないといけません。
例えば、日本語と英語で会話が難しいように、それぞれのネットワークが違うルールで話していると、つなげることが難しくなってきます。
実際に、昔は様々なメーカーが独自のルールで好きに通信をしていたのですが、別の製品とのやり取りができない・・・という問題が発生していました。
そこで、共通の通信方法(=プロトコル)として、TCP/IP(Transmission Control Protocol/Internet Protocol)が採用されるようになりました。
※ IP通信で使用するプロトコル群( IP, ICMP, TCP, UDP, HTTP, SMTP, SSH,TELNETなど)を総称してTCP/IPと呼びます。
逆に、TCP/IPで通信さえすれば、どんな機器でもインターネットに接続することが可能です。
現在普及しているIoTもそのような仕組みで、家電がインターネットに接続されているのです。
4つの階層モデル
同じルールで接続するにしても、アプリケーション毎にプロトコルを設定するのはかなり手間です。Webアプリを作成するたびに、「無線LANで接続した場合」「光ファイバーで接続した場合」・・・など意識してられないですよね。
そこで、ネットワークでは、全体を機能ごとに分けて階層化しそれぞれにプロトコルを設定しています。
例えば、通信方式の標準的なモデル「OSI参照モデル」では7階層、「TCP/IP」では4階層に分けています。
アプリケーション層とは最終的にユーザーが利用しているもの(Webとかメールとかアプリなど)で、物理層は実際にデータを送信するもの(ネットワークやLANなど)です。
具体的にどのようなデータの流れになるか見てみましょう。
クライアントPCからサーバーにTCP/IP を使ってサービスを要求したとします。
サーバーから応答があるまでには以下のような流れになっています。
①トランスポート層はアプリケーション層から受け取ったデータを次の階層に渡します。また、データ伝送の信頼性を保証するため、データが欠損している場合は再送する等をおこないます。
②ネットワーク層はデータの伝送経路の管理や選択(ルーティング)、データの送受信単位の変換や調整、優先制御などを行います。
③データリンク層や物理層は「パソコンとLANケーブルでつながったルータ」や「パソコンと無線LANアクセスポイント」など、利用する媒体に対してどのようにつなぐかルールを定めています。
そして、MACアドレスなどの物理アドレスを利用してどこからどこに、伝送するデータなのかを判断しビット単位のデジタル信号の送信・受信ができるようにしています。
このように機能によって役割を決めておくことで、例えば「データリンク層を Ethernet から PPP に変更しても,上位のアプリケーションには何の変更も加える必要がない」というメリットがあります。
まとめ
ここまで、TCP/IPが必要となった背景や、階層モデルについてみてきました。
色んな機器をインターネットに接続するためのルールがTCP/IPなんだね!
階層の詳細については、次回以降説明していきます(^^)/
こちらの書籍でも、TCP/IPについて分かりやすく解説されていますので、是非参考にしてみてください。