阅读:1879回复:4
发送端发出的IP包校验和是NIC加上去的吗?
如体
为什么在2000 DDK上 NDIS_TCP_IP_CHECKSUM_PACKET_INFO结构中 有下面的话 NdisPacketIpChecksum <B>Set by the TCP/IP transport to indicate that that the NIC should calculate the IP checksum for the first IP header in the packet.</B> If the packet contains both a tunnel IP header and a transport IP header, the NIC should calculate the checksum for the tunnel IP header. The TCP/IP transport calculates the checksum for the transport IP header of such a packet. |
|
|
沙发#
发布于:2002-07-10 12:58
如体 真正的CRC 是由硬件完成的,其他的应该由协议层完成! :) 见: http://www.driverdevelop.com/forum/viewthread.php?tid=17533&PHPSESSID=26bff3ac0f1466d0727de686c77a1955 |
|
|
板凳#
发布于:2002-07-10 14:26
[quote]如体 真正的CRC 是由硬件完成的,其他的应该由协议层完成! :) 见: http://www.driverdevelop.com/forum/viewthread.php?tid=17533&PHPSESSID=26bff3ac0f1466d0727de686c77a1955 [/quote] 大头鬼 我不是说帧包的crc校验,我想知道ip checksum 是怎样填到ip header里面的。ddk里面那段话我不太明白。 |
|
|
地板#
发布于:2002-07-10 14:34
既然你都看到了TASK_OFFLOAD,
那么还有什么不明白的? 有些网卡比较高级,能够用硬件计算 ip_chksum,tcp_chksum, ip会通过ndis_request查询网卡的这个能力, 如果有的话,那么ip就不做chksum计算了, 直接交给nic处理。 当然这不符合分层原则,但是这个年代, 还有什么比效率更重要的? [quote][quote]如体 真正的CRC 是由硬件完成的,其他的应该由协议层完成! :) 见: http://www.driverdevelop.com/forum/viewthread.php?tid=17533&PHPSESSID=26bff3ac0f1466d0727de686c77a1955 [/quote] 大头鬼 我不是说帧包的crc校验,我想知道ip checksum 是怎样填到ip header里面的。ddk里面那段话我不太明白。 [/quote] |
|
|
地下室#
发布于:2002-07-10 14:39
既然你都看到了TASK_OFFLOAD, 还是老胡啊! 谢了! |
|
|