基礎からわかる!パソコン入門・再入門 / Word・Excel・PowerPoint・Outlook

TCP/IPとは|インターネットの標準プロトコル

  • 著者:YAMANJO
  • 公開日:2008年7月27日
  • 最終更新日:2025年4月15日

TCP/IPとは何か、TCP/IPモデルとは何か、インターネットの標準プロトコルについて理解していきましょう。

インターネットの標準プロトコル「TCP/IP」とは

OSI参照モデルは、7つの階層(レイヤー)によって役割が分担されていることを学習しました。わかりにくいのは、第2層と第3層で「同じネットワーク」と「異なるネットワーク」の通信の違いではないでしょうか。

現在、通信機器は非常に高性能になっており、同じネットワーク内にあるノードのように見えても、VLAN(ブイラン)と呼ばれる技術で、スイッチングHUBのポートや特定のノードのセグメントを分離することができたりします。

こうしたネットワーク環境が一般的になってきているために、逆に身近なところに置き換えてL2通信とL3通信を理解するのが難しくなってきています。

ただ、初歩の理解としては、LANが同じネットワークで、インターネットが異なるネットワークという理解でかまいません。インターネットにアクセスするということは、異なるネットワークへアクセスするということをしっかり覚えておいてください。

では、異なるネットワークであるインターネットの通信は、OSI参照モデルのどのレイヤーになるのかというと、第3層のネットワーク層になります。

第3層の代表的なプロトコルが、

IP(アイピー)

になります。

IPは「Internet Protocol」の略で、文字どおり、インターネットそのものとも言えるプロトコルです。

インターネットにおける基本的な通信ルールを定めたプロトコルで、これまでの学習のとおり、データをパケットに分割して、IPアドレスによるルーティングによって宛先に送り届ける役割を担います。

したがって、

IPネットワーク=インターネット

と言い換えることもできるほど重要なプロトコルです。

さらに、現在ではほとんどのLANもIPネットワークであり、インターネットよりも広い範囲をカバーしています。(インターネットとLANの違いについては、LAN・WANとインターネットの違い を参照してください)

ただし、ベストエフォートであるインターネット環境では、IPだけでは通信の品質が確保できません。そこで、第4層のトランスポート層のプロトコルを併用して品質を確保しています。

第4層の代表的なプロトコルが、

TCP(ティーシーピー)

になります。

TCPは「Transmission Control Protocol」の略で、通信の品質を確保するプロトコルです。前項で学習のとおり、エラーチェック機能や再送要求、確認応答などの機能を有しています。

インターネットでは、この2つのプロトコルが標準的な組み合わせとなっており、

TCP/IP(ティーシーピーアイピー)

と呼ばれています。

そのため、インターネットに接続するためには、どんな機器でもこのTCP/IPをインストールしておく必要があります。(実際には標準でインストールされています)

ただし、TCPとIPがインターネットの中心的なプロトコルにはなりますが、この2つのプロトコルだけで通信が成立するものではなく、TCPとIPを中心とする複数のプロトコル群の総称となっています。

例えば、HTTPやFTP、ARP、DHCP、SMTPといったプロトコルが含まれますが、一般的に「TCP/IP」と言うと、これら一連のプロトコル群全体を指すことが多くなっています。

TCPとUDP

このように、TCP/IPはTCPとIPを含む複数のプロトコルの総称であり、TCPとIPの2つのプロトコルだけがインターネットの標準プロトコルではありません。

また、すべての通信にTCPとIPが利用されているとも言えません。インターネットはIPネットワークであるため、IPは必ず利用されるプロトコルになりますが、TCPが必ず利用されているわけではありません。

IPは第3層のネットワーク層のプロトコルで、概要についてはこれまでの学習のとおりです。送信するファイルをパケットに分割してIPアドレスによってルーティングを行い、異なるネットワークへ送り届ける役割を担っています。(特定されたネットワーク内ではMACアドレスによる通信が行われます)

