LINUX.ORG.RU

История изменений

Исправление NiTr0, (текущая версия) :

Жрать будет потому что даже для тупой коммутации надо для каждого пакета как минимум прочитать MAC-адрес, поискать в табличке, пнуть нужный MAC чтобы он пакет забрал.

это все прекрасно делается аппаратно без участия ЦП.

пришел пакет, проматчился по src/dst ip+port на коннекшн из таблички - ок, сменился src ip/port, сменился dst mac пересчиталась КС и улетел на другой MAC. не проматчился - уходит в ЦП. ну и каждый 1000-й пакет (или раз в секунду 1 пакет) пропускать через ЦП чтобы не протух коннекшн в коннтраке.

табличка - в своем SRAM (в идеале) или в обдельной резервированной области DRAM (в реальных SoC)

Исходная версия NiTr0, :

Жрать будет потому что даже для тупой коммутации надо для каждого пакета как минимум прочитать MAC-адрес, поискать в табличке, пнуть нужный MAC чтобы он пакет забрал.

это все прекрасно делается аппаратно без участия ЦП.

пришел пакет, проматчился по src/dst ip+port на коннекшн из таблички - ок, сменился src ip/port, сменился dst mac пересчиталась КС и улетел на другой MAC. не проматчился - уходит в ЦП. ну и каждый 1000-й пакет (или раз в секунду 1 пакет) пропускать через ЦП чтобы не протух коннекшн в коннтраке.