1 / 25

nチャンネル通信のための 経路制御

nチャンネル通信のための 経路制御. 200703006 小川 真人 木下研究室. Nチャンネル通信. N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。. N 本の経路を用意すれば良い   しかし、実装するにあたって   次のような問題点がある. 一般のネットワーク. インターネット等の通信.  指定したルートでデーターを送ることはできない。. 経路制御(ルーティング). 提案手法  n チャンネルまでの流れ. N 本の経路を用いた通信をしたい

max
Download Presentation

nチャンネル通信のための 経路制御

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 一般のネットワーク

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

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

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

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

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

  10. 送信プログラム 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, (structsockaddr *)&addr, sizeof(addr)); if (n < 1) { perror("sendto"); return 1; }

  11. 送信プログラム 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, (structsockaddr *)&addr, sizeof(addr)); if (n < 1) { perror("sendto"); return 1; } 192.168.1.2を通り 192.168.3.4に 着くように設定 SSRRを指定

  12. 実験の結果

  13. パケットの詳細 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

  14. パケットの詳細 192.168.1.1のポート50002から 192.168.3.4のポート12345に 時刻; HH:MM:SS.マイクロ秒 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 UDPで7文字 (HELLO-1)

  15. パケットの詳細 イーサネットのプロトコル ヘッダと IPヘッダ 08:00:27:a0:03:39 受信側MACアドレス 08:00:27:a4:22:db 送信側MACアドレス イーサネットタイプ 0800(IP) 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 Version:4, ヘッダ長:8(8x4=32byte), サービスタイプ:00, IPから見た全データ長:002f(47) ここから IPヘッダ

  16. パケットの詳細 IPヘッダ 識別ID:0000 フラグメント:4000(オクテッ ト) 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 生存時間(TTL):3f(63) プロトコル:11(17=UDP) チェックサム1f76

  17. パケットの詳細 IPヘッダ 送信元IPアドレス:192.168.1.1 送信先IPアドレス:192.168.3.4 (受信側) 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 オプション:01 0x89:SSRR SourceRoute.Len:0b(11) SourceRoute.Offset :08

  18. パケットの詳細 IPヘッダ 送信先IPアドレス:192.168.3.4 (受信側) 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

  19. パケットの詳細 ここからがUDPのヘッダ 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)

  20. パケットの詳細 UDPのヘッダ とデータ 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 UDPから見たデータ長:000f(15byte) チェックサム:6c8f データ: 4845 4c4c 4f2d 31        (HELLO-1)

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

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

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

More Related