第3層にはIP以外のプロトコルもありますが、IPネットワークではIPが必ず利用されます。IPアドレスについては、IPアドレスとは(1) で詳しく学習しますので、現時点では概要をおさえておけば十分です。

対して第4層のトランスポート層には、TCPの他に「UDP(ユーディーピー)」というプロトコルがあります。第4層では、このTCPかUDPのどちらかが選択されることになります。

TCPの概要は、前項で学習した第4層の説明とほぼ同じですが、補足すると、前項の説明はTCPの特徴が大きく反映されています。つまり、第4層の説明がTCP寄りになっているということです。エラーチェックや再送機能などが品質管理として理解しやすいからです。

どういうことかと言うと、第4層の役割は品質管理であることに違いはありませんが、第4層としての役割は通信の制御であり、その中に品質管理も含まれるということです。通信の制御とは通信全体を管理することで、下位層で決定された通信方式を第4層のプロトコルによって制御します。

例えば、TCPは通信の品質を重視し、エラーチェックや再送などの品質管理によってパケット通信を制御します。一方、UDPは品質を重視せず、通信速度を重視するプロトコルになります。

UDPは「User Datagram Protocol」の略で、詳しくは後述しますが、エラーチェックや再送を行わず、最小限の制御で高速にデータを伝送するプロトコルです。UDPは、ストリーミング配信や音声通話などによく用いられています。(ストリーミング配信や音声通話については、インターネットのWWW以外の要素 を参照してください)

つまり、TCPの品質管理は第4層の役割の一部になります。言い換えると、第4層は用途(アプリケーションソフト)によってTCPかUDPが選択され、そのプロトコルによって通信を制御するレイヤーになります。

そのため、必ずしもTCPが利用されるわけではなく、実際にはUDPも広く使われており、TCP/IPプロトコル群にUDPも含まれています。TCPとIPが強調されがちですが、実際にはUDPも含めた様々なプロトコルがTCP/IPプロトコル群を構成しています。

コネクションとは

それでは、TCPとUDPの仕組みを詳しく理解していきましょう。

TCPは、先述のとおり信頼性や安全性を重視しており、

データが届かない場合は再送する

ことで、通信の信頼性を確保します。

届かないパケットはあきらめてもう一度送るということですが、これは非常に理にかなっています。インターネットのネットワーク負荷を高めることはなく、ただデータを再送する仕組みによって、ある意味で完全なデータ伝送が保障されます。(届かないパケットは、パケットとルーティング で学習のとおり、TTLによって一定回数のルーティングによって破棄されます)

ウェブページを閲覧しているときに、ページを開くのが遅いという経験は誰でもありますが、それはTCPによるパケットの再送が原因のひとつです。

TCPでは、パケット(第4層ではセグメントという単位)を送信すると、送信先の相手側から到着確認を受ける仕組みになっています。その到着確認を受けてから次のパケットを送信します。

そのため、到着確認が一定時間返ってこない場合はパケットを再送します。こうした仕組みは速度の低下につながりますが、確実に相手に届けることができます。

さらに、

相手との論理的な接続を確立してから通信を開始する

仕組みになっています。

論理的というのは物理的な接続ではありません。物理的にはインターネットを介して相手と有線または無線でつながっています。しかし、相手側がこちらの送信要求を認識していないと、相手が受け取ってくれない可能性があるということです。

LINEでメッセージを送っても既読にならないイメージです。そこで、これから送信することを相手に伝え、相手の応答を待ってから送る仕組みになっています。

例えば、AとBが通信を行う場合、A「これから通信します」→B「その要求を確認したので応答します」→A「応答を確認したので準備完了を通知します」といったやり取りが行われます。

AとBがコネクションを確立するイメージ図

つまり、相手の準備状況を確認し、接続の準備が整ったことを確認するプロセスです。この段階では、実際のデータのやり取りはまだ行われません。基本的には、接続が確立するための手順にすぎません。

