`

单片机之UIP--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····这书不是说校验和本来就有错了呢 ?

分享到:
评论

相关推荐

    移植到51单片机的UIP代码,可以用51实现TCP-IP功能.zip

    在本文中,我们将深入探讨如何将UIP(Micro IP)协议栈移植到51系列单片机上,以便实现TCP/IP功能。51单片机以其低功耗、低成本和广泛应用而闻名,但在处理复杂的网络协议时可能会面临挑战。然而,通过使用轻量级的...

    UIP1.0源代码

    5. **错误处理**:UIP协议栈还包含错误检测和处理机制,如校验和计算,以确保数据的完整性和正确性。 **五、压缩包子文件"uip-1.0"** 在提供的压缩包“uip-1.0”中,通常包含了UIP1.0协议栈的所有源代码文件、...

    单片机实现TCP/IP协议的完整C源程序

    12. **错误检测与恢复**:TCP协议包含校验和机制以检测数据传输中的错误。单片机实现时,需要实现这种校验功能,并根据协议规定进行重传。 13. **多线程与并发**:在单片机上,可能需要模拟多线程或多任务处理,...

    单片机TCP误码检测软件

    这些数据在TCP协议的封装下,经过分片、校验和计算、顺序编号等处理,通过网络发送到单片机,后者作为TCP服务器端接收这些数据。 单片机接收到数据后,会进行解封装,恢复原始数据,并将其回送给电脑。这个过程同样...

    TCPIP在51单片机上的实现特点和方法

    在TCP/IP的发送过程中,运算量主要集中在数据拷贝、计算TCP校验和及数据包向网络设备缓冲区的拷贝。每个字节的数据处理大约需要40个指令周期,导致最高网络传输速度仅为25K字节/秒。实际应用中,如zlIP第一版,速度...

    基于单片机——ENC28j60网络模块设计资料及其程序.zip

    "uIP0_9_Opt.Bak"和"uIP0_9_Uv2.Bak"可能是uIP早期版本的配置或优化文件,而"uip-ew2-msp430 (easyweb3).tar.bz2"可能是一个完整的uIP移植示例,针对MSP430单片机平台,包含了一个名为EasyWeb的简单Web服务器。...

    uIP0.9_UDP下位机代码

    用户数据报协议(UDP)是传输层的一个无连接协议,相比TCP,它不提供可靠的数据传输服务,没有拥塞控制和错误校验,但因其高效和快速而常用于实时数据传输,如视频流或在线游戏。在本项目中,下位机通过uIP实现UDP...

    STM32控制5G 模块RM500通过TCP发送数据到服务器上

    在STM32与服务器间的数据传输中,TCP提供了连接管理和错误校验。 4. **服务器端编程**: 服务器端通常需要一个应用程序来接收STM32发送的数据。这可能是一个Web服务器,或者是专门设计用于处理TCP连接的应用程序。...

    参考资料-基于tcpip的网络单片机应用.zip

    接着,文档详细阐述了如何在单片机上实现TCP/IP协议栈,包括选择合适的TCP/IP协议库(如uIP、lwIP),理解其内存管理、中断处理和多任务调度。此外,还可能涉及网络配置,如IP地址、子网掩码、默认网关的设置。 ...

    ENC28J60 spi 接口 以太网 网络模块51单片机源码.rar

    ENC28J60支持10Base-T以太网,具备全双工能力,还有内置的硬件TCP/IP校验和计算功能。 3. **51单片机**:8051是51系列单片机的代表,广泛应用于各种嵌入式系统。虽然处理能力有限,但因其简单、易用、资源丰富而被...

    uIP_0.9_Keil_8051.zip

    总结来说,利用uIP 0.9和Keil 8051开发网口转串口功能,需要理解uIP协议栈的工作原理,熟悉Keil开发环境,以及具备单片机硬件接口和串口通信的知识。通过精心设计的软件实现,我们可以让不具备网络功能的8051单片机...

    EC20_TCP透传温湿度LED控制交互

    在STM32F407上,我们可以使用 lwIP 或 uIP 这样的轻量级TCP/IP协议栈来实现TCP连接。在EC20模块上配置TCP服务器或客户端模式,通过TCP连接将温湿度传感器的数据传输到远程服务器,或者接收服务器的控制指令来驱动LED...

    单片机与以太网接口设计说明.doc

    3. 以太网帧格式:以太网帧格式是指以太网中数据传输的格式,包括目的MAC地址、源MAC地址、类型、数据和CRC校验码等部分。 4. ARP 协议:ARP 协议(Address Resolution Protocol)是一种网络协议,用于将IP地址转换...

    ETH.zip_STM32F407 网络_STM32F407网络_eth单片机_stm32f407_单片机 ETH功能

    EMAC支持10/100Mbps的传输速率,并且包含硬件TCP/IP校验和计算,显著减轻了CPU的负担。 在"STM32F407网络模块代码"中,开发者可能已经实现了以下关键部分: 1. **初始化配置**:这包括设置EMAC的工作模式、MAC地址...

    stm32昆仑通态modbus通讯,昆仑通态modbustcp通讯,C,C++

    2. **STM32的TCP/IP网络堆栈**:STM32要实现MODBUS TCP通讯,需要集成TCP/IP网络堆栈,如lwIP或uIP。这些堆栈提供了TCP、UDP等网络协议的支持,使得STM32可以接入以太网并进行TCP连接。 3. **STM32 MODBUS库**:...

    单片机如何控制以太网网卡进行传输数据.pdf

    在单片机中实现这些功能通常需要精简版的TCP/IP协议栈,如uIP或lwIP,它们是专门为资源有限的设备设计的。开发过程中,还需要考虑网络的连接建立、数据包的封装和解封装、错误检测与恢复、流量控制等问题。 此外,...

    ENC28J60模块资料

    5. 内部DMA控制器加速数据传输并支持硬件IP校验和计算。 6. 可配置的接收和发送缓冲区大小。 7. 提供两个中断引脚和两个可编程LED输出。 8. 支持多种封装形式,如SOIC/SSOP/SPDIP/QFN等。 ENC28J60的内部结构由SPI...

    K60下脱机下载器的实现

    UIP简化了网络协议处理,减少了内存和计算资源的消耗。 4. **FAT文件系统**:FAT(File Allocation Table)是一种广泛使用的文件系统,尤其适用于移动存储设备如SD卡。在项目中,K60上的FAT文件系统移植允许读写SD...

    LPC2103单片机ENC28J60网络模块程序.zip

    5. **TCP/IP协议栈**:为了实现网络通信,通常需要一个TCP/IP协议栈,如uIP或lwIP。这些轻量级协议栈允许LPC2103进行TCP、UDP、ARP和IP等协议的操作。 6. **数据包处理**:程序需要处理接收到的数据包,根据其目的...

Global site tag (gtag.js) - Google Analytics