发布时间:2019-07-29 16:41:22
tracert命令的原理并使用wireshark抓包分析,给一下步骤
在使用WireShark等截取数据包时,往往会出现错误的CheckSum,这主要是因为网卡开启了CheckSum Offload(硬件校验和) 功能,系统将CheckSum的计算工作交由网卡去计算,在高速网络交换的情况下可以大大减轻CPU的工作负荷。 在windows系统中的Checksum Offload过程如下:如果网卡支持,在高级选项里可以设置Checksum Offload是否对Rx(接收端)或Tx(发送端)有效,也可以设置为对两者都有效。 对于Tx,设置Checksum Offload有效之后,Windows的传输层将随机填充TCP校验和,因此在本机上抓取的数据包是Bad CheckSum。然后,网卡会自动计算正确的校验码然后发送,因此对方收到的仍然是正确的TCP包。 对Rx,设置Checksum Offload有效之后,网卡在接收数据时,会填充一个NDIS_TCP_IP_CHECKSUM_PACKET_INFO 结构并设置标志位,由网卡完成数据校验;如果由于某种原因失败,则不设置标志位,由Windows里的TCP/IP协议栈来完成数据校验。 其实就是说,由于开启了硬件校验和功能,传输层并没有计算校验和,而是随机填了个数,所以你抓到的包校验和是错的,而这个错误的校验和在网卡发送出去前会被网卡改正过来,所以接收端收到的包是校验和正确的包,会发回反馈