57
1 コンピュータネットワーク 第12回授業 データグラム(UDP)ストリーム(TCP)の処理 WEB公開版のため、 内容は大幅に抜粋・修正してあります。 WEB公開版

法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

Embed Size (px)

Citation preview

Page 1: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

1

コンピュータネットワーク

第12回授業 データグラム(UDP)と

ストリーム(TCP)の処理

WEB公開版のため、

内容は大幅に抜粋・修正してあります。

WEB公開版

Page 2: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

2

法政大学情報科学部 2012年度コンピュータネットワーク

2012年4月10日~2012年7月19日

第1回

イントロダクション第2回

デジタル伝送技術

第3回

誤り訂正と通信の信頼性第4回

イーサネットとデータリンクの仮想化

第5回

LANの拡張と無線技術

第6回

遠距離通信とインターネットへの接続第7回

後半授業の準備

第8回

通信の種類とフロー制御の基本第9回

大規模ネットワークの構築と運用

第10回

4種類のルーティング第11回

制御パケットとセッション層のネットワーク

第12回

データグラムとストリームの処理第13回

インターネットのインフラストラクチャ

第14回

ネットワークのモニタリングとチューニング

WEB公開版

Page 3: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

3

通信の種類は3つ1対1

1対多

多対多

TCPは1対1UDPは1対多

が定石!

WEB公開版

Page 4: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

4

OSI参照モデル別概要

(トランスポートまで)

多対多

1対多

1対1

ARPパケットそれぞれのマシン

が不特定多数に送信できる!

IPパケット多数のマシンがルー

タと通信するが、

ルータはブロード

キャストしない。

TCPパケット

終端点が接続さ

れた後で使う。

WEB公開版

Page 5: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

5

なぜポート番号が必要なのか? 1つのOSで複数のアプリが通信するため

WEB公開版

Page 6: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

6

ポート番号とマルチプレクサ

TCP UCP

IP

マルチプレクサのA,Bにあたるモノが

ポート番号!

APPLICATION1

APPLICATION2

APPLICATION3

WEB公開版

Page 7: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

7

ポート番号とデマルチプレクサ

TCP UCP

IP

ポート番号にA,Bの組み合わせを

入力して割り振る。

APPLICATION1

APPLICATION2

APPLICATION3

WEB公開版

Page 8: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

8

TCPとUDPWEB公開版

Page 9: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

9

ストリームとデータグラム

TCPが処理するのは

ストリーム過去の系列が現在の系列に影響する。

UDPが処理するのは

データグラム時系列同士は影響しない。

ヘッダ(パリティ)などが

付加されている。

WEB公開版

Page 10: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

10

ステートマシン(畳み込み符号) vs 代数系演算(ブロック符号)

ブロック暗号の代数系演算に使うシフトレジスタ

畳み込み符号の生

成にはこのようなス

テートマシンを使う。

WEB公開版

Page 11: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

11

ブロック符号と

畳み込み(ストリーム)符号

WEB公開版

Page 12: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

12

ブロック暗号とストリーム暗号

鍵を使ってブロックごとに暗号化。

RSA, SSH, SSL

擬似乱数を使って1ビットずつ暗号化。

RC4, CDMA

WEB公開版

鍵1

鍵2

生成器

Page 13: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

13

データグラム(ブロック)の復号と

代数演算

復号に必要な乗算、除算はハードウェア

(シフトレジスタ)を用い

て行う!

WEB公開版

Page 14: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

14

ストリームの復号と系列推定

S S+E

ループ演算、繰り返し復号(ソフトウェアで処理する場合が

多い)を用いてS+EからSを復元する!

WEB公開版

Page 15: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

15

コネクション型と ARQ(自動再送要求制御)

TCP

WEB公開版

Page 16: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

16

誤り訂正方式の種類

ARQ(Automatic Repeat reQuest)-自動再送要求

特徴– パケットが損失した場合、自動的に再送される

再送処理のオーバヘッドがあるため、リアルタイム伝送には向かない

FEC(Forward Error Correction)-前方誤り訂正

特徴– パケット数個ごとに冗長パケットを生成,送信– パケットが損失しても、冗長パケットから復元できる。

再送処理がないためリアルタイムの伝送処理に適している。

TCPでは、ARQを用いて

実装コストを下げている!

WEB公開版

Page 17: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

17

TCPの基本機能

①信頼性のある通信3ウェイハンドシェイクシーケンス番号を使った確認応答

③再送処理再送要求とタイムアウト時間の調整

