Forth
http://www.fforum.winglion.ru/

Очередной проект, чтоб скучно не было
http://www.fforum.winglion.ru/viewtopic.php?f=58&t=3247
Страница 1 из 1

Автор:  Victor__v [ Пн авг 12, 2019 16:16 ]
Заголовок сообщения:  Очередной проект, чтоб скучно не было

Общалка внутри локальной сети.
Проект сейчас на стадии обдумывания, к проектированию ещё не подходил)
Тупо пиринговая сеть + гуй.

Планируемая связка: Nova-Forth + IUP
Ближайший известный аналог: Lan Messanger Вроде написан C++ для гуя использован QT
Этот проект не обновлялся, кажется, с 2012 года. К тому же он глючный. Да ещё QT может сломаться в приложении. Помимо этого общалка периодически не видела других участников (тут кривые руки разраба или UDP виноват?).

Поэтому не найдя аналогов попробую сделать своё :)
Вопросы по реализации:
Нужно ли шифрование данных? Локально всё же.
Какой протокол использовать TCP или UDP? Или то и то с возможностью переключения?


Какие-то хотелки будут у участников или советы?

Автор:  Hishnik [ Пн авг 12, 2019 19:20 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Victor__v писал(а):
Какой протокол использовать TCP или UDP? Или то и то с возможностью переключения?

Ну, тут большая разница. Есть довольно много разновидностей "... over UDP", имея в виду, что в UDP вкладывают собственный контроль целостности данных и доставки. Это надо заранее продумывать.

Автор:  Victor__v [ Пн авг 12, 2019 21:11 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Это понятно.
Имею ввиду нужна ли поддержка UDP вообще в таком случае?
Хотя можно просто добавить возможность поддержки.

Автор:  zma [ Вт авг 13, 2019 08:38 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Транспортный протокол - это не опция, выбираемая пользователем, а деталь внутренней реализации, поэтому делать "поддержку" дополнительных протоколов нет смысла. Просто выбираете наиболее подходящий для каждого типа трафика.

Если планируются только текстовые сообщения, то в обычной локалке (*Ethernet) UDP хватит с головой: трафика мало, вероятность потери пакетов маленькая, короткое текстовое сообщение хорошо ложится на дейтаграмму и нет сложной маршрутизации, которая могла бы переупорядочивать пакеты. Если "локалка" включает в себя сегмент, где часто теряются пакеты, то да, нужно городить контроль целостности и порядка доставки.

Автор:  zma [ Вт авг 13, 2019 08:51 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Если сеть действительно локальная (пакеты не выходят за пределы контролируемого периметра), то шифрование не нужно. Хорошее шифрование сделать сложно, а плохое - пустая трата времени.

Автор:  Victor__v [ Вт авг 13, 2019 09:43 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

zma писал(а):
Транспортный протокол - это не опция, выбираемая пользователем, а деталь внутренней реализации, поэтому делать "поддержку" дополнительных протоколов нет смысла. Просто выбираете наиболее подходящий для каждого типа трафика.

Ага, а сделать поддержку того и того с опцией переключения наверно религия запрещает :)

zma писал(а):
Если планируются только текстовые сообщения, то в обычной локалке (*Ethernet) UDP хватит с головой: трафика мало, вероятность потери пакетов маленькая, короткое текстовое сообщение хорошо ложится на дейтаграмму и нет сложной маршрутизации, которая могла бы переупорядочивать пакеты. Если "локалка" включает в себя сегмент, где часто теряются пакеты, то да, нужно городить контроль целостности и порядка доставки.


Думаю ещё сделать пересылку изображений изображений.
Да и при работе с LAN Messanger'ом последний то и дело не видел и "отрубал" других участников. Возможно из-за UDP

Автор:  KPG [ Вт авг 13, 2019 12:43 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Victor__v писал(а):
Думаю ещё сделать пересылку изображений изображений.

можно даже к изображению добавлять архив (программа IMG-RAR) :)
При просмотре открывается как изображение, а в архиваторе как архив.

Автор:  Total Vacuum [ Вт авг 13, 2019 18:00 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

А Вы уже тестировали связку Nova+IUP в каком-нибудь виде? Естественно, без сети, хотя бы на уровне Hello, World? Здорово, если такая связка работает.

Автор:  zma [ Вт авг 13, 2019 19:37 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Victor__v писал(а):
Ага, а сделать поддержку того и того с опцией переключения наверно религия запрещает


Не запрещает. Если можете представить пользователя, меняющего в настройках транспортный протокол, то пожалуйста. Я не могу :)

Чтобы пользователи не отваливались, можно от них слать keepalive-пакеты.

Естественно, это всё на уровне советов. Не принимайте близко к сердцу :)

Автор:  Victor__v [ Ср авг 14, 2019 15:28 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Total Vacuum писал(а):
А Вы уже тестировали связку Nova+IUP в каком-нибудь виде? Естественно, без сети, хотя бы на уровне Hello, World? Здорово, если такая связка работает.

Пример в поставке Nova-forth

zma писал(а):
Не запрещает. Если можете представить пользователя, меняющего в настройках транспортный протокол, то пожалуйста. Я не могу.

Вот, представьте, изменились условия. Допустим сеть стала лучше/хуже. Что реализацию переделывать?
Гораздо проще написать в той же общалке: залезь туда, поменяй то-то.

Автор:  zma [ Ср авг 14, 2019 21:23 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

Victor__v писал(а):
Вот, представьте, изменились условия. Допустим сеть стала лучше/хуже. Что реализацию переделывать?
Гораздо проще написать в той же общалке: залезь туда, поменяй то-то.


Тогда уж лучше автоматически это делать. И опять-таки, в среднестатистической локалке ситуация надуманная. Сеть может заметно стать хуже/лучше на мобильном канале, на спутнике и в прочих специфических случаях

Автор:  Hishnik [ Чт авг 15, 2019 23:16 ]
Заголовок сообщения:  Re: Очередной проект, чтоб скучно не было

https://habr.com/ru/company/oleg-bunin/blog/461829/

Вот из свежепрочитанного. Там с ходу нужные картинки про UDP и TCP, хотя разговор больше про видео в мобильных сетях.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/