通信プロトコルの標準化

このページでは、OSI基本参照モデルの7層とTCP/IPの4層、MACアドレス・IPアドレス・ポート番号の役割、ネットワークをまたぐ通信の流れがわかります。

  • 一言で言うと:
    • 違うメーカーや世代の機器どうしでも話が通じるように、通信の約束ごと(プロトコル)を階層に分けて標準化した話
    • 標準化のためのモデルがOSI基本参照モデル(7層)、実際にインターネットで使われているのがTCP/IP(4層)

7層の地図(OSI基本参照モデル)→ 実際のセット(TCP/IPプロトコルスイート)→ 3つの住所(MACアドレス・IPアドレス・ポート番号)→ ネットワークをまたぐ通信

覚え方の軸

  • 7層は、下から「物・デ・ネ・ト・セ・プ・ア」
    • 物理 → データリンク → ネットワーク → トランスポート → セション → プレゼンテーション → アプリケーション
    • 下の4層(1〜4)が下位層、上の3層(5〜7)が上位層
  • TCP/IPの4層は、OSIの7層をまとめ直したもの
    • 1・2層 → ネットワークインタフェース層、3層 → インターネット層、4層 → トランスポート層、5〜7層 → アプリケーション層
  • 住所は層ごとに3つある
    • データリンク層はMACアドレス(隣の機器まで)、ネットワーク層はIPアドレス(最終の宛先まで)、トランスポート層はポート番号(その機器の中のどのアプリか)
    • 例えば、MACアドレスは「次に渡す配達員」、IPアドレスは「届け先の住所」、ポート番号は「その家の中の誰宛てか」
  • ネットワークをまたぐと、MACは付け替え、IPは最後まで同じ
    • 同じネットワークの中はデータリンク層の通信、ネットワークを越えるのはネットワーク層の通信
  • ヘッダは、上の層から順に外側へ付いていく
    • データ → TCPヘッダ(セグメント)→ IPヘッダ(パケット)→ MACヘッダ(フレーム)

OSI基本参照モデル:通信を7つの層に分ける

  • OSI基本参照モデル:
    • OSIは、Open System Interconnectionの略
    • 異なる設計思想や世代のシステムとの通信を、円滑に行うことを目的に標準化された
    • プロトコルの単機能化と、交換の容易さを目的として、7つの層に分けている
  • 階層化の利点:
    • 一部の階層の技術が変わっても、その階層だけ取り替えればよいので、コストを最小にできる
    • 例えば、ケーブルを光ファイバに変えても(物理層)、メールソフト(アプリケーション層)は作り直さなくてよい

各層の役割(★)

層 名前 役割 例
7(上位層) アプリケーション層 やりとりされたデータの意味内容を直接扱う。アプリケーションごとに特化したプロトコル SMTP(メール)、HTTP(Webアクセス)
6(上位層) プレゼンテーション層 データの表現形式を管理する。文字コードや圧縮の種類などのデータの特性を決める −
5(上位層) セション層 通信の目的に合わせて、データの送受信管理をする。コネクション確立やデータ転送のタイミング管理を行い、特性の違う通信の差を吸収する −
4(下位層) トランスポート層 エラーの検出・再送などのデータ転送の制御で、通信の品質を保証する。ポート番号で、ノード内のアプリケーションを特定する TCP、UDP
3(下位層) ネットワーク層 エンドツーエンド(送信元から最終の宛先まで)のやりとりを決める。ここのアドレスは、通信の最初から最後まで一貫している IP
2(下位層) データリンク層 同じネットワークにつながった隣接ノード間の通信を決める HDLC手順、MACフレームの規格
1(下位層) 物理層 システムの物理的・電気的な性質を決める。デジタルデータを、電流の波形や電圧の高低にどう割り付けるか、ケーブルの抵抗、コネクタピンの形状など −
  • ネットワーク層とデータリンク層のアドレスの違い:
    • MACアドレスなどのデータリンクアドレスは、ローカルネットワークの中だけで有効
    • だから、ネットワークを越えるときは付け替える必要がある
    • ネットワーク層のアドレス(IPアドレス)は、通信の最初から最後まで同じ
  • 7層の覚え方:
    • 下から「物・デ・ネ・ト・セ・プ・ア」
    • 上から「ア・プ・セ・ト・ネ・デ・物」(「アプセトネデブ」)

