草庐IT

Checksum

全部标签

tcp 校验和和 tcp 卸载

我正在使用原始套接字来创建我自己的套接字。我需要设置tcp_checksum。我尝试了很多引用资料,但都不起作用(我正在使用wireshark进行测试)。你能帮帮我吗?顺便说一句,我在某处读到如果你设置tcp_checksum=0。然后硬件会自动为你计算校验和。这是真的?我试过了,但在wireshark中,tcp_checksum给出的值为0X000并表示tcp卸载。我也阅读了有关tcp卸载的内容,但不明白,难道只是wireshark无法检查卸载的tcp校验和,但有一个正确的校验和吗??编辑:我意识到如果将tcpChecksum设置为0,则网卡将设置它而不是操作系统。我正在使用wire

tcp - 为什么TCP/UDP checksum最后补齐了?

在TCP/UDP中,发送方对16位字进行异或运算,最后的结果再次补码得到校验和。现在,这样做是为了使接收方可以使用数据和校验和重新计算校验和,如果结果都是1,则可以确定(好吧,几乎!)没有错误。我的问题是为什么我们必须在发件人处对结果进行最终补充。我们不妨这样发送它,以便当接收方重新计算校验和时,它必须检查所有零,而不是像其他情况那样检查所有零。 最佳答案 因为0有特殊的意义。它用于指示要忽略校验和计算。 关于tcp-为什么TCP/UDPchecksum最后补齐了?,我们在StackOv

c - 转移套接字的 TCP 校验和计算

我有一个转换socket。我正在尝试更改我看到的数据包上的端口。当我这样做时-我是否需要重新计算TCP校验和和IP校验和?我正在尝试这样做,但我在tcpdump中看到重置数据包。我不知道这是因为我计算的tcp校验和有误,还是其他原因。我使用了这个网站的cksum方法:http://www.enderunix.org/docs/en/rawipspoof/我想通过使用转移套接字,如果我改变一件事,它应该相当简单,但似乎并非如此。有没有TCP校验和计算器可以用来验证我得到的值是否正确? 最佳答案 您确实需要重新计算校验和。以下是计算的说

C 编程 TCP 校验和

几天来,我一直在为TCP计算校验和时遇到问题。我查看了Internet上的许多资源,但我所看到的示例都没有向您展示如何执行TCP校验和。我也看过RFC文档,但我仍然遇到问题:下面是我用来生成校验和的代码:unsignedshortchecksum(unsignedshort*buffer,intbytes){unsignedlongsum=0;unsignedshortanswer=0;inti=bytes;while(i>0){sum+=*buffer;buffer+=1;i-=2;}sum=(sum>>16)+(sum&htonl(0x0000ffff));sum+=(sum>>1

Java 套接字 : TCP Checksum Incorrect

我正在尝试使用Java套接字。我可以连接到套接字并发送/接收数据字节而没有问题。但是,我还使用wireshark嗅探流量,并注意到来自java套接字的每个数据包都被wireshark标记为“tcp校验和不正确”。有人有什么见解吗?Java版本“1.6.0_12”Java(TM)SE运行时环境(build1.6.0_12-b04)JavaHotSpot(TM)客户端VM(build11.2-b01,混合模式,共享)Wiresharkv1.0.6带WinPcap4.0.2 最佳答案 我发现在很多情况下,使用Wireshark之类的工具会

java - Swift 中 Java 字节数组的正确等价物是什么?

我才刚刚开始接触Swift开发。我在Java中有以下方法:publicstaticbyte[]addChecksum(byte[]command,booleanisDeviceSendFormat){intchecksum=0;intl=command.length;for(inti=0;i2){if(isDeviceSendFormat==false){command[l-1]=(byte)(checksum%0x100);//LSBcommand[l-2]=(byte)(checksum/0x100);//MSB}else{command[l-2]=(byte)(checksum%

ios - CGContextDrawImage (Swift) 上的间歇性 "incorrect checksum for freed object"错误

我的应用程序确实遇到过一次罕见的崩溃-在我将UIImage转换为像素数组以便我可以一个一个地处理像素的方法中时不时发生(它是一个着色书应用程序)。我的转换代码如下init(image:UIImage){letimageref=image.CGImageself.width=CGImageGetWidth(imageref)self.height=CGImageGetHeight(imageref)//createnewbitmapcontextletbitsPerComponent=UInt(8)letbytesPerPixel=UInt(4)letbitsPerPixel=bitsP

ios - Swift 如何检查我是否遍历 List[String] 的最后一项

我需要检查我何时遍历最后一项。我不能只把这一行放在我的for循环之后,因为那样我总是收到一个空列表。我尝试了以下但这个不起作用:.observeSingleEvent(of:.value,with:{(snapshot)inifsnapshot.exists(){forrestinsnapshot.children.allObjects.countas![DataSnapshot]{letrefi=Database.database().reference().child("Users")refi.observeSingleEvent(of:.value,with:{(snapshot

java - 如何为java对象生成校验和

我正在寻找一种解决方案来为任何类型的Java对象生成校验和,该校验和对于生成相同对象的应用程序的每次执行都保持不变。我用Object.hashCode()试过了,但api说....Thisintegerneednotremainconsistentfromoneexecutionofanapplicationtoanotherexecutionofthesameapplication. 最佳答案 我遇到了类似的问题(为XML文件生成良好的哈希码),我发现最好的解决方案是通过MessageDigest使用MD5或者如果您需要更快的东西

java - 如何从 Java 中的字节 [] 计算互联网校验和

我正试图找出如何用Java计算Internet校验和,这让我苦不堪言。(我在位操作方面很糟糕。)我在C#中找到了一个版本CalculateanInternet(akaIP,akaRFC791)checksuminC#.但是,我尝试将其转换为Java并没有产生正确的结果。谁能看到我做错了什么?我怀疑是数据类型问题。publiclonggetValue(){byte[]buf={(byte)0xed,0x2A,0x44,0x10,0x03,0x30};intlength=buf.length;inti=0;longsum=0;longdata=0;while(length>1){data=