Às vezes, na minha biblioteca de rede, quando envio um pacote, os dados chegam diferentes de quando os enviei. Presumi que o TCP garantisse a entrega exata. Isso é verdade? Ou deve haver algo errado no processo de empacotamento e recebimento do código da minha própria biblioteca?
Responder1
O TCP NÃO garante a entrega exata dos seus dados no nível de um pacote individual.
Em vez disso, o TCP fornece a estrutura para determinar a integridade dos dados, incluindo números de sequência e somas de verificação no cabeçalho de cada pacote, que o destinatário deve verificar e um mecanismo onde o destinatário pode solicitar ao remetente a retransmissão dos pacotes quando os pacotes não chegam. ou as somas de verificação falham.
Responder2
Tente combinar a soma de verificação. Se não corresponder, é provável que os dados estejam sendo alterados por algo ou alguém após serem enviados e antes de chegarem ao destino. Como uma coisa do MITM. É possível em ambas as extremidades, remetente e destinatário.