Presentation is loading. Please wait.

Presentation is loading. Please wait.

N チャンネル通信のための 経路制御 200703006 小川 真人 木下研究室. Nチャンネル通信 N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。

Similar presentations


Presentation on theme: "N チャンネル通信のための 経路制御 200703006 小川 真人 木下研究室. Nチャンネル通信 N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。"— Presentation transcript:

1 n チャンネル通信のための 経路制御 200703006 小川 真人 木下研究室

2

3

4 Nチャンネル通信 N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。

5 N 本の経路を用意すれば良い しかし、実装するにあたっ て 次のような問題点がある

6 一般のネットワーク

7 インターネット等の通信 指定したルートでデーターを送ることはで きない。

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

9 提案手法 n チャンネルまでの流れ N 本の経路を用いた通信をしたい しかし、ルーターが最短経路を選択してしま う ために不可能 ↓ そこで、ソースルーティングに着目した

10 ソースルーティング ソース・ルート・オプションの形式 SSRR ( strict soruce and record route )というオプ ションを使用する。 IP アドレスのリストを送信前に埋め込まなければ ならない。 ソース・ルート・オプションはデータグラムが 経路を通過するごとに IP アドレスリストが更新さ れる。 コー ド データ 長 ポイン タ IP アドレス #1 IP アドレス #2 IP アドレス #3 ・・ ・・ ・ IP アドレ ス#9 1114バイト ・・ ・・ ・ 4バイト 39 バイ ト

11 実験の概要 パソコン 4 台を使用し、 A 、 B のパソコンを任 意に選択し通信できるか、実験した net1 net4 net2 net3 192.168.1.1 192.168.2.1 192.168.2.3 192.168.4.3 192.168.4.4 192.168.3.4 192.168.3.2192.168.1.2 eth1 eth2 eth1

12 送信プログラム LSR SourceRoute; memset(&SourceRoute,0,sizeof(LSR)); SourceRoute.Nop = IPOPT_NOP; SourceRoute.Code = 0x89; SourceRoute.Len = 11; SourceRoute.Offset = 4; SourceRoute.Addrs[0] = inet_addr("192.168.1.2"); SourceRoute.Addrs[1] = inet_addr("192.168.3.4"); setsockopt(sock,IPPROTO_IP,IP_OPTIONS,(char*)&SourceRoute,SourceRoute.Len+1) ; n = sendto(sock, "HELLO-1", 7, 0, (struct sockaddr *)&addr, sizeof(addr)); if (n < 1) { perror("sendto"); return 1; }

13 送信プログラム LSR SourceRoute; memset(&SourceRoute,0,sizeof(LSR)); SourceRoute.Nop = IPOPT_NOP; SourceRoute.Code = 0x89; SourceRoute.Len = 11; SourceRoute.Offset = 4; SourceRoute.Addrs[0] = inet_addr("192.168.1.2"); SourceRoute.Addrs[1] = inet_addr("192.168.3.4"); setsockopt(sock,IPPROTO_IP,IP_OPTIONS,(char*)&SourceRoute,SourceRoute.Len+1) ; n = sendto(sock, "HELLO-1", 7, 0, (struct sockaddr *)&addr, sizeof(addr)); if (n < 1) { perror("sendto"); return 1; } 192.168.1.2 を通り 192.168.3.4 に 着くように設定 SSRR を指定

14 実験の結果

15 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 010b c0a8./..@.?..v...... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c8e8................ 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細

16 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 010b c0a8./..@.?..v...... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c8e8................ 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 時刻; HH:MM:SS. マイク ロ秒 192.168.1.1 のポート 50002 から 192.168.3.4 のポート 12345 に UDP で 7 文字 ( HELLO-1 )

17 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8./..@.?......... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352................R 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 08:00:27:a0:03:39 受信側 MAC アドレ ス 08:00:27:a4:22:db 送信側 MAC アドレ ス イーサネットタイプ 0800(IP) Version:4 , ヘッダ長 :8(8x4=32byte) , サービスタイプ :00 , IP から見た全データ長 :002 f (47) イーサネットのプロトコル ヘッ ダと IP ヘッダ ここから IP ヘッダ

18 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8./..@.?......... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352................R 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 識別 ID:0000 フラグメント :4000( オク テッ ト ) 生存時間( TTL ) :3f(63) プロトコル :11(17=UDP) チェックサム 1 f 76 IP ヘッダ

19 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8./..@.?......... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352................R 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 送信元 IP アドレ ス :192.168.1.1 送信先 IP アドレ ス :192.168.3.4 (受信側) オプショ ン: 01 0 x 89 : SSRR SourceRoute.Len : 0b(11) SourceRoute.Offset :08 IP ヘッダ

20 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8./..@.?......... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352................R 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 経由アドレス :192.168.3.2 送信先 IP アドレ ス :192.168.3.4 (受信側) IP ヘッダ

21 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8./..@.?......... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352................R 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 ポート番号: c352(50002) ポート番号: 3039 (12345) ここからが UDP のヘッ ダ

22 listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7 0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800..'..9..'."...H. 0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8./..@.?......... 0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352................R 0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1 パケットの詳細 データ: 4845 4c4c 4f2d 31 ( HELLO- 1 ) UDP から見たデータ長 :000f(15byte) チェックサム :6c8f UDP のヘッダ とデータ

23 禁止設定の解除 各ホストで、 /etc/sysctl.conf を以下のように修正する。 # があれば外して、項目が無ければ追加する。 net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.ip_forward=1 net.ipv4.conf.all.accept_source_route = 1 この設定をしないと、ソースルーティングができない。

24 まとめ ・nチャンネル通信の実装手法としてソースルー ティングを用いることを提案した ・送信パケットのヘッダにオプションを加えるだけ で済むため、ネットワークに負荷をかけずに実現が 可能である ・パケットに経路情報を付け加えるだけで、複数の 経路に異なるデータを同時に送信できることを実験 によって確認できた ・ソースルーティングはその危険性のため、各ルー ターごとに設定を解除する必要があることが分かっ た

25 ①ルート検索を自動で行い、ソースルー ティングを自動的に行えるようにする ②ソースルーティングは危険性があるため に、制限されているので、対策を考える ③ IP v6ではルーティングヘッダを付ける だけでソースルーティングが可能になった ので、 IPv6 での実装も今後の課題である 課題


Download ppt "N チャンネル通信のための 経路制御 200703006 小川 真人 木下研究室. Nチャンネル通信 N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。"

Similar presentations


Ads by Google