Home › Forums › Discussions › Support › Modify packet [DELPHI] › Reply To: Modify packet [DELPHI]
June 24, 2004 at 10:45 am
#5577
Checksum = calculate (pointer, (header+data) div 2), as for ICMP as TCP
Example:
Packet = ETH_HDR+IP_HDR+TCP_HDR+Data;
IP_HDR.Checksum := 00;
IP_HDR.Checksum := htons(Checksum(Pword(IP_HDR), sizeof(IP_HDR) div 2));
TCP.Checksum := 00;
TCP_HDR.Checksum := htons(Checksum(Pword(TCP_HDR), sizeof((TCP_HDR+Length(Data)) div 2));
For more: See ICMP example in previous reply