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

Битрикс24

www.bitrix24.ru

28
Отследить-посылку

Отследить-посылку

отследить-посылку.рф

13
WebResidentTeam

WebResidentTeam

webresident.agency

12
Логомашина

Логомашина

logomachine.ru

11
Devicerra

Devicerra

devicerra.com

9
ADN Digital Studio

ADN Digital Studio

adn.agency

9
Aword

Aword

Приложение для изучения английских слов

9
Eczo.bike

Eczo.bike

www.eczo.bike

9
GIFTD

GIFTD

giftd.tech

7
Flowlu

Flowlu

flowlu.ru

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

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

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