Re: a problem with tcp checksum
[email protected] Mon, 31 May 2004 08:44:09 +0530
| Newsgroups | gmane.comp.security.libnet |
|---|---|
| Message-ID | <[email protected]> |
Hi Jeez, This seems wierd, as i said I havent worked with tcp checksum in libnet yet, but my guess says that this might be your problem, whenever we calculate checksum for a TCP segment its mandatory that header+text length is even, if its odd just for checksum calculation purposes the last byte(on the right) is padded(all zeros). This byte is not transmitted as part of the segment though, maybe libnet doesnt do it itself, this is completely a guess cos I dont know how checksumming with libnet works. cheers Amit "Jee J.Z." <[email protected]> on 05/31/2004 05:18:02 AM To: <[email protected]> cc: Subject: a problem with tcp checksum Hi all, I am going frustrated since a wired problem with tcp checksum seem to always happen. ;-( I really wish to see somebody throw some light on it. The situation is as follows: I am trying to inject TCP packets using libnet_build_tcp_options(), libnet_build_tcp() and libnet_build_ipv4() (checksum automatically built). When TCP payload size is odd in byte, the tcp checksum is always incorrect (using ethereal to capture injected packets and check them); while if TCP payload size is even in byte, everything seems working very well. What I wish to know is do I need to manually change some parameters of libnet_build_tcp_options(), libnet_build_tcp() or libnet_build_ipv4() when the tcp payload size is odd in byte, in order to let libnet compute tcp checksum correctly? If not, what shall I do to fix the problem? I am looking forward to your help. Thank you very much in advance! Regards, Jee