J'essaie de calculer manuellement les totaux de contrôle pour divers paquets UDP, mais je reçois toujours de mauvais résultats par rapport à ce qui est montré dans Wireshark. Voici un exemple de la façon dont je le fais:Mon calcul de somme de contrôle UDP donne des résultats erronés à chaque fois
Source Address: 192.168.0.103 (0xC0A8, 0x0067)
Destination Address: 192.168.0.1 (0xC0A8, 0x0001)
Source Port: 57090 (0xDF02)
Destination Port: 8000 (0x1F40)
Packet length: 19 (0x0013)
Data: hello world (0x6865, 0x6C6C, 0x6F20, 0x776F, 0x726C, 0x6400)
Expected checksum: 0xEDFD (from wireshark)
Je comprends que la somme de contrôle UDP est calculé avec les variables suivantes:
Source IP + Destination IP + 17 (0x0011 - protocol code) + 10 (0x000A - pseudoheader length) + Source Port + Destination Port + UDP Packet Length + Data
tous dans des groupes de 16 bits.
Alors mes calculs sont (dans le même ordre):
0xC0A8 + 0x0067 + 0xC0A8 + 0x0001 + 0x0011 + 0x000A + 0xDF02 + 0x1F40 + 0x0013 + 0x6865 + 0x6C6C + 0x6F20 + 0x776F + 0x726C + 0x6400
Le résultat de la somme ci-dessus est:
0x511F4
Maintenant, puisque le résultat est supérieur à 0xFFFF je fais ce qui suit :
0x11F4 + 0x0005 = 0x11F9
Après retournement des bits I obtenir le résultat:
0xEE06 <- which, as you can see, it is different from the expected one
Donc, ma question est ce que je fais mal? Je reçois toujours presque le résultat de ce qui est montré dans wireshark.
est ci-dessous une capture d'écran du paquet à l'intérieur Wireshark, comme référence https://www.evernote.com/l/AWl0H1AGoxpGX4_zjgDlVBcytJM-HP_PvQE
Il existe un RFC à ce sujet. L'avez-vous lu? – EJP
Oui, j'ai lu RFC768. – Ibrahim