こうした論理的な接続を「コネクション」と言います。コネクションも文脈により少し異なる意味を持つ場合がありますが、一般的に論理的な接続が確立されている状態のことをコネクションと言います。

コネクションの確立には「3ウェイハンドシェイク」という方法が用いられます。文字どおり、3つのデータ(パケット)をやり取りします。

同じ例で言えば、1.「Aの接続要求」をAからBへ送る、2.「Aへの接続応答」と「Bの接続要求」をBからAへ送る、3.「Bへの接続応答」をAからBへ送るという流れになります。

TCPでは、このようにコネクションが確立してから実際のデータ伝送を開始することで、信頼性を確保しています。

ただし、実際のデータ伝送にはメールソフトなどのアプリケーションを利用するため、ノード同士であるAとBが直接コネクションを確立することはありません。

インターネットのWWW以外の要素 で学習のとおり、P2P接続を除き、インターネットでは基本的にサーバコンピュータを介して通信が行われます。そのため、実際にはAとBの間に複数のサーバコンピュータが介在することになり、サーバとの間でコネクションが確立されていくことになります。

例えば、メールであれば「A→AのSMTPサーバ→BのSMTPサーバ→BのPOP(IMAP)サーバ→B」となります。(電子メールの仕組みについては、電子メールの仕組み で詳しく学習します)

当然ながら通信速度は遅くなりますが、通信の高速大容量化やパソコンの処理性能の向上によって、TCPでも高速化が実現できるようになっています。

一方、UDPは速度を重視するため、コネクションを確立せず、いきなりデータ送信を開始します。また、エラーチェックや再送も行いません。

そのため、信頼性はTCPに劣りますが、伝送速度は速くなります。先述のとおり、UDPは動画のストリーミング再生や一斉に送信するブロードキャスト通信などに利用されています。また、オンラインゲームなどでは少しの遅延があるとプレイに支障が出るため、UDPがよく使われています。

TCPではデータがなかなか整わず、ストリーミング再生が追いつかない場合があります。また、コネクションを確立してから送信するという性質から、1対多の通信には適していません。

例えば、銀行のオンライン取引のようにデータの正確性が求められる場合はTCPが適しています。このように、用途によってTCPとUDPが使い分けられています。

ポート番号とは

では、TCPとUDPがどちらも有している機能はないのかというと、第4層で共通する仕様があります。

それが、

通信先のアプリケーションソフトを指定する

という仕組みです。

これまでの学習のとおり、インターネットに送信されたパケットは、IPアドレスによって相手のネットワークが特定され、特定されたネットワーク内ではMACアドレスによって個別のノードに届けられます。

そして、受け取ったデータは第1層から上位層へ渡されていきます。ここで問題となるのは、上位層のどのアプリケーションソフトに渡すのかということです。

取り扱うアプリケーションソフトが、メールソフトなのかブラウザなのかわからなければ処理することができません。小包の宛名が会社名だけで「部署」や「担当者」の名前がないのと同じです。1階の受付で止まってしまいます。

それと同じで、パソコンの住所も「部署名」や「担当者」であるアプリケーションソフトまで指定してやる必要があるのです。IPアドレスやMACアドレスでは、そのパソコンのアプリケーションソフトまでは指定できません。

そこで、第4層のTCPまたはUDPによってさらに細かい「部署」を指定します。

この情報を、

ポート番号

と言います。

ポート番号を指定することによって、データを受け取った側がどのアプリケーションソフトなのかを特定することができます。

ポート番号は、16桁の2進数を10進数に置き換えて「25」「110」などと表されます。16桁の2進数ということは、2の16乗で「65,535」個のポートが存在します。アプリケーションソフトには十分な数です。(進数の変換について詳しくは、2進数と10進数と16進数 を参照してください)

どのようにポート番号を指定するのかというと、ユーザー側(通信を開始する側)のポート番号は、基本的にアプリケーションソフトを起動するたびにOSが自動的に割り当てます。(メールソフトやブラウザなどのアプリケーションごとにポートが割り当てられます)

