Blog
本記事の目的
通信プロトコルの目的や、プロトコルがどのように分類されるか、
また通信プロトコルを設計するための標準的なモデルであるOSI参照モデルについて学びます。
通信プロトコルとは
コンピュータ同士が通信を行う際、相互のコンピュータが共通のルールに従って情報を交換することで、通信が成立します。この共通のルールを「通信プロトコル」と呼びます。
通信プロトコルは、主に「データ形式」と「通信手順」の2つの要素から成り立っています。
データ形式
データ形式は、コンピュータが送る情報を「どんな形にするか」を決めるルールです。これによって、送られた情報が受け取ったコンピュータで正しく解釈され、利用されることが保証されます。
具体例
- テキストデータ
- 画像や動画
- JSONやXML
このように、データ形式は、情報を「どんな形で送るか」を決めるルールであり、送る側と受け取る側が同じ形式を理解することで、データのやり取りがスムーズに行われます。
通信手順
通信手順は、コンピュータ同士がデータをやり取りする「順番やルール」を決めたものです。これにより、データが正しく、そして安全に送られることが保証されます。
具体例
①順番通りに送る
... 送信者はまずデータを送信し、受信者がそのデータを受け取る準備ができていることを確認します。例えば、HTTPでは、まず「リクエスト」を送って、サーバーから「レスポンス」が返されます。
②エラーがあった場合の対処
... 通信中に問題が起きた場合、どうやって再送するかも通信手順で決まっています。例えば、もしデータが途中で失われた場合、もう一度送信し直す手順が決まっています。
③接続の開始と終了
... 通信を始める前に、相手と「つながる」必要があります。この「接続を確立する」という手順も通信手順の一部です。例えば、電話をかけるときに相手が出るまで待つのと似ています。
通信の手順を決めるのは非常に複雑で膨大な作業です。なぜなら、起こりうる事象の組み合わせが非常に多く、それぞれについて「この場合はこうする」とルールを作らなければならないからです。
しかし、通常、1つのプロトコルが扱う範囲は限られており、大部分の通信は複数のプロトコルを組み合わせて行われます。
ちなみに、インターネットの世界で使われる通信プロトコルの多くは、「IETF」と呼ばれる標準化団体が策定し、「RFC」と呼ばれる英語文書としてネット上に公開されます。
レイヤー構造
レイヤー構造は、複雑な通信の処理を階層(層)ごとに分けて管理する方法です。
これにより、通信の各処理が役割ごとに整理され、効率的で理解しやすくなります。
通信プロトコルは、通常このレイヤー構造に基づいて設計されます。
OSI参照モデル
OSI参照モデルは、通信プロトコルを7つのレイヤーに分けて、各レイヤーが特定の役割を担当する仕組みです。以下の7つのレイヤーがあります。
1. 物理層
ビット列(0と1のデータ)を電気信号や光信号、無線などの物理的な手段で実際に送受信する。
2. データリンク層
同一ネットワークセグメント(LANなど)上でデータを正しく送り届けるための手段を提供します。誤り検出・制御やフレームの送受信、MACアドレスによる宛先指定などを行います。
3. ネットワーク層
異なるネットワーク間でデータを転送するための経路制御(ルーティング)や、通信先を特定するための論理アドレス体系(IPアドレスなど)を提供します。
4. トランスポート層
エンドツーエンド(端末間)の信頼性の高いデータ転送や、データの分割・再構成、フロー制御などを行います。アプリケーション同士が通信する際のポート番号の管理も担います。
5. セッション層
通信の開始から終了までの“セッション”を管理します。データの送受信の開始、終了の制御や、通信が途中で中断した場合の再開手順(チェックポイントなど)を提供します。
6. プレゼンテーション層
通信するデータの形式や構造を統一し、異なる機器や環境間でのデータ互換性を保ちます。
文字コードやデータの暗号化・圧縮、データ形式の変換などを行います。
7. アプリケーション層
ユーザーが実際に利用するアプリケーションに最も近い部分で、アプリケーションソフトウェアと通信プロトコルのインタフェースを提供します。具体的な通信サービスを実現する層です。
終わり
OSI参照モデルは、通信を7つの層に分け、それぞれの層が特定の役割を担うことで、通信プロトコルの設計やネットワーク管理を効率化するといった内容でした。
このように、責任を明確に分け、変更に強い構造を作るという点では、プログラム設計と似た部分がありますね。
それではここまでお付き合いいただき、ありがとうございました!
CONTACT
あくまでも本業がメインですが、休日や業務の隙間時間は個人でも動いております。
もしお手伝いできることがあれば、お気軽にお問い合わせください。