0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Webアプリ初心者メモ】通信レイヤとは?

0
Last updated at Posted at 2026-01-03

通信レイヤとは

通信レイヤとは、一言でいえば、複雑な通信の仕組みを、役割ごとに分けた段組みのことです。インターネットで私たちがメッセージを送るという一つの動作の裏側では、「電気を流す」「宛先を探す」「エラーを直す」といった全く種類の違う仕事が同時に行われています。これを一つのプログラムでやろうとすると無理があるため、仕事を階層(レイヤー)ごとに分担させています。

「送信側」は上の層から下の層へ向かってデータを作り、「受信側」は下の層から上の層へ向かってデータを解析していきます。OSI参照モデルを例に取ると、以下のようになります。

送信側の動き:カプセル化(上から下へ)

あなたがメールを送ったりWebサイトを見たりするとき、データは上の層から順に「荷札(ヘッダー)」を貼られて包まれていきます。

アプリケーション層(L7) でデータを作成。

トランスポート層(L4) で「TCP」の荷札を貼る。

ネットワーク層(L3) で「IPアドレス」の荷札を貼る。

データリンク層(L2) で「MACアドレス」の荷札を貼る。

物理層(L1) で「電気信号」にして送り出す。

受信側の動き:非カプセル化(下から上へ)

データを受け取った側は、下の層から上の層へとバウムクーヘンの皮を剥くように進めていきます。

物理層(L1) で電気信号をデジタルデータに戻す。

データリンク層(L2) で自分のMACアドレス宛か確認し、L2の荷札を剥がす。

ネットワーク層(L3) で自分のIPアドレス宛か確認し、L3の荷札を剥がす。

トランスポート層(L4) でポート番号を見てどのアプリに渡すか決め、L4の荷札を剥がす。

アプリケーション層(L7) でついに、中身のデータ(メッセージや画像)が表示される。

代表的なモデル

OSI参照モデル

OSI参照モデル(Open Systems Interconnection reference model)とは、国際標準化機構(ISO)によって策定された、コンピューターが通信するための機能を7つの階層に分類したモデルのことです。下から順に、物理的な「線」の話から、一番上の「人間が触れるアプリ」の話へと積み上がっています。

第7層 アプリケーション層

役割: 「人間(ユーザー)が操作するアプリケーション」と「ネットワーク」をつなぐ窓口。人間の操作(入力)をネットワーク形式のデータにする。

主なプロトコル/技術: HTTP(Webブラウザとサーバー間の通信プロトコル)、SMTP(メールを送信・転送するための通信プロトコル)、FTP(ファイルを送受信するための通信プロトコル)

第6層 プレゼンテーション層

役割: データの翻訳と整形。文字コードの変換、データの圧縮・解凍、データの暗号化・復号など異なるコンピュータ間でも同じ内容を正しく読み書きできるよう、データの「形」を整える。

主なプロトコル/技術: SSL/TLS(データの暗号化)

第5層 セッション層

役割: 対話の管理。通信の開始から終了までの一連の流れ(セッション)を管理します。

主なプロトコル/技術: RPC(プログラムの遠隔実行)、NetBIOS(コンピュータの名前解決・対話管理)

第4層 トランスポート層

役割: 確実なデータ転送の保証。ポート番号によるアプリの識別、データの分割・再構築、フロー制御などデータがエラーなく、正しい順番で相手に届くように制御します。

主なプロトコル/技術: TCP(確実にデータが届くことを保証する)、UDP(到達保証なし、リアルタイム性重視)

第3層 ネットワーク層

役割: 目的地への経路選択(ルーティング) 。異なるネットワーク間をまたいで、IPアドレスが指す宛先までデータを運びます。

主なプロトコル/技術: IP(ネットワーク上の機器を見つけるための通信規格)、ルーター(IPアドレスを見て、データをどの方向に転送すべきかを判断する仕組み)

第2層 データリンク層 :

役割: 隣接する機器との通信。直接つながっている機器(スイッチ、PC間など)でのデータ転送を制御します。