プロトコルとサービス

  • N層:
    • OSI基本参照モデルで、それぞれの階層のこと
  • エンティティ:
    • N層にある、通信機器などの実体
  • プロトコル:
    • N層に属するエンティティどうし(同じ層どうし)が、相互に通信をするための取り決め
    • 例えば、送り手のトランスポート層と、受け手のトランスポート層の間の約束
  • サービス:
    • 上の層は下の層を使いながら通信するので、異なる階層のエンティティどうしが通信する窓口が必要
    • この窓口を下位層が提供する機能のこと
  • サービスアクセスポイント:
    • N層がN+1層にサービスを提供する接点(窓口)
  • プロトコルに沿うことの利点:
    • プロトコルに沿った仕様で製品を作れば、異なるベンダの機器でも通信できる
  • プロトコルとサービスの例え:
    • プロトコルは、日本の社長とアメリカの社長が「英語で話そう」と決める約束(同じ立場どうし)
    • サービスは、社長が秘書に「この手紙を出しておいて」と頼む窓口(上と下の立場)

TCP/IPプロトコルスイート:インターネットで使う4層のセット(★)

  • プロトコルの相性:
    • 1つの通信システムは、物理層からアプリケーション層まで、いろいろなプロトコルを組み上げて作る
    • 「ネットワーク層がこれなら、トランスポート層はこれにするとトラブルがない」という相性がある
  • プロトコルスイート:
    • 同じ団体が作ったプロトコルは、セットで使われることが多い。このセットのこと
  • TCP/IPプロトコルスイート:
    • IPを中心に組まれた、最も代表的なプロトコルスイート
    • 独自の階層モデル(4層)を持つ
  • TCPとIP:
    • TCPもIPも独立したプロトコル
    • IPはOSIのネットワーク層、TCPはトランスポート層に当たる

TCP/IPの階層

TCP/IPの層 OSIの層 実装例
アプリケーション層 アプリケーション層、プレゼンテーション層、セション層(5〜7層) HTTP、SMTP、FTP、DHCP、DNS、SNMP、POP3、Telnet
トランスポート層 トランスポート層(4層) TCP、UDP
インターネット層 ネットワーク層(3層) IP、ICMP など
ネットワークインタフェース層 データリンク層、物理層(1〜2層) イーサネット

① TCP/IPの通信

  • パケット:
    • TCP/IPでは、データをパケットという単位に区切り、各パケットにヘッダを付けて送る
  • パケット交換方式:
    • TCP/IPでは、パケット交換方式でデータのやりとりをする(後の「交換方式」で扱う)
  • ヘッダ:
    • 各階層ごとに付けられ、次の階層へ渡される
    • その階層で必要な送信元、送信先、大きさ、順番など、パケット自体の情報が入っている
    • IPヘッダやTCPヘッダの中身は、後で詳しく扱う

ヘッダ付加のイメージ

  • トランスポート層:
    • ポート番号で通信するためのTCPヘッダを付ける
  • ネットワーク層:
    • IPアドレスで通信するためのIPヘッダを付ける
  • データリンク層:
    • MACアドレスで通信するためのMACヘッダを付ける
  • ヘッダを付けたものの呼び名:
    • TCPヘッダを付けたものはTCPセグメント
    • IPヘッダを付けたものはIPパケット
    • MACヘッダを付けたものはMACフレーム、またはイーサネットフレーム
  • ヘッダ付加の例え:
    • 手紙(データ)を「部署名を書いた封筒(TCP)」に入れ、それを「住所を書いた封筒(IP)」に入れ、さらに「次の配達所宛ての袋(MAC)」に入れる。受け取った側は、外側から順に開ける

② 3つのアドレス(★)

  • MACアドレス:
    • イーサネットやFDDIで使う物理アドレス
    • データリンク層で使い、同じネットワークにつながった隣接ノード間の通信で、相手を識別する
    • MACは、Media Access Controlの略
  • MACアドレスの構成:
    • 長さは6バイト(48ビット)
    • 先頭24ビットがOUI(ベンダID)、後ろ24ビットが固有製造番号(製品に割り当てた番号)
  • MACアドレスの管理:
    • 機器が固有に持つ番号なので、必ず一意に決まるようにIEEEが管理している
  • IPアドレス:
    • ネットワーク層のプロトコルIPで使う、ノードを特定するためのアドレス
  • ポート番号:
    • トランスポート層で、ノード内のアプリケーションを識別するための番号
    • 指定できる範囲は、TCPやUDPごとに0〜65535
  • ウェルノウンポート(well-known ports):
    • 0〜1023の番号。FTPやHTTPなど、よく使われるアプリケーションのポート番号

ウェルノウンポートの代表例(★)

