一种基于Web服务的非阻塞端信息跳变方法技术

技术编号:16367302 阅读:16 留言:0更新日期:2017-10-10 23:48
本发明专利技术公开了一种基于Web服务的非阻塞端信息跳变方法,所述方法包括:针对Web服务器,创建一个客户端的socket请求处理类,检测客户端的连接请求;实例化一个服务器类,传入服务器的地址和请求处理程序类;为服务器类阻塞中断处理时间赋值;根据服务器类运行时间内是否有请求到来来实现服务器的地址、端口、算法、服务等端信息的伪随机跳变,避免服务器非阻塞状态的出现。本发明专利技术增加了Web服务编写的多样性,提高了Web服务运行的健壮性。

Non blocking end information jump method based on Web service

The invention discloses a Web service based non blocking end hopping method, the method includes: according to the Web server, create a client socket request processing, the client connection request detection; instantiate a class server, incoming server address and request handler to interrupt the server; processing time assignment; according to the server run time whether the service address, port, algorithm, and the request to the server of the other end information of the pseudo random jump, avoid the server non blocking state. The invention increases the diversity of Web service writing and improves the robustness of Web service operation.

【技术实现步骤摘要】
一种基于Web服务的非阻塞端信息跳变方法
本专利技术涉及一种基于Web服务的非阻塞端信息跳变方法,尤其涉及在服务器运行过程中,通过server.request()函数来为客户端提供服务,并通过调用select()函数确定在一定的服务响应时间timeout内是否有服务请求到来,之后把服务器收集到的退出的子进程状态作为判断标准来执行端信息跳变代码,实现服务器的非阻塞端信息跳变。
技术介绍
近年来,安全防范和网络对抗技术日益引起重视,确定性、相似性、静态性是现有Web服务器设计的致命安全隐患,越来越多的Web攻击令设计者防不胜防。动态目标防御作为一种新的主动网络防御技术备受关注,其核心思想是通过构建动态、异构、不确定的信息系统,增强其多样性、伪随机和不可预测性,增加攻击者的攻击难度。端信息跳变技术作为动态目标防御在网络层实施的关键技术之一,指通信双方或多方按照一定的协议,伪随机的改变地址、端口、算法、服务等端信息,在保证正常通信的条件下,提升自身防御能力的一种主动网络防护技术。将端信息跳变技术应用于Web服务开发,不仅增加了Web服务开发的多样性、灵活性与便捷性,而且通过构建动态、异构、不确定的Web服务端信息,可以有效破坏敌方攻击干扰,实现主动网络防护。另一方面,在传统的网络编程中我们依赖于ServerSocket,Socket进行通信,大致的框架就是ServerSocket调用accept方法,等待客户端的连接,如果连接进来的时候则创建一个服务器端socket,客户端和服务器端socket建立好InputStream和outputStream通道进行通信,在这个网络IO的过程中inputStream的read和outputStream的write方法都可能发送阻塞。为了减少这种阻塞对其他连接的影响,一般都会在服务器端为每个连接开辟一个新的线程,或者使用线程池技术来避免线程的创建销毁同时又一定程度支持并发量。然而这种情况下,如果发生大量的read或者write阻塞线程池的效率会大大降低,而且操作系统也额外需要频繁的处理cpu的切换。非阻塞式通信实际是对上述模式的扩展,它的核心思想是为传统的socket加入事件监听的功能,操作系统可以在socket和serversocket上进行事件监听,一旦监听的对象发生了连接和可读可写的事件,监听器就会对注册了事件的对象返回相应的通知。
技术实现思路
本专利技术为实现Web服务的非阻塞端信息跳变,以ServerSocket为原型,将服务器的非阻塞技术应用于端信息跳变,实现服务器地址、端口、算法等端信息的伪随机跳变,以此增强服务器编写的多样性,提高服务器的自身防御能力。为达到上述目的,提出的一种基于Web服务的非阻塞端信息跳变方法,主要包括以下步骤:a、针对Web服务器,创建一个客户端的socket请求处理类,检测客户端的连接请求;b、实例化一个Web服务器连接和请求处理类,对传入服务器的地址和请求执行监听与监测;c、对Web服务器阻塞处理函数进行重写,自定义阻塞中断处理时间timeout值;d、调用select方法,检测Web服务器在执行阻塞中断处理之前是否有服务请求,以此实现Web服务器的非阻塞;e、根据是否有服务请求选择不同的服务器操作,伪随机的改变Web服务的地址、端口、算法、服务等端信息,实现Web服务器的端信息跳变。2.根据权利要求1所述的一种基于Web服务的非阻塞端信息跳变方法其特征在于:所述步骤c中,在此我们将ServerSocket库函数中timeout自定义为阻塞中断处理时间,为了实现服务器的非阻塞端信息跳变,我们需要修改该数值,数值大小按程序需求定义。3.根据权利要求1和权利要求2所述的一种基于Web服务的非阻塞端信息跳变方法其特征在于:所述步骤d中,我们根据在设定的阻塞中断处理时间内是否有服务请求进行的到来判断服务器的是否跳变,编写的函数要求实现循环检测对服务器子进程状态的功能,根据子进程的状态来测定是否有服务进程到来,这样实时的检测就避免了Web服务的阻塞。4.根据权利要求1所述的一种基于Web服务的非阻塞端信息跳变方法其特征在于:所述步骤e中,如果在上述步骤d中未检测到服务请求进程,原函数库默认服务器什么都不做,而我们在此添加我们的服务器跳变代码,让服务器运行我们的跳变代码,伪随机的改变Web服务的地址、端口、算法、服务等端信息,实现服务器的端信息跳变,增强Web服务的健壮性;如果在上述步骤d中检测到服务请求进程,程序可以调用封装好的request函数将步骤b中实例化过的服务器内容返回给客户端。这样,我们就实现了服务器编程的非阻塞端信息跳变。以上技术方案可以看出,在本专利技术中,较之现有的非阻塞Web服务而言,将端信息跳变与非阻塞算法相结合,通过监测Web服务请求信息实现Web服务器的可调控性,改变原有Web服务器端信息的不可跳变性,从而为我们的服务器设计提供了新的方法,提高了我们服务器设计的便捷性。此外,经过端信息跳变之后的Web服务由于信息的不确定性,无法定位到确定的Web服务信息,这样保证了Web服务的可防御性,用于抵御Web攻击有很好的效果,在一定程度上提高了Web服务的安全性。附图说明为了更清楚的说明本专利技术实施例中的技术方案,下面结合附图与具体实施方案对本专利技术做进一步说明:图1为专利技术公开的常用的Socket套接字连接过程;图2为专利技术公开的基于Web服务的非阻塞端信息跳变方法流程图。具体实施方式请参阅图2,其为本专利技术基于Web服务的非阻塞端信息跳变方法。步骤a:针对Web服务器,创建一个客户端的socket请求处理类,检测客户端的连接请求。所述步骤a的请求处理类即为socket套接字连接过程。如图1,即为一个完整的socket套接字编程过程,它主要包括服务器监听,客户端请求,连接确认,数据传输,关闭连接等步骤,套接字之间的连接过程即为该过程的前三个步骤。服务器监听:服务端首先创建一个socket套接字,利用listen()函数来监听是否有socket请求到来。此时服务器处于等待连接的状态,实时监控网络状态。客户端请求:客户端创建一个socket套接字请求,并利用connect()函数与服务器进行连接。此过程中,客户端的socket套接字必须首先描述它要连接的服务器的socket套接字,确定服务器端套接字的IP地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。步骤b:实例化一个Web服务器连接和请求处理类,对传入服务器的地址和请求执行监听与监测。所述步骤b中,在实例化一个服务器类的过程中,利用SocketServer函数库函数,将本机IP地址作为服务器的地址,绑定相关服务到本机。其中,SocketServer有4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer。这4个类是同步进行处理的,另外通过ForkingMixI本文档来自技高网
...
一种基于Web服务的非阻塞端信息跳变方法

