Más contenido relacionado Similar a SoNIC: Precise Realtime Software Access and Control of Wired Networks (20) Más de Ryousei Takano (20) SoNIC: Precise Realtime Software Access and Control of Wired Networks1. SoNIC:
Precise
Realtime
Software
Access
and
Control
of
Wired
Networks
Ki
Suh
Lee,
et
al.,
NSDI2013
高野 了成
産業技術総合研究所 情報技術研究研究部門
3. Inter Packet Gap
• パケットとパケットの隙間
– 最⼩小は12バイト
• 物理理層の情報はOSから不不可視
– NICによってはレジスタで設定可能
3
Packet i Packet i+1
IPD: Inter Packet Delay
IPG: Inter Packet Gap
5. 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
6. 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'
7. 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
11. PSPacer: 動作原理理と実装
11
• パケットペーシング=パケット送信間隔制御
– (パケットサイズ)=(ギャップサイズ)の場合:
送信帯域は、物理理帯域の1/2
• PSPacerの動作原理理
– ギャップをダミーパケットで埋めて、
– パケットを隙間なく送信する
• ギャップパケット
– ダミーパケットとして、PAUSEフレームを利利⽤用
– スイッチの⼊入⼒力力ポートで破棄され、実パケットのみが、
元の送信間隔を保ちつつ送出される
パケット
ギャップ
ワイヤレートで送信できれば、
10Gbpsネットワークで0.8ナノ秒の
精度度でパケット送信間隔を制御可能