<...>
N>>Теперь корректируем на 300 байт на пакет, на 100GBit/s линк (есть и такие уже), на рост таблиц BGP (при полном переходе на IPv6 его таблица минимум удвоится, если не дойдёт до миллиона, как сейчас с IPv4). Медленно охреневаем от числовых требований и понимаем, что без подхода типа "8 параллельных процессоров на каждой сетевой карте с полным объёмом данных в собственной памяти" это не работает. А я ещё не начал считать внутренние кросс-шины, сколько и как они должны пропустить...
S> Опять же когда ты используешь деревья для поиска, то для понимания больше меньше, тебе не надо сравнивать полностью 16 байт. В большинстве случаев хватает и 8.
В интересующем нас случае, как уже сказал, хватает и 6.
Но от этого совсем легко не становится.
S>Только в конце поиска тебе придется полностью сравнивать.
Это делается — в интересном случае — уже другим железом. (Домашний раутер и даже раутер уровня трёх многоэтажек у домового провайдера не показательны.)
S> Опять же посмотрим во сколько раз производительность процессоров и памяти выросла и количество ядер
И снова мух не ловишь и несёшь клиническую чушь.
"Производительность памяти", та, что выросла, это _потоковая_ скорость передачи _DRAM_ при условии нахождения в пределах открытой строки без смены адреса в пределах строки!
(Строка, ликбез, это элемент структуры DRAM. Например, 4GB модуль будет состоять из 8 чипов, каждый 65536*65536 бит, одна строка это 65536 бит в пределах чипа и 65536 байт в пределах модуля.)
Если тебе нужно перейти на другой адрес в пределах строки — теряешь 10 нс на лучших текущих DDR5 и 15 нс на бюджетных DDR4. Зовётся "CAS latency".
Если тебе нужно поменять строку — операция закрытия одной строки и открытия другой это от 30-32 нс в лучших DDR5 и 45-50 нс в бюджетных DDR4. И не видно, чтобы эти времена уменьшились в ближайшем будущем, почему и продолжают разбухать процессорные кэши.
А теперь забываем про эти цифры вообще и думаем про SRAM.
Теперь про производительность процессоров. Выросла она только на тех применениях, где получается применить конвейер и максимально длинное out-of-order исполнение. Например, на Skylake (для более поздних цифры я не нашёл, секретят) 97 команд x86 ISA и 224 микрокоманды, сделанных из них. Но это всё работает только когда нет постоянных branching miss! А на лукапе по таблицам раутинга именно он и будет довлеть (опять же, не домашний раутер, где нормально что 95% пакетов в течение часа это один фильм, а магистральный). Значит, все эти достижения — в топку, и остаётся голая тактовая. А она сейчас с максимально быстрыми и простыми процессорами ≈10ГГц и не растёт уже последние 20 лет, а если сложный процессор — замедляйся до 4ГГц или меньше. Цифры тактовой не выросли по сравнению с Pentium 4, а то и упали в массе, потому что растекаться лужицей от перегрева никому не хочется.
Количество ядер? А моё сообщение, что на каждое из таких ядер потребуется полная копия таблицы раутинга, чтобы не конфликтовать друг с другом — ты пропустил?
Сколько ядер влезет в один "камень", если каждому ядру потребуется 128MB SRAM? В лучших ксеонах от Intel, которые за 15 килобаксов, L3 кэш, как пишут, 504MB, но это один общий на все ядра.
И каждый день добавляется по несколько блоков IP в мировом раутинге, потому что всем хочется интернета.
Когда ты читаешь всякие 3dnews, где тебе рекламируют память для игрового компа и как новое поколение ускорило какой-нибудь Crysis аж на 2 FPS, включай голову и разбирайся, о каких именно характеристиках идёт речь. Ничего из твоих аналогий не работает в мире магистральных раутеров, и твой опыт идёт в /dev/null.
S> При этом 64 битные процессоры массово появились относительно недавно.
В мире Windows? Да, наверно. Он в этом смысле (и не только в этом) убог и ограничен.
S> И тоже крику было много. Однако живем и в мобильниках давно существует.
Как только пошёл вопрос о RAM толще 1GB, это стало неизбежно. И никто разумный по этому поводу не кричал.