一方、相手側については、先述のとおり仲介するサーバコンピュータになるため、固定の番号で受け付けます。つまり、その他大勢のユーザーが届けやすいように、公開されたポート番号で一手に引き受けています。

例えば、メール送信のSMTPが「25」や「587」、メール受信のPOPが「110」や「995」、WWWのHTTPが「80」などで、このようなポート番号を「ウェルノウンポート」と言います。

必ずウェルノウンポートで通信させる必要はありませんが、その番号を使用することが慣例になっています。ウェルノウンポートは1023番以下に分布しており、ウェルノウンポートを持たないプロトコルを使用するアプリケーションソフトは、1024番以上を使用するということも慣例になっています。

少々ややこしいですが、サーバ側とユーザー側で分けてイメージするとよくわかります。これはサーバ側とユーザー側が同じポート番号で通信するという意味ではありません。

OSがユーザー側のアプリケーションソフトに割り当てるポート番号は、1024番以降(実際には49152番以降)で、この番号は通信のたびに変わります。サーバにアクセスした時にポート番号が伝えられます。

しかし、サーバ側のポート番号は変わりません。ポート番号が変わるとメールソフトなどの設定変更が必要になり、サービスに大きな影響があるからです。

例えば、メールの通信を受け付けるポートや、Webの通信を受け付けるポートなどを公開して開けておかなければなりません。ここが変わってしまうと、ユーザー側から通信を行うことができなくなってしまいます。

そのため、セキュリティ上の脅威となることもあり、ポート番号を変更するサーバ管理者もありますが、サーバ側のポートは常に開いたまま誰でも届けることができます。ユーザー側のポートが常に変更されるため、セキュリティが保たれています。(ポート番号については、IPアドレスとは(3) でも詳しく学習します)

セッションとは

下表は、前項と同じOSI参照モデルです。本項の学習を踏まえて、少し補足をします。コネクションの確立は、TCP(第4層)の役割でしたが、第5層のセッション層でもコネクションが関係しています。

OSI参照モデル
階層 名称 特徴
第7層 アプリケーション層 アプリケーションソフト間の通信(ユーザーが利用)
第6層 プレゼンテーション層 データ形式に関する規定(文字コードや画像形式など)
第5層 セッション層 通信の開始・維持・終了の管理(コネクションの管理など)
第4層 トランスポート層 通信の品質管理などの通信制御(エラー時の再送や到着確認など)
第3層 ネットワーク層 異なるネットワーク間での通信(IPアドレスによる通信)
第2層 データリンク層 同じネットワーク内での通信(MACアドレスによる通信)
第1層 物理層 ケーブルや電波などの物理的な通信媒体を規定

セッション層とは、ユーザーに近いレベルで、通信の開始から終了までを管理する層になります。コネクションの技術的な開始、継続、終了の処理はトランスポート層(TCP)の役割になりますが、そのコネクションの開始、継続、終了のルールを決めるのがセッション層の役割になります。

簡単に言えば、その通信のためのコネクションをいつまで継続しておくのか決めるということです。一連の通信のまとまりや、意味のある通信の単位などと説明されることもありますが、1つの通信のためにコネクションを継続している状態を「セッション」と言います。セッション層は、文字どおりこのセッションを管理する層になります。

ショッピングサイトを例にすると、サイトにログインしてカートに商品を入れて決済してログアウトするまでが一連の通信になります。セッション層で、ログインを通信の「開始」でログアウトを通信の「終了」と定めます。すると、途中でページを移動してもセッションが継続され、ログイン状態が確保されたままになります。

つまり、「ログインしたら通信開始」「5分間操作がなければセッションを切る」「ログアウトしたら通信終了」といった区切りを定めるのがセッション層の役割で、その要求にしたがって、コネクションを処理するのがトランスポート層(TCP)の役割になります。

セッションとコネクションは同じ意味で使われることもありますが、技術的な接続状態をコネクションと言い、その通信においてコネクションが有効な期間をセッションと言います。

