UDP checksum problema
Beregnyei Balazs
bereg at impulzus.sch.bme.hu
Wed Mar 23 11:06:59 CET 2005
UDP csomagokat kuldok egy sajat hardverrol PC-re, es sajnos nehanyat nem
fogad el a PC, mert (szerinte) hibas az UDP checksum. Itt egy pelda,
ami a tcpdump kimenete:
10:49:30.515995 IP (tos 0x0, ttl 64, id 13294, offset 0, flags [DF],
length: 42) 192.168.0.221.4386 > c64.2005: [bad udp cksum fbff!] UDP,
length: 10
0x0000: 4500 002a 33ee 4000 4011 849e c0a8 00dd
0x0010: c0a8 0009 1122 07d5 0012 c8ad 0159 0001
0x0020: 3030 0901 6163 0000 0000 0000 0000 0000
0x0030: 0000
Eloszor is az a furcsa, hogy "bad udp cksum fbff"! Honnan veszi az
fbff-et? Itt a c8ad a checksum :) Vagy ez lenne szerinte a helyes ertek?
Igy szamolom ki (ahogy az a szabvanyban van):
Az elso 20 byte IP fejlec, aztan
1122 + 07d5 + 0012 + (itt kimarad a checksum) + 0159 + 0001 + 3030 +
+ 0901 + 6163 + (pszeudo fejlec:) + c0a8 + 00dd + c0a8 + 0009 +
+ 0011 (type code) + 0012 (UDP len) = 23750.
A felso 16 byte-ot hozzaadom az alsohoz: 3752, minden bitet
megforditok, c8ad. Szerintem ez a checksum, es ugyanezzel az algoritmussal
szamitott checksumokat altalaban el is fogad tolem a PC, csak peldaul ezt
a fentit nem. Miert??
Koszi,
BB
More information about the Elektro
mailing list