# サイレントパケットドロップ検知
## 定義
サイレントパケットドロップ検知は、スイッチや NIC が SNMP・syslog・カウンタ等の従来の障害シグナルには一切現れないままパケットを恒常的または断続的に破棄する現象を、エンドツーエンドのアクティブプロービングによる間接的な統計から検知・局所化する手法群である。[[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis|Pingmesh]] は、この現象を「パケットブラックホール」(特定の送信元・宛先アドレス/ポートの組で決定論的に100%ドロップされる)と「ランダムサイレントドロップ」(fabricモジュールのビット反転等に起因し確率的にドロップする)の2種類に分類した(Source: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §5)。
## 横断的知見
- **「特定の5-tupleでしか出ないドロップ」という同一の困難に、両システムは異なる時間粒度で対処する**: Pingmesh は「probe ごとに新しいTCPコネクション・新しい送信元ポートを使う」ことで、日々の運用の中で結果的に送信元/宛先アドレス・ポート空間の広い範囲を走査し、特定の5-tuple パターンに依存するブラックホールを発見する(Source: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §5.1)。これに対し RoCE 環境向けの後継システム [[R-Pingmesh]] は、Pingmesh には存在しない明示的な設計判断として「毎時20%の5-tupleを入れ替える」というローテーションポリシーを Controller に持たせ、特定5-tupleでしか発現しないサイレントドロップの検知を意図的に加速する(Source: [[@2024__SIGCOMM__R-Pingmesh - A Service-Aware RoCE Network Monitoring and Diagnostic System]] p.95)。両者は「エンドツーエンドプロービングの送信元/宛先空間を広くカバーする」という同じ目的を持ちながら、Pingmesh は副次効果(コネクションごとの新規ポート)として、R-Pingmesh は明示的な周期的入れ替えポリシーとして実現しており、後者は前者の経験を踏まえた意図的な設計改善と読める。
- **SNMP/syslogが「沈黙」する障害は物理層(RoCE)でもTCP/IP層でも同型に発生する**: Pingmesh はTCP/IPネットワークでのSpineスイッチのfabricモジュール由来のビット反転を報告し(Source: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §5.2)、RoCEを対象とする R-Pingmesh も同様に「RNIC起因かネットワーク内起因かをSNMP相当の情報では区別できない」という前提から出発する。ネットワーク階層(L2/L3 vs RDMA/RoCE)によらず、「機器のカウンタが正常を報告していても実際にはパケットが失われている」という構造的な観測ギャップが繰り返し現れる(Source: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §6.1「not all SNMP data are trustworthy」、[[@2024__SIGCOMM__R-Pingmesh - A Service-Aware RoCE Network Monitoring and Diagnostic System]])。
## 未解決の問い
- Pingmesh のブラックホール検知は「ToR配下の何割のサーバが症状を示すか」というスコアベースの閾値判定に依存する(Source: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §5.1)。この閾値はデータセンター規模やトラフィックパターンに応じてどう調整すべきか、定量的な指針は論文中にない。
- R-Pingmesh の「毎時20%入れ替え」というローテーション率は、5-tuple 空間の被覆速度とプロービングオーバーヘッドのトレードオフをどう最適化して導出されたか、Pingmesh の「probeごとに新規ポート」という副次的カバレッジと比べた定量的な検知速度の差は本 wiki 未確認。
- Pingmesh は単一パケット(SYN/SYN-ACK)のRTT測定に限定されるため、複数ラウンドトリップが必要な障害(TCPパラメータチューニング起因の輻輳ウィンドウ問題)を見逃す既知の限界を持つ(Source: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §6.4)。RDMA/RoCE環境でのR-PingmeshがCQEタイムスタンプによりこの限界をどこまで克服しているかは、本 concept 内では未検証。
## 関連
- 概念: [[ネットワーク監視]] / [[データセンターネットワーク信頼性]] / [[RDMAネットワーク監視]]
- ソース: [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] / [[@2024__SIGCOMM__R-Pingmesh - A Service-Aware RoCE Network Monitoring and Diagnostic System]]
- エンティティ: [[Pingmesh]] / [[R-Pingmesh]]
## 出典
- [[@2015__SIGCOMM__Pingmesh - A Large-Scale System for Data Center Network Latency Measurement and Analysis]] §5(パケットブラックホール・ランダムサイレントドロップの分類と検知アルゴリズム)、§6.1(SNMPの信頼性限界)
- [[@2024__SIGCOMM__R-Pingmesh - A Service-Aware RoCE Network Monitoring and Diagnostic System]] p.95(5-tupleローテーションによる検知設計)