コンピュータ科学iiitakeda.cs.tohoku-gakuin.ac.jp/ja/wp-content/... ·...

Post on 27-May-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

コンピュータ科学III 担当:武田敦志 <takeda@cs.tohoku-gakuin.ac.jp>

http://takeda.cs.tohoku-gakuin.ac.jp/

page 2

インターネットの通信(1)

パケットを用いた通信

インターネットではパケット単位で通信を行う

パケットとは?

ヘッダを付加したデータのかたまり

ヘッダには宛先アドレスや送信元の情報などが含まれる

Data Header

Packet

宛先アドレスなど 送りたいメッセージ

page 3

インターネットの通信(2)

パケットの送受信

パケットを送受信することにより、情報通信を行う

パケットは送信されるだけ

送信者は受信されたかどうかを知らない

パケットの大きさには限界がある

パケットの限界サイズ以上のデータは送信できない

Internet

送信 受信

インターネットの通信(3)

IPパケットの内容 32bit

version ヘッダ長 パケット長

識別子 フラグ

生存時間 プロトコル チェックサム

送信元IPアドレス

宛先IPアドレス

データ

オプション

IPパケット

宛先MACアドレス (6オクテット)

送信元MACアドレス (6オクテット)

タイプ (2オクテット)

FCS (4オクテット)

送信データ 46~1500オクテット

イーサネットフレーム

page 5

インターネットの通信(4)

インターネットのネットワーク構造

組織

組織

IX

組織

組織

組織

組織

組織

組織

組織

組織

IX

組織

組織

組織

NOC

ISP ISP

ISP

ISP ISP

page 6

インターネットの通信(5)

インターネットのネットワークトポロジ 複雑だが信頼性の高いネットワーク型 プロトコルは IP (Internet Protocol) を使う

To : B Data

to : z

page 7

インターネットの通信(6)

コンピュータ間の通信

To : B Data

to : x To : B Data

to : x to : y To : B Data

to : y to : z

to : B To : B Data

to : B A

B

x y

z p

q

r

宛先Bのパケットは y に渡す

宛先Bのパケットは z に渡す

ルーティング情報

page 8

インターネットの通信(7)

IPの問題点

パケットを処理出来ず Aからのデータをロスト

To : B Data-1

to : x

A x y

To : B Data-1

to : z To : B Data-1

to : y

p q

r

To : B Data-2

to : z

z

To : B Data-1

to : z

To : B Data-2

to : z

C

To : B Data-2

to : r

B

To : B Data-2

to : z

損失データの回復(再送制御)を行わない

IPアドレス(1)

page 9

IPアドレス

IPアドレスは 32bitの整数値で表現される 表現範囲 : 0 ~ 4294967295

通常は、8bit 毎の値を10進数で表記する 例 : 2130706433 ⇔ 127.0.0.1

ネットワークインタフェースに割り当てられる 1個のホストが2個以上のアドレスを持つこともある

IPアドレス(2)

page 10

IPアドレスの構成

IPアドレスはネットワーク部とホスト部で構成される

例 : 192.168.1.34 / 24

ネットワーク部 ホスト部

ネットワーク部の長さ

データリンクのセグメント毎に割り当てられる ネットワーク部

ホスト部 セグメント内のホスト毎に割り当てられる

⇒ ネットワークアドレス

IPアドレス(3)

page 11

ネットワークアドレス

データリンクのセグメント毎に割り当てられる

同じネットワークアドレスを持つホストは データリンク層のプロトコルによる直接通信が可能

10.1.1.1 / 24

10.1.2.1 / 24

10.1.1.2 / 24

10.1.1.4 / 24

10.1.1.3 / 24

10.1.2.23 / 24

10.1.2.85 / 24 10.1.2.193 / 24

ネットワークの境界

IPアドレス(4)

page 12

IPアドレスの割り当て(1) ネットワークアドレスを考慮して割り当てを行う

router bridge 10.1.4.1 / 24

10.1.13.1 / 24

10.1.6.1 / 24 10.1.6.2 / 24

10.1.6.3 / 24

10.1.6.4 / 24

10.1.6.5 / 24 10.1.13.23 / 24 10.1.13.126 / 24 10.1.13.11 / 24

10.1.4.45 / 24

10.1.4.13 / 24

bridgeはLayer2の通信を中継

ホスト部は(重複しなければ)ランダムに割り当ててもよい

routerにもIPアドレスは割り当てられる

