5. Память и буферы¶
Ну вот мы и добрались до ниточки, с которой клубок начал распутываться.
В сетевых чипсетах есть встроенная память (OCB - On Chip Buffer) как раз для хранения тел. Её размер в силу физических ограничений очень мал (до 100Мб), но для большинства задач - это разумный компромисс.
Note
Бывают редкие исключения, где встроенная память имеет больший размер.Но всегда были и будут сценарии, в которых нужна память гораздо большего объёма, в этом случае прибегают к использованию внешней относительно чипа коммутации памяти. Такие устройства называются Deep Buffer.И о них и вообще о компромиссах мало-много памяти поговорим отдельно.
Управляет доступом к физической памяти MMU - Memory Management Unit. Он довольно похож на MMU в компьютерах (по сути является им). Программа обращается к указателю, чтобы извлечь данные из памяти, MMU транслирует это в реальный адрес ячейки и возвращает данные.
MMU занимается размещением пакетов в буферах, их извлечением или отбрасыванием. Он же контролирует разделение памяти на области (dedicated, shared, headroom, voq) и их загрузку.
За более верхнеуровневое управление очередями и перегрузками отвечает блок TM - Traffic Manager.
Есть два подхода к размещению тел в буферах: Store-and-Forward и Cut-Through.