TCP/IPはインターネットの心臓部的な通信手順

LINEで送る
LinkedIn にシェア
Pocket

今や、パソコンだけでなく、スマートフォンやタブレットもインターネットにつながっています。でもインターネットは、組織が自前のLANを構築して繋げているだけなので、インターネット全体を管理している組織は存在しません。

管理している組織はありませんが、ガイドラインはあります。また相手があることですので、手順やルールが決められています。

このページではインターネットを代表する通信手順であるTCP/IPについてわかりやすく説明します。TCP/IPが理解できると、インターネットの概要は理解できます

ポイント
  1. TCP/IPとは、インターネットの中で中心となる通信手順である。
  2. IPは、広いインターネット上で同じ手順を使ってデータを受け渡しできる
  3. TCPは、IPが実現しないマルチタスクを実現し、大量のデータを間違いなく届ける通信手順である
  4. 通信手順のことをプロトコルを言う

TCP/IPは何ができるのか?

TCP/IPはTCPとIPの組み合わせです。インターネットを構成するプロトコルの中でも、TCPとIPは一番重要なプロトコルです。さらにUDPというプロトコルもあります。UDPについては後述します。

TCPとIPを使うことで、通信したパソコンやスマートフォンやタブレットはIPアドレスとTCPのポート番号を指定することで通信することができます。例えば、Webサイトを見ようとして、Google ChromeなどのブラウザにURLを入力してWebサイトを開くと思います。

具体的にはこのサイトのトップページを見ようとして、https://singomemo.com/のURLをブラウザのアドレスバーに入力する状況を想像してみてください。

ブラウザはWebサーバからWebサイトのコンテンツを受け取ると下のように表示します。

Webサイトをブラウザで見た際の例

パソコンやスマートフォンの機械が処理するのであっと言う間ですが、実際には次の順番で処理します。

ポイント
  1. DNSでsingomemo.comのWebサイトを提供しているWebサーバのIPアドレスを取得する
  2. 1のIPアドレスにhttps://singomemom.com/のWebコンテンツを提供するよう依頼する
  3. ブラウザにWebサイトを表示する

2でTCPとIPのプロトコルを使います。このようにTCPとIPを使うとネットワークに繋がっているWebやDNS、YouTubeなどのサービスを提供するサーバと接続して情報を送ったり受けたりできます。

TCPとIPをはじめとするプロトコルでできること

WebサイトやYouTubeなど個別のサービスを、同じ手順で簡単に使うことができる

IPとは何か

インターネットに接続してデータを送受信する時に、IPというプロトコルを共通で使います。IPで決められている送受信先はパソコンやスマートフォンのネットワーク接続のためのインターフェース(ネットワークインターフェースカード略して「NIC」と呼びます)までです。

右の図のように、NICと呼ばれるパソコンをインターネットやLANに接続する口同士の通信手順を取り決めたものがIPになります。

NICは有線LANのポートだったり、無線LANのインターフェースであったりします。無線はインターフェースが無いから分かりにくいです。

インターネットにつながるパソコンやスマートフォンなどすべてIPで通信します。

全てのNICは識別するためのIPアドレスを割り当てます。

IP通信のイメージ

NICまで到達したデータはパソコンやスマートフォンに取り込まれ情報としてデータを処理します。データの処理というと難しいですが、Webサイトを表示したり、音声としてスピーカから鳴らしたり、ネットワークを通して受け取ったデータを出力することです。

IPとは

パソコンやスマートフォンが、ネットワークに接続するために使うNICと、他のNICとの間で、データの受け渡しをするの通信手順のこと

TCPとは何か

IPが、インターネットで使うIPアドレスとIPアドレスの間で、データ送受信を行います。ただし、データの送受信時の紛失など、受信側がデータを正しく受信できるかは保証していません。なぜデータ送受信時の紛失を保証しないかというと、TCP/IP登場時のコンピュータの処理能力では、通信速度を出せなかったためです。またIPはすべてのネットワークに同じ通信手順を提供する役割だけ持つことにしてデータの送達保証は上位層にゆだねることにしました。

例えば、ファイルコピーなどデータを送信する時にデータの欠損があると受信側は送信元のデータを正しく扱えません。このような時はTCPが送達を担保する仕組みを提供します。逆に送達を担保する必要が無い場合もあります。

TCPとは

データをインターネット経由で送信する時に、ファイル転送などデータの欠損が無いことを担保する必要がある時に使う通信手順です。