ただし、前項で学習のとおりOSI参照モデルはそれぞれの階層の役割が明確に分離されています。そのため、セッション層の指示でTCPがコネクションを開始、終了するような主従関係ではなく、あくまで下位層が整備した環境を上位層が利用する建付けになっています。そのため、セッション層が直接TCPを制御するのではなく、要求を出してお願いするイメージになります。

OSI参照モデルとTCP/IPモデル

もう一度、同じOSI参照モデルです。今度は、OSI参照モデルの実際の活用についてです。

OSI参照モデル
階層 名称 特徴
第7層 アプリケーション層 アプリケーションソフト間の通信(ユーザーが利用)
第6層 プレゼンテーション層 データ形式に関する規定(文字コードや画像形式など)
第5層 セッション層 通信の開始・維持・終了の管理(コネクションの管理など)
第4層 トランスポート層 通信の品質管理などの通信制御(エラー時の再送や到着確認など)
第3層 ネットワーク層 異なるネットワーク間での通信(IPアドレスによる通信)
第2層 データリンク層 同じネットワーク内での通信(MACアドレスによる通信)
第1層 物理層 ケーブルや電波などの物理的な通信媒体を規定

OSI参照モデルは7つの階層に細かく分類しているため、前項でも触れましたが、一部のプロトコルや規格に関しては、どの層に属するかについて異なる見解があったりします。

そのため、実際のところは厳守されていないのが現状です。こう言ってしまっては身も蓋もないようですが、製品開発の現場では、7階層も明確に区分けする必要はなく、あくまで参考モデルとしてあるということなのです。

では、なぜじっくり学習してきたのかというと、ネットワークと通信の理解に非常に役立つモデルだからです。事実、コンピュータ関係の資格試験では必ず勉強するところです。そのために有名なのですが、現場レベルでは形骸化してしまっているということです。

その原因は、TCP/IPが一気にインターネットの主流となり、事実上の標準プロトコルになってしまったからです。自然とTCP/IPを中心としたモデルが構築されるようになり、実際の運用に即した通信モデルが構築されました。

それが、

TCP/IPモデル(TCP/IPプロトコル群)

と呼ばれるモデルです。

先述のとおり、現在では「TCP/IP」自体がこのモデル(プロトコル群)を指すことが多くなっています。TCP/IPモデルでは、階層が7つから4つに簡略化され、上位層がアプリケーション層にまとめられています。

OSI参照モデルとTCP/IPモデル(TCP/IPプロトコル群)
OSI参照モデル TCP/IPモデル TCP/IPプロトコル群
アプリケーション層 アプリケーション層 HTTP、FTP、Telnet、SMTP、POP など
プレゼンテーション層
セッション層
トランスポート層 トランスポート層 TCP、UDP
ネットワーク層 インターネット層 IP(IPv4、IPv6)、ARP など
データリンク層 ネットワーク
インターフェース層
イーサネット、トークンリング、フレームリレー、PPP など
物理層

OSI参照モデルが通信の仕組みや機器も含めて階層化しているのに対し、TCP/IPモデルは、プロトコルに特化してモデル化されているため、実用的なものになっています。

OSI参照モデルはプロトコルに依存せず、各階層が何を行うのか、どのように機能するのかに焦点を当てています。対して、TCP/IPモデルはプロトコルに特化し、インターネットの設計と運用において実際的な使用が重視されています。

TCP/IPプロトコル群は、IPを中心とする標準的なプロトコルの総称の意味で用いられており、単にTCP/IPと呼ばれたり「インターネットプロトコルスイート」などと呼ばれる場合があります。

更新履歴

2008年7月27日
ページを公開。
2009年5月6日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年1月26日
ページをSSL化によりHTTPSに対応。
2025年4月15日
内容修正。

著者プロフィール

YAMANJO(やまんじょ)

経歴
岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
関連リンク
詳細なプロフィールはこちら
作成したボカロ曲などはYoutubeへ
X(Twitter)
著者YAMANJOのイメージ画像