«

»

Фев 17 2016

Работа над протоколом SNT/IP и его реализацией завершена

Недавно была завершена работа над сетевым протоколом SNT/IP (часть компонента SkyNT), разрабатываемым для Sky Engine 2, его референсной реализацией и эмулятором сети для её тестирования и отладки. Полученные характеристики протокола хоть и оказались несколько хуже ожидаемых при начале работы, но вполне приемлемые:

  • Способность поддерживать непрерывное соединение в течении 48.5 суток
  • Способность работать как по IPv6, так и по IPv4 сетям (в IPv4 сетях имеется поддержка NAT)
  • Способность сервера к обслуживанию 1024 клиентов через интерфейс Ethernet 10G
  • Способность клиента к работе с сервером через интерфейс Ethernet (10 Mbps)
  • Способность не разрывать соединение при смене клиентом сетевого подключения и IP-адреса (а при работе через NAT ещё и порта)
  • Оптимизация для обработки железными реализациями (фильтры и распределители пакетов сетевых карт и маршрутизаторов, offload-реализации непосредственно SkyNT на FPGA)
  • Защита всех передаваемых данных и почти всей служебной информации протокола AES-256 шифрованием в режиме CTR с уникальным nonce для каждого пакета
  • Поддержка целостности всех передаваемых данных и всей служебной информации протокола с помощью CRC32 хеша
  • Наличие специального двухступенчатого механизма быстрого восстановления связи при кратковременном (до 15 секунд и до 5 минут) отказе интернет соединения
  • Способность ежесекундно передавать серверу следующие данные:
    1. До 64000 малых (8 байт) команд, критичных к скорости доставки, с негарантированной доставкой (передача осуществляется методов скользящего окна в 64 последние команды и в реальности не предполагает передачу более чем 64 команд в секунду)
    2. До 900 больших (512 байт) команд с гарантированной доставкой (механизм передачи подобен таковому в TCP)
    3. 50 звуковых фреймов по 512 байт каждый, с двух кратным отправлением
  • Способность ежесекундно передавать клиенту, с использованием избыточного XOR-кодирования 4+1, следующие данные:
    1. 700 блоков данных репликации состояния игрового мира по 1КБ с негарантированной доставкой и очерёдностью (потеря очерёдности возможна только при восстановлении потерянного пакета)
    2. 50 звуковых фреймов по 1КБ
  • Наличием встроенного механизма мониторинга качества связи (пинг, потери пакетов от и к клиенту)

Добавить комментарий