主なプロトコル/技術: イーサネット(線LANで最も普及している通信規格)、スイッチ(どのポートにデータを転送するかを判断する仕組み)

第1層 物理層

役割: 電気信号の伝送 データを「0」と「1」の電気信号、光信号、または電波に変換して物理的な媒体に流します。

主なプロトコル/技術: LANケーブル、光ファイバー、ハブ、無線電波

TCP/IPモデル

OSI参照モデルは理想的な教育用のモデルですが、実際のインターネットの実装では、よりシンプルなTCP/IP階層モデルが使われています。OSI参照モデルが7階層だったのに対し、TCP/IPモデルはより実用性を重視して4つの階層で構成されています。

アプリケーション層: OSIの5~7層を統合したもの

トランスポート層: TCP, UDP

インターネット層: IP

ネットワークインターフェース層: OSIの1~2層を統合したもの

備考

TCPとは

TCPは、データの信頼性を何よりも大切にするプロトコルです。「確実に、順番通りに」届けることを保証します。

1. TCPコネクション(通信前の「儀式」)

TCPは、いきなりデータを送り始めることはしません。まず、送信側と受信側の間で専用の「通り道(土台)」を作ります。これをコネクションと呼びます。このコネクションを作る際に行われるのが、「スリーウェイ・ハンドシェイク」です。

SYN(接続依頼): クライアント「通信を始めたいです。いいですか?」

SYN-ACK(許可と依頼): サーバー「いいですよ!私も準備ができました。そちらもいいですか?」

ACK(確認): クライアント「了解しました!では始めましょう」

この3ステップを経て、初めて「通信の準備が整った状態(コネクション確立)」になります。

2. TCPパケットの「荷札」による管理

コネクションができたら、データを小さな塊(パケット、またはセグメント)に分けて送ります。このとき、TCPはパケットの頭に特別な「荷札(TCPヘッダー)」を貼り、以下の情報を管理します。

  • ① シーケンス番号(パケットの番号)
    パケットに「これは1番目の欠片」「これは2番目」と番号を振ります。インターネットではパケットがバラバラの順序で届くことがありますが、受信側はこの番号を見て、元のデータに正しく並べ直すことができます。

  • ② 確認応答番号(ACK:届いたよ!の返事)
    パケットを受け取った側は、「次は〇番のパケットをください」という返事(ACK)を返します。送信側は、一定時間返事が来なければ「途中でパケットが消えた(パケットロス)」と判断し、自動的に同じパケットを送り直し(再送)ます。

3. フロー制御と混雑制御

TCPはただ送るだけでなく、相手の状況も見ています。

フロー制御: 相手のメモリがいっぱいになりそうなら、送るスピードを落とします。

混雑制御: ネットワーク全体が混んでいることを察知すると、パケットを送る量を少しずつ増やしたり減らしたりして、パンクを防ぎます。

UDP(User Datagram Protocol)とは

UDPは、余計な確認を一切せず、一方的にデータを送り続けるプロトコルです。

1. UDPの最大の特徴:コネクションレス

UDPには、TCPのような「スリーウェイ・ハンドシェイク(事前の挨拶)」がありません。

いきなり送信: 相手が準備できているか確認せず、いきなりデータを送り始めます。

返事不要: 相手が受け取ったかどうかの確認(ACK)も求めません。

再送なし: 途中でデータが消えても(パケットロス)、送り直すことはしません。

2. なぜ「投げっぱなし」が良いのか?

一見すると不誠実な通信に見えますが、これには大きなメリットがあります。

リアルタイム性: 確認や再送の待ち時間がないため、データが届くまでの遅延(レイテンシ)が最小限に抑えられます。

ネットワーク負荷が低い: 余計なやり取り(荷札の情報の少なさ)がないため、効率よくデータを流せます。

3. UDPが活躍する場面

「少しぐらいデータが抜けても、最新の情報を早く届けてほしい」という用途で使われます。

動画配信・テレビ会議: 一瞬画像が乱れたり音声が途切れたりしても、それより「今の動き」を映し続けることが重要です。

オンラインゲーム: キャラクターの現在位置が1秒遅れて届くと、ゲームが成立しません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?