第 7 章 ネットワーク
パケットは層を旅する。この章では次の 14 個の知識点を、解説・インタラクティブ教材・練習問題で学びます。
ネットワークの構成とパケット
ネットワークは、コンピュータなどの機器を通信機器と通信回線でつないだもの。データはそのまま送らず、小さなパケットに分割して送る。回線を独占しないので複数の通信が同時にでき、エラーが起きてもそのパケットだけ再送すればよい。
伝送時間と回線利用率
伝送時間 = データ量 ÷(回線速度 × 伝送効率)。データ量はバイト → ビット(× 8)に直してから割る。回線利用率 = 1 秒あたりに実際に流すデータ量 ÷ 回線速度。制御情報が付く場合はデータ量に上乗せする。
LAN と WAN・CSMA/CD・無線 LAN
LAN は家庭や事業所など狭い範囲、WAN は通信事業者の回線で離れた拠点をつなぐ広い範囲のネットワーク。有線 LAN の大半はイーサネットで、CSMA/CD 方式で通信する:回線が空いているかを監視して送信し、衝突(コリジョン)を検出したらランダムな時間待って再送する。無線 LAN(Wi-Fi)は電波なので暗号化などのセキュリティ対策が必要。
OSI 基本参照モデル
通信に必要な機能を 7 つの層に分けたのが OSI基本参照モデル。第 1 層 物理層(電気信号)・第 2 層 データリンク層(隣の機器まで・MAC アドレス)・第 3 層 ネットワーク層(宛先まで・IP アドレス・経路選択)・第 4 層 トランスポート層(信頼性・TCP/UDP)・第 5 層 セッション層(通信の開始〜終了)・第 6 層 プレゼンテーション層(データの表現形式)・第 7 層 アプリケーション層(アプリ固有のルール)。
中継機器と MAC アドレス・IP アドレス
機器は動作する層で覚える。第 1 層:NIC・リピータ(信号を増幅して距離を延ばす)・リピータハブ。第 2 層:ブリッジ・スイッチングハブ(MACアドレスを見て中継)。第 3 層:ルータ(IPアドレスを見て経路を選び中継)。第 4 層以上:ゲートウェイ(プロトコルを変換)。MAC アドレスは機器固有の番号(体系的でない)、IP アドレスはネットワーク上の住所(体系的)。
TCP/IP モデルと IP・TCP・UDP
インターネットで使われる TCP/IP モデルは 4 層:ネットワークインタフェース層(OSI の 1・2 層)・インターネット層(3 層:IP・ICMP・ARP)・トランスポート層(4 層:TCP・UDP)・アプリケーション層(5〜7 層:HTTP・SMTP など)。IP は IP アドレスでパケットを宛先まで届ける。TCP は接続を確認してから送り、確認応答と再送で信頼性を高める。UDP は確認をしないので信頼性は低いが速く、ライブ配信や通話向き。
IP アドレスと NAT・NAPT
IPv4 アドレスは 32 ビット(8 ビットずつ 10 進数で 192.168.0.1 のように表す)。数が足りなくなり 128 ビットの IPv6 が作られた。インターネットで重複できないグローバルIPアドレスと、LAN の中だけで使うプライベートIPアドレスに分けてアドレスを節約する。LAN からインターネットに出るとき、ルータがプライベートをグローバルに変換する:NAT は 1 対 1、NAPT(IP マスカレード)はポート番号も変換して複数対 1。
DHCP とドメイン・DNS
DHCP は、PC の起動時などに IP アドレスやサブネットマスクなどのネットワーク設定を自動で割り当てる仕組み(LAN 内で重複しないように管理する)。ドメイン名(www.example.jp など)は IP アドレスを人間に分かりやすくした名前で、DNS がドメイン名と IP アドレスを対応付ける。
ネットワーク部・ホスト部とアドレスクラス
IP アドレスは、どのネットワークかを表すネットワーク部と、その中のどの機器かを表すホスト部に分かれる。クラス A(先頭 0・ネットワーク部 8 ビット)・B(先頭 10・16 ビット)・C(先頭 110・24 ビット)。ホスト部が全部 0 はネットワークアドレス、全部 1 はブロードキャストアドレスで、機器には割り当てられない → 割り当てられる数は 2^(ホスト部のビット数) − 2。
サブネットマスクとネットワークアドレスの計算
サブネットマスクは、IP アドレスのどこまでがネットワーク部かを 1 の並びで示す(255.255.255.192 = 1 が 26 個 = CIDR 表記で /26)。IP アドレスとサブネットマスクの論理積(AND)がネットワークアドレス。ホスト部を全部 1 にしたものがブロードキャストアドレス。割り当てられる数は 2^(32 − プレフィックス長) − 2。
アプリケーション層のプロトコルとポート番号
ポート番号は、コンピュータの中で通信相手のアプリケーションを識別する番号。覚える組合せ:HTTP 80(Web)・FTP 20/21(ファイル転送)・NTP 123(時刻合わせ)・SMTP 25(メール送信)・POP3 110(メールを端末に取り込んで受信)・IMAP 143(メールをサーバに置いたまま受信)。MIME はメールで日本語・画像・音声を扱えるようにした規格、S/MIME はそれに暗号化と署名を加えたもの。
誤り検出(パリティチェックと CRC)
パリティチェック:データに 1 ビットを付け、1 の個数を奇数(奇数パリティ)または偶数(偶数パリティ)にそろえる。1 ビットの誤りは検出できるが、訂正はできず、2 ビットの誤りは検出できない。行と列の両方に付ける水平垂直パリティなら 1 ビットの誤りの位置が分かり訂正もできる。CRC:データを生成多項式で割った余りをチェック用に付ける。連続した複数ビットの誤り(バースト誤り)も検出できる。
ネットワーク関連用語(SDN・IPsec・CGI・eSIM・ローカル 5G)
SDN:ネットワークの構成や設定をソフトウェアで管理する技術。代表的な実現技術が OpenFlow(データ転送と経路制御を分ける)。IPsec:ネットワーク層で動き、暗号化の機能をもつプロトコル(AH と ESP を含む)。CGI:Web サーバが要求に応じて外部プログラムを動かし、結果をブラウザに返す仕組み。eSIM:端末に内蔵された電子的な SIM(契約がオンラインで完結)。ローカル5G:企業や自治体が独自に構築する 5G ネットワーク。
ネットワーク管理(ping・BOOTP・MIB)
ping は、ICMP のエコー要求を送り、エコー応答が返ってくるかで相手と通信できるか(疎通)を確認するコマンド。BOOTP は起動時に IP アドレスなどを取得するプロトコル(DHCP の前身)。MIB は SNMP でネットワーク機器を管理するときの管理情報のデータベース。