一种在uboot上实现三次握手的方法
【技术领域】
[0001]本发明涉及通讯连接方法,特别涉及一种在UBOOT上实现三次握手的方法。
【背景技术】
[0002]Uboot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。Uboot是嵌入式系统中最常用的Bootloader。Uboot作为一种Bootloader具有以下优点:Uboot是基于GPL条款的开放源码项目,是GPL下资源代码最完整的一个通用Bootloader ;Uboot有引导启动和下载运行两种模式,并具有大型Boot loader所应该具备的所有功能;Uboot支持的处理器架构包括PowerPC,ARM,MIPs和X86等;Uboot支持大量的外设驱动,支持多种不同的文件系统。
[0003]HTTP 协议,即超文本传送协议(HTTP-Hypertext transfer protocol)定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
[0004]TCP/IP 协议,即 Transmiss1n Control Protocol/Internet Protocol 的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
[0005]在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。而所谓的三次握手,即客户端向服务端发送请求,该过程称为第一次握手。接着服务端收到该请求之后,向客户端发送一个确认加请求的回复包,该过程称为第二次握手。最后客户端向服务端发送一个确认包,该过程称为第三次握手。当三次握手成功后,则TCP建立连接,此时HTTP就可以进行传输了,这时浏览器就能够呈现出页面了
现有的网络设备大部分都是采用的以Uboot作为Bootloader来引导kernel起来,但是现有采用Uboot的网络设备,很少有在Uboot模式下能够通过页面来进行升级。如果不支持Uboot模式下进行页面升级功能的网络设备,将会导致如果用户在网络设备因系统破坏导致无法启动的情况下无法修复的情况。有的设备提供了在Uboot模式下进行升级,但是没有对三次握手的一个保护过程,很容易因在三次握手的交互过程中因收到错误包导致三次握手失败,则无法进入页面,导致无法进行升级来恢复设备。
【发明内容】
[0006]本发明的目的是提供一种在UBOOT上实现三次握手的方法,将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。
[0007]为了实现以上目的,本发明是通过以下技术方案实现的:
一种在UBOOT上实现三次握手的方法,其特点是,该方法包含如下步骤:
SI,设置网络设备使其进入Uboot模式;
S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包;
S3,存储单元存储所有带SYN标志位的数据包;
S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5 ;
S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。
[0008]所述的存储单元为全局结构体数组。
[0009]所述的S2包含:
S2.1,网络设备接收来自客户端发送的数据包并解析,判断所述的数据包是否为TCP类型数据包,若是,则执行S2.2 ;
S2.2,判断所述数据包的是否为带SYN标志位的数据包,若是,则执行S2.3 ;
S2.3,网络设备向所述的客户端发送带ACK+SYN标志位的数据包,并将所述的数据包的状态位设为SYN_SENT。
[0010]所述的存储单元存储所有带SYN标志位的数据包的源端口。
[0011]所述的步骤S4中若所述的客户端反馈过来的数据包为带ACK标志位的数据包时,则将所述的数据包的状态位设为ESTABLISHED。
[0012]所述的S5具体为:网络设备判断接收的数据包与建立连接时存储的源端口号与生成的队列号是否一致。
[0013]所述的步骤S5后还包含:
S6,所述的网络设备向客户端发送WEB页面。
[0014]所述的S5与S6之间还包含:当数据包的源端口与正在建立数据的源端口不一致的次数达到预设值时,直接中断连接,并重新执行步骤S2。
[0015]本发明与现有技术相比,具有以下优点:
本发明将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。
【附图说明】
[0016]图1为本发明一种在UBOOT上实现三次握手的方法的流程图。
【具体实施方式】
[0017]以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
[0018]如图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,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。
[0019]上述的存储单元为全局结构体数组。
[0020]在具体实施例中,上述的S2包含:
S2.1,网络设备接收来自客户端发送的数据包并解析,判断所述的数据包是否为TCP类型数据包,若是,则执行S2.2 ;
S2.2,判断所述数据包的是否为带SYN标志位的数据包,若是,则执行S2.3 ;
S2.3,网络设备向所述的客户端发送带ACK+SYN标志位的数据包,并将所述的数据包的状态位设为SYN_SENT。
[0021]上述的步骤S4中若所述的客户端反馈过来的数据包为带ACK标志位的数据包时,则将所述的数据包的状态位设为ESTABLISHED。
[0022]上述的S5具体为:网络设备判断接收的数据包与建立连接时存储的源端口号与生成的队列号是否一致。
[0023]在具体实施例中,上述的步骤S5后还包含:
S6,所述的网络设备向客户端发送WEB页面。
[0024]上述的S5与S6之间还包含:当数据包的源端口与正在建立数据的源端口不一致的次数达到3次时,直接中断连接,即直接设置数据包的状态位为FINWAIT,并重新执行步骤S2,从而杜绝了数据包的状态为一直处于ESTABLISHED,导致WEB页面无法呈现。
[0025]综上所述,本发明一种在UBOOT上实现三次握手的方法,将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。
[0026]尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
【主权项】
1.一种在UBOOT上实现三次握手的方法,其特征在于,该方法包含如下步骤: SI,设置网络设备使其进入Uboot模式; S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包; S3,存储单元存储所有带SYN标志位的数据包; S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5 ; S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。2.如权利要求1所述的在UBOOT上实现三次握手的方法,其特征在于,所述的存储单元为全局结构体数组。3.如权利要求1所述的在UBOOT上实现三次握手的方法,其特征在于,所述的S2包含: S2.1,网络设备接收来自客户端发送的数据包并解析,判断所述的数据包是否为TCP类型数据包,若是,则执行S2.2 ; S2.2,判断所述数据包的是否为带SYN标志位的数据包,若是,则执行S2.3 ; S2.3,网络设备向所述的客户端发送带ACK+SYN标志位的数据包,并将所述的数据包的状态位设为SYN_SENT。4.如权利要求1所述的在UBOOT上实现三次握手的方法,其特征在于,所述的存储单元存储所有带SYN标志位的数据包的源端口。5.如权利要求1所述的在UBOOT上实现三次握手的方法,其特征在于,所述的步骤S4中若所述的客户端反馈过来的数据包为带ACK标志位的数据包时,则将所述的数据包的状态位设为ESTABLISHED。6.如权利要求4所述的在UBOOT上实现三次握手的方法,其特征在于,所述的S5具体为:网络设备判断接收的数据包与建立连接时存储的源端口号与生成的队列号是否一致。7.如权利要求1所述的在UBOOT上实现三次握手的方法,其特征在于,所述的步骤S5后还包含: S6,所述的网络设备向客户端发送WEB页面。8.如权利要求7所述的在UBOOT上实现三次握手的方法,其特征在于,所述的S5与S6之间还包含:当数据包的源端口与正在建立数据的源端口不一致的次数达到预设值时,直接中断连接,并重新执行步骤S2。
【专利摘要】本发明公开了一种在UBOOT上实现三次握手的方法,该方法包含如下步骤:S1,设置网络设备使其进入Uboot模式;S2,网络设备接收来自客户端发送的数据包并解析,判断所述数据包的是否为带SYN标志位的数据包,若是,则向所述的客户端发送带ACK+SYN标志位的数据包;S3,存储单元存储所有带SYN标志位的数据包;S4,网络设备判断客户端反馈过来的数据包是否为带ACK标志位的数据包,若是,则执行S5;S5,网络设备判断接收的数据包与存储在所述的存储单元中的数据包是否一致,若是,则表明三次握手成功。本发明将Uboot模式下实现TCP/IP三次握手的过程,使之能够在Uboot模式下实现页面的访问,同时加入对三次握手的保护,使之能够稳定。
【IPC分类】H04L29/08
【公开号】CN105049489
【申请号】CN201510356687
【发明人】孙德亮, 黄红娜
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年11月11日
【申请日】2015年6月25日