Suche senden
Hochladen
スイッチ・ルータのしくみ
•
64 gefällt mir
•
19,655 views
ogatay
Folgen
最終更新は2013.7.14です.以下でLTした資料に加筆しました. ・カーネル/VM探検隊@TKB 2012.9.22 ・自宅ラック勉強会 2012.10.8
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 57
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
Taiji Tsuchiya
あなたのところに専用線が届くまで
あなたのところに専用線が届くまで
Tomohiro Sakamoto(Onodera)
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
Masayuki Kobayashi
3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ
Tetsuya Hasegawa
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Satoshi Matsumoto
ISPの向こう側、どうなってますか
ISPの向こう側、どうなってますか
Akira Nakagawa
Empfohlen
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
Taiji Tsuchiya
あなたのところに専用線が届くまで
あなたのところに専用線が届くまで
Tomohiro Sakamoto(Onodera)
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
Masayuki Kobayashi
3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ
Tetsuya Hasegawa
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Satoshi Matsumoto
ISPの向こう側、どうなってますか
ISPの向こう側、どうなってますか
Akira Nakagawa
本当は楽しいインターネット
本当は楽しいインターネット
Yuya Rin
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
株式会社 NTTテクノクロス
バックボーン運用から見るインターネットの実情
バックボーン運用から見るインターネットの実情
IIJ
IIJmio meeting 19 IIJ フルMVNO徹底解説
IIJmio meeting 19 IIJ フルMVNO徹底解説
techlog (Internet Initiative Japan Inc.)
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
Juniper Networks (日本)
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
健太 松浦
IIJmio meeting 9 IIJのモバイル&バックボーンインフラ
IIJmio meeting 9 IIJのモバイル&バックボーンインフラ
techlog (Internet Initiative Japan Inc.)
ISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるもの
Taiji Tsuchiya
wakamonog6 インターネットの裏側の仕組み
wakamonog6 インターネットの裏側の仕組み
Taiji Tsuchiya
30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク
Trainocate Japan, Ltd.
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
株式会社 NTTテクノクロス
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
AS45679 on FreeBSD
AS45679 on FreeBSD
Tomocha Potter
VPP事始め
VPP事始め
npsg
100 G超通信時代の安定した高品質な伝送インフラ構築づくり
100 G超通信時代の安定した高品質な伝送インフラ構築づくり
Tomohiro Sakamoto(Onodera)
DNS移転失敗体験談
DNS移転失敗体験談
oheso tori
P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介
Kumapone
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Masanori Itoh
P2Pって何?
P2Pって何?
Junya Yamaguchi
LoRaWAN v1.1仕様読解 Class A
LoRaWAN v1.1仕様読解 Class A
Ryosuke Uematsu
Weitere ähnliche Inhalte
Was ist angesagt?
本当は楽しいインターネット
本当は楽しいインターネット
Yuya Rin
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
株式会社 NTTテクノクロス
バックボーン運用から見るインターネットの実情
バックボーン運用から見るインターネットの実情
IIJ
IIJmio meeting 19 IIJ フルMVNO徹底解説
IIJmio meeting 19 IIJ フルMVNO徹底解説
techlog (Internet Initiative Japan Inc.)
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
Juniper Networks (日本)
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
健太 松浦
IIJmio meeting 9 IIJのモバイル&バックボーンインフラ
IIJmio meeting 9 IIJのモバイル&バックボーンインフラ
techlog (Internet Initiative Japan Inc.)
ISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるもの
Taiji Tsuchiya
wakamonog6 インターネットの裏側の仕組み
wakamonog6 インターネットの裏側の仕組み
Taiji Tsuchiya
30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク
Trainocate Japan, Ltd.
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
株式会社 NTTテクノクロス
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
AS45679 on FreeBSD
AS45679 on FreeBSD
Tomocha Potter
VPP事始め
VPP事始め
npsg
100 G超通信時代の安定した高品質な伝送インフラ構築づくり
100 G超通信時代の安定した高品質な伝送インフラ構築づくり
Tomohiro Sakamoto(Onodera)
DNS移転失敗体験談
DNS移転失敗体験談
oheso tori
P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介
Kumapone
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Masanori Itoh
Was ist angesagt?
(20)
本当は楽しいインターネット
本当は楽しいインターネット
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
バックボーン運用から見るインターネットの実情
バックボーン運用から見るインターネットの実情
IIJmio meeting 19 IIJ フルMVNO徹底解説
IIJmio meeting 19 IIJ フルMVNO徹底解説
Ethernetの受信処理
Ethernetの受信処理
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
IIJmio meeting 9 IIJのモバイル&バックボーンインフラ
IIJmio meeting 9 IIJのモバイル&バックボーンインフラ
ISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるもの
wakamonog6 インターネットの裏側の仕組み
wakamonog6 インターネットの裏側の仕組み
30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
AS45679 on FreeBSD
AS45679 on FreeBSD
VPP事始め
VPP事始め
100 G超通信時代の安定した高品質な伝送インフラ構築づくり
100 G超通信時代の安定した高品質な伝送インフラ構築づくり
DNS移転失敗体験談
DNS移転失敗体験談
P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介
How to run P4 BMv2
How to run P4 BMv2
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Ähnlich wie スイッチ・ルータのしくみ
P2Pって何?
P2Pって何?
Junya Yamaguchi
LoRaWAN v1.1仕様読解 Class A
LoRaWAN v1.1仕様読解 Class A
Ryosuke Uematsu
wakamonog6 Routing Tutorial
wakamonog6 Routing Tutorial
Naohide Kamitani
Kiso sekkei 01rev03
Kiso sekkei 01rev03
tetsuya matsuno
141125CITBrains
141125CITBrains
靖男 林原
ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会
Tomoya Hibi
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価
Takashi Kishida
Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介
Takehiko YOSHIDA
Reconf_201409
Reconf_201409
Takefumi MIYOSHI
Nsegソフトウェアルータvyatta
Nsegソフトウェアルータvyatta
jem 3
低遅延10Gb EthernetによるGPUクラスタの構築と性能向上手法について
低遅延10Gb EthernetによるGPUクラスタの構築と性能向上手法について
Atsushi Suzuki
Info talk2013
Info talk2013
Koichi Ise
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Shawn Lee
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Tomoya Hibi
SDN Japan: ovs-hw
SDN Japan: ovs-hw
ykuga
NSDI16_reading
NSDI16_reading
紘也 金子
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
Daiyu Hatakeyama
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
Ähnlich wie スイッチ・ルータのしくみ
(20)
P2Pって何?
P2Pって何?
LoRaWAN v1.1仕様読解 Class A
LoRaWAN v1.1仕様読解 Class A
wakamonog6 Routing Tutorial
wakamonog6 Routing Tutorial
Kiso sekkei 01rev03
Kiso sekkei 01rev03
141125CITBrains
141125CITBrains
ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
プロトコル変換ゲートウェイPTGWの実証実験と評価
プロトコル変換ゲートウェイPTGWの実証実験と評価
Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介
Reconf_201409
Reconf_201409
Nsegソフトウェアルータvyatta
Nsegソフトウェアルータvyatta
低遅延10Gb EthernetによるGPUクラスタの構築と性能向上手法について
低遅延10Gb EthernetによるGPUクラスタの構築と性能向上手法について
Info talk2013
Info talk2013
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
SDN Japan: ovs-hw
SDN Japan: ovs-hw
NSDI16_reading
NSDI16_reading
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Kürzlich hochgeladen
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Kürzlich hochgeladen
(9)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
スイッチ・ルータのしくみ
1.
スイッチ・ルータのしくみ @yogata
2.
高速転送(大容量化)の必要性 — 高速転送によるスイッチ・ルータの大容量化のメリット — コスト削減:装置台数の削減 (ただし,ポート数が問題になる場合は当てはまらない) —
コスト削減:インターフェース・伝送装置数の削減 — 低速リンクのLAGではなく,高速リンク1本にすることで,伝送路にかか る費用を削減できる スイッチ・ルータで一層の高速転送(大容量化)が 可能になると,各種コストが下がる場合がある
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 に着目
6.
U/D-Planeの処理について — ルータ・スイッチがU/D-Planeで行う役割 — パケットを転送する3STEP 1.パケットを受信する 2.宛先を決める 3.パケットを送信する Switch/Router 1 2 3
7.
1. パケットを受信する 出展:FIB Scaling-
A Switch/Router Vendor Perspective
8.
2.宛先を決める
9.
3. パケットを送信する
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+
11.
2.宛先を決める(詳細) — ネットワークプロセッサユニット(NPU) — IXP1200の動作を調べる —
2004年ぐらいにリリースされたNPU — ギガビットルータ用のNPUで2ポートまで処理可能 — 理由: — ドキュメント・解説がたくさんある — NPUが何をしているかを知りたいので,昔のでも良いはず
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 — 探索木情報の格納
14.
2.宛先を決める(詳細) 1) イーサネットコントローラまでフレームが到達する
15.
2.宛先を決める(詳細) 2) Microengineは定期的(66MHz)にIX Bus
UnitのReady Busをポーリングして,イーサネットコントローラでフレームを受 信したことを検知する.検知したらIX Bus Unitがイーサネット コントローラからRxFIFOにコピーする(DMA転送). Ready Bus
16.
2.宛先を決める(詳細) 3) IX Bus
Unitはイーサネットコントローラからフレームのコピー が終わったら,完了を通知する
17.
2.宛先を決める(詳細) 4) 2コア(8スレッド)のMEが,フレームを64バイト単位 (Mpacket)に区切ってSDRAMにコピーする.1つ目の MpacketとSRAMを使って宛先探索する
18.
2.宛先を決める(詳細) 4) (補足)Port 8/9について
19.
2.宛先を決める(詳細) 5) 宛先探索(探索木) • ヘッダ情報(4ビット単位)をインデックスにして,次ノードのベース アドレスを得る(ベースアドレス+次のヘッダ情報で探索していく) •
葉ノードにSDRAMの アドレスが格納されて いて,出力ポート, 宛先MACアドレスを 得る • (IPv4なので32bit) 先頭16ビット +残り16ビットを 4ビットトライx4 →最大5アクセス
20.
(補足)探索木での探索
21.
2.宛先を決める(詳細) 6) パケットの処理 — TTL,
Header Length, チェックサムの確認 — TTLの減算とIPヘッダチェックサムの更新 — IP転送であればMACアドレスの更新
22.
2.宛先を決める(詳細) 7) IX Bus
UnitがSDRAMからTxFIFOにコピーする(DMA転送) • 512バイト単位
23.
2.宛先を決める(詳細) 8) TxFIFOからイーサネットコントローラへ転送する • Tx
Schedが利用可能なMACの確認を行う
24.
2.宛先を決める(まとめ) • まとめ (ハードウェア処理が速い理由) • マッチングが速い •
SRAMにインデックスでアクセスして探索を行い,シーケンシャルに ルックアップしているわけではない →メモリアクセス回数が少ない • でもCAMの方が速い,,,はず(CAMについては後述) • 並列処理で速い • メモリコピーを並列で行う • これは今のDDR SDRAMのチャネルと同じ?
25.
3.パケットを送信する(詳細) — 10GBASE-Rの場合 — 802.3
section4 Fig. 44A-1 — 受信の逆
26.
転送部でやること — パケットヘッダとエントリ(ルーティング・フォワーディング・NDP/ ARPテーブル等)を比較してマッチするエントリを探す — ポイント —
例えばACLの探索 — プレフィックス指定やANY指定でのマッチングを行う — 例えばルーティングの探索 — ロンゲストマッチを行う →複数のエントリにマッチする場合,プレフィックス長をみて探索
27.
マッチング — いろんなやりかた (たとえばルーティングの場合) —
ソフトウェア処理 — パケットヘッダに対して,エントリを1つずつ比較して,最後にマッ チした全エントリの中からプレフィックス長が最大のエントリを探 す (シーケンシャルマッチング) — 事前にプレフィックス長でルーティングエントリをグループ化し,プ レフィックス長が大きい方から順番にマッチングする (エントリソート+シーケンシャルマッチング) — ハードウェア処理 — 探索木を作ってマッチングする (探索木) — TCAM
28.
マッチするエントリの探索 — (1)パケットヘッダに対してエントリを1つずつ比較して, (2)最後にマッチした全エントリの中からプレフィックス長が最大 のエントリを探す (シーケンシャルマッチング) DstIP:192.0.2.100 192.0.0.0/8 パケットヘッダ
ルーティングテーブル 192.168.0.0/24 192.0.2.0/24 10.0.0.0/8 (2)プレフィックス長が 最大のエントリを探す (1)全部とマッチして
29.
マッチするエントリの探索 — 事前にプレフィックス長でルーティングエントリをグループ化し, プレフィックス長が大きい方から順番にマッチングする (エントリソート+シーケンシャルマッチング) — マッチした時点で処理を終えることができる DstIP:192.0.2.100
/8 パケットヘッダ ルーティングテーブル /24 192.0.0.0 192.168.0.0 192.0.2.0 10.0.0.0 ・・・ ・・・
30.
マッチするエントリの探索 — 探索木 HiCutアルゴリズムの場合 111* 110* 101* 100* 011* 010* 001* 000* R0,R1,R5,R6 R2,R3,R4 R7 R8 R9 R10,R11 引用元 http://cseweb.ucsd.edu/~susingh/papers/hyp-sigcomm03.pdf
31.
マッチするエントリの探索 — TCAM — Ternary
Content Addressable Memory — TCAM:マッチングを行う専用のハードウェア — 0, 1, どちらでも良いの3値(ternary)でマッチングを行う — CAMだと,0, 1の2値でマッチングを行う
32.
(T)CAMのしくみ — (T)CAMの3つのしくみ (1) 入力 (2) マッチング (3) 出力 (1)入力 (2)マッチング (3)出力 引用元
http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf
33.
(T)CAMのしくみ — (1)入力 — パケットヘッダXをもとに,Xと¬Xを比較部に渡す X0 X ¬X0 引用元
http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf
34.
(T)CAMのしくみ ルーティングテーブルやACLの各ルール 各ルールの1ビット C ルールのプライオリティ順に事前に並べておく PriorityEncoder CAMのワードビットサイズ エントリ数 — (2)マッチング (CAMの場合) C ヘッダ情報 (入力)
マッチング 結果(出力) SRAMベース のメモリ (6トランジスタ) ヘッダ情報 とルールの マッチング 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf
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
36.
(T)CAMのしくみ — (2)マッチング (TCAMの場合) —
CAMにSRAMをつけたもの CAM ・SRAMが1だと このビットはマッチとなる ・SRAMが0だと下のマッチングに したがって結果を返す 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf
37.
(T)CAMのしくみ — (3)出力 — 比較部ではマッチしたすべてのエントリを返すので,出力部で 最もプライオリティの高いエントリを選択する →プライオリティエンコーダ
38.
(T)CAMのしくみ 引用元 http://filebox.ece.vt.edu/~jgtront/introcomp/encoder.swf — (3)出力
(プライオリティエンコーダ) — マッチしたエントリD0-3の結果に応じた出力xyVを求める
39.
(T)CAMのしくみ 引用元 http://filebox.ece.vt.edu/~jgtront/introcomp/encoder.swf — (3)出力
(プライオリティエンコーダ) — 結果を回路にする — エントリ数が多いと大変
40.
(T)CAMのしくみ — (3)出力 (アクション決定/インスタンス1つの場合) —
一般的にマッチング結果の処理はSRAM上に保持される — ルーティングインスタンスが1つの場合 prefix (TCAM) action (SRAM) 00001010* A1 11000000* A2 1* A3 11* A4 111* A5 1111* A6 * A7 1101….
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* 無い所(青文字) は埋める必要あり
44.
(T)CAMのしくみ — (3)出力 (アクション決定/VR環境/VID_index) prefix (TCAM) action (SRAM) 00001010*
A1 B1 11000000* A2 B2 1* A4 B3 11* A2 B4 1111* A3 B4 * A4 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*
47.
(T)CAMのまとめ — 動作概要 — 全ルールの全ビットと並列でマッチングを行う (1ルール144bit,128kルールあれば,144x128k=18M
bitの マッチングを行う回路がある.このパラメータはCRS-1のもの) — そのため,マッチングは必ず1クロックで完了する. 350MHzのCAMであれば350Mppsの処理性能が有るといえる — 特徴 (JメリットとLデメリット) — J 高速マッチング — 1クロックですべてのルールとマッチング出来る — L 高消費電力 — 仕組み上,CAMの回路全体に電流が流れる.これにより超並列でマッチン グを行えるが,その分だけ消費電力が非常に大きい
48.
DRAM — DRAM(Dynamic Random
Access Memory)とは — 大容量・低速メモリ — パケットをイーサネットコントローラからコピーして保持しておく用の メモリ — 大容量 — 1bitをトランジスタ1つとキャパシタ1つで構成できるため高密度 — 低速メモリ — 1回の読み込み遅延が大きい — Rowを指定して1Row全体を読み込んだ後に(t_RAS),Columnを指定して (t_CAS),Burst Length分だけ取得する方式であるため — また破壊読み出しであるため読み出したRowへチャージ(t_RP)が必要であ るため.
49.
DRAM — アドレス指定から読み出しまでのシーケンスについて ①Bank/Row/ Columnを指定 ②1Rowから データを読み出す ③BusrtLength だけ読み出す ④データを出力
50.
DRAM — アドレス指定から読み出しまでのシーケンスについて
51.
DRAM — キャパシタからデータを読み出すシーケンス詳細について 1) Logic1はキャパシタにVcc保持. Logic0は接地して0 2)
リード線の電圧を 中間(Vcc/2)にする 3) アドレスバス(Row指定) で開放してキャパシタ の電圧をリード線に 出す 4) Vcc/2から,少しだけ 電圧が変化するので センスアンプで増幅し, 0/1を判別する
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) 消費電力 高 低 低 中
53.
(補足)RLDRAM*1 — 大容量・低遅延DRAM(SRAMとDRAMの良いとこ取り)もある 出展:http://www.micron.com/products/rldram-forges-ahead *1: Reduced
Latency DRAM, *2:t_RCはRow指定の間隔(=メモリアクセス遅延) *2
54.
(参考) Cisco装置でのマッチング方式 たぶん,探索木でのマッチング (少なくとも,CRS-1は探索木 (Tree Bitmapアルゴリズム)) 出展:Internet
week2011 S8 ルーティング関連セッション(2) http://www.nic.ad.jp/ja/materials/iw/2011/ proceedings/s08/s08-03.pdf
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
Jetzt herunterladen