Table of Contents
TCP/IPとは?
Def: TCP/IP
コンピューター同士(ノード間)のデータのやり取りのルールのことを通信プロトコルといい, その内, インターネットをはじめとするコンピューターネットワークを実現している通信プロトコル群のことを TCP/IP(Transmission Control Protocol/Internet Protocol)という.
TCP/IPが通信プロトコルではなく「通信プロトコル群」と上で説明した訳は, 詳細は後ほど説明しますが, TCP/IPでは, データの送受信に関わる一連の作業を「TCP/IP階層モデルに基づき階層化」して, それぞれの階層で通信方法を定義 & 運用しているからです.
なお, 通信プロトコルの意味でのTCPとIPもそれぞれ存在します.
- TCP: TCP/IPのネットワークにおいて送達管理や, 伝送管理などの機能を持つコネクション型プロトコルで, トランスポート層に属す
- IP: IPネットワークを分割管理するプロトコルでネットワーク層に属す. 最も基本的な通信単位であるパケットを相手に送信する役割を担っている
通信プロトコルの基本
Def: 通信プロトコル
データを送受信するためには, 送信側と受信側のコンピューターが予め決められた共通のルールに沿って連絡を取り合う必要があり, このルールのことをプロトコルという.
TCP/IP階層モデル
データの送受信を行うにあたって, TCP/IPではどんなコンピューター同士でもデータのやり取りができるように以下のような処理を行います.
この一連の流れを階層で表現したものが「TCP/IP階層モデル」となります.
Def: TCP/IP階層モデル
TCP/IP階層モデル | Protocol |
OSI基本参照モデル |
---|---|---|
アプリケーション層 | HTTP, HTTPS, SMTP, POP3, FTP, TELNET, … | アプリケーション層 プレゼンテーション層 セッション層 |
トランスポート層 | TCP, UDP | トランスポート層 |
ネットワーク層 | IP | ネットワーク層 |
データリンク層 | Ethernet, FDDI, ATM, PPP, PPPoE, … | データリンク層 |
物理層 | 特定のプロトコルはない | 物理層 |
TCP/IP階層モデルは5つの階層に分かれており, 上に行くほどユーザーに, 下に行くほど機器に近い作業を担当しています. 階層化によって, 「階層ごとに作業を独立させる」ことを実現しており, 他の階層に依存することなく「新しい機能を追加すること」や, 「各階層の作業を単純化させる」といったことが可能になるメリットがあります.
例えば, インターネットに接続する方式として新たにhogehoge
という接続方式が開発された場合, データリンク層にその接続方式に対応するプロトコルさえ作れば, TCP/IPを用いてデータのやり取りがネットワークに接続されたノード間で実現することが出来ます.
各階層の役割
- 第5層: アプリケーション層
- アプリケーションに合わせた通信を行えるようにする層. アプリケーションに応じて利用するプロトコルが変わる
- 第4層: トランスポート層
- エラー検出/再送などの伝送制御を担い通信の品質を保証する役割をもつ層
- 第3層: ネットワーク層
- エンドシステム間のデータ伝送を実現するために, ルーティング(通信経路選択)や中継などを行う役割をもつ層
- ルーターが関係
- 第2層: データリンク層
- 隣接ノード間の伝送制御手順(誤り検出,再送制御など)を提供する役割をもつ層
- ネットワークに直接接続されたノード間を伝送できるようにする役割をもつ
- 第1層: 物理層
- データを信号に, 信号をデータに変換する層
- 変換方法は通信媒体に依存するため, 特定のプロトコルは決められていない
- ケーブルやNIC(Network Interface Card)が関係
TCP/IP階層モデルにおけるデータ送受信
データの送信: encapsulation process
データを送信する場合, Application層から物理層の方向へデータが渡されていきます. この際, そのまま渡すのでなく上の図のようにheaderやtrailerが付与されます. 上の例では
- TCP heaeder: sourceやdestination port番号を付与
- IP heaeder: sourceやdestinationのIP addressを付与
- ETHERNET header: sourceやdestinationのMAC addressを付与
- ETHERNET trailer: error checking infoを付与
これらの情報を付与した後, 物理層にデータが渡されてデータが送信されます. この送信の仕組みを「カプセル化」(=encapsulation process)と呼びます.
Appendix: コンピューターネットワークの種類
コンピューターネットワークとは, コンピューター同士をケーブルや赤外線, 無線など何らかの手段で繋いで データのやり取りをできる状態にしたものをいいます. コンピューターネットワークのおかげで, プリンタへのファイルの出力や ファイルの共有/転送, メールのやり取り, リモートアクセスなどが実現されています.
規模の応じてコンピューターネットワークは以下のように分類されます.
ネットワークの種類
名称 | 説明 |
---|---|
LAN | Local Area Network, 比較的狭い空間にある機器同士を繋いだネットワーク |
WAN | Wide Area Network, 接続には光ファイバーケーブルや電話回線などが使われる |
インターネット | 複数のLANやWANを繋いだネットワーク |
イントラネット | インターネットを技術を用いた地域原典版のLAN, 特定の会社でのみ情報を共有する場合に用いられる |
References
(注意:GitHub Accountが必要となります)