8.ネットワーク

OSI参照モデル

覚えかた:アプセトネデブ

アプリケーション層 アプリケーションの通信規格 - アプリケーション HTTP,FTP,Telnet,SMTP,POP,SNTP
プレゼンテーション層 符号化、コード変換など表現形式の規格 -
セッション層 論理的なコネクションの接続・切断、通信の同期 -
トランスポート層 正確な通信のための規格(データ分割、到達確認、誤り検出・回復) ポート番号 OS TCP,UDP
ネットワーク層 ルーティングにより宛先までの中継と経路選択 IPアドレス ルータ IP,ICMP
データリンク層 接続ノード間の伝送、タイミング同期、誤り制御 MACアドレス ブリッジ、スイッチ、NIC CSMA/CD,ARP,RARP,PPP
物理層 伝送路の物理的・電気的な規格 - リピータ、ハブ -

LANの規格

種類、規格、符号化方式、通信媒体、最大距離

10BASE-T Ethernet マンチェスタ符号化方式 UTP/STP 100m
10BASE-2 Ethernet マンチェスタ符号化方式 同軸ケーブル 185m
10BASE-5 Ethernet マンチェスタ符号化方式 同軸ケーブル 500m
10BASE-F Ethernet 4B5B/NRZ1 光ファイバ 500m
100BASE-TX First Ethernet 4B5B/MLT-3 UTP 100m
100BASE-FX First Ethernet 4B5B/NRZ1 光ファイバ 10km
1000BASE-T Gigabit Ethernet 4B5B/MLT-3 UTP 100m
1000BASE-TX Gigabit Ethernet 4B5B/MLT-3 UTP 100m
1000BASE-LX Gigabit Ethernet 4B5B/NRZ1 光ファイバ 5km
1000BASE-SX IEEE 802.3z 4B5B/NRZ1 光ファイバ 5km

符号化方式

  • NRZ符号
    • 1のときHigh、0のときLow
  • NRZI符号
    • 1のときHighとLowが入れ替わる
  • マンチェスタ符号
    • 1のときLow→High、0のときHigh→Low(周期の真ん中で切り替え)
  • Mlt-3符号
    • High、Middle、Lowの3値を使う符号方式
  • 4B5B符号化(4B5B以外の方式もある)
    • 4bitのデータを5bitに変換
    • 5bitすべて同じ符号が続くことがないようにする

