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など
- 全員が受信して正しい受信者以外は破棄
- 衝突を検出する
- ブロードキャスト方式(CSMA/CD方式)
-
- トークンパッシング方式
- リング型、TokenRingなど
- 発言権を得たノードだけ発信できる
- トークンパッシング方式
MACアドレス(データリンク層用)=物理アドレス
- NIC固有のアドレス
- 48bit:ベンダコード24bit+ベンダ割り当てコード24bit
- ユニークだが、アドレスからどこにあるか特定できない(郵便における氏名のようなもの)
IPアドレス(ネットワーク層用)=論理アドレス
- 32bit:ネットワーク部とホスト部からなる
- クラスA
- 0+ネットワーク7bit+ホスト24bit(先頭8bit:0〜127)
- ネット数
、ホスト数
- クラスB
- 10+ネットワーク14bit+ホスト16bit(先頭8bit:128〜191)
- ネット数
、ホスト数
- クラスC
-
- 110+ネットワーク21bit+ホスト8bit(先頭8bit:192〜255)
- ネット数
、ホスト数
-
- クラスA
- 階層的なアドレスで、同一ネットワークのPCはすべて同一ネットワークアドレスをもつ(郵便における住所のようなもの)
- 特別なIPアドレス
- プライベートIPアドレス
- ネットワーク内部で自由に使ってよい
- クラスA:10.*.*.*
- クラスB:172.16.*.*〜172.31.*.*
- クラスC:192.168.*.*
ポート番号(トランスポート層用)
- 通信先のプログラムを特定するための番号
- 0〜65535のうち、0〜1023は特定のアプリケーションに割り当てられている(well-known port)
ネットワーク機器
レイヤ1
- リピータ
- 劣化した信号を再生する(延長コードの役割)
- ハブ
- あるポートに届いたデータを前ポートに送出(たこ足配線)
レイヤ2
- ブリッジ
- MACアドレスを調べて転送すべきか判断
- 橋を越えないと届かない宛先だけ橋の向こう側へ転送
- スイッチ
- ポートVLAN
- スイッチの複数のポートを1つの仮想的なグループとして構成
- 物理的な構成と無関係に論理的に切り離されたLANを実現
レイヤ3
- ルータ
- IPアドレスを調べて適切なポートに転送
- ネットワークセグメント同士を接続する
- 周囲のネットワークのルーティングテーブルを持つ
- 特に、ハードウェア処理によりルーティングを行う高速ルータをレイヤ3スイッチという
通信
- 宛先と送信元のMACアドレスとIPアドレスが必要
MACアドレス | IPアドレス | |
送信元 | NICから入手 | RARP、DHCP、管理者 |
宛先 | ARP | DNS |
- IPアドレスの割り当て
- 静的アドレッシング
- 動的アドレッシング
- RARP:逆アドレス解決 MAC→IP
- 全ホストに「私のIPアドレスは?」と質問、RARPサーバが回答。他ホストは「しらね」と無視
- DHCP:動的ホスト構成
- アドレス空間を指定しておくとDHCPサーバが動的に割り当ててくれる
- RARP:逆アドレス解決 MAC→IP
- 宛先IPの入手
- DNS
- 各ドメイン名の階層構造ごとにDNSサーバを持ち、管轄のDNSサーバにIPアドレスを教えてもらう
- 管轄のDNSサーバがどこにあるかは上位のDNSサーバが知っている
- DNS
- 宛先MACの入手
- ARP:アドレス解決(IP→MAC)
- 送信元ホストのARPテーブル(アドレス帳)に宛先ホストが乗っていなければ宛先IPアドレス宛にMACアドレスを質問する。回答きたらARPテーブルに書き込み。
- ARP:アドレス解決(IP→MAC)
-
-
- しかし、ルータはブロードキャストメッセージを転送しない
- デフォルトゲートウェイ(転送依頼するルータ)を使用して外のネットワークに転送させる
-
グローバルIPとプライベートIPの変換
- NAT(Network Address Translation)
- プライベートアドレスとグローバルアドレスを1対1で相互変換
- グローバルアドレスと対応付いているプライベートアドレスをルータ内に持ち、割り当てられているホストだけが部通信可能
- PAT(IPマスカレード)(Port Address Translation)
- ポート番号変換
TCPとUDP
- TCP
- コネクション型通信
- 通信の信頼性保証のため、順序制御と欠損パケットに対する再送要求を行う。
-
- コネクション確立
- 以下の手順で双方向のコネクション確立させる
- 通信元→通信先:SYN(コネクション確立要求) シンクロナイズ(同期)
- 通信先→通信元:ACK(SYNに対する確認応答) アクノリッジ(承認)
- 通信先→通信元:SYN(コネクション確立要求)
- 通信元→通信先:ACK(SYNに対する確認応答)
- データ通信
- データ送信→データ送信確認で信頼性確保する
- データ送信のたびに確認応答を待っていると遅くなるので、まとめて一定のデータ量をまとめて送信する。(ウィンドウ制御)
- コネクション解放
- 以下の手順で双方向のコネクション解放させる
- 通信元→通信先:FIN(コネクション確立要求)
- 通信先→通信元:ACK(FINに対する確認応答)
- 通信先→通信元:FIN(コネクション確立要求)
- 通信元→通信先:ACK(FINに対する確認応答)
- コネクション確立
- UDP
- コネクションレス型通信
- 確認応答や誤り制御は行わないが、そのかわり伝送効率はよい
- (データの信頼性はアプリケーション側で何とかしようという考え)
- 音声や動画などのストリーミング配信に用いられる(多少欠落しても人間が補完できる情報)
コネクション型 | コネクションレス型 |
コネクション確立→データ通信→コネクション解放 | いきなり送信する |
通信の信頼性保証 | 通信の信頼性保証されない |
TCP、フレームリレー、ATMなど | IP、UDPなど |
障害管理プロトコル、コマンド
- pingコマンド
- IPパケットが到達可能か確認するために使用する
- 内部的には、ICMPエコー要求と、エコー応答を利用している
- traceroute(tracert)
- netstatコマンド
- サーバとの接続状態や、送受信したパケット総数などネットワークの接続状態を表示する
- fingerコマンド
- fingerサービスを実行する指定のホストにおけるログインユーザの情報を表示
- 最近ではプライバシーやセキュリティ上の理由からほとんど利用されていない
データ交換方式
- 回線交換方式
- 送受信間で通信経路を確立する方式(電話回線など)
- 通信中は回線を占有する
- 蓄積交換方式
- 送信単位(パケット、メッセージ)ごとに通信経路を選択する方式
- パケット交換方式
- メッセージをパケットという単位で分割。各パケットに宛先情報を付与する。
- 伝送遅延は大きいが、異なる通信速度や通信手順の端末間でも通信可能
-
- メッセージ交換方式
- メッセージに宛先情報を付与する。パケット単位に分割しない方式。
- メッセージ交換方式
回線交換 | vs | パケット交換 |
送受信間で通信経路を確保 | − | パケット単位にデータ分割 |
接続中は回線占有するため回線効率低い | < | パケット送信時のみ回線を使うので回線効率高い |
同期転送 | > | 非同期転送 |
大量データを一括伝送できる | − | 分割して少量ずつ送るが、複数相手と同時に通信可能 |
通信速度と手順が同一の端末間 | < | 通信速度や手順が異なる端末間 |
伝送遅延が小さい | > | 伝送遅延が大きく変動 |
伝送の信頼性・品質が高い | > | 伝送の信頼性・品質が低い |
回線利用率
回線利用率=単位時間に転送されたデータ容量/単位時間に転送でいるデータ容量
=1秒間に転送されたビット数/回線速度