本发明专利技术公开了一种在UBOOT上实现三次握手的方法,该方法包含如下步骤:S1,设置网络设备使其进入Uboot模式;S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包;S3,存储单元存储所有带SYN标志位的数据包;S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5;S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。本发明专利技术将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。
【技术实现步骤摘要】
本专利技术涉及通讯连接方法,特别涉及一种在UBOOT上实现三次握手的方法。
技术介绍
Uboot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。Uboot是嵌入式系统中最常用的Bootloader。Uboot作为一种Bootloader具有以下优点:Uboot是基于GPL条款的开放源码项目,是GPL下资源代码最完整的一个通用Bootloader ;Uboot有引导启动和下载运行两种模式,并具有大型Boot loader所应该具备的所有功能;Uboot支持的处理器架构包括PowerPC,ARM,MIPs和X86等;Uboot支持大量的外设驱动,支持多种不同的文件系统。HTTP 协议,即超文本传送协议(HTTP-Hypertext transfer protocol)定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。TCP/IP 协议,即 Transmiss1n Control Protocol/Internet Protocol 的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。而所谓的三次握手,即客户端向服务端发送请求,该过程称为第一次握手。接着服务端收到该请求之后,向客户端发送一个确认加请求的回复包,该过程称为第二次握手。最后客户端向服务端发送一个确认包,该过程称为第三次握手。当三次握手成功后,则TCP建立连接,此时HTTP就可以进行传输了,这时浏览器就能够呈现出页面了 现有的网络设备大部分都是采用的以Uboot作为Bootloader来引导kernel起来,但是现有采用Uboot的网络设备,很少有在Uboot模式下能够通过页面来进行升级。如果不支持Uboot模式下进行页面升级功能的网络设备,将会导致如果用户在网络设备因系统破坏导致无法启动的情况下无法修复的情况。有的设备提供了在Uboot模式下进行升级,但是没有对三次握手的一个保护过程,很容易因在三次握手的交互过程中因收到错误包导致三次握手失败,则无法进入页面,导致无法进行升级来恢复设备。
技术实现思路
本专利技术的目的是提供一种在UBOOT上实现三次握手的方法,将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。为了实现以上目的,本专利技术是通过以下技术方案实现的: 一种在UBOOT上实现三次握手的方法,其特点是,该方法包含如下步骤: SI,设置网络设备使其进入Uboot模式; S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包; S3,存储单元存储所有带SYN标志位的数据包; S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5 ; S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。所述的存储单元为全局结构体数组。所述的S2包含: S2.1,网络设备接收来自客户端发送的数据包并解析,判断所述的数据包是否为TCP类型数据包,若是,则执行S2.2 ; S2.2,判断所述数据包的是否为带SYN标志位的数据包,若是,则执行S2.3 ; S2.3,网络设备向所述的客户端发送带ACK+SYN标志位的数据包,并将所述的数据包的状态位设为SYN_SENT。所述的存储单元存储所有带SYN标志位的数据包的源端口。所述的步骤S4中若所述的客户端反馈过来的数据包为带ACK标志位的数据包时,则将所述的数据包的状态位设为ESTABLISHED。所述的S5具体为:网络设备判断接收的数据包与建立连接时存储的源端口号与生成的队列号是否一致。所述的步骤S5后还包含: S6,所述的网络设备向客户端发送WEB页面。所述的S5与S6之间还包含:当数据包的源端口与正在建立数据的源端口不一致的次数达到预设值时,直接中断连接,并重新执行步骤S2。本专利技术与现有技术相比,具有以下优点: 本专利技术将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。【附图说明】图1为本专利技术一种在UBOOT上实现三次握手的方法的流程图。【具体实施方式】以下结合附图,通过详细说明一个较佳的具体实施例,对本专利技术做进一步阐述。如图1所示,一种在UBOOT上实现三次握手的方法,包含如下步骤: SI,设置网络设备使其进入Uboot模式,设置网络设备的静态地址为192.168.2.100,在浏览器中输入IP地址192.168.2.1 ; S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包; S3,存储单元存储所有带SYN标志位的数据包,并存储带SYN标志位的数据包的源端P ; S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5 ; S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。上述的存储单元为全局结构体数组。在具体实施例中,上述的S2包含: S2.1,网络设备接收来自客户端发送的数据包并解析,判断所述的数据包是否为TCP类型数据包,若是,则执行S2.2 ; S2.2,判断所述数据包的是否为带SYN标志位的数据包,若是,则执行S2.3 ; S2.3,网络设备向所述的客户端发送带ACK+SYN标志位的数据包,并将所述的数据包的状态位设为SYN_SENT。上述的步骤S4中若所述的客户端反馈过来的数据包为带ACK标志位的数据包时,则将所述的数据包的状态位设为ESTABLISHED。上述的S5具体为:网络设备判断接收的数据包与建立连接时存储的源端口号与生成的队列号是否一致。在具体实施例中,上述的步骤S5后还包含: S6,所述的网络设备向客户端发送WEB页面。上述的S5与S6之间还包含:当数据包的源端口与正在建立数据的源端口不一致的次数达到3次时,直接中断连接,即直接设置数据包的状态位为FINWAIT,并重新执行步骤S2,从而杜绝了数据包的状态为一直处于ESTABLISHED,导致WEB页面无法呈现。综上所述,本专利技术一种在UBOOT上实现三次握手的方法,将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使本文档来自技高网...
【技术保护点】
一种在UBOOT上实现三次握手的方法,其特征在于,该方法包含如下步骤:S1,设置网络设备使其进入Uboot模式;S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包;S3,存储单元存储所有带SYN标志位的数据包;S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5;S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。
【技术特征摘要】
【专利技术属性】
技术研发人员:孙德亮,黄红娜,
申请(专利权)人:上海斐讯数据通信技术有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。