ホスト部は連番で割り当ててもよい

routerとの L2通信が可能

ネットワークアドレスを割り当てる

IPアドレス(5)

page 13

IPアドレスの割り当て(2)

ネットワークの境界はどこでしょう?

router bridge 10.1.4.1 / 24

10.1.13.1 / 24

10.1.6.1 / 24 10.1.6.2 / 24

10.1.6.3 / 24

10.1.6.4 / 24

10.1.6.5 / 24 10.1.13.23 / 24 10.1.13.126 / 24 10.1.13.11 / 24

10.1.4.45 / 24

10.1.4.13 / 24

IPアドレス(6)

IPアドレスのクラス ネットワーク部とホスト部を分けるためのルール

クラスA : 0.0.0.0 / 8 ~ 127.0.0.0 / 8

クラスB : 128.0.0.0 / 16 ~ 191.255.0.0 / 16

先頭 8bit がネットワーク部

クラスC : 192.0.0.0 / 24 ~ 223.255.255.0 / 24

クラスD : 224.0.0.0 ~ 239.255.255.255

先頭 16bit がネットワーク部

先頭 24bit がネットワーク部

マルチキャストアドレス(ネットワーク部は無い)

IPアドレス(7)

サブネットマスク(1) アドレスのクラス分けは無駄が多い

クラスA : 0.0.0.0 / 8 ~ 127.0.0.0 / 8 先頭 8bit がネットワーク部

11.0.0.0 / 8 のネットワークには 16777214 個のホストを接続することができる

例えば:

⇒ 1個のネットワークに接続できるホスト数は限られる

1600万個以上のアドレスが使用されない

IPアドレス(8)

page 16

サブネットマスク(2) ネットワーク部とホスト部を判別するための情報

: 192.168.34.199 IPアドレス サブネットマスク : 255.255.255.0

192.168.34.199

ネットワーク部 ホスト部

192.168.34.199 / 24 サブネットマスクを含んだIPアドレス表記法

特殊なIPアドレス(1)

page 17

ブロードキャストアドレス

ホスト部のビットがすべて 1 のアドレス ネットワーク内の全てのホスト宛てのアドレス

10.1.1.1 / 24

10.1.2.1 / 24

10.1.1.2 / 24

10.1.1.4 / 24

10.1.1.3 / 24

10.1.2.23 / 24

10.1.2.85 / 24 10.1.2.193 / 24 10.1.1.255 宛て

特殊なIPアドレス(2)

page 18

ホスト部の設定方法

ホスト部に指定できないアドレスがある すべてのビットが 1 のアドレス

(ブロードキャストアドレス)

すべてのビットが 0 のアドレス(予約アドレス) 10.1.0.0 / 16 ⇒ 10.1.255.255

10.1.0.0 / 16 ⇒ 10.1.0.0

10.1.0.0 / 16 のネットワークに収納できるホストの数 例えば :

65536 (2の16乗) - 2 = 65534個

特殊なIPアドレス(3)

page 19

プライベートアドレス

IPアドレスはホストを一意に識別するための識別子 インターネット上でIPアドレスが重複してはならない ⇒ 通常、IPアドレスを自由に設定することは出来ない

自由に設定できるIPアドレス:プライベートアドレス

独自のネットワーク内で自由に設定できる 10.0.0.0 / 8, 172.16.0.0 / 12, 192.168.0.0 / 16

インターネットでの通信にはNATなどの仕組みが必要

経路制御(1)

ルーティング(経路制御)

目的のノードまでパケット(データ)を届ける機能

(a1)

(a2)

(a3) (e1)

(d1) (d2)

(d0)

(b0) (a0)

(b1)

(b3)

(b2)

(c0) (c1)

(e0)

(e2)

d1

page 20

経路制御(2)

ルーティング(経路制御) ノードは直接接続されているノードしか知らない

⇒ データ(パケット)を中継する機能が必要

(a1)

(a2)

(a3) (e1)

(d1) (d2)

(d0)

(b0) (a0)

(b1)

(b3)

(b2)

(c0) (c1)

(e0)

(e2) page 21

(a1) が直接通信できる範囲 (d1) が直接通信できる範囲

経路制御(3)

ルーティングテーブル(経路制御表)

パケットを中継する先を設定した経路表

(a1)

(a2)

(a3) (e1)

(d1) (d2)

(d0)

(b0) (a0)

(b1)

(b3)

