|
在一般的代码中都可以看到如下定义的帧结构
struct ip { uint EtherHead[9];
uchar VerandIphLen;
uchar ServerType;
uint TotalLen;
uint FrameIndex;
uint Segment;
uchar ttl;
uchar NextProtocal;
uint Crc;
uint SourceIp[2];
uint DestId[2];
uchar packet[1498];
};
struct IpPacket { uint EtherHead[9];
uint IpPacket[720];
};
此处的ip和IpPacket有什么不同,packet[1498];IpPacket[720];这两个字节数也不一样啊!另外校验和计算公式中的
unsigned int createtcpcrc()//生成TCP包CRC校验
{
unsigned int crc;
crc=checksum(&txdnet.ippacket.ippacket[4],txdnet.ipframe.crc+12);
return (crc);
}
txdnet.ippacket.ippacket[4],为什么计算校验和要从这里开始呢?
新手刚接触,请高手指点下,谢谢!
|
|