Предыстория
С момента своего выпуска, сетевая карта Killer NIC завоевала репутацию экстравагантной и несколько сомнительной платы расширения для сборщиков. Чтобы разобраться в этом вопросе, мы обратились к разработчикам данной карты.
Пару месяцев назад мы натолкнулись на статью о том, что Dell собирается предоставлять сетевой адаптер Killer NIC в качестве опции в своих high-end игровых системах XPS 630 и 730; у Dell можно также отдельно купить обе модели карты: M1 и K1. В России на момент публикации мы обнаружили в продаже только карту M1 по цене 10,5 тыс. рублей.
Нажмите на картинку для увеличения.
Однако отзывы наших читателей свидетельствуют о непонимании истинной эффективности сетевой карты Killer NIC. В попытке выяснить все её преимущества и недостатки, корреспонденты Tom’s Hardware обратились прямо к источнику. Нам удалось связаться с Харланом Беверли (Harlan Beverly), исполнительным директором компании BigFoot Networks, и взять у него интервью. Харлан является непосредственным разработчиком технологии Killer NIC, а за его плечами впечатляющий послужной список участия в НИОКР. Будучи некогда инженером-разработчиком в компании Intel, Харлан знает всю подноготную компьютерных сетей.
Но прежде чем мы перейдём к самому интервью, позвольте нам напомнить, что собой представляет Killer NIC, чем она, предположительно, может быть вам полезной, и что она может делать такого, чего не могут нам дать другие сетевые контроллеры (Network Interface Controller, NIC).
Killer NIC – это особым образом сконструированная сетевая карта, которая предназначена специально для хардкорных геймеров. Многие пользователи отказываются от Killer NIC, потому что считают, будто основная цель данной карты заключается в том, чтобы “сократить время ping-ответа”. Но с формальной точки зрения, это лишь один из аспектов сетевой карты.
Как все мы знаем, мы не можем контролировать то, что происходит между нашими персональными компьютерами и серверами в Интернете, к которым мы получаем доступ, чтобы победить своих противников в игре. Но мы можем управлять ресурсами нашей операционной системы. Вот здесь и может Killer NIC проявить себя во всей красе, используя способность обходить IP-стек в Windows и напрямую обрабатывать все UDP-пакеты (User Datagram Protocol – протокол пользовательских дейтаграмм). Протокол UDP является основой для коммуникации в многопользовательских играх по Интернету и в локальных сетях (Local Area Network, LAN).
Практически каждая материнская плата для энтузиастов поставляется с одним или двумя встроенными сетевыми Ethernet-контроллерами. Эти интегрированные контроллеры часто предоставляют функцию TCP Offloading (снижение нагрузки на CPU по обработке пакетов TCP). У технологии TCP Offloading есть своё назначение, и, по мнению автора данной статьи, игры к нему не относятся. Долгое время существовало неправильное представление об этой технологии. TCP Offloading бесполезна для игр по двум причинам: во-первых, она разработана для увеличения пропускной способности, а не для снижения задержек, а во-вторых, игры не используют пакеты TCP для коммуникации.
Ещё одно недоразумение связано с тем, что некоторые пользователи считают, будто они получат тот же результат, если вставят серверный сетевой адаптер в свою рабочую станцию. На самом деле, это далеко не так. Серверные сетевые адаптеры не обрабатывают UDP-пакеты с помощью своих собственных встроенных процессоров. Серверные NIC-карты предназначены для увеличения пропускной способности и для одновременного управления большим количеством TCP-потоков.
Так как же всё-таки Killer NIC увеличивает частоту кадров и уменьшает время ping-ответа? Вот что говорит по этому поводу сама Bigfoot:
“Killer Gaming Network Card компании Bigfoot Networks разработана для сокращения лагов и задержек, которые часто возникают в интенсивных интерактивных массовых многопользовательских онлайновых играх (MMO) и шутерах от первого лица (First Person Shooter). Killer ускорит передачу ваших игровых данных, что будет способствовать более отзывчивой и плавной игре, а также даст вам конкурентное преимущество над противниками.
- Улучшенная отзывчивость: Killer NIC обходит сетевой стек протоколов Windows, сокращая время внутриигрового ping-ответа и обеспечивая вам необходимое преимущество.
- Делает игру более плавной, когда это особенно необходимо: снимает всю сетевую нагрузку с центрального процессора, увеличивая тем самым частоту кадров (fps), особенно во время интенсивных игровых действий.
- Более быстрая отправка игровых данных: сетевые пакеты, отправляемые играми, получают наивысший приоритет, так что они доставляются быстрее”.
Проблема здесь в том, что большинство геймеров знает, что если своё собственное “железо” можно оптимизировать, то совершенно ничего нельзя сделать на уровне соединения, маршрутизатора, провайдера и игрового сервера. Несмотря на большую долю критики и сомнений, Харлан Беверли решил прояснить все недоразумения, связанные с Killer NIC. Он детально пояснил нам, чем отличается Killer NIC от других сетевых адаптеров, и подробно рассказал о том, как происходит весь процесс обработки внутри самой карты.
Мы ждём, когда нам вышлют образец этой карты, чтобы мы могли протестировать её в своей лаборатории. А на данный момент все заявления о производительности всё ещё вызывают сомнения. Мы напишем полный обзор по результатам тестирования Killer NIC, как только она появится в нашей лаборатории, а пока предлагаем вам ознакомиться с тем, что говорит Харлан о флагманском продукте своей компании.
Отличительные черты
THG.ru. Способность сетевых карт Killer NIC разгружать процессор определённо приносит пользу в работе с протоколом UDP, который используется практически во всех онлайновых компьютерных играх. Насколько мы понимаем, функция “UDP Offloading” – это то, что отличает Killer NIC от других контроллеров: меньшее количество обращений к центральному процессору при обработке UDP-трафика.
А что отличает Killer NIC (не считая FNA) от таких контроллеров, как Intel Pro 1000 PT с его функцией координации прерываний и форм-фактором PCI-Express?
Харлан. На самом деле, я помогал конструировать платы серии Intel Pro, когда был разработчиком в компании Intel и работал над сетевыми ускорителями (Networking Acceleration). Я очень хорошо знаю эти, а также другие “настольные” сетевые карты. Трудно даже описать, насколько сильно Killer отличается от этих продуктов. Одним словом, здесь кроется причина, по которой я основал компанию Bigfoot Networks. Intel, Broadcom, Marvel, Adaptec, Linksys и другие всегда ориентировались на три критерия сетевых адаптеров:
- Скорость соединения (10/100/1000 Мбит/с и т.д.).
- Форм-фактор (PCI, PCI-E и т.д.).
- Пропускная способность.
Bigfoot Networks и Killer NIC существуют, потому что у них другая парадигма. Мы считаем, что задержки (лаги) возникают из-за трёх отдельных объектов (клиент, сеть и сервер), и производительность игры в целом определяется именно их взаимодействием, а не только скоростью соединения сетевой карты или её форм-фактором. Наш первый продукт – Killer NIC – был разработан с учётом оптимизации для игр и уменьшения задержек в игре со стороны клиента. Это значит, что Killer активно избегает вызывающих задержки технологий, таких как координация прерываний (interrupt moderation), поскольку это функция оптимизации пропускной способности, которая увеличивает задержки (из-за буферизации). Killer немедленно прерывает систему всякий раз, когда поступают новые сетевые данные! Это лишь один из примеров множества функций карты Killer, направленных на улучшение игровых возможностей, которых нет у типичных сетевых адаптеров.
Ещё одной важной функцией, которая выделяет Killer среди других стандартных сетевых карт, является её способность при использовании протокола UDP (User Datagram Protocol) полностью обходить стек сетевых протоколов в Windows. Позвольте мне объяснить, что это значит, потому что этот процесс сильно отличается от того, что делает Intel Pro 1000 PT. Intel Pro 1000 PT использует функции Checksum Offload и Large Segmentation Offload, а Killer – функцию Windows Stack Bypass. Это огромная разница. Чтобы осуществить Stack Bypass, вам понадобится то, что есть только у Killer: специальный сетевой процессор (Network Processing Unit, NPU), который может отслеживать каждое соединение и определять, какое приложение какие данные должно получить.
Checksum Offload – это на сегодняшний день “бесполезная” функция (но Killer, разумеется, тоже может её выполнять), при которой сетевой адаптер производит вычисления с входящими и исходящими контрольными суммами.
Функция Large Segmentation Offload актуальна только при передаче данных больших размеров по TCP/IP (как вы правильно заметили, к играм это не относится)… Разработана она для оптимизации пропускной способности и может на самом деле ухудшить игровую производительность тех немногочисленных игр (например, World of Warcraft), которые используют TCP/IP.
Killer использует другой подход. Мы перехватываем все игровые запросы к Winsock API и перенаправляем их на нашу сетевую карту с мгновенным прерыванием. Это аппаратное прерывание происходит при каждой отправке или приёме непосредственно от нашей карты к игре. Почему так происходит? Потому что наш сетевой процессор NPU фильтрует трафик и знает, какое приложение какие данные получает, а затем они отправляются прямо к игре прямо на верхний уровень WinSock.
Более того, мы провели бессчётное количество часов, сотрудничая с разработчиками игр и работая в наших собственных лабораториях, и оптимизировали целую систему разгрузки для игр. Интересно, что во время работы начали происходить потрясающие вещи. Нам удалось увеличить частоту кадров (FPS) в играх. Частота кадров повышалась, а мы не могли понять, как и почему это происходит! После продолжительных экспериментов, мы, наконец, поняли, в чём дело. Поскольку игра может получать ответ при вызове функции Winsock только за один цикл (отправка, получение, выбор и т.д.), то игра меньше времени проводит внутри ядра Windows Kernel (которое работает синхронно и только на одном ядре)… а значит, весь игровой цикл может работать быстрее. Это возможно только при использовании специально выделенного сетевого процессора NPU, который геймеры могут получить только с сетевой картой Killer NIC. Когда мы это выяснили, мы поняли, почему нам так нравилось играть с картой Killer: игра была более отзывчивой (меньше время ping-запроса/ответа), более быстрой (выше частота кадров) и плавной.
Среди других функций, которые будут полезны и геймерам, можно выделить следующие:
- возможность динамично задавать, сколько пропускной способности разрешено использовать каждому приложению, и приоритет между ними;
- запускать брандмауэр прямо внутри сетевой карты Killer, чтобы можно было обойти более медленный вариант на маршрутизаторе;
- Flexible Network Applications (гибкая сетевая архитектура), позволяющая любому желающему писать Linux-программы, которые будут запускаться на сетевой карте Killer NIC, как на отдельном компьютере;
- возможность мгновенно реагировать на запрос игровых данных в пользовательском режиме.
Есть и другие функции, и постоянно появляются всё новые.
Есть ли преимущества для конечного пользователя?
THG.ru. По-видимому, это принесло бы пользу конечным пользователям с немного устаревшим “железом” (со старыми одно- и двуядерными процессорами). А поможет ли Killer NIC энтузиастам с high-end четырёхъядерными и экстремальными двуядерными процессорами? Как насчёт новой процессорной архитектуры i7 (Nehalem)?
Харлан. Наши тесты с двуядерными и четырёхъядерными процессорами показали такой же и даже лучший результат, чем со старыми одноядерными системами. Большинство онлайновых игр по своей природе не могут извлекать большую выгоду из многоядерности, когда дело касается работы в сети. Всё должно происходить по порядку, а значит в последовательном режиме. Ядро Windows Kernel тоже не оптимизировано под многоядерные процессоры. Разработчики драйверов, желающие получить преимущество от использования многоядерных процессоров, могут это сделать, только если они будут параллельно вызывать разные функции или выберут асинхронный режим работы. В сети этот номер не пройдёт. Неупорядоченность данных в одном сокете – это катастрофа для игры, с точки зрения производительности и вообще возможности играть.
В целом, наше тестирование показало, что поскольку драйверы ядра, а также Winsock и сетевой уровень Windows не очень оптимизированы под многоядерность, то Killer NIC оказывает большее влияние на многие двуядерные и четырёхъядерные процессоры, потому что частоты ядер обычно чуть ниже, чем у одноядерных процессоров. Даже если бы они были оптимизированы под многоядерность, то вся наша парадигма, заключающаяся в “прерывании на каждый пакет”, “затрате как можно меньшего времени” и “оптимизации для задержек, а не для пропускной способности”, настолько отличается и независима от числа ядер, что она обходит все другие решения, даже основанные на высоко оптимизированном коде. Большее количество ядер выгодно для вашей графической подсистемы, физики, AI и т.д., но в сети всегда должна быть последовательность, и только одна компания специализируется на том, чтобы максимально ускорить эту последовательность и оптимизировать её для сокращения задержек и обеспечения максимально большого числа FPS для каждой из протестированных нами игр (а мы протестировали практически все MMO и онлайновые FPS-игры).
THG.ru. Может показаться, что способность сетевой карты Killer NIC запускать встроенный брандмауэр и такие службы, как BitTorrent (на основе FNA), предоставляет владельцу этой карты уникальную возможность освободить центральный процессор от этих задач. Однако если запустить BitTorrent без использования внешнего накопителя, подключаемого к Killer NIC через USB-порт, то не будет ли нагрузка ввода/вывода из-за массивных скачек/закачек мешать обработке UDP-пакетов?
Харлан. Отличный вопрос! Как раз над этим мы сейчас активно работаем с командой наших разработчиков. Надо сказать, что в нашем штате работают несколько самых лучших разработчиков в мире! Как нам это удалось? 1.) Мы живём в Остине и являемся компанией по разработке игр, так что мы привлекаем самых ярких и талантливых разработчиков из лучших компаний мира. 2.) Когда я работал разработчиком в компании Intel, я подружился со многими ребятами, которых впоследствии руководство Intel захотело отправить в Орегон… Неудачный ход! Практически никто из них не поехал в Орегон; вместо этого многие из этих ребят устроились на работу в стартапах в Остине. Компании Bigfoot тоже посчастливилось привлечь многих из них, в том числе Чарли Мусту (Charlie Musta) – это, на мой взгляд, лучший в мире разработчик драйверов Windows с более чем 25-летним стажем, с которым мы вместе основали Bigfoot.
Таким образом, у нас есть несколько довольно искусных способов, как решить проблему дисковых операций для нагрузок, подобных BitTorrent с играми, и я уверен, что вы можете догадаться, что это за способы. Интересно как раз то, что мы делаем то же, что делают Intel и другие, но только для игровых приложений. Одним словом, в разработке у нас сейчас находится возможность, позволяющая оптимизировать некоторые данные для пропускной способности (например, дисковые операции ввода/вывода и передачу файлов), в то время как другие данные идут по пути уменьшения задержек. Это нелегко сделать, поэтому я не могу сказать, когда именно эта функция будет широко доступна, но с NPU это реально сделать, поскольку мы можем оптимизировать каждое соединение независимо.
Реальные приложения
THG.ru. Геймеры и энтузиасты, как правило, не используют такие приложения, как клиенты BitTorrent, в фоновом режиме во время игры, чтобы сэкономить ресурсы системы. Однако многие геймеры пользуются такими клиентскими программами, как Ventrilo, TeamSpeak или Mumble. Адаптировала ли Bigfoot свою идею FNA для создателей Ventrilo и TeamSpeak, чтобы они создали первые клиенты и/или серверы FNA? Мы спрашиваем, потому что у Killer NIC есть для этого потенциал, однако мы считаем, что есть и недостаток – низкий интерес со стороны программистов под Linux. Если такие клиенты всё же существуют, то просим прощение за своё невежество, потому что мы таковых не обнаружили.
Харлан. И у TeamSpeak, и у Mumble есть Linux-клиенты, и мы работаем с обоими сообществами над созданием FNA-версий. Хотя на данный момент мне пока сообщить нечего, я могу сказать, что согласен с тем, что геймеры хотят использовать такие функции, и реализовать это – одна из наших приоритетных задач. Единственное, чего мы не будем делать, – это по каким-то причинам или ради каких-то приложений, работающих на Killer NIC (например, VOIP), жертвовать производительностью сетевых игр, так что в отношении игр мы придерживаемся принципа “не навреди”. Такая преданность, присущая только тем компаниям, которые сосредоточили усилия исключительно на играх, – NVIDIA, ATI и Bigfoot Networks – как раз и отличает продукцию Killer NIC от других, помимо всех тех функций, над которыми мы сейчас работаем.
THG.ru. Ни одна сетевая карта не может ничего поделать с тем, что происходит на физическом уровне. Планирует ли Bigfoot выпустить серверную сетевую карту Killer, которая бы предоставляла такие же функции разгрузки для игрового сервера и, возможно, улучшения для клиентов, использущих Killer NIC?
Харлан. Да, все мы понимаем, что проблема задержек (лагов) в играх системна, то есть является результатом взаимодействия клиента, сервера и сети. Killer является лишь первой из трёх фаз технологии Bigfoot Technology, которая, мы надеемся, когда-нибудь покончит со всеми задержками. Вторая фаза находится на стадии разработки. У нас есть сетевой ускоритель Killer-Server NIC (с кодовым названием GSA, или Game Server Accelerator), который мы предлагаем разработчикам вместе с комплектом SDK. Подробнее об этом можно почитать на нашем web-сайте в разделе “Технологии будущего/future technology”, но в целом мы можем сделать даже больше для игровых серверов с нашим GSA благодаря комплекту SDK, который разработчики игр могут использовать для оптимизации.
Вот что самое интересное: если компания-разработчик игр оптимизирует свою игру для использования GSA, то эта игра также оптимизируется и для работы с картой Killer NIC! Большая часть обработки сетевых данных, функции брандмауэра и другое ложится на плечи сетевой карты Killer и в результате она лучше интегрируется в игру. Компания Emergent Game Technologies уже поставляет игровой движок (MMO Engine) с поддержкой GSA и SDK (под названием LLR2), и это лишь один из примеров, о котором я могу заявить публично. Многие производители активно оптимизируют свои игры под GSA, поскольку это не только позволит им сэкономить деньги на серверах, но и обеспечит всем пользователям уменьшение задержек во время игр, независимо от того, есть у них сетевая карта Killer NIC или нет.
Заключение
THG.ru. Есть ли планы у Bigfoot модернизировать Killer NIC для PCI Express для энтузиастов, которые имеют материнские платы с недостаточным место для поддержки плат Killer NIC из-за конфигураций с двумя видеокартами или 3-way SLI?
Харлан. Одним словом, да. Эта проблема является результатом ограничений технологии. Особой разницы по задержкам между версиями PCI-E и PCI не будет, поскольку мы извлекаем выгоду, в основном, за счёт “обхода Windows”… разве что будет чуть больше пропускной способности и возможность более удобного расположения в некоторых компьютерах. Хорошая новость заключается в том, что PCI-версия недавно достигла розничной цены в $149,99 (в США), и мы продолжаем делать всё, чтобы она была лучшей в своём классе… У многих пользователей есть свободный слот PCI, и нет смысла ждать (неизвестно ещё сколько), пока наши разработчики закончат версию PCI-E, учитывая, что она не будет лучше с точки зрения сокращения задержек, а версии под PCI будут получать все новые функции, которые могут появиться у карты PCI-E.
THG.ru. И последний вопрос: есть ли в запасе у Bigfoot новые интересные идеи? Например, клиентский маршрутизатор с поддержкой BitTorrent, чтобы пользователь мог выключать свой ПК, а маршрутизатор при этом продолжал бы скачивать торренты на внешний накопитель? Или, скажем, клиентское VoIP-решение для геймеров в виде какого-нибудь внешнего устройства, функционирующего как сервер/клиент?
Харлан. У нас есть миллионы интересных идей, и многие из них уже реализуются. Прямо сейчас мы ничего нового не анонсируем, но я поделюсь с вами некоторыми профессиональными наблюдениями. Во-первых, онлайновые игры продолжают развиваться и становиться более сложными, более социальными и более эмоционально насыщенными. Я предполагаю, что VOIP станет стандартной функцией в играх, а тут и до видео не далеко. Во-вторых, медлительность MMO мне не нравится. Почему бы нам не играть в смесь Battlefield 2 и Age of Conan?
Я считаю, что наша конечная цель – “конец лагам” – состоит в том, чтобы сделать возможным играть в быстрые MMO-игры, которые позволят вам точно наносить удары в массовой схватке, всё это под VoIP-выкрики друзей и врагов, как в настоящей драке в реальном времени. Видение всего этого и явилось причиной основания компании Bigfoot Networks, а технологии и продукты, в которых реализованы эти идеи, – это то, что вы можете ждать от Bigfoot в будущем.
THG.ru. Спасибо за потраченное время!