0

I'm writing an internet application and I'm at the stage of crafting my own TCP packets. Except there is a major problem. According to the TCPDUMP utility in linux, every tcp packet that I send out from any local application (like telnet and curl) to any IPV4 address on the network causes TCPDUMP to report checksum errors.

A few sources on the internet claim it is due to checksum offloading being turned on. I tried various network cards and used ethtool -K to disable offloading on each card, and no matter what I try, I still receive the checksum error.

I even went as far as hooking the local computer directly to the target computer with a crossover cable. This means I bypassed routers and wireless connections.

Is there a linux setting I can adjust to fix the checksum issue or a program better than TCPDUMP that can work with all unix systems that can truthfully tell me if the outgoing packets have the correct checksum? because surely not every linux application would be crafting faulty TCP checksums or I would have a problem accessing this site.

Any ideas?

Mike
  • 11
  • 1
  • Do you _really_ need to craft your own TCP packets? How do you know the problem is not in your code? – Michael Hampton Feb 20 '21 at 02:04
  • Yes because in the end, I'm using a thin client that connects to older hardware (that I made) through a serial port. The thin client connects to the world via a nic so if I can implement some TCP/IP on it, then I can make a webserver and have remote computers control my homemade hardware. And I know its not my code because the latest tests I ran did not involve my code at all. In fact, I just examined packets from my main network card and outgoing packets to the internet from my computer are reported to have checksum errors yet the internet works... – Mike Feb 20 '21 at 02:16
  • Please show all steps you took to disable checksum calculation on the TCPDump computer. – Tero Kilkanen Feb 20 '21 at 07:20

0 Answers0