TCAMはメモリの一種で、1ビットを格納するために10〜12個のトランジスタが必要です。比較として、スタティックRAM(SRAM)は1つのビットを格納するために6つのトランジスタしか必要とせず、ダイナミックRAM(DRAM)は1つのトランジスタとコンデンサを必要とします。これらのさまざまなタイプのメモリはすべて、ASICの内部または外部にあります。すべてのメモリをチップ上に配置する1つの理由は、メモリをチップの外部よりも高いクロックレートで実行できることです。なぜあるタイプのメモリを別のタイプのメモリよりも選ぶのですか?これはメモリの特性と関係があり、SRAMはすべてのクロックにアクセスでき、DRAMは定期的なリフレッシュを必要とするため、すべてのクロックにアクセスできず、TCAMは3値機能を提供します。
TCAMは、それらをインスタンス化するためのチップ上のスペース、または外部のチップに接続するためのパッケージのピンがある限り、スケーラブルです。TCAMの問題は、SRAMの 2倍のスペースと、DRAMの 12 倍のスペースを取ることです。他のメモリタイプでアルゴリズム的に実行できるのと同じ操作(ハッシュ、*トライ)にTCAMを使用することが常に意味があるとは限りません。アルゴリズムの使用効率と、選択するチップ上のスペースとの間のトレードオフになります。TCAMの電力使用量は、サイズに比例して増加します。大規模なTCAM(2Mエントリを超える)の大部分は、アルゴリズム技術を使用して、省電力を実現できるようになりました。
NAT / PATは複雑な機能であり、フィックスアップを処理するには一般にCPUまたはネットワークプロセッサ(NPU)が必要です。NATの一般的なパケットフローは、最初のパケットがCPU / NPUに送信され、フローエントリがフローテーブルまたはACLテーブルにインストールされ、フロー内の後続のパケットを変換する方法に関する情報が含まれます。NAT / PATには複数の異なる形式があり、チップ内のそれぞれを最適化する方法と同じくらい多くの方法があります。最も単純なNATはIPを書き換えることであり、フィックスアップではなく、ペイロードに埋め込まれたアドレスを壊しても心配しないでください。
2013年のOrlandoのものにはないルックアップの背後にあるハイレベルのアイデアのいくつかをカバーするメルボルンのCiscoLive 2013で発表されたBRKARC-3466の別のバージョンがあります。この領域に関する優れた参考書は、ネットワークアルゴリズム:ジョージバルゲーゼによる高速ネットワークデバイスの設計への学際的アプローチです。