Проверка CRC выполняется автоматически на Tcp / Ip? - PullRequest
2 голосов
/ 25 ноября 2011

У меня есть вопрос, чтобы спросить.

Интересно, при отправке данных с TcpClient, существует ли какой-либо CRC алгоритм проверки, который работает автоматически? Или я должен реализовать свой собственный алгоритм и повторно отправить данные, если они не поступают на удаленный хост правильно?

Есть идеи?

Мои наилучшие пожелания ...

Ответы [ 4 ]

3 голосов
/ 25 ноября 2011

Там - контрольная сумма в TCP .Но, как говорится в той же статье,

Контрольная сумма TCP является слабой проверкой по современным стандартам.Уровни канала передачи данных с высокой частотой появления ошибок в битах могут потребовать дополнительных возможностей исправления / обнаружения ошибок канала.Слабая контрольная сумма частично компенсируется общим использованием CRC или лучшей проверкой целостности на уровне 2, ниже как TCP, так и IP, например, используется в PPP или кадре Ethernet.

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

3 голосов
/ 25 ноября 2011

Контрольная сумма TCP довольно слабая, но считается достаточно хорошей для надежного протокола потока.Часто на канальном уровне выполняется более надежная контрольная сумма, т. Е. Ethernet (IIRC) использует CRC-32.

Если вы действительно хотите свернуть свои собственные, здесь подробное руководство по теории и реализации.

3 голосов
/ 25 ноября 2011

TCP содержит контрольную сумму, и стек TCP / IP будет обнаруживать поврежденные пакеты.Таким образом, вам не нужно реализовывать какие-либо алгоритмы обнаружения ошибок самостоятельно, если вы этого не хотите.

2 голосов
/ 25 ноября 2011

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

...