プロトコル ポート番号
SSH TCP 22
Telnet TCP 23
SMTP TCP 25
DNS UDP 53
HTTP TCP 80
POP3 TCP 110
NTP UDP 123
IMAP4 TCP 143
SNMP UDP 161
SNMP Trap UDP 162
HTTPS TCP 443
  • ポート番号の覚え方:
    • 20番台は「SSH 22 → Telnet 23 → SMTP 25」と、遠隔操作とメール送信
    • HTTPは80、HTTPSは443、POP3は110、IMAP4は143
    • セキュリティ分野の攻撃でも、SMTPの25番(OP25B)、DNSのUDP 53番・NTPのUDP 123番(リフレクタ攻撃)が出てくる

③ ネットワーク間の通信

  • ネットワーク間の通信の基本:
    • 同じネットワークにつながったノード間は、データリンク層の通信
    • ネットワークを越えたノード間は、ネットワーク層の通信
  • 例(ノードA → ノードB):
    • ノードBは、ノードAのデータリンク層の通信が届く範囲の外にあるので、直接は通信できない
    • 「ノードA → ルータA → ルータB → ノードB」の順に、パケットを届ける
    • そのため、ノードAには、宛先であるノードBのIPアドレスと、ルータAのMACアドレスが必要
  • 流れ:
    • まず、ルータAにパケットを届ける。同じデータリンク層の範囲なので、MACアドレスを使う
    • ルータAは、宛先IPアドレスに届けるため、ルータBに転送する
    • ルータBからノードBへも同じ
  • 宛先アドレスの変わり方:
    • 宛先IPアドレスは、最初から最後までノードBのまま
    • 宛先MACアドレスは、ルータA → ルータB → ノードBと、区間ごとに付け替わる
  • 例え:
    • 東京から大阪の友だちに荷物を送る。伝票の届け先(IPアドレス)はずっと「大阪の友だち」。でも、トラックの行き先(MACアドレス)は「近くの集配所 → 大阪の集配所 → 友だちの家」と区間ごとに変わる

混同しやすいペア

  • 上位層 / 下位層
    • 上位層は、5〜7層(セション、プレゼンテーション、アプリケーション)
    • 下位層は、1〜4層(物理、データリンク、ネットワーク、トランスポート)
  • プレゼンテーション層 / セション層
    • プレゼンテーション層は、データの表現形式(文字コード、圧縮)を決める
    • セション層は、コネクション確立やデータ転送のタイミングを管理する
  • トランスポート層 / ネットワーク層
    • トランスポート層は、通信の品質を保証し、ポート番号でアプリを特定する(TCP、UDP)
    • ネットワーク層は、エンドツーエンドの通信を決め、IPアドレスで宛先を特定する(IP)
  • ネットワーク層 / データリンク層
    • ネットワーク層は、最初から最後まで一貫したアドレス(IPアドレス)で、ネットワークを越えて届ける
    • データリンク層は、ローカルネットワーク内だけで有効なアドレス(MACアドレス)で、隣の機器まで届ける
  • プロトコル / サービス
    • プロトコルは、同じ層のエンティティどうしの取り決め
    • サービスは、下位層が上位層に提供する窓口の機能
  • OSI基本参照モデル / TCP/IP
    • OSI基本参照モデルは、7層。標準化のためのモデル
    • TCP/IPは、4層(アプリケーション、トランスポート、インターネット、ネットワークインタフェース)。実際に使われているプロトコルスイート
  • インターネット層 / ネットワークインタフェース層
    • インターネット層は、OSIのネットワーク層に当たる(IP、ICMP)
    • ネットワークインタフェース層は、OSIのデータリンク層と物理層に当たる(イーサネット)
  • TCPセグメント / IPパケット / MACフレーム
    • TCPセグメントは、TCPヘッダを付けたもの
    • IPパケットは、IPヘッダを付けたもの
    • MACフレーム(イーサネットフレーム)は、MACヘッダを付けたもの
  • MACアドレス / IPアドレス / ポート番号
    • MACアドレスは、データリンク層。隣接ノードを識別する(6バイト、IEEEが管理)
    • IPアドレスは、ネットワーク層。ノードを特定する
    • ポート番号は、トランスポート層。ノード内のアプリケーションを識別する(0〜65535)
  • OUI / 固有製造番号
    • OUIは、MACアドレスの先頭24ビット。ベンダID
    • 固有製造番号は、後ろ24ビット。製品に割り当てた番号
  • ウェルノウンポート / それ以外のポート
    • ウェルノウンポートは、0〜1023。よく使われるアプリケーション用
    • それ以外は、1024〜65535
  • 宛先IPアドレス / 宛先MACアドレス(ネットワーク間の通信)
    • 宛先IPアドレスは、最後まで変わらない(最終の宛先)
    • 宛先MACアドレスは、区間ごとに付け替わる(次の機器)

← 07 ネットワークの目次に戻る

タイトルとURLをコピーしました