Pull to refresh

Соединение компьютер-компьютер через интернет с динамическими IP

Algorithms *
Очень часто мы слышим о том, что установить соединение компьютер-компьютер через интернет с динамическими IP – нереально без внешнего сервера.
А также думал, до определенного времени. Потом у меня закрались подозрения… А после мне стало известно очень многое и тайное.

Однако скайп, аська для передачи файлов, торренты, в конце концов, используют каким-то образом прямое подключение.
Как? Об этом я и хочу рассказать.

Все совпадения случайны, цифры изначально выдуманы.

Читать дальше →
Total votes 41: ↑22 and ↓19 +3
Views 135K
Comments 46

WebRTC в Mail.Ru Агенте и ICQ – плюсы, минусы и перспективы

VK corporate blog
Привет, Хабр!

Недавно мы выпустили новую версию Mail.Ru Агента 5.10 для платформы Windows, и в списке новых «фич» этой версии появилась неприметная строчка: «улучшено качество голосовых и видеозвонков».

На первый взгляд, минорное изменение – но только на первый взгляд. На самом деле мы полностью отказались от медиа-библиотеки, которой пользовались до сих пор, и перешли к использованию собственного «движка», построенного на открытом решении WebRTC. Об этом мы хотели бы сегодня рассказать поподробнее.
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 10K
Comments 16

Пишем свой мессенджер P2P

Python *Twisted *

На фоне обсуждения будущего интернет мессенджеров и прочтения статьи «Почему ваш любимый мессенджер должен умереть», решил поделиться своим опытом создания P2P приложения для общения независимо от сторонних серверов. Точнее — это просто заготовка, передающая одно сообщение от клиента серверу, дальнейшее расширение функционала зависит только от Вашей фантазии.
Читать дальше →
Total votes 20: ↑16 and ↓4 +12
Views 74K
Comments 46

Решаем проблемы с удаленными подключениями в 3CX

3CX Ltd. corporate blog System administration *IT Infrastructure *Network technologies *Server Administration *
Tutorial

К нам периодически поступают обращения о некорректной работе удаленных пользователей, подключенных к 3CX через корпоративный NAT маршрутизатор или сетевой экран. В этой статье предлагаем пошаговое руководство по решению проблем с удаленными подключениями.


К сожалению, 3CX не может гарантировать корректную работу “прямых” удаленных подключений, особенно без использования технологии 3CX Tunnel.


Корректная работа не гарантируется по следующим причинам:


  • Специфическая либо некорректная топология сети;
  • Специфические либо некорректные настройки маршрутизатора или сетевого экрана как со стороны 3CX, так и со стороны удаленного пользователя;
  • Некорректная работа NAT или SIP ALG сервисов в сетевых устройствах (иногда устраняется обновлением прошивки);
  • Блокирование определенных портов интернет провайдерами (у некоторых операторов или в отелях);
  • Отсутствие доступа VoIP специалиста к сетевому оборудованию, т.е. невозможность настроить сеть заказчика для работы VoIP приложений.

На что следует обратить внимание, если вы столкнулись с проблемами при удаленном подключении?

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 14K
Comments 0

Как узнать свой внешний IP из программы

Emercoin corporate blog Programming *System Analysis and Design *IT Standards *


При написании различных программ для работы с сетью, особенно p2p систем, время от времени возникает необходимость узнать внешний IP своего компьютера из программы (тот адрес, по которому Ваш компьютер доступен из Большого Интернета). Часто возникает искушение пойти легким путем и использовать внешние WEB-сервисы, которые по http возвращают Вам IP, или самому развернуть таковой. Хотя такой способ решения задачи и работоспособен, он тем не менее, имеет ряд недостатков:

  • При использовании собственного сервера – нужно где-то его держать и поддерживать, заодно и c соответствующим доменным именем. В случае выхода его из строя, или принудительного отзыва домена, вся Ваша p2p сеть выходит из строя.
  • При использовании внешнего сервера – Вы вводите зависимость своей системы как от его работоспособности, так и от формата ответов, который вообще никак не стандартизирован, и который владелец сервера может поменять в любой момент. С теми же последствиями для вашей сети.
  • http, которым советуют пользоваться – базируется на tcp, то есть протокол сравнительно тяжеловесный, требующий установки соединения и тп. В общем, пользоваться можно, но перерасход ресурса как компьютера, так и сети налицо.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 17K