④動的なフロー制御スライディングウインドウ輻輳制御

WEB公開版

Page 18: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

18

TCPと言えば・・・

TCP

確認応答 ウィンドウサイズ

再送処理 輻輳制御

WEB公開版

Page 19: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

19

TCPパケット

送信元ポート番号 あて先ポート番号

シーケンス番号

確認応答番号

ヘッダ長 ウィンドウサイズ制御

チェックサム 緊急ポインタ

高信頼性の

ある通信再送処理(第10回)

誤り検出(2回~4回)

3ウェイハンドシェイク

フロー制御輻輳制御

WEB公開版

Page 20: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

20

TCP:3-way ハンドシェイク

SYN: synchronizeACK: acknowledge

フラグの種類SYN, ACK, PSH, RST, URG, FIN

WEB公開版

Page 21: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

21

TCP:確認応答

確かめながら送る。

送信したシーケンス番号2001

のパケットの確認応答がでない

場合、再送する。

返信側の確認応答番号は次に送ってほしいデータの先頭番号(シーケンス番号)

WEB公開版

Page 22: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

22

シーケンス番号の付け方(送信側)

データは、MSS (Maximum Segment Size)に分割する。

この場合はMSS=1000

TCP/IPではデータを

分割して送信できる!

WEB公開版

Page 23: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

23

TCP再送:受信側が要求するケース

想定されたシーケン

ス番号と異なるパケッ

トが来た場合再送する。

シーケンス番号は2001では?

( `∀´)b

WEB公開版

Page 24: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

24

TCP再送:送信側が再送するケース

しばらく待って

も確認応答3

001のパケッ

トが来ないの

で再送。

( `∀´)b

WEB公開版

Page 25: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

25

コネクションレス型と FEC(前方誤り訂正)型制御

UDP

WEB公開版

Page 26: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

26

誤り訂正方式の種類

ARQ(Automatic Repeat reQuest)-自動再送要求

特徴– パケットが損失した場合、自動的に再送される

再送処理のオーバヘッドがあるため、リアルタイム伝送には向かない

FEC(Forward Error Correction)-前方誤り訂正

特徴– パケット数個ごとに冗長パケットを生成,送信– パケットが損失しても、冗長パケットから復元できる。

再送処理がないためリアルタイムの伝送処理に適している。

携帯電話やアプリケーションレイヤでの誤り訂正ではFECを使うことが多い!

WEB公開版

Page 27: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

27

シャノン限界と誤り訂正符号

