• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SoNIC: Precise Realtime Software Access and Control of Wired Networks
 

SoNIC: Precise Realtime Software Access and Control of Wired Networks

on

  • 604 views

輪講用に作りかけたが、お蔵入り。

輪講用に作りかけたが、お蔵入り。

Statistics

Views

Total Views
604
Views on SlideShare
601
Embed Views
3

Actions

Likes
2
Downloads
1
Comments
0

1 Embed 3

https://twitter.com 3

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SoNIC: Precise Realtime Software Access and Control of Wired Networks SoNIC: Precise Realtime Software Access and Control of Wired Networks Presentation Transcript

    • SoNIC:  Precise  Realtime  Software   Access  and  Control  of  Wired  Networks     Ki  Suh  Lee,  et  al.,  NSDI2013 高野 了成 産業技術総合研究所 情報技術研究研究部門
    • 概要 •  パケット間ギャップ(IPG)をソフトウェアから 制御できれば、ネットワーク観測が正確かつ安く 実現可能 •  NetFPGA-‐‑‒10GベースのNIC  SoNICを開発 –  ソースコードも公開 http://sonic.cs.cornell.edu/ •  関連研究 –  GtrcNET –  PSPacer  (Precise  Software  Pacer) 2
    • Inter  Packet  Gap •  パケットとパケットの隙間 –  最⼩小は12バイト •  物理理層の情報はOSから不不可視 –  NICによってはレジスタで設定可能 3 Packet  i Packet  i+1 IPD:  Inter  Packet  Delay IPG:  Inter  Packet  Gap
    • もしIPGを正確に制御できると •  Interpacket'delays'and'gaps' ' Network'Research'Applica1ons' 4/11/13' SoNIC'NSDI'2013' 24' IPG' Packet'i' Packet'i+1' IPD' Applica1on' Transport' Network' Data'Link' Physical' Packet' Genera1on' Packet'Capture' Detec1ng' 1ming'channel' 4
    • Software-‐‑‒defined  NIC 5 10GbE'Network'Stack' 4/11/13' SoNIC'NSDI'2013' 14' Physical' 64/66b'PCS' PMA' PMD' Encode' Scrambler' Gearbox' Decode' Descrambler' Blocksync' Data'Link' Network' Transport' Applica1on' Data' /S/' /D/' /D/' /D/' /D/' /T/' /E/' Data'L3'Hdr' Data'L3'Hdr'L2'Hdr' Data'L3'Hdr'L2'Hdr' Gap'Eth'Hdr' CRC'Preamble' 011010010110100101101001011010010110100101101001011010010110100101101' Encode' Scrambler' Gearbox' PMA' Commodity'NIC' SW' HW' Packet'i' Packet'i+1' Packet'i' Packet'i+1' SoNIC'Design'and'Architec 4/11/13' SoNIC'NSDI'2013' Physical' 64/66b'PCS' PMA' PMD' Encode' Scrambler' Gearbox' Decode' Descrambler' Blocksync' Data'Link' Network' Transport' Applica1on' /S/' /D/' /D/' L2'Hdr' L2'Hdr'Eth'Hdr'Preamble' 0110100101101001011010010110 Encode' Scrambler' Gearbox' PMA' SoNIC' SW' HW' T T G Tra Commodity  10  GbE  network  stack SoNIC
    • NetFPGA-‐‑‒10G •  FPGA •  SFP+  4ポート •  PCIe  Gen2 •  価格  8450USD、アカデミック価格  1675USD 6 SFP+' SFP+' FPGA' PCIeGen2' SoNIC'Design:'Hardware' 4/11/13' SoNIC'NSDI'2013' Physical' 64/66b'PCS' PMA' PMD' Encode' Scrambler' Gearbox' Decode' Descrambler' Blocksync' Data'Link' Network' Transport' Applica1on' •  To'deliver'every'bit'from/to'so3ware' –  Highospeed'transceivers' –  PCIe'Gen2'(=32Gbps)' •  Op1mized'DMA'engine' SW' HW' PMD' PMA' Gearbox' Blocksync'
    • Software  Interface SoNIC'Design:'Interface'and'Control' •  Hardware'control:'ioctl+syscall' •  I/O':'character'device'interface' •  Sample'C'code'for'packet'genera1on'and'capture' 4/11/13' SoNIC' 22' 1:'#include'"sonic.h"' 2:' 3:'struct'sonic_pkt_gen_info'info'='{' 4:'.mode'='0,' 5:'.pkt_num'='1000000000UL,' 6:'.pkt_len'='1518,' 7:'.mac_src'='"00:11:22:33:44:55",' 8:'.mac_dst'='"aa:bb:cc:dd:ee:ff",' 9:'.ip_src'='"192.168.0.1",' 10:'.ip_dst'='"192.168.0.2",' 11:'.port_src'='5000,' 12:'.port_dst'='5000,' 13:'.idle'='12,' 14:'};' 15:'' 16:'/*'OPEN'DEVICE*/' 17:'fd1'='open(SONIC_CONTROL_PATH,'O_RDWR);' 18:'fd2'='open(SONIC_PORT1_PATH,'O_RDONLY);' 19:'/*'CONFIG'SONIC'CARD'FOR'PACKET'GEN*/' 20:'ioctl(fd1,'SONIC_IOC_RESET)' 21:'ioctl(fd1,'SONIC_IOC_SET_MODE,'PKT_GEN_CAP)' 22:'ioctl(fd1,'SONIC_IOC_PORT0_INFO_SET,'&info)' 23' 24:'/*'START'EXPERIMENT*/' 25:'ioctl(fd1,'SONIC_IOC_START)' 26:'//'wait'1ll'experiment'finishes' 27:'ioctl(fd1,'SONIC_IOC_STOP)' 28:'' 29:'/*'CAPTURE'PACKET'*/' 30:'while'((ret'='read(fd2,'buf,'65536))'>'0)'{' 31:'//'process'data' 32:'}'' 33:' 34:'close(fd1);' 35:'close(fd2);' 7
    • 関連研究の紹介 8
    • GtrcNET 9 •   ⼤大規模FPGAを搭載したハードウェアネットワークテストベッド •   ワイヤレートでさまざまな機能をプログラム可能 •   GtrcNET-‐‑‒1:  GbE  (GBIC)  x  4ports  +  16MBytes  Memory/port •   GtrcNET-‐‑‒10:  10GbE  (XENPAK)  x  3ports  +  1GBytes  Memory  /port •   実装機能例例 •   帯域測定(ポート単位、ストリーム単位、VLAN単位) •   遅延の模擬 •   パケットキャプチャ •   テストパケット⽣生成 •   送信レート制御(ペーシング、   シェーピング、ポリシング) http://projects.itri.aist.go.jp/gnet/
    • PSPacer 10 •  通信帯域を効率率率的に利利⽤用するためのソフトウェア •  ギガビットイーサネットにおける精密なペーシングを ソフトウェアだけで実現 –  利利⽤用可能帯域にあわせてバースト送信を平滑滑化することで、 安定した⾼高い通信性能を実現 バースト性の⾼高いトラフィックはパケット ロスを引き起こし、通信性能の低下を招く Buffer Overflow PSPacerはパケット間隔を調整し、平滑滑化 され安定したトラフィックを⽣生成する Switch/Router
    • PSPacer:  動作原理理と実装 11 •  パケットペーシング=パケット送信間隔制御 –  (パケットサイズ)=(ギャップサイズ)の場合:     送信帯域は、物理理帯域の1/2 •  PSPacerの動作原理理 –  ギャップをダミーパケットで埋めて、 –  パケットを隙間なく送信する •  ギャップパケット –  ダミーパケットとして、PAUSEフレームを利利⽤用 –  スイッチの⼊入⼒力力ポートで破棄され、実パケットのみが、 元の送信間隔を保ちつつ送出される パケット ギャップ ワイヤレートで送信できれば、 10Gbpsネットワークで0.8ナノ秒の 精度度でパケット送信間隔を制御可能
    • Linux  TBFとPSPacerの違い 12 (Bottleneck  BW  500Mbps,  RTT  200ms,  FIFO  1MB) PSPacer 平均レートはボトルネックリン ク帯域の半分以下だが、ピーク は物理理送信レートに達しており、 バッファあふれが発⽣生
    • 雑感 •  物理理層も含めたクロスネットワークレイヤの 研究プラットフォームとしては有⽤用 •  実装がよくできている •  アイデア⾃自体は決して新しいものではないが、 NetFPGAのようなNICが⼀一般的に⼿手に⼊入るよう になったのでインパクトがあったのか? –  IPGの制御程度度であればGtrcNETもしくは、 PSPacer  +  GtrcNETでも実現可能 –  ネットワークプロセッサというものもあったが。。。 •  名前重要! 13
    • 特に明記のない図表は次のスライドから引⽤用しました   https://www.usenix.org/sites/default/files/ conference/protected-‐‑‒files/suhlee_̲nsdi13.pdf Report  blog:   http://www.layer9.org/2013/04/a-‐‑‒report-‐‑‒on-‐‑‒ nsdi13sonic-‐‑‒precise.html 14