動機
基本情報技術者試験の受験勉強も兼ねてTCP/IPについて学習したので、整理するために書きました。
TCP/IPとは
インターネットなどで世界標準的に使われる通信プロトコルのことです。
通信プロトコルとは
データをやり取りするための規則です。
IT分野においては「通信」が省略され、単にプロトコルと呼ばれることもあります。
何のためにあるのか
データをやり取りするための規則を統一するためです。規則が定まっていないと、同一の規則でやり取りしている端末以外と通信が行えません。
TCP/IPモデルとは
TCP/IPのプロトコル群の役割を階層構造に分けたものです。インターネットにアクセスするためには、すべての層が欠けることなく役割を果たす必要があります。
階層名 | プロトコル例 |
---|---|
アプリケーション層 | HTTP |
トランスポート層 | TCP、UDP |
インターネット層 | IP |
ネットワークインターフェイス層 | Ethernet、無線LAN |
アプリケーション層とは
アプリケーションで扱うデータの形式や処理の手順を定めるプロトコルが属するレイヤー(層)です。
例:HTTP
HTTPはWEBクライアントとWEBサーバが通信するためのプロトコルです。
クライアントとは顧客、依頼人という意味です。
サーバとはserve(仕える、奉仕する)行為をする者、つまり仕える者、奉仕する者という意味です。
我々がウェブサイトを見たいと思ったとき、ブラウザを開いて見たいサイトのリンクを開きます。このとき、ブラウザはWEBクライアントとしてWEBサーバに対してリクエストを送り、WEBサーバはレスポンスを返します。
トランスポート層とは
データのやりとりを制御するプロトコルが属するレイヤーです。通信品質を管理するほか、ポート番号によりデータを振り分ける役割を持ちます。
TCP
TCPは信頼性の高い通信を行うためのプロトコルです。TCPは機器間の通信開始、終了を管理しつつ、欠損したデータの再送要求を行うなどデータの確実性の高さを重視しています。アプリケーション層で例に挙げたHTTPはTCPを使用しています。
UDP
UDPは高速な通信を行うためのプロトコルです。TCPのように接続やデータをチェックし続けることをしない代わりに、高速でデータを伝送することができます。生放送(ライブストリーミング)のようにリアルタイム性が重視される場合などに選ばれます。
ポート番号
TCPやUDPにはヘッダと呼ばれる情報が付与されており、ここにソースポートという情報が含まれます。これは送信元ポート番号を示すものです。クライアント側のソースポートがサーバ側の宛先ポートとなることで、要求したデータが自分宛のものであることを確認できます。
良く知られている番号として、HTTPは80、HTTPSは443、SMTPは25などがあります。
インターネット層
異なるネットワーク間のデータ転送を行うためのプロトコルである「IP」が属するレイヤーです。
IP、IPアドレス
IP(インターネット プロトコル)は特定の宛先までデータを転送するためのプロトコルです。IPアドレスはネットワーク上の機器に一意に割り当てられた識別番号です。これは現実世界でいうところの住所のようなもので、荷物を正しい宛先に送るために住所が必要であるように、IPアドレスはインターネットにおいて必要不可欠なものです。
ネットワークインターフェイス層
同一ネットワーク内でデータ転送を行うためのプロトコルが属するレイヤーです0と1だけで構成されたデジタルデータを電気信号や電波に変換して転送し、受け取った側が複合することで元の形式に戻ります。このデータは同一のローカルなネットワーク(LAN)内でやり取りすることができます。
Ethernet(イーサネット)
世間一般的に知られる有線LANはイーサネットの一種です。データを電気信号などに変換して送ります。
無線LAN
俗にwifiと呼ばれるものです。データを電波に変換して送ります。
OSI参照モデルとの関係
OSI参照モデルとの比較に使われることがありますが、似て非なるものです。現在の世界標準であるTCP/IPはOSI参照モデルに則ってつくられたわけではないようで、それぞれの階層を完璧に対比させて関連付けるには無理があります。OSI参照モデルはインターネットの基本的な原則や概念を学ぶ用であり、TCP/IP階層モデルはより現実的なインターネットの実情に近いものです。