ターボ符号(゚Д゚#)

LDPC、Raptor符号(゚Д゚#)

WEB公開版

Page 28: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

28

2つの誤り訂正符号

①ブロック符号

ガロア体上での除算、乗算を使う。

ハミング符号、BCH符号、リードソロモン符号

最新の符号→LDPC

②畳み込み符号

擬似乱数(M系列)等を使った系列相関を使う。

CDMA、ビタビ符号、ターボ符号

最新の符号→ターボ符号

WEB公開版

Page 29: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

29

ステートマシン(畳み込み符号) vs 代数系演算(ブロック符号)

ブロック暗号の代数系演算に使うシフトレジスタ

畳み込み符号の生

成にはこのようなス

テートマシンを使う。

WEB公開版

O1

O0

O2

X2X1

O0

O1

O1 O2

O2 G(x)

F(x)

Page 30: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

30

畳み込み符号はステートマシンを 使って生成する。

X=(a1,a0)内部状態

i/Y i:入力

Y:(O1,O2):出力

①入力する①内部状態

a0とa1が変わる。③V,Uが出力され

る。

O1

O2

WEB公開版

Page 31: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

31

ブロック符号とは

①GF(2^m)上の演算により生成される符号。

②G(x)*H(x)=0となるように生成される。

G(x)は原始多項式:G(x)=X^4+X+1など

③H(x)の生成方法:G(x)をフィードバック付き

シフトレジスタであらわし、出力をH(x)とする!

WEB公開版

Page 32: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

32

ブロック符号とシフトレジスタ

0 0 1 10 1 0 21 0 0 40 1 1 31 1 0 61 1 1 71 0 1 50 0 1 1

周期7(2^3-1)の擬似乱数が生成される。

0 0 0 0 0 0 00 0 1 1 1 0 10 1 1 1 0 1 01 1 1 0 1 0 01 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1

もう少し大きな符

号を生成すると後半3ビットが誤り

訂正に使える符号が

生成できる!

X^2

O1

O1 O2

X^3

X^0

O0

G(x)

F(x)

O2

O2

始めに0を入

力すると出力

は決定論的

に決まる!

WEB公開版

Page 33: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

33

多項式

• 既約多項式:その式より次数の低い多項式 で割り切れない多項式

• 原始多項式:既約でさらに周期が最大の多項 式

• 生成多項式:符号生成時の除算時に使う多 項式

WEB公開版

Page 34: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

34

有限体:ガロア体 GF(2)

①ガロア体とは整数を素数で除算した余りの集合であり、要素 が有限で四則演算が閉じている集合である。 - WikiPedia

②つまりA とB という整数があり、任意の素数X で演算結果を 割ることで、通常の演算とは違う空間にA+B を写像する。

• (0 + 0) / 2 = 0• (1 + 0) / 2 = 1• (0 + 1) / 2 = 1• (1 + 1) / 2 = 0

WEB公開版

Page 35: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

35

有限体GF(2^4)G(X)=X^4+X+1上の演算(4次の多項式)

GF(2)の1=-1が成立する。

①X^4 = -(X+1) = X+1なので

X^4は(0011)を割り当ることができる。

②X^5 = X*X4 = X(X+1) = X^2 + XX^5は(0110)を割り当てることができる。

G(X)=X^4+X+1上で四則演算ができる集合を体という。

WEB公開版

Page 36: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

36

有限体(GF)の演算は シフトレジスタ回路と相性が良い

このシフトレジスタで、GF(2^3):G(X)=x^3+ x + 1の演算ができる!

係数の有無がフィードバックの位

置に対応している。

X^2

O1

O1 O2

X^3

X^1X^0

O0

O0

G(x)

F(x)

O2

O2

WEB公開版

Page 37: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

37

2種類の誤り訂正方式

ARQ(Automatic Repeat reQuest)-自動再送要求

特徴– 損失したパケットを自動的に再送する方法

• 再送処理のオーバヘッドのためリアルタイム伝送に向かない•

FEC(Forward Error Correction)-前方誤り訂正

特徴– パケット数個ごとに冗長パケットを生成,送信– パケット損失が発生すれば,冗長パケットから復元

• 再送処理がないためリアルタイム伝送に向く

携帯電話やアプリケーションレイヤでの誤り訂正ではFECを使う。

FECでは

有限体の演算

を用いる!

パリティやチェック

サムなどTCPが使う!

WEB公開版

Page 38: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

38

2つのFEC型誤り訂正符号

①ブロック符号

ガロア体上での除算、乗算を使う。

ハミング符号、BCH符号、リードソロモン符号

最新の符号→LDPC

②畳み込み符号

擬似乱数(M系列)等を使った系列相関を使う。

CDMA、ビタビ符号、ターボ符号

最新の符号→ターボ符号

WEB公開版

Page 39: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

39

ブロック符号では代数的演算で 復号を行う。

GS=0となるようにSを生成

GS=0

送信の過程

でE(エラー)

が混入

送受信でGを

共有しておく。

EGをエラー

シンドロームという。WEB公開版

WEB公開版

Page 40: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

40

たたみ符号では系列推定で

復号を行う。

S S+E

伝送路中でE(エラーやノイズ)が混じったS+Eから、

Sを推定する。(またはEを除去する)。

Sを原因S+Eを結果と

考える!

S+Eの原因は

なんだったの

かを推定する

ためにベイジ

アンネットワー

クなどを使う。

WEB公開版

Page 41: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

41

巡回冗長符号

CDMA方式と同じく、受信側と送信側であらか

じめ、同じ符号G(x)を持っている。

送信側は、符号G(x)を用いて、符号H(x)を生成

して送信。このとき、G(x)*H(x)=0となるようにデータを

生成する。

受信側は、受信した符号H(x)を符号G(x)を用

いて検査する。

H(x) / G(x) = 0 なら誤りなし。

H(x) / G(x) > 0 なら誤りあり。(位置も特定できる)

WEB公開版

Page 42: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

42

1001を生成多項式G(x)=X^3+X+1

を使って1001001に変換 送られてきたH(x)

をG(x)で割って

余りをチェック

WEB公開版

Page 43: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

43

FECなブロック符号の例2 ハミング符号:エラーシンドローム:EG

GS=0となるようにSを生成

GS=0

送信の過程

でE(エラー)

が混入

送受信でGを

共有しておく。

EGをエラー

シンドロームという。

WEB公開版

Page 44: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

44

ブロック符号: シフトレジスタによる生成

0 0 1 10 1 0 21 0 0 40 1 1 31 1 0 61 1 1 71 0 1 50 0 1 1

周期7(2^3-1)の擬似乱数が生成される。

0 0 0 0 0 0 00 0 1 1 1 0 10 1 1 1 0 1 01 1 1 0 1 0 01 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1

もう少し大きな符

号を生成すると後半3ビットが誤り

訂正に使える符号が

生成できる!

X^2

O1

O1 O2

X^3

X^1X^0

O0

O0

F(x)

O2

O2

WEB公開版始めに0を入

力すると出力

は決定論的

に決まる!

Page 45: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

45

積・商と原始多項式演算

① 【積】GF(2^4)上での計算:G(X)=X^4+X+1G(a)=a^4+a+1=0 a^3*a = a^4 = a+1→(1,0,0,0) * (0,0,1,0) = (0,0,1,1)② 【商】2^m -1 = 2^4 -1 = 15 -> a^15=1a / a^5 = a^16 / a^5 = a^11a^11 = a^3 + a^2 + a(0,0,1,0) / (0,1,1,0) = (1,1,1,0)

WEB公開版

Page 46: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

46

積・商はシフトレジスタで計算できる

a*a = (0,0,1,0) * (0,0,1,0) = (0,1,0,0) = a^2a^2 * a = (0,1,0,0) * (0,0,1,0) = (1,0,0,0) = a^3a^3 * a = (1,0,0,0) * (0,0,1,0) = (0,0,1,1) = a^4

WEB公開版

Page 47: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

47

2つのFEC型誤り訂正符号

①ブロック符号

ガロア体上での除算、乗算を使う。

ハミング符号、BCH符号、リードソロモン符号

最新の符号→LDPC

②畳み込み符号

擬似乱数(M系列)等を使った系列相関を使う。

CDMA、ビタビ符号、ターボ符号

最新の符号→ターボ符号

WEB公開版

Page 48: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

48

畳み込み符号はステートマシンを 使って生成する。

X=(a1,a0)内部状態

i/Y i:入力

Y:(O1,O2):出力

①入力する①内部状態

a0とa1が変わる。③V,Uが出力され

る。

O1

O2

WEB公開版

Page 49: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

49

系列推定とは?

S S+E

伝送路中でE(エラーやノイズ)が混じったS+Eから、

Sを推定する。(またはEを除去する)。

Sを原因S+Eを結果と

考える!

S+Eの原因は

なんだったの

かを推定する

ためにベイジ

アンネットワー

クなどを使う。

WEB公開版

Page 50: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

50

付録:

組み合わせ回路から

ステートマシン

WEB公開版

Page 51: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

51

ステートマシンとは

入力と時間によって状態が変化する。

入力とクロックに

より内部状態と出

力が変わる。シンプルな

ステートマシンでは内部状態=出力。

「一定時間経過する」「外部電源を落とす」などは割り込みやタイ

マー入力が対応。

WEB公開版

Page 52: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

52

記憶の原型:フリップフロップ

入力 出力

S R Q

0 0 保持

0 1 0

1 0 1

1 1 不定

論理演算子(∧、¬など)は通常、入出力を持つが状態はない。

RとSの一瞬の状態を保持することができる。

WEB公開版

Page 53: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

53

クロックを扱うDフリップフロップ

D C次のステー

トのQ

0 ↑ 0

1 ↑ 1

× ↓ そのまま

クロックの立ち上がりの時

のDの値が次の状態

(出力)を決める。

WEB公開版

Page 54: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

54

クロックには4状態ある。

誤り検出訂正や符号理論はここ11/00を見る。

ステートマシンや状態遷移図の設計はここ

01/10 も見る!

WEB公開版

Page 55: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

55

Dフリップフロップ

D C次のステート

のQ

0 ↑ 0

1 ↑ 1

× ↓ そのまま

クロックの立

ち上がりの値

を保持する。

WEB公開版

Page 56: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

56

Tフリップフロップ

D C次のステート

のQ

0 ↑ 0

1 ↑ 1

× ↓ そのまま

クロックの立

ち上がりの値

を保持する。

WEB公開版

Page 57: 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

57

割り込み:一定時間経つと….

D CLK1 CLK2 Q1 Q2

0 ↑ ↓ 0 1

1 ↑ ↓ 1 0

× ↓ ↓ 保 保

0 ↑ ↑ 1 1

1 ↑ ↑ 1 1

D,CLKの値に関わらず割り込

みがかかるとQ1=1

Q2=1になる!

WEB公開版