Буферизованные пакеты UDP во время нехватки - PullRequest
0 голосов
/ 27 июня 2018

Ситуация, которую я имею, состоит в том, что клиент Linux использует UDP Socket. Клиент отправляет сообщение, и в случае отсутствия ответа в течение 10 секунд, клиент повторяет попытку через 10 секунд.

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

TCPDUMP ON на стороне клиента:

21:01:14.691903 IP 172.123.13211 > 172.34.13211: length 88  "1st at second 14"  
21:01:24.692791 IP 172.123.13211 > 172.34.13211: length 88  "2nd at second 24"  
21:01:34.694930 IP 172.123.13211 > 172.34.13211: length 88  "3rd at second 34"  
21:01:44.696020 IP 172.123.13211 > 172.34.13211: length 88  "4th  ate second 44"   

Сервер TCPDUMP после установления соединения:

12:02:01.509518 IP 172.123.13211 > 13211: length 88 "Received 1st at second 1"       
12:02:01.517841 IP 172.123.13211 > 13211: length 88 "Received 2nd at second 1"    
12:02:01.543759 IP 172.123.13211 > 13211  length 88 "Received 3rd at second 1"    
12:02:01.550741 IP 13211 > 172.123.13211: length 36   
12:02:01.567948 IP 172.123.13211 > .13211: length 88

Мне нужно понять, если используется сокет UDP и соединение не работает. как избежать буферизации пакетов при нехватке

Код клиента на C ++ Спасибо

1 Ответ

0 голосов
/ 27 июня 2018

Возможно, вы ищете это:

Как очистить входной буфер UDP-сокета в C?

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

...