More Related Content
Similar to 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
Similar to 法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用 (20)
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
- 1. WEB公開版
コンピュータネットワーク
第12回授業
データグラム(UDP)と
ストリーム(TCP)の処理
WEB公開版のため、
内容は大幅に抜粋・修正してあります。
1
- 2. WEB公開版
法政大学情報科学部
2012年度コンピュータネットワーク
2012年4月10日~2012年7月19日
第1回 イントロダクション
第2回 デジタル伝送技術
第3回 誤り訂正と通信の信頼性
第4回 イーサネットとデータリンクの仮想化
第5回 LANの拡張と無線技術
第6回 遠距離通信とインターネットへの接続
第7回 後半授業の準備
第8回 通信の種類とフロー制御の基本
第9回 大規模ネットワークの構築と運用
第10回 4種類のルーティング
第11回 制御パケットとセッション層のネットワーク
第12回 データグラムとストリームの処理
第13回 インターネットのインフラストラクチャ
第14回 ネットワークのモニタリングとチューニング 2
- 3. WEB公開版
1対1 通信の種類は3つ
1対多
多対多
TCPは1対1
UDPは1対多
が定石!
3
- 4. WEB公開版
OSI参照モデル別概要 (トランスポートまで)
1対1
TCPパケット
終端点が接続さ
れた後で使う。
1対多
IPパケット
多数のマシンがルー
タと通信するが、
ルータはブロード
キャストしない。
多対多
ARPパケット
それぞれのマシン
が不特定多数に
送信できる! 4
- 5. WEB公開版
なぜポート番号が必要なのか?
1つのOSで複数のアプリが通信するため
5
- 7. ポート番号とデマルチプレクサ
ポート番号に
A,Bの組み合わせを APPLICATION APPLICATION APPLICATION
入力して割り振る。 1 2 3
TCP UCP
IP
WEB公開版 7
- 9. WEB公開版
ストリームとデータグラム
UDPが処理するのは
データグラム
時系列同士は
影響しない。
ヘッダ(パリティ)などが
付加されている。
TCPが処理するのは
ストリーム
過去の系列が現在の
系列に影響する。
9
- 10. WEB公開版
ステートマシン(畳み込み符号)
vs 代数系演算(ブロック符号)
畳み込み符号の生
成にはこのようなス
テートマシンを使う。
ブロック暗号の
代数系演算に使う
シフトレジスタ
10
- 11. WEB公開版
ブロック符号と
畳み込み(ストリーム)符号
11
- 12. WEB公開版
ブロック暗号とストリーム暗号
鍵1
生成器
鍵2
鍵を使ってブロックごとに 擬似乱数を使って
暗号化。 1ビットずつ暗号化。
RSA, SSH, SSL RC4, CDMA
12
- 14. WEB公開版
ストリームの復号と系列推定
S S+E
ループ演算、繰り返し復号
(ソフトウェアで処理する場合が
多い)を用いて
S+EからSを復元する!
14
- 15. WEB公開版
コネクション型と
ARQ(自動再送要求制御)
TCP
15
- 16. WEB公開版
誤り訂正方式の種類
TCPでは、ARQを用いて
実装コストを
ARQ(Automatic Repeat reQuest)- 下げている!
自動再送要求
特徴
– パケットが損失した場合、自動的に再送される
再送処理のオーバヘッドがあるため、リアルタイム伝送には向かない
FEC(Forward Error Correction)-前方誤り訂正
特徴
– パケット数個ごとに冗長パケットを生成,送信
– パケットが損失しても、冗長パケットから復元できる。
再送処理がないためリアルタイムの伝送処理に適している。
16
- 17. WEB公開版
TCPの基本機能
①信頼性のある通信
3ウェイハンドシェイク
シーケンス番号を使った確認応答
③再送処理
再送要求とタイムアウト時間の調整
④動的なフロー制御
スライディングウインドウ
輻輳制御
17
- 18. WEB公開版
TCPと言えば・・・
TCP
確認応答 ウィンドウサイズ
再送処理 輻輳制御
18
- 19. WEB公開版
TCPパケット
高信頼性の
送信元ポート番号 あて先ポート番号 ある通信
再送処理
(第10回)
シーケンス番号
3ウェイ
ハンド
シェイク
確認応答番号
誤り検出
(2回~4回) ヘッダ長 制御 ウィンドウサイズ
フロー制御
チェックサム 緊急ポインタ 輻輳制御
19
- 22. WEB公開版
シーケンス番号の付け方(送信側)
TCP/IPではデータを
分割して送信できる!
データは、MSS
(Maximum Segment Size)に分割する。
この場合はMSS=1000 22
- 23. WEB公開版
TCP再送:受信側が要求するケース
シーケンス
番号は2001
では?
想定されたシーケン
ス番号と異なるパケッ
トが来た場合
再送する。
( `∀´)b 23
- 24. WEB公開版 TCP再送:送信側が再送するケース
しばらく待って
も確認応答3
001のパケッ
トが来ないの
で再送。
( `∀´)b
24
- 25. WEB公開版
コネクションレス型と
FEC(前方誤り訂正)型制御
UDP
25
- 26. WEB公開版
誤り訂正方式の種類
ARQ(Automatic Repeat reQuest)-
自動再送要求
特徴
– パケットが損失した場合、自動的に再送される
再送処理のオーバヘッドがあるため、リアルタイム伝送には向かない
FEC(Forward Error Correction)-前方誤り訂正
特徴
– パケット数個ごとに冗長パケットを生成,送信
– パケットが損失しても、冗長パケットから復元できる。
再送処理がないためリアルタイムの伝送処理に適している。
携帯電話やアプリケーションレイヤでの 26
誤り訂正ではFECを使うことが多い!
- 27. WEB公開版
シャノン限界と誤り訂正符号
LDPC、Raptor符号 ターボ符号
(゚Д゚#) (゚Д゚#) 27
- 28. WEB公開版
2つの誤り訂正符号
①ブロック符号
ガロア体上での除算、乗算を使う。
ハミング符号、BCH符号、リードソロモン符号
最新の符号→LDPC
②畳み込み符号
擬似乱数(M系列)等を使った系列相関を使う。
CDMA、ビタビ符号、ターボ符号
最新の符号→ターボ符号
28
- 29. WEB公開版
ステートマシン(畳み込み符号)
vs 代数系演算(ブロック符号)
O1
畳み込み符号の生
成にはこのようなス
テートマシンを使う。
X1 X2
ブロック暗号の
代数系演算に使う
O2 シフトレジスタ
O0 O1 O2 G(x)
O0 O1 O2
F(x)
29
- 30. WEB公開版
畳み込み符号はステートマシンを
使って生成する。
O1
X=(a1,a0)
内部状態
O2
①入力する
①内部状態
a0とa1が変わる。
③V,Uが出力され
る。
i/Y
i:入力
Y:(O1,O2):出力 30
- 31. WEB公開版
ブロック符号とは
①GF(2^m)上の演算により生成される符号。
②G(x)*H(x)=0となるように生成される。
G(x)は原始多項式:
G(x)=X^4+X+1など
③H(x)の生成方法:G(x)をフィードバック付き
シフトレジスタであらわし、出力をH(x)とする!
31
- 32. WEB公開版
始めに0を入
力すると出力
は決定論的 ブロック符号とシフトレジスタ
に決まる!
O1 O2 G(x)
O0 O1 O2
O2
F(x)
X^2 X^3
X^0
0000000
001 1 0011101 もう少し大きな符
010 2 0111010 号を生成すると
100 4 周期7 1110100 後半3ビットが誤り
011 3 (2^3-1)の 訂正に使える
1101001
110 6 擬似乱数が 1010011 符号が
111 7 生成される。 0100111 生成できる!
101 5 1001110
001 1 0011101 32
- 33. WEB公開版
多項式
• 既約多項式:その式より次数の低い多項式
で割り切れない多項式
• 原始多項式:既約でさらに周期が最大の多項
式
• 生成多項式:符号生成時の除算時に使う多
項式
33
- 34. WEB公開版
有限体:ガロア体
GF(2)
①ガロア体とは整数を素数で除算した余りの集合であり、要素
が有限で四則演算が閉じている集合である。 - WikiPedia
②つまりA とB という整数があり、任意の素数X で演算結果を
割ることで、通常の演算とは違う空間にA+B を写像する。
• (0 + 0) / 2 = 0
• (1 + 0) / 2 = 1
• (0 + 1) / 2 = 1
• (1 + 1) / 2 = 0
34
- 35. WEB公開版
有限体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 + X
X^5は(0110)を割り当てることができる。
G(X)=X^4+X+1上で四則演算ができる集合を体という。
35
- 36. WEB公開版
有限体(GF)の演算は
シフトレジスタ回路と相性が良い
O0 O2 G(x)
O1
O0 O1 O2
O2
F(x)
X^2 X^3
X^0 X^1
このシフトレジスタで、 係数の有無が
GF(2^3):G(X)=x^3+ x + 1 フィードバックの位
の演算ができる! 置に対応している。
36
- 37. WEB公開版
パリティやチェック
サムなど 2種類の誤り訂正方式
TCPが使う!
ARQ(Automatic Repeat reQuest)-
自動再送要求 FECでは
有限体の演算
を用いる!
特徴
– 損失したパケットを自動的に再送する方法
• 再送処理のオーバヘッドのためリアルタイム伝送に向かない
•
FEC(Forward Error Correction)-前方誤り訂正
特徴
– パケット数個ごとに冗長パケットを生成,送信
– パケット損失が発生すれば,冗長パケットから復元
• 再送処理がないためリアルタイム伝送に向く
携帯電話やアプリケーションレイヤでの 37
誤り訂正ではFECを使う。
- 38. WEB公開版
2つのFEC型誤り訂正符号
①ブロック符号
ガロア体上での除算、乗算を使う。
ハミング符号、BCH符号、リードソロモン符号
最新の符号→LDPC
②畳み込み符号
擬似乱数(M系列)等を使った系列相関を使う。
CDMA、ビタビ符号、ターボ符号
最新の符号→ターボ符号
38
- 39. WEB公開版 ブロック符号では代数的演算で
復号を行う。
送受信でGを
共有しておく。
GS=0
GS=0と
なるように
Sを生成 送信の過程
でE(エラー)
が混入 EGをエラー
WEB公開版 シンドロームという。 39
- 40. WEB公開版 たたみ符号では系列推定で
復号を行う。
Sを原因
S+Eを結果と
考える!
S S+E
S+Eの原因は
なんだったの
かを推定する
ためにベイジ
アンネットワー
伝送路中でE(エラーやノイズ)が クなどを使う。
混じったS+Eから、
Sを推定する。
(またはEを除去する)。 40
- 41. WEB公開版
巡回冗長符号
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 なら誤りあり。(位置も特定できる)
41
- 43. WEB公開版 FECなブロック符号の例2
ハミング符号:エラーシンドローム:EG
送受信でGを
共有しておく。
GS=0
GS=0と
なるように
Sを生成 送信の過程
でE(エラー)
が混入 EGをエラー
シンドロームという。 43
- 44. WEB公開版
始めに0を入
ブロック符号:
力すると出力 シフトレジスタによる生成
は決定論的
に決まる! O0
O1 O2
O0 O1 O2
O2
F(x)
X^2 X^3
X^0 X^1 0000000
001 1 0011101 もう少し大きな符
010 2 0111010 号を生成すると
100 4 周期7 1110100 後半3ビットが誤り
011 3 (2^3-1)の 訂正に使える
1101001
110 6 擬似乱数が 1010011 符号が
111 7 生成される。 0100111 生成できる!
101 5 1001110
001 1 0011101 44
- 45. WEB公開版
積・商と原始多項式演算
① 【積】GF(2^4)上での計算:G(X)=X^4+X+1
G(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=1
a / a^5 = a^16 / a^5 = a^11
a^11 = a^3 + a^2 + a
(0,0,1,0) / (0,1,1,0) = (1,1,1,0)
45
- 46. WEB公開版
積・商はシフトレジスタで計算できる
a*a = (0,0,1,0) * (0,0,1,0) = (0,1,0,0) = a^2
a^2 * a = (0,1,0,0) * (0,0,1,0) = (1,0,0,0) = a^3
a^3 * a = (1,0,0,0) * (0,0,1,0) = (0,0,1,1) = a^4
+
+
46
- 47. WEB公開版
2つのFEC型誤り訂正符号
①ブロック符号
ガロア体上での除算、乗算を使う。
ハミング符号、BCH符号、リードソロモン符号
最新の符号→LDPC
②畳み込み符号
擬似乱数(M系列)等を使った系列相関を使う。
CDMA、ビタビ符号、ターボ符号
最新の符号→ターボ符号
47
- 48. WEB公開版
畳み込み符号はステートマシンを
使って生成する。
O1
X=(a1,a0)
内部状態
O2
①入力する
①内部状態
a0とa1が変わる。
③V,Uが出力され
る。
i/Y
i:入力
Y:(O1,O2):出力 48
- 49. WEB公開版
系列推定とは?
Sを原因
S+Eを結果と
考える!
S S+E
S+Eの原因は
なんだったの
かを推定する
ためにベイジ
アンネットワー
伝送路中でE(エラーやノイズ)が クなどを使う。
混じったS+Eから、
Sを推定する。
(またはEを除去する)。 49
- 50. WEB公開版
付録:
組み合わせ回路から
ステートマシン
50
- 51. WEB公開版
ステートマシンとは
入力と時間によって状態が変化する。
入力とクロックに
より内部状態と出 シンプルな
力が変わる。 ステートマシンでは
内部状態=出力。
「一定時間経過する」
「外部電源を落とす」
などは割り込みやタイ
マー入力が対応。
51
- 52. WEB公開版
記憶の原型:フリップフロップ
入力 出力
S R Q
0 0 保持
0 1 0
1 0 1
1 1 不定
論理演算子(∧、¬など)は通常、入出力を持つが状態はない。
RとSの一瞬の状態を保持することができる。
52
- 53. WEB公開版
クロックを扱うDフリップフロップ
次のステー
D C
トのQ
0 ↑ 0
1 ↑ 1
× ↓ そのまま
クロックの立ち上がりの時
のDの値が次の状態
(出力)を決める。
53
- 54. WEB公開版
クロックには4状態ある。
誤り検出訂正や
符号理論はここ
11/00を見る。
ステートマシンや状態遷移図の
設計はここ 01/10 も見る!
54
- 55. WEB公開版
Dフリップフロップ
次のステート
D C
のQ
0 ↑ 0
1 ↑ 1
× ↓ そのまま
クロックの立
ち上がりの値
を保持する。
55
- 56. WEB公開版
Tフリップフロップ
次のステート
D C
のQ
0 ↑ 0
1 ↑ 1
× ↓ そのまま
クロックの立
ち上がりの値
を保持する。
56
- 57. WEB公開版
割り込み:一定時間経つと….
D CLK1 CLK2 Q1 Q2
0 ↑ ↓ 0 1
1 ↑ ↓ 1 0
× ↓ ↓ 保 保
D,CLKの値に関わらず割り込
みがかかると 0 ↑ ↑ 1 1
Q1=1 Q2=1になる! 1 ↑ ↑ 1 57
1