smallbarrow
驱动小牛
驱动小牛
  • 注册日期2002-06-05
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1879回复:4

发送端发出的IP包校验和是NIC加上去的吗?

楼主#
更多 发布于:2002-07-10 11:57
如体

为什么在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.
嗒嗒的,是那马蹄 是我的心声 别了 一瞬间的花朵
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-10 12:58
如体

为什么在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.  


真正的CRC 是由硬件完成的,其他的应该由协议层完成!

:)

见:

http://www.driverdevelop.com/forum/viewthread.php?tid=17533&PHPSESSID=26bff3ac0f1466d0727de686c77a1955
[color=red]大头鬼! :P[/color]
smallbarrow
驱动小牛
驱动小牛
  • 注册日期2002-06-05
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-07-10 14:26
[quote]如体

为什么在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.  


真正的CRC 是由硬件完成的,其他的应该由协议层完成!

:)

见:

http://www.driverdevelop.com/forum/viewthread.php?tid=17533&PHPSESSID=26bff3ac0f1466d0727de686c77a1955  [/quote]


大头鬼

我不是说帧包的crc校验,我想知道ip checksum 是怎样填到ip header里面的。ddk里面那段话我不太明白。
嗒嗒的,是那马蹄 是我的心声 别了 一瞬间的花朵
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
地板#
发布于:2002-07-10 14:34
既然你都看到了TASK_OFFLOAD,
那么还有什么不明白的?
有些网卡比较高级,能够用硬件计算
ip_chksum,tcp_chksum,
ip会通过ndis_request查询网卡的这个能力,
如果有的话,那么ip就不做chksum计算了,
直接交给nic处理。

当然这不符合分层原则,但是这个年代,
还有什么比效率更重要的?


[quote][quote]如体

为什么在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.  


真正的CRC 是由硬件完成的,其他的应该由协议层完成!

:)

见:

http://www.driverdevelop.com/forum/viewthread.php?tid=17533&PHPSESSID=26bff3ac0f1466d0727de686c77a1955  [/quote]


大头鬼

我不是说帧包的crc校验,我想知道ip checksum 是怎样填到ip header里面的。ddk里面那段话我不太明白。 [/quote]
不再回忆从前,我已经生活在幸福当中。
smallbarrow
驱动小牛
驱动小牛
  • 注册日期2002-06-05
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-07-10 14:39
 
既然你都看到了TASK_OFFLOAD,
那么还有什么不明白的?
有些网卡比较高级,能够用硬件计算
ip_chksum,tcp_chksum,
ip会通过ndis_request查询网卡的这个能力,
如果有的话,那么ip就不做chksum计算了,
直接交给nic处理。

当然这不符合分层原则,但是这个年代,
还有什么比效率更重要的?



还是老胡啊!
谢了!
嗒嗒的,是那马蹄 是我的心声 别了 一瞬间的花朵
游客

返回顶部