Comments 32

Вся боль p2p разработки

Тензор corporate blog Information Security *Programming *Algorithms *Network technologies *
Добрый день, хабрасообщество! Сегодня я хотел бы рассказать о волшебном и чудесном проекте компании Тензор — удаленном помощнике. Это система удаленного доступа, связывающая миллионы клиентов и операторов в рамках общей клиентской базы СБИС. Удаленный помощник уже сейчас тесно интегрирован с online.sbis.ru. Каждый день мы регистрируем более десяти тысяч подключений и десятки часов сессионного времени в сутки.В этой статье мы расскажем о том, как мы устанавливаем p2p соединения, и что делать, если этого сделать не удается.


Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 11K
Comments 22

Опыт использования WebRTC. Лекция Яндекса

Яндекс corporate blog Website development *JavaScript *Browsers
Что лучше использовать при разработке софта — нативные или веб-технологии? Холивар по этому поводу закончится ещё не скоро, но мало кто станет спорить, что нативные функции полезно продублировать для использования в браузерах или WebView. И если когда-то приложения для звонков существовали исключительно отдельно от браузера, то теперь их легко реализовать и в вебе. Разработчик Григорий Кузнецов объяснил, как пользоваться технологией WebRTC для P2P-соединений.


— Как вы все знаете, в последнее время появляется довольно много приложений, в основу которых заложен прямой обмен данными между двумя браузерами, то есть P2P. Это всевозможные мессенджеры, чаты, звонилки, видеоконференции. Также это могут быть приложения, которые производят какие-то распределенные вычисления. Пределы фантазии никак не ограничиваются.
Total votes 29: ↑29 and ↓0 +29
Views 24K
Comments 28

Техподдержка 3CX отвечает: настройка маршрутизатора для VoIP-сервера АТС

3CX Ltd. corporate blog System administration *IT Infrastructure *Network technologies *Server Administration *
Tutorial
Если вы планируете подключить к системе 3CX SIP-транки от операторов связи или удаленных пользователей, и ваша АТС расположена в частной сети — на сетевом экране должна быть выполнена статическая публикация («проброс») портов.

VoIP-приложения используют протокол RTP для передачи мультимедийных потоков (аудио и видео). При прохождении пограничных сетевых устройств (сетевых экранов и маршрутизаторов) в работе протокола могут возникать сложности. Это связано с тем, что RTP использует случайные номера портов для отправки и получения мультимедиа-трафика. Неверная конфигурация сетевого экрана проявляется как односторонняя слышимость или вообще отсутствие звука от VoIP-провайдера и удаленных пользователей.
Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Views 5.2K
Comments 0

Портируем многопользовательскую игру с С++ на веб c Cheerp, WebRTC и Firebase

C++ *Game development *Network technologies *Compilers *WebAssembly *
Translation

Введение


Наша компания Leaning Technologies предоставляет решения по портированию традиционных desktop-приложений в веб. Наш компилятор C++ Cheerp генерирует сочетание WebAssembly и JavaScript, что обеспечивает и простое взаимодействие с браузером, и высокую производительность.

В качестве примера его применения мы решили портировать для веба многопользовательскую игру и выбрали для этого Teeworlds. Teeworlds — это многопользовательская двухмерная ретро-игра с небольшим, но активным сообществом игроков (в их числе и я!). Она мала как с точки зрения скачиваемых ресурсов, так и требований к ЦП и GPU — идеальный кандидат.


Работающая в браузере Teeworlds
Total votes 27: ↑26 and ↓1 +25
Views 5.2K
Comments 9

Удаленное управление компьютером через браузер

System administration *Programming *
Sandbox
Около полугода назад задумал сделать программу для управления компьютером через браузер. Начал с простого односокетного HTTP сервера, который передавал картинки в браузер и получал координаты курсора для управления.

На определенной стадии понял что для этих целей хорошо подходит технология WebRTC. Такое решение есть у Chrome браузера, оно устанавливается через расширение. Но хотелось сделать маловесную программу, которая будет работать без установки.

Сначала попробовал использовать библиотеку которую предоставляет Google, но после компиляции она занимает 500MB. Пришлось реализовать весь WebRTC стек почти с нуля, удалось все уместить в exe файл размером 2.5MB. Друг помог с интерфейсом на JS, вот что в итоге получилось.
Читать дальше →
Total votes 91: ↑74 and ↓17 +57
Views 50K
Comments 77

