Лучшие статьи и кейсы стартапов
Включить уведомления
Дадим сигнал, когда появится
что-то суперстоящее.
Спасибо, не надо
Вопросы Проекты Вакансии
Социальная группа внутри wifi router
Рекомендуем
Продвинуть свой проект
Лучшие проекты за неделю
36
Эбиа

Эбиа

www.ebia.ru

16
Enlite

Enlite

enlited.ru

15
likearea

likearea

smm.li

14
Amarket

Amarket

amarket.io

14
Relap

Relap

relap.io

12
RockinRobin

RockinRobin

www.rockinrobin.co

11
Perezvoni.com

Perezvoni.com

perezvoni.com

11
Cookiezz

Cookiezz

cookiezz.com.ua

11
ПРОМКА24

ПРОМКА24

promka24.com

Показать следующие
Рейтинг проектов
Подписывайтесь на Спарк во ВКонтакте

Выпущена первая версия egocast на основе netstream technology

189 0 В избранное Сохранено
Авторизуйтесь
Вход с паролем
В этой публикации я расскажу чем отличается netstream technology от WebRTC.

Сравнение

Из большого многообразия технологий аналогов netstream стоит выделить WebRTC/libjingle проект. Другие аналоги netstream являются проприетарными и их исходный код строго конфиденциален. libjingle это OpenSource библиотека под лицензией BSD, имплементирована на языке C/C++.

WebRTC. Ключевые возможности библиотеки:

- обход NAT, используя стандартные технологии STUN/TURN;

- выяснение всевозможных маршрутов с помощью прикладного протокола ICE;

- передача текстовых сообщений;

- стриминг мультимедиа в режиме один ко многим;

- peer-to-peer передача данных;

- прочие возможности.

Передача текстовых сообщений в libjingle осуществляется с помощью протокола XMPP. XMPP основан на xml и обладает достаточной избыточностью при кодировании информации. Также XMPP не целесообразно использовать для передачи бинарных данных, т. к. данные закодированы с помощью base64 кодировки. Мультимедиа данные передаются с помощью протокола RTP/RTCP, таким образом для передачи одного потока данных необходимо обеспечить соединение минимум двух UDP портов для каждого peer (протоколы RTP и RTCP используют разные порты). Передача данных peer-to-peer file sharing в libjingle основана на протоколе pseudo-tcp. Pseudo-tcp это всем известный TCP, с некоторыми изменениями, реализованный поверх UDP (транспортный уровень). В Pseudo-tcp функция connect реализована по своему, т. к. этот протокол использует UDP в качестве транспорта, также отсутствует функция accept. Реализация pseudo-tcp поверх UDP дает несомненное преимущество по сравнению со стандартным TCP — появляется возможность обхода NAT в некоторых случаях. Pseudo-tcp переодически посылает PING пакеты, это делается для того чтобы после успешного прохождения NAT, port map на устройстве NAT был такой же как после установления соединения. В библиотеке libjingle применен способ обхода NAT с использованием STUN/TURN сервера, однако для каждого нового потока данных есть необходимость использовать новый порт. Используемые протоколы в WebRTC не универсальны и для каждой конкретной задачи выбирается свой протокол: текстовые сообщения - XMPP, стриминг мультимедиа - RTP, передача данных - pseudo-tcp.

Технология netstream.

Технология netstream содержит внутри себя протокол транспортного уровня netxstream. Транспортный уровень протокола является универсальным для передачи любой информации, протокол имплементирован на основе UDP протокола и гарантирует доставку данных от одного peer к другому. Протокол netxstream основан на бинарном потоке данных и поддерживает передачу нескольких потоков одновременно (до 64k) при этом используется всего один UDP порт, передача данных может вестись в обе стороны - full duplex. Протокол оценивает пропускную способность сети и использует ее наиболее эффективно. Также существует возможность получения текущей скорости сетевого соединения, наиболее актуально для кодирования и передачи мультимедиа, т.к. bitrate источника мультимедиа данных должен мгновенно реагировать на изменения сетевой среды для предотвращения перегрузки канала. В сравнении с TCP в netxstream также присутствуют 2 окна (на прием и передачу), но есть возможность задания небольших окон для приема и передачи данных и их фиксации, окно не растет. Таким образом появляется возможность наиболее эффективного использования протокола под конкретную задачу. В протокол netxstream также заложена возможность сохранения port map на NAT устройстве, PING пакеты посылаются только по служебному потоку данных. Транспортный уровень протокола автоматически отслеживает загрузку сети и принимает решение на увеличение/уменьшение bitrate. Netxstream поддерживает шифрование потока данных. Таким образом, протокол netxstream является более универсальным, менее требовательным к ресурсам, более гибким чем семейство протоколов в WebRTC. Однако обход NAT и использование STUN/TURN серверов также является актуальным для netxstream, но на сегодняшний день netxstream работает только в локальной сети. Технология netstream является кросс платформенной, реализована в виде набора библиотек и имплементирована на языке программирования C. Технология netstream является проприетарной собственностью.

Будущее.

Будущее расширение протокола netxstream сможет передавать данные как с гарантированной доставкой так и без нее, при этом после потери пакета данных будет возможность автоматического восстановления целостности сетевого потока. Наиболее актуальное применение с потерями это передача голоса и низкоскоростная передача видео потока, где очень важна низкая задержка сети, а не гарантированная доставка данных.

Всем пока, пишите.

Надеюсь кого-то это заинтересовало. Буду рад ответить на вопросы.

0
Добавить в избранное Сохранено
Авторизуйтесь
Вход с паролем
Комментариев еще не оставлено
Выбрать файл
Читайте далее
Загружаем…
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать