Skip to content

Conversation

@RamSaw
Copy link

@RamSaw RamSaw commented Mar 15, 2019

Клиент udp приложения. На вход программе надо передавать ip хоста и порт.
Особое внимание в протоколе было уделено безопасной передачи данных по udp.
Для этого во всех сообщениях (и от клиента и от сервера) есть request id от клиента. Клиент принимает пакеты только с текущим request id. Это сделано для защиты от такой ситуации:
пакет очень долго идет, timeout ожидания его закончился, клиент думает, что он потерялся, отправляет запрос еще раз с новым request id, и тут он приходит. Но клиент его просто проигнорирует и не учтет.
Также все пакеты не превыщают 508 байт, чтобы не было фрагментации из-за MTU.
Также учитывается, что пакеты могут приходить в разном порядке, они все принимаются и после принятия всех, восстанавливаются в исходном порядке.

@h31
Copy link
Owner

h31 commented Mar 27, 2019

Да, всё хорошо. Молодцы, что заморочились с таймаутами.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants