TCPIPプロトコルの定義を解説していきます。通信の詳細、各階層の詳細、基礎的な概念など解説していきます。これを読めば完璧に理解できます。
TCPIPプロトコルの役割に悩んでいませんか?
TCPIPプロトコルを理解できれば、通信などの障害や遅延の問題に対処することが出来ます。
なぜなら役割や通信の流れを理解できるようになるからです。
僕は大学でレベルの高い通信技術を学習しています。
この記事では、TCPIPプロトコルの基本的な解釈、通信の流れ、プロトコルの役割を知ることが出来ます。
TCPIPプロトコルや通信の流れを理解できるので通信障害の問題にも取り組むことができます。
ポイント3つです
- TCPIPプロトコルの基礎とは
- TCPIPの通信の流れ
- プロトコルの役割詳細とは
具体的に解説していきます。
TCPIPプロトコルの基礎知識
TCPIPプロトコルとはどういった役割を持っているのか?
まず基本的な知識から解説していきます。
TCPとは
TCP(Transmission Control Protocol)
相手に情報を確実に送るためのやり取りをTCPと言います。
詳しくは後で解説します。
IPとは
IP(Internet Protocol)
家に荷物を届けるためには家の住所が必要になります。IPアドレスとはパソコンの住所です
IPがあることで相手のパソコンに情報を届けることができます。
プロトコルとは
データーをやり取りする際に手順が決まった通信方式をプロトコルと言います。別名通信プロトコル、通信規約とも言います。
通信に関してあらかじめルールを決めておく、というものでプロトコルが対応することで、メーカや機器の種類に関係なく通信を行うことができます。
プロトコルは2つの構成要素で成り立っています。
プロトコルの構成要素
フォーマット(format)形式
データの表記方法など、やり取りする情報の構成についての決まり事。
情報構造と言って基本的に記述に関する決まり事と思ってください。
プロシージャ(procedure)形式
データのやり取りを行う際の手順についての決まり事。通信手順とも言います
プロトコルの階層構造
プロトコルは機能ごとに各階層構造 (レイヤ構造とも言う) を持っており、その階層のプロトコルに従って動いています。
プロトコルは下の階層のルールさえ知っていればいいので、すべての階層の役割を知る必要はありません。
1つの括りとしての階層構造にせず、各階層に分けています。
もし変更があった場合、1つ括りにすると丸ごと変更することになります。分けておけば変更があっても、その階層の変更で済みます。
TCPIPの階層構造
TCPIPも同じ階層構造を持っています。プロトコルにしろTCPIPもなぜこのような階層を持っているのか解説します。
ネットワークアーキテクチャ
ネットワーク構造を設計するための基本概念のことであり、一連のプロトコルを組み合わせたものです。
まとめた階層構造をネットワークアーキテクチャといいます。通信アーキテクチャ、プロトコルスタックとも言われています。
ネットワークアーキテクチャは、OSI参照モデルとTCPIPモデルがあります。
OSI参照モデル
Open Systems Interconnection reference modelと言って、OSI基本参照モデル、OSI階層モデルとも言います。
通信機能を役割に応じた7階層に分け、各層ごとにプロトコルを定めているものです。ISO(International Organization for Standardization)国際標準化機構によって標準化されたプロトコル体系のことであり、理想的な仮想モデルと考えてください。
この階層は実践的でなく理想的な形です。
なぜなら細分化されて複雑になりすぎているからです。細かすぎて実際には使われていません。
インターネット誕生からこのような取り決めは決められています。TCPIPに関する歴史や誕生など詳しい記事はこちらです。
[kanren postid=”5486″]
TCPIPモデル
TCPIPの階層は4つに分けられ、OSIモデルの7階層をうまく4つに分けています。
階層の役割としてはこのような感じとなります。
TCPIPとプロトコルの各階層では機能に応じたプロトコル群が定義されています
TCPIP通信の仕組み
ではTCPIPの仕組みを具体的に解説していきます。
TCPIPデーター送受信のタイプ
TCPIPのデーター転送をする時、コネクションタイプとコネクションレスタイプがあります。
コネクションタイプ
データ送信の前に通信経路(コネクション)を確立します。
データを送信する度に送信先からの受取確認を待ち、届いたことを確認してから次のデータを送信します。
確認がないとデーターの送受信は行わず、お互いの確認をとることで確実にデーターを送れるようになり、信頼性の高い通信が可能となります。
ただしデメリットもあり、実際のデータ送信以外の処理もしているため、時間がかかるといった問題もあります。
赤の部分が一番データーが多く、確立に時間を要する通信になります。
コネクションレスタイプ
データ送信の前に通信経路(コネクション)を確立せず、データの送信を一方的にデーターを送り続けるので、確認を行いません。
送信先からの確認を待つ必要がないので、送信の時間が短くなるといったメリットもあります。
コネクションの確立を行わないため、相手に送られているかどうかの保証がなく信頼性はあまり高くない。
どちらのタイプもメリット、デメリットがあるので、目的や用途に応じた使い分けが必要です。
通信の概要は理解できたと思いますが、実際どのように通信が行われているのか具体的に解説します。
通信の流れ
TCPIPの通信は各階層を順番に行われます。
送信側は上から受信側は下から各層を1つ1つ処理します。送信側は上から下の層へたどり、受信側は下から上の層へたどります。
これがTCPIPの基本的な通信です。
イーサネットを使用してメールを送信した時を例に解説します。
アプリケーション層
SMTPのプロトコルを使用し、アプリケーションのデーターをヘッダと共に下のトランスポート層に送ります。
ヘッダが各層のプロトコルとなっており、送受信はプロトコルに従って通信が行われます。
トランスポート層
TCPのプロトコルを使用し、アプリケーション層のデーターを受取り、トランスポートのヘッダを付け加え下のインターネット層に送ります。
この階層を別名セグメントといいます。
インターネット層
IPのプロトコルを使用し、アプリケーション層のデーターを受取り、インターネットのヘッダを付け加え下のネットワークインターフェース層に送ります。
この階層を別名パケットといいます。
ネットワークインターフェース層
イーサネットのプロトコルを使用し、アプリケーション層のデーターを受取り、ネットワークインターフェースのヘッダを付け加え、受信側に送られます。
この階層を別名フレームといいます。末にトレーラが付け加える時があります。これは通信終了のプロトコルとなります。
受信側の通信のやり取り
受信側は逆になり、各層がヘッダのプロトコルの指示に従って上にあがっていきます。
最終的にアプリケーション層のデーターを受け取ることが出来ます。
ここまでがTCPIPプロトコルの通信の流れとなります。
ではプロトコル群の具体的な役割を解説します。
プロトコルの各階層の役割
ネットワークインターフェース層
ケーブルや端子など接続機器の物理的役割を果たす通信プロトコルがネットワークインターフェース層です 。
イーサネット
LANで多く採用されるプロトコルで、パケット交換のネットワーク技術に関するプロトコルです。
家庭内などでWiFiや有線LANをつないで、1つの回線から複数の通信を行う時に、効率のいい技術を使うプロトコルです。
PPP
PPP(Point to Point Protocol)コンピュータや他機器が1対1で接続されている回線で、データのやり取りを行うためのプロトコルです。
以前は電話回線を使った通信に使われていましたが、現在ではイーサネットが多く普及しているので、PPPは使われていないと思います。
インターネット接続に使用するイーサネットと組み合わせた PPPoE (PPP over Ethernet) があり、今の光通信などにPPPoEが提供されています。
両方ともコレクションレスタイプです
インターネット層
最終的にTCPIPを使ってデータをやり取りする際、相手のコンピュータや機器の通信の決まり事を定めることです
相手のコンピュータや機器の指定、相手までの経路を選択したり、エラーが発生した時にどのような対応を取るのか、といった役割がインターネット層です。
IP
インターネット層で一番重要なのがIP(インターネットプロトコル)です。IPアドレスに関連するIPv4、IPv6があり、どちらもコネクションレス型です。
IPアドレスからデータをやり取りする相手を指定し、相手にたどり着くまでの経路選択(ルーティング)を行います。
IPv4、IPv6の詳しい記事はこちらになります 。
[kanren postid=”5674″]
ARPとRARP
IPアドレスとイーサネットが使うMACアドレスを対応させるプロトコルです
ICMP
IPでのデータのやり取りでエラーが発生した場合に対処するプロトコルです。
ARP、RARP、ICMPはIPアドレスを補助する役割を持っていて、この3つの補助をしているのがIPです
トランスポート層
データのやり取りを制御する決まり事を定めています。データを確実に相手に届ける役割がトランスポート層となります
TCP
コネクション型のプロトコルです
IPとともにTCPIPの中心を担う役割を持っています。アプリケーション層とIPとの橋渡をするのがTCPであり、コネクション型なので、相手からの応答を確認しながら、確実にデータを送ります。
UDP
UDP(User Datagram Protocol)コネクションレス型のプロトコルです
コネクションレス型なので、余計な時間がかからずTCPよりも通信が早くなります。
例えば転送速度を重視するサービス(動画配信等)で利用されます。
アプリケーション層
一番上の層になり我々の通信に近い層です。ユーザにネットワークサービスを提供する具体的な決まり事を定めます。
ウェブ閲覧やメール、ファイル転送、ユーザとTCPIPの橋渡しをする役割をします。
コネクション型の信頼性の高い通信となります。
主にHTTP、SMTP、POP、IMAP、FTP、Telnetなどがあります。
HTTP
HTTP(Hyper Text Transfer Protocol)ウェブサーバとウェブブラウザ間の通信で使われるプロトコルです。テキスト、音声、画像、動画などを扱えます。
詳しくはこちらの記事を参考にしてください。
[kanren postid=”5503″]
SMTP
SMTP(Simple Mail Transfer Protocol)電子メールを送信するためのプロトコルです。サーバ間やクライアントからサーバへメールを送信するために使用されます。
POP
POP(Post Office Protocol)電子メールを受信するためのプロトコルです。電子メールを保存しているサーバからクライアントにメールを受信するために使用されます。
IMAP
IMAP(Internet Message Access Protocol)電子メールを受信するためのプロトコルです。主にメールをサーバ上のメールボックスで管理します。
FTP
FTP(File Transfer Protocol)ファイルを転送するためのプロトコルです。ウェブページに、HTMLファイルを更新するときなどに使用します
このWordpressなどのファイル更新や変更などもFTP形式で行います。ファイルジーラなどが有名です。
Telnet
コンピュータを遠隔操作するためのプロトコルです。管理者がネットワークを通じて、設定やメンテナンスを行う時などに使用します。
まとめ
OSI参照モデルは7階層で理想モデルである
プロトコル階層は4つだがOSI参照モデルと同じ役割を果たしている
通信にはコネクション型とコネクションレス型の2つタイプがある
4階層には各自ちゃんとした役割があり、送信は上から受信は下から処理される