Повреждение пакета и UDP - PullRequest
0 голосов
/ 21 марта 2012

Я должен имитировать отношения UDP между клиентом и сервером, загружая файлы с клиента на сервер. Он также использует протокол остановки и ожидания. Мой вопрос: мне нужен код в моем классе сервера для обработки поврежденных пакетов? Я где-то читал в Интернете, что **

Пакет UDP с ошибкой контрольной суммы будет отклонен стеком. В другими словами, это невозможно для пакета UDP с ошибкой контрольной суммы быть "принятым на другом конце правильно", потому что пакет будет не приниматься вообще.

**

Это правда? Будет ли сервер просто не получать пакет, в результате чего у моего клиента истечет время ожидания пакета?

Ответы [ 2 ]

4 голосов
/ 21 марта 2012

UDP - это протокол с потерями, он не гарантирует доставку данных. Я полагаю, что ваша симуляция отношений UDP между клиентом и сервером - это «лучшее усилие» (эмуляция самого протокола), поэтому нет, вам не понадобится этот дополнительный код.

1 голос
/ 21 марта 2012

Я читал во многих учебниках, что некоторые имплементации в стеке предоставляют пакет с ошибкой, указывающей, что контрольная сумма не удалась, в то время как другие отбрасывают пакет. На практике все системы, которые я когда-либо использовал, сбрасывают пакет в случае сбоя контрольной суммы.

Если пакет действительно отброшен, то будет достаточно времени ожидания + повторной отправки.

...