ネットワーク構成

  • 物理トポロジ(構成)
    • バス型(魚の骨)
    • リング型(円陣)
    • スター型(ハブで分ける)
    • 拡張スター型(ハブから別ハブへ)
    • 階層型トポロジ(木構造
    • メッシュ型(互いに接続;冗長性あり)
  • 論理トポロジ(構成)
    • ブロードキャスト方式(CSMA/CD方式)
      • バス型、Ethernetなど
      • 全員が受信して正しい受信者以外は破棄
      • 衝突を検出する
    • トークンパッシング方式
      • リング型、TokenRingなど
      • 発言権を得たノードだけ発信できる

CSMA/CD

  • Carrier Sense Multiple Access / Collision Detection
  • キャリア検知多重アクセス/衝突検出
    • Carrier Sense;他ホストが送信していないか確認
    • Multiple Access:回線があいていれば誰がアクセスしてもよい
    • Collision Detection:衝突が起きた場合は検出
    • ランダムな時間Sleepし、先に起きたほうが送信

トークンパッシング

  • 送信したいホストはトークンが流れてくるのを待つ
  • 相手ホストは受け取り、受け取り印をつける
  • 送信ホストは受け取り印を確認し、通信終了

MACアドレス(データリンク層用)=物理アドレス

  • NIC固有のアドレス
  • 48bit:ベンダコード24bit+ベンダ割り当てコード24bit
  • ユニークだが、アドレスからどこにあるか特定できない(郵便における氏名のようなもの)

IPアドレス(ネットワーク層用)=論理アドレス

  • 32bit:ネットワーク部とホスト部からなる
    • クラスA
      • 0+ネットワーク7bit+ホスト24bit(先頭8bit:0〜127)
      • ネット数2^7、ホスト数2^{24} - 2
    • クラスB
      • 10+ネットワーク14bit+ホスト16bit(先頭8bit:128〜191)
      • ネット数2^{14}、ホスト数2^{16} - 2
    • クラスC
        • 110+ネットワーク21bit+ホスト8bit(先頭8bit:192〜255)
      • ネット数2^{21}、ホスト数2^8 - 2
  • 階層的なアドレスで、同一ネットワークのPCはすべて同一ネットワークアドレスをもつ(郵便における住所のようなもの)
  • 特別なIPアドレス
    • ネットワークアドレス
    • ブロードキャストアドレス
      • ホスト部のbitがすべて1=特定のネットワークの全ホスト
      • 全bitが1=ネットワークが特定できないとき
  • プライベートIPアドレス
    • ネットワーク内部で自由に使ってよい
    • クラスA:10.*.*.*
    • クラスB:172.16.*.*〜172.31.*.*
    • クラスC:192.168.*.*
CIDR(サイダー)
  • サブネットワーク
    • 1つのネットワークを複数に分割
  • スーパーネットワーク
    • 複数のネットワークを1つに統合

ポート番号(トランスポート層用)

  • 通信先のプログラムを特定するための番号
  • 0〜65535のうち、0〜1023は特定のアプリケーションに割り当てられている(well-known port)

ネットワーク機器

レイヤ1
  • リピータ
    • 劣化した信号を再生する(延長コードの役割)
  • ハブ
    • あるポートに届いたデータを前ポートに送出(たこ足配線)
レイヤ2
  • ブリッジ
    • MACアドレスを調べて転送すべきか判断
    • 橋を越えないと届かない宛先だけ橋の向こう側へ転送
  • スイッチ
    • MACアドレスを調べて適切なポートに転送
    • ポートとMACアドレスの対応表を持ち、更新している
    • 衝突が減り、各ホストが帯域を活用できる
  • ポートVLAN
    • スイッチの複数のポートを1つの仮想的なグループとして構成
  • 物理的な構成と無関係に論理的に切り離されたLANを実現
レイヤ3
  • ルータ
    • IPアドレスを調べて適切なポートに転送
    • ネットワークセグメント同士を接続する
    • 周囲のネットワークのルーティングテーブルを持つ
    • 特に、ハードウェア処理によりルーティングを行う高速ルータをレイヤ3スイッチという
ルーティングテーブル
  • 静的ルーティング
  • 動的ルーティング
    • RIP(Routing Information Protocol)
      • 経由するルート数最小に
    • OSPF(Open Shortest Path First)
      • 帯域幅などの情報を共有し、最短経路選択
    • BGP(Border Gateway Protocol)
      • (大規模)自立システム間(ISPなど)で利用するルーティングプロトコル

通信

  • 宛先と送信元のMACアドレスとIPアドレスが必要
MACアドレス IPアドレス
送信元 NICから入手 RARP、DHCP、管理者
宛先 ARP DNS
  • IPアドレスの割り当て
    • 静的アドレッシング
    • 動的アドレッシング
      • RARP:逆アドレス解決 MAC→IP
        • 全ホストに「私のIPアドレスは?」と質問、RARPサーバが回答。他ホストは「しらね」と無視
      • DHCP:動的ホスト構成
        • アドレス空間を指定しておくとDHCPサーバが動的に割り当ててくれる
  • 宛先IPの入手
    • DNS
      • ドメイン名の階層構造ごとにDNSサーバを持ち、管轄のDNSサーバにIPアドレスを教えてもらう
    • 管轄のDNSサーバがどこにあるかは上位のDNSサーバが知っている
  • 宛先MACの入手
    • ARP:アドレス解決(IP→MAC)
      • 送信元ホストのARPテーブル(アドレス帳)に宛先ホストが乗っていなければ宛先IPアドレス宛にMACアドレスを質問する。回答きたらARPテーブルに書き込み。
      • しかし、ルータはブロードキャストメッセージを転送しない
      • デフォルトゲートウェイ(転送依頼するルータ)を使用して外のネットワークに転送させる

グローバルIPとプライベートIPの変換

  • NAT(Network Address Translation)
    • プライベートアドレスとグローバルアドレスを1対1で相互変換
    • グローバルアドレスと対応付いているプライベートアドレスをルータ内に持ち、割り当てられているホストだけが部通信可能
  • PAT(IPマスカレード)(Port Address Translation)
    • ポート番号変換

IPv4IPv6

>>覚えきれそうにないので省略<<

TCPUDP

トランスポート層プロトコル

  • TCP
    • コネクション型通信
    • 通信の信頼性保証のため、順序制御と欠損パケットに対する再送要求を行う。
    1. コネクション確立
      • 以下の手順で双方向のコネクション確立させる
      • 通信元→通信先:SYN(コネクション確立要求) シンクロナイズ(同期)
      • 通信先→通信元:ACK(SYNに対する確認応答) アクノリッジ(承認)
      • 通信先→通信元:SYN(コネクション確立要求)
      • 通信元→通信先:ACK(SYNに対する確認応答)
    2. データ通信
      • データ送信→データ送信確認で信頼性確保する
      • データ送信のたびに確認応答を待っていると遅くなるので、まとめて一定のデータ量をまとめて送信する。(ウィンドウ制御)
    3. コネクション解放
      • 以下の手順で双方向のコネクション解放させる
      • 通信元→通信先:FIN(コネクション確立要求)
      • 通信先→通信元:ACK(FINに対する確認応答)
      • 通信先→通信元:FIN(コネクション確立要求)
      • 通信元→通信先:ACK(FINに対する確認応答)
  • UDP
    • コネクションレス型通信
    • 確認応答や誤り制御は行わないが、そのかわり伝送効率はよい
    • (データの信頼性はアプリケーション側で何とかしようという考え)
    • 音声や動画などのストリーミング配信に用いられる(多少欠落しても人間が補完できる情報)
コネクション型 コネクションレス
コネクション確立→データ通信→コネクション解放 いきなり送信する
通信の信頼性保証 通信の信頼性保証されない
TCP、フレームリレー、ATMなど IP、UDPなど

障害管理プロトコル、コマンド

  • SNMP
    • 多数のネットワーク機器を効率よく管理するためのネットワーク障害監視用プロトコル
    • 監視対象機器上で動作するソフトウェア(エージェント)から起動、障害などの情報をサーバに通知
  • pingコマンド
    • IPパケットが到達可能か確認するために使用する
    • 内部的には、ICMPエコー要求と、エコー応答を利用している
  • traceroute(tracert)
    • 指定したホストに至るまでに経由したルータの情報、経路、接続までの時間を表示
    • 内部的には、IPパケット上の生存時間(TTL TimeToLive)=ルーターを越えられる回数を1から順に増やし、各ルータからICMP時間超過メッセージを受信している
  • netstatコマンド
    • サーバとの接続状態や、送受信したパケット総数などネットワークの接続状態を表示する
  • fingerコマンド
    • fingerサービスを実行する指定のホストにおけるログインユーザの情報を表示
    • 最近ではプライバシーやセキュリティ上の理由からほとんど利用されていない

データ交換方式

  • 回線交換方式
    • 送受信間で通信経路を確立する方式(電話回線など)
    • 通信中は回線を占有する
  • 蓄積交換方式
    • 送信単位(パケット、メッセージ)ごとに通信経路を選択する方式
    • パケット交換方式
      • メッセージをパケットという単位で分割。各パケットに宛先情報を付与する。
      • 伝送遅延は大きいが、異なる通信速度や通信手順の端末間でも通信可能
    • メッセージ交換方式
      • メッセージに宛先情報を付与する。パケット単位に分割しない方式。
回線交換 vs パケット交換
送受信間で通信経路を確保 パケット単位にデータ分割
接続中は回線占有するため回線効率低い パケット送信時のみ回線を使うので回線効率高い
同期転送 非同期転送
大量データを一括伝送できる 分割して少量ずつ送るが、複数相手と同時に通信可能
通信速度と手順が同一の端末間 通信速度や手順が異なる端末間
伝送遅延が小さい 伝送遅延が大きく変動
伝送の信頼性・品質が高い 伝送の信頼性・品質が低い

Ethernet以外のプロトコル

PPP(Point to Point Protocol)
ATM(Asynchronous Transfer Mode)非同期転送モード
  • データを53バイトの固定長のセル単位のブロックに分割し、高速伝送する方式
  • 物理層データリンク層ネットワーク層にまたがるプロトコル
  • 回線交換とパケット交換の両方の長所を取り入れている
    • 固定長のセルに分割することで回線の占有を会費
    • 通信開始時に仮想的な回線を確率
フレームリレー
  • 光ファイバーなどの高品質回線を使用することで謝り制御を簡略化し、可変長フレームで高速伝送するデータリンク層プロトコル
  • 伝送遅延が比較的小さく、フレームの伝送順序もパケットと同様保証される。

回線利用率

回線利用率=単位時間に転送されたデータ容量/単位時間に転送でいるデータ容量
=1秒間に転送されたビット数/回線速度