`

TCP 校验和计算 有问题?

 
阅读更多

TCP 数据校验,在网络和资料中找了许多,总结了下:利用TCP 抓包工具抓到的数据如下:

 

按照:

 

1、<wbr>把校验和字段置为0;</wbr>

2、<wbr>对TCP头部中的每16bit进行二进制求和;</wbr>

3、<wbr>如果和的高16bit不为0,则将和的高16bit和低16bit反复相加,直到和的高16bit为0,从而获得一个16bit的值;</wbr>

4、<wbr>将该16bit的值取反,存入校验和字段。</wbr>

◆当接收TCP包时,需要对报头进行确认,检查TCP头是否有误,算法同上2、3步,然后判断取反 的结果是否为0,是则正确,否则有错。

我的校验包括了: TCP伪首部+TCP头部+数据 ;按照上面方法计算,但是计算结果和抓到包的校验和不等。。。。

但是我如果是计算IP包的校验和却是可以的,只是计算TCP校验和的时候不行···不知道是不是进行TCP校验和计算时候哪里没弄明白啊?有木有人知道的额。

下面是我计算的IP校验和,结果是正确的,下下图是我计算的TCP校验和,结果是错误的,就是和抓到的包里的TCP校验和对不上···

 

如果我将 TCP伪首部+TCP Head +TCP数据 (此时TCP校验位不置0) 相加,得到的结果不是 FFFF 也不是000····这书不是说校验和本来就有错了呢 ?

分享到:
评论

相关推荐

    TCP/IP校验和计算小工具

    "TCP/IP校验和计算小工具"就是专为这个目的设计的实用程序,它可以帮助网络技术人员快速、准确地计算和验证TCP/IP数据包的校验和。 TCP(传输控制协议)和IP(互联网协议)都是TCP/IP协议族的重要组成部分。TCP负责...

    TCP_IP校验和计算小工具

    "TCP/IP校验和计算小工具"就是这样一个实用程序,用于帮助用户手动计算和验证这些协议头中的校验和。 首先,我们要理解什么是校验和。校验和是一种简单的错误检测机制,通过在数据包发送前计算数据的二进制和,然后...

    IP TCP UDP校验和计算

    一个计算IP首部和TCP及UDP校验和的验证程序。使用方法:1.数据来源,用Wireshark抓包,复制...as a Hex Stream;2.右击运行窗口的标题栏--&gt;编辑--&gt;粘贴--&gt;回车,即可。本程序在Windows下,采用C语言开发,...

    TCP_IP协议的校验和计算源码

    ### TCP/IP协议中的校验和计算 #### 一、引言 在计算机网络通信中,数据包的准确无误地传输至关重要。为了确保数据在传输过程中不被损坏或篡改,TCP/IP协议栈中采用了多种机制来提高数据传输的可靠性。其中之一...

    hex校验和计算工具.zip

    在实际应用中,校验和广泛用于网络通信、软件验证、文件校验等方面,例如TCP/IP协议中的CRC校验,或者像MD5和SHA系列这样的散列函数,它们也是基于类似原理但更复杂的校验和计算。 总结起来,"hex校验和计算工具"是...

    sendip最新-修正IPv6下udp/tcp校验和错误

    为了解决这个问题,资源提供者对sendip进行了修正,解决了在IPv6下UDP和TCP校验和计算不准确的问题。这个修复通常涉及到更正sendip内部的算法,确保在计算校验和时正确地考虑到IPv6头部和所有相关的扩展头部。这可能...

    网际校验和算法(ICMP、TCP、UDP)

    TCP校验和的计算方法包括:将TCP头部、伪头部(包含IP源地址、IP目标地址、协议号和TCP报文长度)以及数据部分的所有16位字节进行求和,然后对结果取反。这种机制使得TCP能够检测到大部分的数据错误,从而保证了传输...

    计算机网络课程设计计算校验和

    在实际应用中,计算校验和的方法有很多,例如,使用C++编程时直接使用16进制的数据进行计算,或者使用其他编程语言和算法来计算校验和。计算校验和是计算机网络中非常重要的一个概念,它可以检测数据传输过程中的...

    IP/TCP/UDP checksum计算c代码

    TCP校验和采用伪头部,包含了IP源地址、IP目标地址、协议(这里是TCP)和TCP数据报的长度。然后,TCP头部和数据部分与伪头部的二进制和进行计算,同样采用ones' complement算法。 UDP Checksum的计算与TCP类似,但...

    校验和计算器

    在“校验和计算器”中,Bcb可能使用了它的事件驱动编程模型和VCL(Visual Component Library)框架,为用户提供了友好的图形界面,让用户能够轻松输入数据并选择相应的校验和计算方式。 在实际应用中,这些校验和...

    网络编程:计算校验和程序

    网络编程中的校验和计算是确保数据完整性和正确性的重要技术。校验和是一种简单的错误检测方法,通过在数据传输前或传输后计算一个值,然后在接收端重新计算这个值来确认数据是否在传输过程中发生错误。在本文中,...

    计算机网络课设 计算校验和

    - **交换性和结合性**:校验和计算可以灵活进行,即使数据分组或调整顺序,只要保持字节的总和不变,结果仍然是有效的。例如,可以通过组合和拆分数据块来加速计算。 - **字节顺序的自主性**:字节的顺序变化不会...

    网际校验和的计算pdf文件

    在实际应用中,除了传统的校验和计算方法,还有一些高级的错误检测技术,如CRC(Cyclic Redundancy Check)和MD5(Message-Digest Algorithm 5)等。CRC可以检测出更多的错误,而MD5则提供了一种强哈希函数,用于...

    计算校验和程序源代码

    - 网络通信:在网络协议中,如TCP/IP,校验和用于检测传输中的错误。 - 存储系统:在存储设备上,如RAID阵列,校验和用于检测和纠正错误。 总之,计算校验和程序是数据安全和正确性的重要工具,其源代码和使用...

    计算校验和程序PPT课件.pptx

    通过这个编程训练,学生不仅能理解网络数据传输的可靠性保障机制,还能掌握实际编程中实现校验和计算的具体步骤,提升在实际问题中应用网络协议知识的能力。同时,了解和实践增量式计算法,有助于提高处理大型数据集...

    IP/UDP/TCP/ICMP的校验和

    IP/UDP/TCP/ICMP的校验和算法详解 校验和是网络协议中用于检测数据错误的一种机制。...因此,IP/UDP/TCP/ICMP协议的校验和算法都是用于检测数据错误的一种机制,通过计算校验和来确保数据的正确性。

    C语言实现网络校验和

    这个过程适用于TCP、UDP等网络协议的校验和计算。实际应用中,可能还需要考虑更多细节,比如IP头部的伪校验和计算,其中需要包含源和目的IP地址以及协议类型等信息。通过这种方式,我们可以确保在网络传输过程中,...

    java Tcp协议验证

    本文将详细探讨使用Java编程语言实现TCP协议验证的相关知识点,包括TCP的特性、可靠传输机制、丢包与错误处理,以及TCP校验和的计算。 首先,TCP是基于连接的协议,这意味着在数据传输之前,必须先建立一个连接。...

    校验和计算小工具(相加,异或)

    下面将详细解释这两种技术及其在"校验和计算小工具"中的应用。 首先,校验和是一种简单的错误检测机制,它的基本思想是通过将数据的各个部分相加,然后取其结果的某些位(如低几位或模某个数的余数),作为校验和。...

Global site tag (gtag.js) - Google Analytics