はじめに
TCP/IPの知識を整理したかったのでこちらの記事を書きました。内容としては初心者向けの内容になります。
TCP/IPとは?
インターネットにおいて広く標準的に利用されている通信プロトコル。
プロトコルとは?
ネットワークで通信するときに、コンピュータやネットワーク機器が守らなければならない仕組みのこと
IPとは?
Internet Protocolの略称。
インターネットのプロトコルということで通信を行う際の規約という意味。
IPによって構成されるネットワークでは、コンピュータやネットワーク機器などを識別するために、IPアドレスを割り当てて管理している。
IPはネットワークにおける経路機能を担当している
TCPとは?
Transmission Control Protocolの略称。
IPの上位層であるトランスポート層のプロトコルの一つ。
通信相手とのコネクションを確立してから、データを送受信する(コネクション型通信)。
パケットの順序や送信エラー時の再送などを制御して、送受信するデータの到達性を保証する。
信頼性は高いが利用速度は低速となる。
主な用途
メールの送受信、ファイル転送など
UDPとは?
User Datagram Protocolの略称。
TCPと同様にトランスポート層のプロトコルの一つ。
事前に送信相手と接続確認を取ったりせず、一方的にデータを送信する(コネクションレス型通信)。
データの到達性の保証を行わないため、利用速度は高速だが信頼性が低い。
主な用途
音声通話、動画ストリーミングなど
TCP/IPでデータはどのように送られているのか?
TCP/IPはパケット交換方式でデータを転送している。
パケットとはネットワークではヘッダ(送信先、送信元などの情報)とデータ(テキストデータや制御の命令、応答など)から構成される。
TCP/IPネットワークで配送されるパケットのことを、IPパケットまたはIPデータグラムと呼ぶ。
TCP/IPネットワークでは、IPデータグラム単位でデータの配送、エラー処理が行われる。
TCP/IPの階層モデル
TCP/IPにおける階層モデルは4階層から構成される。
これら4つの機能をそれぞれモジュールとし、それらを直列に並べたように構成することで、TCP/IPの通信が実現される。
アプリケーション層
ユーザーがコンピュータ上で動作させるアプリのこと。
電子メールのメールソフトやWebなどがそれにあたる。
アプリケーションプログラムを実行するための環境は、トランスポート以下のモジュールによって提供される。
トランスポート層
アプリ間で通信できるようにする役割。
通信を行う際のポート番号の管理とデータエラーのチェックなどを行う。
先程記載したTCP,UDPなどがここに該当する。
ポート番号を管理を行うことによって、送受信されるデータがどのアプリにより送信されたものか、また、どのアプリが受信するべきデータなのかを管理することができる。
データエラーのチェックは、ネットワーク中を転送されたデータが、ノイズや機器の故障などで破壊されていないかなどをチェックしてくれる。
インターネット層
通信目的のコンピュータまでバケットを届ける役割。
IPがここに該当する。
ブラックボックス化されたネットワークの内部では、IPで通信制御が行われ、最終目的地までデータが届けられる。
ただしIPは、データの到達性に関する信頼性を持っていないため、信頼性が必要になる場合には、トランスポートモジュールの技術であるTCP上でIPを利用することになる。
TCPが信頼性のないIPをコントロールしている。
ネットワークインターフェイス層
ネットワークを構成するハードウェアと、インターネットモジュールを結ぶ役割。