送達を保証しない方が良い場合は、例えば電話通信やストリーミングなど、データ送受信の保証ではなく、リアルタイムにデータを送達できることの方が大事な場合があります。こちらはUDPが担当します。

UDPとは

データをインターネット経由で送信する時に、音声通話やストリーミングなどデータが欠損したとしてもリアルタイムに伝送する必要がある場合に使う通信手順です。

さらに、TCPやUDPはIPの上位層に位置しています。さらに上位にはアプリケーションがあり、アプリケーションのマルチタスクの通信手順を提供します。IPが送信元と送信先への通信の手順を提供するだけでした。

TCPとIPを組み合わせて何ができるのか

TCPとIPを組み合わせると、IP通信のデータ送受信し、TCPでデータの損失を再送により保証しつつ、複数の通信制御を行います。下の図にWeb閲覧とメール受信の通信イメージを記します。

サーバ側について、WebサーバはTCPの80番ポートでWebサイトの情報を提供します。メール受信サーバはTCPの110番ポートでPOP3プロトコルで受信したメールを提供します。

もう少しTCPとIPの役割を、実際の通信のイメージをプロトコルスタック(階層構造)を使って説明します。

左図をベースに、①クライアントになるパソコン側では、通常IEやChromeなどのWebブラウザはWebサーバのWebサイトに情報を取りに行きます。その際アプリケーションからTCP又はUDPに引き渡し、IPも通り、ネットワークインターフェースまで送信するデータを順次引き渡します。

②ネットワークインターフェース層へ引き渡されたデータは、ネットワークインターフェース層からネットワークを通してサーバに運びます。

③Webサーバまで届いたデータは処理してパソコンにデータを返送します。返送する際は逆順になります。

データ送信のプロトコルスタッフ
疑問

わざわざ階層を分ける理由がわかりません。一つで作ればわかりやすいのでは?

答えは時代の流れにあります。複雑になりすぎるからです。一社が一つの製品で作ると時間もかかるし、変更にも時間がかかる。世界を一つに統一するのが難しいのは、国が分かれていることからもわかります。ソフトウェアで言うとオブジェクト指向も同じ考えた方で、「分業して作りましょう。ただデータの受け渡しは決めておきますね。」ということになります。

答え

早く楽に作るため、このように分業する階層に分けました。一つにまとめるためデータを受け渡しだけは決める必要があった。

インターネットを支えるプロトコル

ここからはTCP/IP以外のプロトコルを簡単に紹介します。

アプリケーション層

アプリケーションは具体的にはGoogle Chromeなどのブラウザが使うHTTPやHTTPSというプロトコル、メール送受信で使うSMTPやPOP3、IMAPというプロトコルがまとめています。下の層の何を使うかも併せて下の表にまとめます。

 
アプリケーション名

主に使うアプリケーションプロトコル

使う下層のプロトコル
ブラウザ(Chrome等) HTTP, HTTPS, TCP
メール(Outlook等) SMTP, POP3, IMAP TCP
IP電話 SIP(制御用), RTP(通話用) TCP(制御用), UDP(通話用)
名前解決 DNS TCP, UDP

LINEも説明したかったのですが、高機能なためわかりにくくなります。ここでは比較的わかりやすいWebブラウザ、メールソフト、IP電話について説明しました。

DNSについてはDNSとは何か?をご覧ください。

ネットワークインターフェース層

ネットワークインターフェースで、一番身近になったのは無線です。スマートフォンが出始めてから急速に普及しました。無線と言っても、3G、4G、無線LANを総称しています。

次に有線LANをご存じではないでしょうか。一般的なものは下の図のようなUTPケーブルです。よく見ると8本の導線が一列に並んでいます。最長でも100mまでしかデータを送れません。

UTPケーブル

ひと昔前であれば電話線もADSLとしてインターネットに使われていました。

他にはあまり見かけないと思いますが光ケーブルも使います。

まとめ

TCP/IPは聞いたことがあってもあまり知らないことが多いのではないでしょうか。インターネットを使う分にはそれほど知っているべき知識でもないですし、インフラ技術者が主に知っておくべき知識としてまとめました。

これからIT技術を理解したい人にとっても入り口になれば幸いです。

ポイント
  1. TCP/IPとは、インターネットの中で中心となる通信手順である。
  2. IPは、広いインターネット上で同じ手順を使ってデータを受け渡しできる
  3. TCPは、IPが実現しないマルチタスクを実現し、大量のデータを間違いなく届ける通信手順である
  4. 通信手順のことをプロトコルを言う
LINEで送る
LinkedIn にシェア
Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です