Más contenido relacionado
La actualidad más candente (20)
Similar a スイッチ・ルータのしくみ (20)
スイッチ・ルータのしくみ
- 3. 今後の大容量転送時代に向けて
— ハードウェア転送=早い☝( ◠‿◠ )☝
— ソフトウェア転送=遅い☝(◞‸◟)☝
— ( ^o^)「魔法のハードウェアでポポポポ~ンとパケット転送したい」
— ( ˘⊖˘) 。o(ん?ちょっと待てよ…ハードウェア転送ってなんだ?)
— |ハードウェア|┗(☋` )┓三
— ( ◠‿◠ )☛よくわからない
— ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂
うわあああああああ
- 4. スイッチ・ルータの役割
— 3つのプレーン
— U/D-Plane (User/Data-Plane)
— トラヒックを転送する役割
— 自宛以外のすべての通信(ユーザ通信など)
— C-Plane (Control-Plane)
— U/D-Planeの制御,経路制御をする役割
— 動的ルーティングなどの制御パケットの通信
— 例:RIP, OSPF, BGP, OpenFlow, LinkAggregation(LACP)
— M-Plane (Management-Pane)
— 装置自体を制御する役割
— 例:TELNET/SSH(CLI), SNMP, NETCONF, OF-Config
- 5. スイッチ・ルータの役割
— 3つのプレーン
— U/D-Plane (User/Data-Plane)
— トラヒックを転送する役割
— 自宛以外のすべての通信(ユーザ通信など)
— C-Plane (Control-Plane)
— U/D-Planeの制御,経路制御をする役割
— 動的ルーティングなどの制御パケットの通信
— 例:RIP, OSPF, BGP, OpenFlow, LinkAggregation(LACP)
— M-Plane (Management-Pane)
— 装置自体を制御する役割
— 例:TELNET/SSH(CLI), SNMP, NETCONF, OF-Config
高速転送の仕組み
なので,
U/D-Plane に着目
- 10. 1.パケットを受信する(詳細)
— 10GBASE-Rの場合
— 802.3 section4 Fig. 44A-2
— 光ファイバからの情報を
O/E変換 [PMD]
— XSBIにデシリアライズ [PMA]
— 64B/66Bで同期してXGMII
[PCS➙RS(or via XGXS)]
— 必要(7cm超orXENPAK)
であればXGXS [PCS〜RS]
— L2のMAC副層 [RS➙MAC]
XENPAK
300pin MSA
XFP/SFP+
- 12. 2.宛先を決める(詳細)
— 詳細は Intel IXP 1200 Network Processor Architecture
and Programming の p.19以降を参照
— 概要
— イーサネットコントローラ(L2 MAC)の受信を定期ポーリングする
— 受信を検知したらイーサネットコントローラからパケットをコピーして
NPU上に持ってくる
— ヘッダ情報を元に宛先を探索しつつ,パケット全体をメモリ
(SDRAM)上にコピーする
— 必要に応じてSDRAM上にコピーしたパケットのヘッダの書き換え
を行う(TTL減算とか,CRC計算とか)
— 探索結果に基づいて出力ポートのイーサネットコントローラ上のメ
モリに書き込む
- 13. 2.宛先を決める(詳細)
— IXP1200の全体像
— Strong ARM
— SRAM/SDRAM上に探索木を構築
— Microengine
— パケットコピーの実施
— 探索(マッチング)の実施
— SDRAM Unit
— パケットを格納
— ルックアップ結果の情報
(出力ポート,MAC書換)
— SRAM Unit
— 探索木情報の格納
- 27. マッチング
— いろんなやりかた (たとえばルーティングの場合)
— ソフトウェア処理
— パケットヘッダに対して,エントリを1つずつ比較して,最後にマッ
チした全エントリの中からプレフィックス長が最大のエントリを探
す (シーケンシャルマッチング)
— 事前にプレフィックス長でルーティングエントリをグループ化し,プ
レフィックス長が大きい方から順番にマッチングする
(エントリソート+シーケンシャルマッチング)
— ハードウェア処理
— 探索木を作ってマッチングする (探索木)
— TCAM
- 35. (T)CAMのしくみ
— (2)マッチング (CAMの場合)
C=0 C=1
X0=0
X0=1
HIGH
LOW
・緑枠はマッチしているパターン
・この例では,Xと¬C・¬XとCを
比較
・マッチすれば不一致なので
MLをLOWにする
(GNDに落とす)
・全ビットでマッチすれば終端で
ML(Match Line)がHIGHの
ままとまる
引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf
- 41. (T)CAMのしくみ
— (3)出力 (アクション決定/VR環境/VID_prefix)
— ルーティングインスタンスが複数の場合
— 仮想ルータIDをprefixに含める場合,エントリ数が膨大になる
R0 prefix Action
00001010* A1
11* A2
1111* A3
* A4
R1 prefix Action
00001010* B1
11000000* B2
1* B3
11* B4
* B5
prefix (TCAM) action (SRAM)
0 00001010* A1
0 11* A2
0 1111* A4
0 * A5
1 00001010* B1
1 11000000* B2
1 1* B3
1 * B5
- 42. (T)CAMのしくみ
— (3)出力 (アクション決定/VR環境/VID_prefix)
— エントリ追加はそのまま追加すれば良い
R0 prefix Action
00001010* A1
11* A2
111* A5
1111* A3
* A4
R1 prefix Action
00001010* B1
11000000* B2
1* B3
11* B4
* B5
prefix (TCAM) action (SRAM)
0 00001010* A1
0 11* A2
0 111* A5
0 1111* A3
0 * A4
1 00001010* B1
1 11000000* B2
1 1* B3
1 * B5
- 43. (T)CAMのしくみ
— (3)出力 (アクション決定/VR環境/VID_index)
— ルーティングインスタンスが複数の場合
— TCAMマッチング後のSRAMをVIDインデックスアクセスする場合
— TCAMエントリ数を削減することが可能だが処理が複雑になる
R0 prefix Action
00001010* A1
11* A2
1111* A3
* A4
R1 prefix Action
00001010* B1
11000000* B2
1* B3
11* B4
* B5
A4 B5
A1 B1
A4 B3
A2 B4
A3 B4
1111*
A2 B2
*
1*
11*
00001010*
11000000*
無い所(青文字)
は埋める必要あり
- 45. (T)CAMのしくみ
— (3)出力 (アクション決定/VR環境/VID_index)
— エントリ追加には一手間必要
— エントリ追加のたびに,すべての仮想ルータで下記青字箇所を埋
める必要が発生する可能性がある
R0 prefix Action
00001010* A1
11* A2
111* A4
1111* A3
* A4
R1 prefix Action
00001010* B1
11000000* B2
1* B3
11* B4
* B5
A5 B5
A1 B1
A5 B3
A2 B4
A4 B4
1111*
A2 B2
*
1*
11*
00001010*
11000000*
無い所(青文字)
は埋める必要あり
A3 B4
111*
- 46. (T)CAMのしくみ
— (3)出力 (アクション決定/VR環境/VID_index)
— エントリ追加に関係のない仮想ルータにも,TCAM+SRAM更新の
影響がある
prefix
(TCAM)
action
(SRAM)
00001010* A1 B1
11000000* A2 B2
1* A4 B3
11* A2 B4
111* A3 B4
1111* A3 B4
* A4 B5
A5 B5
A1 B1
A5 B3
A2 B4
A4 B4
1111*
A2 B2
*
1*
11*
00001010*
11000000*
無い所(青文字)
は埋める必要あり
A3 B4
111*
- 48. DRAM
— DRAM(Dynamic Random Access Memory)とは
— 大容量・低速メモリ
— パケットをイーサネットコントローラからコピーして保持しておく用の
メモリ
— 大容量
— 1bitをトランジスタ1つとキャパシタ1つで構成できるため高密度
— 低速メモリ
— 1回の読み込み遅延が大きい
— Rowを指定して1Row全体を読み込んだ後に(t_RAS),Columnを指定して
(t_CAS),Burst Length分だけ取得する方式であるため
— また破壊読み出しであるため読み出したRowへチャージ(t_RP)が必要であ
るため.
- 52. (補足)xRAM比較
— TCAM(結局On-Chip SRAM), SRAM(On-Chip)はアクセス遅
延が小さい(早い).SRAM(Off-Chip)は中くらい.DRAMは大き
い(遅い).
TCAM
SRAM
(On-Chip)
SRAM
(Off-Chip)
DRAM
適用箇所
・ルータやスイッチ
などの特殊用途の
マッチング専用
・CPUなどの一部
レジスタとか
・ルータやスイッチ
の探索用エントリの
保持
・TCAMでマッチング
した後の処理を記
録
・ルータやスイッチ
の探索用エントリ
の保持
・パケットバッファ
アクセス速度
0.5ns
0.5ns
4-10ns
40-100ns
集積度
(T=トランジスタ
C=コンデンサ)
低集積度
(10T/bit)
中集積度
(6T/bit)
中集積度
(6T/bit)
高集積度
(1C+1T/bit)
消費電力
高
低
低
中
- 55. (参考) 読み書きの遅延比較
SRAM
(on-chip)
SRAM
(off-chip)
DRAM
(DDR3)
RLDRAM
遅延 0.5nsec
(※1)
5 - 10nsec
(※2)
40 - 60nsec
(※3)
<10nsec
(※4)
ioDrive SSD HDD
遅延 <30usec
(※5)
65usec
(※6)
<5msec
(※7)
※1: Network Algorithmics, George Varghese [2004]
※2: Network Algorithmics, George Varghese [2004]
※3: http://www.micron.com/products/rldram-forges-ahead
※4: http://www.micron.com/products/rldram-forges-ahead
※5: http://www.fusionio.com/products/iodrive-duo/
※6: http://ark.intel.com/products/67008/Intel-SSD-910-Series-400GB-12-Height-PCIe-2_0-25nm-MLC
※7: http://www.seagate.com/staticfiles/support/disc/manuals/enterprise/savvio/Savvio%2015K.1/FC/100384763b.pdf
- 56. 参考文献
— FIB Scaling- A Switch/Router Vendor Perspective, Greg Hankins,
nanog39
— http://www.nanog.org/meetings/nanog39/presentations/fib-
hankins.pdf
— Intel IXP 1200 Network Processor - Architecture and Programming,
Andreas Mitschele-Thiel
— http://www.tu-ilmenau.de/fileadmin/public/iks/files/lehre/wi/WI-
IXP.pdf
— Content-Addressable Memory (CAM) Circuits and Architectures - A
Tutorial and Survey, Pagiamtzis, K.
— http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf
— DRAM Memory Access Protocols, Bruce Jacob, Spencer Ng, & David
Wang
— http://www.eng.utah.edu/~cs7810/pres/dram-cs7810-protocolx2.pdf
- 57. 参考文献
— DDR SDRAM の使い方, ELPIDA
— http://www.elpida.com/pdfs/J0234E50.pdf
— DDR3 SDRAMにおけるコマンドとオペレーション
— http://ja.wikipedia.org/wiki/DDR3_SDRAM%E3%81%AB%E3%81%8A
%E3%81%91%E3%82%8B%E3%82%B3%E3%83%9E
%E3%83%B3%E3%83%89%E3%81%A8%E3%82%AA%E3%83%9A
%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
— Intel® IXP1200 Network Processor Family Hardware Reference
Manual
— IXP1200 Network Processor Gigabit Ethernet Example Design
Application Note