【技术保护点】
一种基于Web服务的非阻塞端信息跳变方法其特征在于,主要包括以下步骤:a、针对Web服务器,创建一个客户端的socket请求处理类,检测客户端的连接请求;b、实例化一个Web服务器连接和请求处理类,对传入服务器的地址和请求执行监听与监测;c、对Web服务器阻塞处理函数进行重写,自定义阻塞中断处理时间timeout值;d、调用select方法,检测Web服务器在执行阻塞中断处理之前是否有服务请求,以此实现Web服务器的非阻塞;e、根据是否有服务请求选择不同的服务器操作,伪随机的改变Web服务的地址、端口、算法、服务等端信息,实现Web服务器的端信息跳变。

【技术特征摘要】
1.一种基于Web服务的非阻塞端信息跳变方法其特征在于,主要包括以下步骤:a、针对Web服务器,创建一个客户端的socket请求处理类,检测客户端的连接请求;b、实例化一个Web服务器连接和请求处理类,对传入服务器的地址和请求执行监听与监测;c、对Web服务器阻塞处理函数进行重写,自定义阻塞中断处理时间timeout值;d、调用select方法,检测Web服务器在执行阻塞中断处理之前是否有服务请求,以此实现Web服务器的非阻塞;e、根据是否有服务请求选择不同的服务器操作,伪随机的改变Web服务的地址、端口、算法、服务等端信息,实现Web服务器的端信息跳变。2.根据权利要求1所述的一种基于Web服务的非阻塞端信息跳变方法其特征在于:所述步骤c中,在此我们将ServerSocket库函数中timeout自定义为阻塞中断处理时间,为了实现服务器的非阻塞端信息跳变,我们需要修改该数值,数值大小按程序需求定义。3.根...

【专利技术属性】
技术研发人员:石乐义郭宏彬崔玉文李剑蓝吕献勇孙慧薛智宇陈松
申请(专利权)人:中国石油大学华东
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1