IPの役割
インターネットを介した通信では、いくつかのプロバイダのルータを経由して、受信側に届けられます。しかしプロバイダは独自の組織が運営しており、格プロバイダが背負う責任は自身の接続サービスに加入している利用者に対してだけになります。(他のプロバイダを利用している利用者に対してまでは責任を負わない)
特にプロバイダによる伝送処理での転送処理は、通信をする際の最低限のものになります。つまり最適なルートを決定し、その方向にルーティング処理を行なっています= 転送する中身は配慮しません!
そのためインターネットを介しパケットを送信元から宛先まで届けることは可能だが、情報が正しく送られているかどうかは分からないです。例えば以下のことができないことです。
IPで対処できないこと
- 伝送中にノイズの影響でパケットが損傷しても送信元には通知されない(宛先も損傷したまま受け取る)
- パケットの伝送順番が入れ替わって宛先に送られても受信側は気づけない
- 同じデータが送られても複数のデータとして受信側は誤認してしまう
そこでインターネットを経由した通信で信頼性を上げるためにトランスポート層(TCPプロトコル)の機能で補強します。
- パケットを正しい状態で適切に届ける
正しく受信したか確認し、損傷したパケットがあれば再度送信する。 - 受け取ったパケットを正しい順序に並べ、元のデータを再構築する
順番通りに届かなくても正しい順序に並べる。同じパケットが送られてきても1つだけ採用し、それ以外を放棄する。 - 相手と確実に通信できるように確認する・通信の終了を確定する
通信可能であることを確認したのちにパケットを送信する。終了時も相手に伝えてから終了する。
今回は、サーバーとの通信をする際の相手と自身を一般的な表し方としてクライアント・サーバーと定義して図解します。 - サーバー:クライアントにサービスを提供するソフトウェアやコンピュータ
- クライアント:サーバーからサービスを受けるソフトウェアやコンピュータ
データの呼び方
この章では、通信の仕組みに関する話ではなくTCP/IPのそれぞれの階層でのデータの呼び方をまとめていきたいと思います。データの呼び方をそれぞれの階層ごとに分けていくことで、どの層のデータの話をしているのかが分かりやすくなります。
TCP/IP階層 | 代表的なプロトコル | TCP | UDP |
---|---|---|---|
アプリケーション層(4層) | HTTPS,SMTP,POP3 | メッセージ | メッセージ |
トランスポート層(3層) | TCP,UDP | セグメント | データグラム |
インターネット層(2層) | IP | パケット | データグラム |
ネットワークインターフェイス層(1層) | Ethernet,PPP | フレーム | フレーム |
実際にデータを並べてみた図を引用させていただきました。[TCP/IPとは?通信プロトコルの階層モデルを図解で解説]より。
そしてそれぞれの層でのカプセル化の仕方は以下のようになります。送信側では各層で処理されるたびにプロトコルのヘッダが付加されて送信されて、受信側では、各階層でそのヘッダを取り除いています。
参考文献
TCP/IPとは?通信プロトコルの階層モデルを図解で解説
TCP/IP
仕組みが一目瞭然、インターネットを支えるTCPとUDPを完全図解
【TCP】シーケンス番号とACK番号について解説