Прямой VPN-туннель между компьютерами через NAT'ы провайдеров (без VPS, с помощью STUN-сервера и Яндекс.диска)

Network technologies *Development for IOT *
Продолжение статьи о том, как мне удалось организовать прямой VPN-туннель между двумя компьютерами находящимися за NAT'ами провайдеров. В прошлой статье описывался процесс организации соединения с помощью третьей стороны — посредника (арендованный VPS выполняющий роль, что-то типа STUN-сервера и передатчика данных узлов для соединения). В этой статье я расскажу как обошелся без VPS, но посредники остались и ими были STUN-сервер и Яндекс.Диск…

Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Views 18K
Comments 24

Особенности установления соединения между участниками сетевой игры типа «равный к равному»

Game development *Network technologies *
Sandbox
Это сборник информации, которая мне понадобилась, чтобы реализовать этап установления соединения между участниками сетевой игры типа «равный к равному» (peer-to-peer) с использованием протокола UDP.

Статья расчитана на начинающих разработчиков игр. Попытался написать такую статью, которую я сам хотел бы прочитать в то время, когда только начал разбираться в этой теме: чтобы все нужные ньюансы были собраны в одном месте, но при этом ничего лишнего, простым языком, и с наглядными картинками. Возможно кому-то пригодится.

Опытные геймдевелоперы вряд ли найдут тут для себя что-то новое. Но буду благодарен за замечания и комментарии.


Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 6.7K
Comments 10

История одной интеграции Agora SDK

Website development *JavaScript *HTML *Video conferencing

Всем привет. Меня зовут Дмитрий, и я типичный представитель касты гребцов на галере X. Основной ЯП, который я использую - PHP, но иногда приходится писать на других.

Читать далее
Total votes 2: ↑1 and ↓1 0
Views 1.6K
Comments 3

Философия борьбы с NAT

C++ *Network technologies *Server Administration *Development for Linux *Development for Windows *

Приветствую всех.

В этом посте я расскажу о назначении и устройстве небольшой, но полезной утилиты plexus, работа над исходной версией которой недавно завершилась. Утилита написана на C++, но этот материал будет интересен не только и не столько пишущим на плюсах, но и тем кто имеет отношение к сетевому программированию.

Небольшая ремарка.

Все мы видим как радикально изменила мир цифровая революция. Весь мир, без преувеличения, переселился в Интернет. Первыми были ученые и программисты, за ними последовала продвинутая молодежь, далее пришел бизнес и все закрутилось. Реклама, бурное развитие социальных сетей, появление IT гигантов. С опозданием и скрипом, чертыхаясь, порой как слон в посудной лавке, подтянулось и государство. Однако, если в 90-х и 00-х Интернет был своеобразной территорией свободы и даже анархии, то теперь он все больше становится похожим на Матрицу, ну или некоторое множество её вариаций. Парадокс в том, что Интернет задумывался как децентрализованная система, но в социальном его воплощении движется в сторону гиперцентрализации. Торрент, Tor, криптовалюты это скорее история ярких бунтов на корабле подтверждающих неоднозначность его курса. Причин такому развитию много, но главная пожалуй в том, что Сеть при всех возможностях расширяющих социальные границы это еще и гигантские возможности по сбору и анализу информации, и как следствие торговля и манипулирование информацией и даже формирование информационных потоков. И все это умножается с развитием ИИ. Даже посто чувствовать себя рыбкой в аквариуме не очень приятно, не говоря уже о прочих угрозах. Виртуальная реальность, хоть и является проекцией реальной жизни, но сильно обделяет нас одной важной естественной возможностью из реального мира. Это возможность устанавливать и развивать связи без посредников. Распределенные системы построенные на peer-to-peer связях в социальном сегменте Сети пока скорее экзотика. Исключение разве что криптовалюты. Тем не менее непрерывные скандалы с утечками персональных данных, слежками, блокировками, модерациями и манипуляциями в социальных сетях, на мой взгляд формируют соответствующий социальный запрос. С чисто технической стороны, одним из препятствий тормозящим многие годы широкое развитие распределенных систем является все никак не уходящий IPv4 и порожденный им NAT. Собственно об этом мы дальше и поговорим. Кому интересно съедаем красную пилюлю и отправляемся в суровый Зион. Синяя пилюля вернет вас назад в мир сладких грез.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Views 3.4K
Comments 14