(b2)

(c0) (c1)

(e0)

(e2)

d1

page 22

d? => b2 e? => c1

経路制御(4)

page 23

ルーティングテーブル

目的地・中継先はIPアドレスで指定する

Destination Gateway Flags Refs Use Netif default 130.34.209.1 UGS 0 105935521 fxp1 10.128/16 10.137.0.2 UG1 0 439517 fxp0 10.134/16 130.34.209.16 UG1 0 2 fxp1 10.137.1/24 10.137.240.2 UGS 0 2015273 tun0 10.137.2/24 10.137.240.2 UGS 0 983298 tun0 10.137.3/24 10.137.240.2 UGS 0 340944 tun0 10.137.240/25 10.137.240.2 UGS 0 131655 tun0 10.137.240.2 10.137.240.1 UH 5 0 tun0 172.16.50/24 10.137.240.2 UG1 0 222 tun0

ルーティングテーブルの例

経路制御(5)

ルーティングテーブルの設定(1)

(10.1.1.2/24)

(10.1.1.3/24)

(10.1.1.4/24) (10.1.5.2/24)

(10.1.4.2/24) (10.1.4.3/24)

(10.1.4.1/24)

(10.1.2.1/24) (10.1.1.1/24)

(10.1.2.2/24)

(10.1.2.4/24)

(10.1.2.3/24)

(10.1.3.1/24) (10.1.3.2/24)

(10.1.5.1/24)

(10.1.5.3/24)

page 24

10.1.3.0/24

10.1.0.0/24 10.1.2.0/24 10.1.4.0/24

10.1.5.0/24

サブネットワークの情報を整理する

経路制御(6)

ルーティングテーブルの設定(2)

(10.1.1.2/24)

(10.1.1.3/24)

(10.1.1.4/24) (10.1.5.2/24)

(10.1.4.2/24) (10.1.4.3/24)

(10.1.4.1/24)

(10.1.2.1/24) (10.1.1.1/24)

(10.1.2.2/24)

(10.1.2.4/24)

(10.1.2.3/24)

(10.1.3.1/24) (10.1.3.2/24)

(10.1.5.1/24)

(10.1.5.3/24)

page 25

直接通信できるネットワーク 10.1.4.0/24

10.1.5.0/24

中継が必要となるネットワーク(ノード)を探す

経路制御(7)

ルーティングテーブルの設定(3)

(10.1.1.2/24)

(10.1.1.3/24)

(10.1.1.4/24) (10.1.5.2/24)

(10.1.4.2/24) (10.1.4.3/24)

(10.1.4.1/24)

(10.1.2.1/24) (10.1.1.1/24)

(10.1.2.2/24)

(10.1.2.4/24)

(10.1.2.3/24)

(10.1.3.1/24) (10.1.3.2/24)

(10.1.5.1/24)

(10.1.5.3/24) page 26

目的ノード : 中継ノード 10.1.4.0/24 : 10.1.2.3 10.1.5.0/24 : 10.1.3.2

ルーティングテーブルを設定する

経路制御(8)

デフォルトルート

(10.1.1.2/24)

(10.1.1.3/24)

(10.1.1.4/24) (10.1.5.2/24)

(10.1.4.2/24) (10.1.4.3/24)

(10.1.4.1/24)

(10.1.2.1/24) (10.1.1.1/24)

(10.1.2.2/24)

(10.1.2.4/24)

(10.1.2.3/24)

(10.1.3.1/24) (10.1.3.2/24)

(10.1.5.1/24)

(10.1.5.3/24) page 27

default : 10.1.2.1

経路情報に登録されていないノード宛のパケットの中継先 ⇒ すべてのノードを登録する必要はない

経路制御(9)

page 28

ルーティングテーブル

Destination Gateway Flags Refs Use Netif default 130.34.209.1 UGS 0 105935521 fxp1 10.128/16 10.137.0.2 UG1 0 439517 fxp0 10.134/16 130.34.209.16 UG1 0 2 fxp1 10.137.1/24 10.137.240.2 UGS 0 2015273 tun0 10.137.2/24 10.137.240.2 UGS 0 983298 tun0 10.137.3/24 10.137.240.2 UGS 0 340944 tun0 10.137.240/25 10.137.240.2 UGS 0 131655 tun0 10.137.240.2 10.137.240.1 UH 5 0 tun0 172.16.50/24 10.137.240.2 UG1 0 222 tun0

top related