Joh*_*ohn 1 .net sockets tcp networkstream
我遇到套接字编程工作的问题.我写了一个TCP客户端,通过套接字/网络流发送命令.我正在使用Wireshark来查看通过电线的原始数据.每次我发送一个"命令"(意思是我刷新()网络流),Wireshark应用程序告诉我TCP标头中的校验和是不正确的(说它应该是0x2440,但是是0x0000).我确实收到了一个ACK我不明白为什么在应用程序层我不得不关心TCP头.这不可能是正确的.有人知道我为什么会得到这个"错误".有没有我不知道的设置我正在使用带有Tcp的.NET 2.0套接字.谢谢.
您是否正在从发送数据的机器上查看Wireshark转储?如果是这样,可能只是在Wireshark看到它的堆栈中没有计算校验和.现在许多网卡都有TCP Checksum Offload,其中校验和由硬件完成,因此校验和字段在出路时将为零(Wireshark在将数据包发送到硬件之前获取数据包).由于你得到了ACK,接收端显然很酷.此外,如果您正在与localhost交谈,您的堆栈可能根本不会打扰校验和(对于主机与自己交谈而言,它们并非绝对必要).
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |