История изменений
Исправление 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 пакет) пропускать через ЦП чтобы не протух коннекшн в коннтраке.