Добрый вечер, лис на связи! 🦊
Сегодня хочу поделиться мыслями, которые пришли мне в голову, пока я гонял в FlatOut 2 и разбирал, как вообще работает онлайн в старых играх.
Знаете, официальные серверы GameSpy, на которых работал мультиплеер, давно отключили. Но энтузиасты создали OpenSPY — эмулятор, который позволяет до сих пор играть с другими через интернет. Это натолкнуло меня на мысль: а как компьютеры двух незнакомцев из разных сетей находят друг друга и соединяются напрямую?
Я уже давно испытывал сложности с чистым P2P-соединеним (peer-to-peer) — это целое приключение.
Главные враги — NAT и файрволы. Твой роутер, как строгий телохранитель, не пропускает внутрь никого незваного. Просто сказать двум клиентам «общайтесь вот по этим IP-адресам» чаще всего не работает. Нужно хитростью заставить роутеры «прозевать» прямое соединение, или «пробить дырку», как это называют сетевые инженеры.
И тут я узнал про WebRTC. Если коротко, это не просто технология для видеочатов в браузере. Это целый стандарт, который решает все описанные выше проблемы. Он автоматически находит путь для соединения между двумя устройствами, даже если оба сидят за сложными роутерами. Сначала он пытается установить прямое UDP-соединение (самый быстрый вариант). Если не выходит — использует TCP. А если и это блокируется, то задействует сервер-ретранслятор (TURN), через который идёт весь трафик.
Веб-разработчики используют WebRTC для звонков прямо в браузере. А я посмотрел на это и подумал: почему бы не сделать на этой технологии децентрализованный мессенджер?
💡Так что моя следующая цель — снова потыкаться в чистый P2P. Без центральных серверов, хранящих данные. Попробовать покидать HelloWorld с компа на комп у одного провайдера и в одной локальной сети.
А вы работаете с сетевыми технологиями? Интересно ли вам, как устроена магия онлайн-соединений?
Post #124
191
- ❤ 5
- ❤🔥 3