Могут ли пакеты, отправленные с использованием TCP, приходить с другими данными?

Могут ли пакеты, отправленные с использованием TCP, приходить с другими данными?

Иногда в моей сетевой библиотеке, когда я отправляю пакет, данные приходят не такими, какими они были при отправке. Я предполагал, что TCP гарантирует точную доставку. Это правда? Или что-то не так в процессе упаковки и получения моего собственного библиотечного кода?

решение1

TCP НЕ гарантирует точную доставку ваших данных на уровне отдельного пакета.

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

решение2

Попробуйте сопоставить контрольную сумму. Если она не совпадает, то, скорее всего, данные были изменены кем-то или чем-то после отправки и до того, как они достигнут получателя. Как MITM. Это возможно на обоих концах, отправителя и получателя.

Связанный контент