用于执行不指定通信参数的应用程序的通信系统和方法

文档序号:7972341阅读:127来源:国知局
专利名称:用于执行不指定通信参数的应用程序的通信系统和方法
技术领域
本发明一般地涉及通信系统,更具体而言涉及用于执行不指定诸如源端口号之类预定通信参数的应用程序的通信系统和方法。
背景技术
应用执行环境包括用于执行应用程序(例如客户端软件、服务器软件和对等软件)的CPU、操作系统(OS)和中间件。在执行用于互联网通信的应用程序的现有技术应用执行环境中,必须在执行通信控制(带宽分配、数据传输和通信中断(shutoff))前将源端口号映射到与应用程序独立相关联的TCP/IP或UDP/IP通信控制数据。某些应用程序在建立TCP/IP或UDP/IP通信之前向应用执行环境明确指定源端口号。如果这样的应用程序被与一个或多个其他应用程序组合执行,则可能由于多于一个应用程序同时使用单个源端口号而发生不希望看到的状况。为了避免这种情况,推荐的做法是使写入的应用程序不指定源端口号。作为结果,如果利用不指定源端口号的应用程序执行诸如“防火墙”之类通信控制,则必须动态分配源端口号,如日本专利公布2004-78507所描述的。但是,由于通信控制数据与每个应用程序独立相关联并且由于源端口号没被预先确定,因此无法在应用执行环境中针对所有应用程序保存TCP/UDP通信控制数据。一种解决方案是编写在发布通信请求时指定源端口号的应用程序。但是,编写这样的应用是一件困难的任务。

发明内容
为了消除对修改应用程序的需求,本发明的目的在于提供这样一种通信系统和方法,该通信系统和方法能够在根据TCP/IP协议建立通信(例如连接建立程序)或根据UDP/IP协议传输分组之前,将通信控制数据预先设置到应用执行环境中,即使应用执行环境具有动态分配源端口号(即预定通信参数)的能力也如此。
根据本发明的一般方面,提供了一种通信系统,包括通信建立装置,其响应于来自应用程序的通信请求来根据通信协议发起通信进程,并中止所述通信进程,所述应用程序没有指定预定通信参数;分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数;补充装置,其在所述通信进程被中止期间,利用已分配的通信参数补充与所述应用程序相关联的通信控制数据,以生成补充后的通信控制数据;以及通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据来进行设置。所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,并且所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
根据第一方面,本发明提供了一种通信系统,包括通信建立装置,其响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议发起通信进程;分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数;钩子装置,其致使所述通信建立装置响应于被分配给所述通信请求的所述通信参数来中止所述通信进程;补充装置,其在所述通信进程被中止时,利用已分配的通信参数补充与所述应用程序相关联的通信控制数据,以生成补充后的通信控制数据;以及通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据来进行设置。所述钩子装置致使所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,并且所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
根据第二方面,本发明提供了一种包括至少一个计算机系统和连接到所述至少一个计算机系统的服务器的通信系统。所述至少一个计算机系统包括通信建立装置,其响应于来自应用程序的通信请求来根据通信协议发起通信进程,并中止所述通信进程,所述应用程序没有指定预定通信参数;和分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数。所述服务器包括补充装置,其接收来自所述至少一个计算机系统的所述被分配的通信参数,并利用所述接收的通信参数来补充与所述应用程序相对应的通信控制数据;和通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据来进行设置。所述至少一个计算机系统的所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,并且所述服务器的所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
根据第三方面,本发明提供了一种包括至少一个计算机系统和连接到所述至少一个计算机系统的服务器的通信系统。所述至少一个计算机系统包括通信建立装置,其响应于来自应用程序的通信请求来根据通信协议发起通信进程,并中止所述通信进程,所述应用程序没有指定预定通信参数;分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数,和标识判决装置,其确定第一计算机系统的硬件标识和所述第一计算机系统的应用程序的应用标识。所述服务器包括存储器,其存储至少一个通信控制数据;搜索装置,其使用由所述至少一个计算机系统确定的硬件和应用标识作为搜索关键字来对所述存储器进行搜索,以检测相应的通信控制数据;补充装置,其从所述至少一个计算机系统接收所述硬件和应用标识以及所述已分配的通信参数,并且如果与所述通信参数一起接收的硬件和应用标识与对应于所述检测到的通信控制数据的硬件和应用标识相匹配,则用所述接收的通信参数补充检测到的通信控制数据;和通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据来进行设置。由匹配的硬件标识所标识的所述至少一个计算机系统的所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,并且所述服务器的所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
根据第四方面,本发明提供了一种通信方法,包括以下步骤响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议发起通信进程;向所述通信请求动态分配通信参数,作为所述预定通信参数;中止所述通信进程;利用所述被分配的通信参数补充与所述应用程序相关联的通信控制数据,以生成补充后的通信控制数据;恢复所述通信进程,以建立通信网络上的通信;以及根据所述补充后的通信控制数据来控制建立的通信。
根据第五方面,本发明提供了一种用于至少一个计算机系统和连接到这至少一个计算机系统的服务器的通信方法,该方法包括以下步骤响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议在所述至少一个计算机系统中发起通信进程;在所述至少一个计算机系统中,中止所述通信进程;在所述至少一个计算机系统中,向所述通信请求动态分配通信参数,作为所述预定通信参数;在所述至少一个计算机系统中,确定所述至少一个计算机系统的硬件标识和所述至少一个计算机系统的应用程序的应用标识;在所述服务器中,通过利用由所述至少一个计算机系统确定的硬件和应用标识作为搜索关键字对至少一个通信控制数据进行搜索,以检测相应的控制数据;在所述服务器处,从所述至少一个计算机系统接收所述硬件和应用标识以及所述通信参数,并且如果与所述通信参数一起接收的硬件和应用标识与对应于所述检测到的控制数据的硬件和应用标识相同,则用所述接收的通信参数补充检测到的通信控制数据;在所述至少一个计算机系统中,恢复所述通信进程,以在通信网络上建立通信;以及在所述服务器中,根据所述补充后的通信控制数据来控制所述建立的通信。
根据第六方面,本发明提供了一种用于至少一个计算机系统和连接到这至少一个计算机系统的服务器的通信方法,该方法包括以下步骤a)响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议在所述至少一个计算机系统中发起通信进程;b)在所述至少一个计算机系统中,中止所述通信进程;c)在所述至少一个计算机系统中,向所述通信请求动态分配通信参数,作为所述预定通信参数;d)在所述至少一个计算机系统中,确定所述至少一个计算机系统的硬件标识和所述至少一个计算机系统的应用程序的应用标识;e)在所述服务器处,从所述计算机系统中的任意一个接收由步骤(d)确定的硬件和应用标识,并对多个通信控制数据进行搜索,以检测与接收到的硬件和应用标识相对应的通信控制数据;f)在所述服务器处,从所述至少一个计算机系统接收由步骤(c)分配的通信参数和由步骤(d)确定的硬件和应用标识,并且如果与所述通信参数一起接收的硬件和应用标识与对应于所述检测到的控制数据的硬件和应用标识相匹配,则用所述通信参数补充由步骤(e)检测到的通信控制数据;g)在由匹配的硬件标识所标识的所述至少一个计算机系统中,恢复所述通信进程,以在通信网络上建立通信;以及(h)在所述服务器中,根据所述补充后的通信控制数据来控制所述建立的通信。


本发明将参考附图来详细描述,其中图1是本发明的通信系统的示意框图;图2是图1的通信系统的功能框图,它是通过操作本发明第一实施例的软件来实现的;图3是代表第一实施例的通信系统的软件实现的流程图;图4是图1的通信系统的功能框图,它是通过操作本发明第二实施例的软件来实现的;图5是代表第二实施例的通信系统的软件实现的流程图;图6是根据本发明第三实施例的分布式通信系统的框图;图7是第三实施例的功能框图,它是通过操作本发明第三实施例的软件来实现的;图8是示出第三实施例的软件实现的流程图;图9是根据本发明第四实施例的通信系统的框图;以及图10是示出图9的通信系统的细节的框图。
具体实施例方式
现在参考图1,示出了本发明的通信系统,其包括装在单个机箱中的计算机系统108。该计算机系统包括通过无线或有线信道100连接到通信网络NW或IP网络的至少一个通信装置102。计算机104被连接到通信装置102以在操作系统上操作,并被连接到存储有数据和/或软件程序的存储设备106。
图2是由具有互连的功能块的系统所代表的本发明第一实施例的功能块的图示,该系统使用图1的硬件执行操作系统、中间件和应用程序。该系统由虚线方块指示的应用执行环境220代表,并且包括TCP/UDP通信建立装置202、源端口号(或通信参数)分配装置204和连接在通信建立装置202和通信网络NW之间的TCP/UDP通信控制装置206。TCP/UDP通信建立装置202连接到包含用于数据通信的程序指令的应用程序200。响应于来自应用程序的用户的请求经由网络NW与远程终端建立TCP/IP或UDP/IP通信的通信请求,通信建立装置202根据TCP/IP或UDP/IP协议发起通信进程。应用程序200与通信建立装置202协作建立经由TCP/UDP通信控制装置206到网络的通信。
环境220中还包括扩展的应用执行环境222。环境222是环境220的扩展部分,并在通信建立装置202被“钩住(hooked)”期间以下述方式工作,以便介入其通信进程。
作为其通信进程的一部分,通信建立装置202调用源端口号分配装置204来对来自应用程序200的通信请求动态分配源端口号。动态分配的端口号(PN)被提供到扩展的应用环境222。注意,在本发明中,应用程序200从不指定源端口号。
TCP/UDP通信控制装置206接收来自扩展的应用执行环境222的通信控制数据,以执行多个控制功能,例如包括带宽分配、分组传输和通信中断。
扩展的应用执行环境222包括用于确定应用程序200的文件名的标识的标识判决装置208和用于从分配装置204接收分配的源端口号并将接收的端口号存储在存储器中以备后用的钩子装置210。
钩子装置210作为软件模块或“CALL函数”被安装在扩展的应用执行环境222上。该CALL函数的操作开始于通信建立装置202的进程并通过分配装置204前进到钩子装置210。响应于源端口号的分配,钩子装置210被调用,并且CALL函数响应于从应用程序200接收到通信请求而中止已由通信建立装置202发起的通信进程。此时,钩子装置210将搜索请求提供到标识判决装置208,接收分配的端口号并将其交给补充装置216。作为结果,钩子装置210的CALL函数前进到补充装置216。
响应于来自钩子装置210的搜索请求,标识判决装置208通过使用应用程序200的文件名来确定其标识并将程序200的应用标识(AID)提供到搜索装置212。使用AID作为搜索关键字,搜索装置212通过其中以一对一或一对多的对应关系将多个应用标识(AID)映射到多个通信控制数据的存储器或查找表214来执行搜索,以检测与当前使用的应用程序200的AID相对应的控制数据。
补充装置216从搜索装置212接收与应用程序200相关联的通信控制数据。由于该控制数据不具有关于源端口号的信息,因此补充装置216用接收自钩子装置210的源端口号来补充控制数据,以产生补充后的通信控制数据。钩子装置210的CALL函数前进到控制数据设置装置218。
控制数据设置装置218从补充装置216接收补充后的通信控制数据,并将接收的数据设置到TCP/UDP通信控制装置206中。当这种情况发生时,钩子装置210的CALL函数从数据设置装置218的进程通过补充装置216的进程返回钩子装置210,然后到分配装置204,再到通信建立装置202,以便恢复其通信进程。因此,分组根据TCP/IP或UDP/IP协议被编排格式并被通过通信控制装置206转发到网络。
图3是由一个流程图代表的本发明的通信系统的软件实现的图示,该流程图的例程被大体划分成由应用执行环境220执行的第一子例程和由扩展的应用执行环境222执行的第二子例程。
在第一子例程中,通信建立装置202发起通信进程。该通信进程开始于判决步骤300,以判断是否从应用程序200发布了用户的TCP/UDP通信请求,该应用程序200如上所述没有指定源端口号。如果从应用程序200发布了通信请求,流程则前进到步骤302,以向通信请求动态分配源端口号,这是作为通信进程的一部分,然后流程退出第一子例程并进入第二子例程。
第二子例程开始于步骤304,以中止第一子例程中由通信建立装置202发起的通信进程的执行。在步骤306,应用程序200的标识AID被确定,并且确定的AID被用作搜索关键字来搜索查找表214,以检测与应用程序200相对应的通信控制数据(步骤308)。在步骤310,与程序200相关联的通信控制数据被补充以步骤302中分配的源端口号,并将补充后的控制数据设置到通信控制装置206中(步骤312)。在步骤313,恢复通信建立装置202的通信进程的执行,流程离开第二子例程以返回第一子例程。
在第一子例程中,通信建立装置202在步骤314被激活,以恢复其通信进程,其中分组根据TCP/IP或UDP/IP协议被编排格式,并被通过通信控制装置206转发到网络上。在步骤316,通信控制装置206根据在步骤312中已经设置的控制数据对转发的分组执行控制。
如以上参考图2和3所述,扩展的应用执行环境222的操作开始于利用分配装置204向用户的通信请求分配源端口号,并终止于将通信控制数据设置在通信控制装置206中。由于设置在控制装置206中的控制数据被补充以由分配装置204动态分配的源端口号,因此允许通信控制数据在从具有不明确指定源端口号的类型的应用程序接收通信请求之前被写入。作为结果,应用程序200需要执行的唯一功能是请求通信建立装置202建立TCP或UDP通信。
图4是根据本发明第二实施例利用图1的硬件执行操作系统、中间件和应用程序的具有互连的功能块的系统的图示。该系统由应用执行环境424代表,并且包括TCP/UDP通信建立装置402、源端口号分配装置404和连接在通信建立装置402和通信网络NW之间的TCP/UDP通信控制装置406。TCP/UDP通信建立装置402被连接到没有指定源端口号的应用程序400。通信建立装置402响应于来自应用程序的用户的通信请求,以与第一实施例中执行的相同方式根据TCP/IP或UDP/IP协议发起通信进程。
因此,应用程序400与TCP/UDP通信装置402协作建立经由TCP/UDP通信控制装置406到网络的通信。
与前一实施例类似,应用执行环境424包括扩展的应用执行环境426,该环境426在通信装置402被钩住期间以下述方式进行操作。
扩展的应用执行环境426包括用于确定应用程序400的标识的标识判决装置408和用于从应用程序400接收通信请求的通信调用钩子装置410。
与前一实施例类似,通信调用钩子装置410作为“CALL函数”软件模块被安装在扩展的应用执行环境426上。该CALL函数的操作开始于通信建立装置402的进程并前进到钩子装置410。
响应于通信请求的接收,钩子装置410的CALL函数中止通信进程的执行,如果不这样做,该通信进程将响应于从应用程序400接收通信请求而在通信建立装置402中发起。同时,钩子装置410向标识判决装置408提供搜索请求,并且钩子装置410的CALL函数前进到调用端口号分配装置404的源端口号分配调用装置418。
同时,标识判决装置408响应于来自钩子装置410的搜索请求来确定应用程序400的AID并将确定的AID提供到搜索装置412。使用AID作为搜索关键字,搜索装置412搜索查找表414,以检测与应用程序400的AID相对应的通信控制数据,并将检测到的控制数据提供到补充装置416。
同时,PN分配调用装置418调用PN分配装置404向通信请求动态分配源端口号,并将分配的端口号提供到端口号接收装置420,该端口号接收装置420接收分配的源端口号,并将其提供到补充装置416。补充装置416用源端口号补充接收自搜索装置412的控制数据,以产生补充后的通信控制数据。补充后的通信控制数据被提供到控制数据设置装置422,该控制数据设置装置422将补充后的控制数据设置到通信控制装置406中。此时,补充后的控制数据被数据设置装置422设置到通信控制装置406中,钩子装置410的CALL函数已前进通过装置418、404、420、416和422,现在返回通信建立装置402,以恢复其通信进程。
图5是由一个流程图代表的第二实施例的软件实现的图示,该流程图的例程被大体划分成由扩展的应用执行环境426执行的第一子例程和由应用执行环境424执行的第二子例程。
第一子例程开始于判决步骤500,其判断是否从应用程序400发布了通信请求。如果是,流程前进到步骤502,以中止通信进程的执行,如果不这样做,该通信进程将响应于通信请求由通信建立装置402发起。在步骤502,源端口号被动态分配给通信请求,并且流程前进到步骤506,以确定应用程序400的标识。在步骤508,确定的AID被用作搜索关键字来搜索查找表414,以检测与应用程序400相对应的通信控制数据。在步骤510,与程序400相关联的通信控制数据被补充以在步骤504分配的源端口号,并且补充后的控制数据被设置到通信控制装置406中(步骤512)。在步骤514,通信建立装置402的通信进程的执行被恢复,同时流程离开第一子例程,以进入第二子例程。
在第二子例程中,通信建立装置402在步骤516被激活,以通过根据TCP/IP或UDP/IP协议对分组编排格式和将分组通过通信控制装置406转发到网络上,来发起其通信进程。在步骤518,通信控制装置406根据在步骤512中已经设置的控制数据对转发的分组进行控制。
根据本发明第三实施例的通信系统在图6到图8中示出。在图6中,通信系统包括多个具有类似配置的计算机系统600-1到600-N,以及连接到计算机系统600-1~600-N的一个单独的计算机系统或服务器608。服务器608连接到通信网络NW。每个计算机系统600包括通信装置602、计算机603和存储设备604。服务器608包括通信装置610和612、计算机614和存储设备616。通信装置610被连接到所有计算机系统600-1~600-N的通信装置602,而通信装置612连接到通信网络NW。通信装置610和612都连接到计算机614。
图7示出第三实施例的硬件实现,其中应用执行环境722被安装在每个计算机系统600的硬件上,应用执行环境724被安装在服务器608的硬件上。由于计算机系统600基本相同,因此只要论述运行在计算机系统600之一上的一个应用执行环境722作为代表就足够了,这被理解为该论述适用于在其他计算机系统600上运行的应用执行环境。
虽然其他计算机系统的应用执行环境被连接到应用执行环境724,但是仅示出一个应用执行环境722就足够了。
应用执行环境722包括TCP/UDP通信建立装置702、源端口号分配装置704和扩展的应用执行环境726,该环境726在通信建立装置702以下述方式被钩住期间进行操作。TCP/UDP通信建立装置702被连接到应用程序700,该应用程序700包含用于数据通信的程序指令。响应于来自应用程序的用户的请求经由网络NW与远程终端建立TCP/IP或UDP/IP通信的通信请求,通信建立装置702根据TCP/IP或UDP/IP协议发起通信进程,并且指示源端口号分配装置704向通信请求动态分配源端口号。
扩展的应用执行环境726包括标识判决装置707,该装置707通过分析装有计算机系统的机箱的序列号来确定其上安装了应用程序700的硬件的标识,并确定应用程序700的标识。可替换地,硬件的标识可以通过将该序列号写入应用程序700并在应用程序的标识被确定时读取它来确定。
钩子装置710被提供,以从分配装置704接收分配的源端口号,该接收的端口号被存储在存储器中以备后用。
以与先前实施例类似的方式,钩子装置710作为“CALL函数”软件模块被安装在扩展的应用执行环境726上。CALL函数的操作从通信建立装置702通过PN分配装置704前进到钩子装置710。
另一方面,应用执行环境727包括连接到每个计算机系统的TCP/UDP通信建立装置702的TCP/UDP通信控制装置706、搜索装置712、存储器或查找表714、补充装置716和控制数据设置装置717。钩子装置710的CALL函数将通过钩子装置710和补充装置716前进到控制数据设置装置717,并返回通信建立装置702。
搜索装置712连接到每个计算机系统600的标识判决装置707,以接收其硬件标识(HID)和应用标识(AID)。查找表712存储了多个被映射到相应的硬件标识和相应的应用标识的通信控制数据。补充装置716被连接到搜索装置712的输出和每个计算机系统600的钩子装置710。
响应于端口号的接收,钩子装置710指示通信建立装置702中止其通信进程。同时,钩子装置710向标识判决装置707提供搜索请求。
响应于来自钩子装置710的搜索请求,标识判决装置707确定上述HID和AID并将它们提供到钩子装置710和搜索装置712。利用HID和AID作为搜索关键字,搜索装置712搜索存储器或查找表714,以检测相应的通信控制数据。
补充装置716从搜索装置712接收与应用程序700以及环境722在其上运行的硬件相关联的通信控制数据,以及HID和AID。另外,补充装置716接收来自钩子装置710的AID、HID和分配的端口号。补充装置716将接收自搜索装置712的HID和AID与接收自钩子装置710的HID和AID相比较。如果它们匹配,补充装置716就证实了它们发自于单个通信请求。如果从计算机系统600同时发布的通信请求之间出现竞争(racing)状况,则会发生失配。以上比较可以避免对同时生成的通信请求的误处理。
由于该通信控制数据没有给出关于源端口号的信息,因此补充装置716以接收自钩子装置710的源端口号对其进行补充,以产生补充后的通信控制数据。
控制数据设置装置717从补充装置716接收补充后的通信控制数据,并将接收的数据设置到TCP/UDP通信控制装置706中。同时,控制数据设置装置717向钩子装置710通报补充了PN的控制数据已被设置在控制装置706中这一事实。在响应中,钩子装置710指导通信建立装置702通过开始根据TCP/IP或UDP/IP协议编排分组格式和通过通信控制装置706向网络转发分组来恢复通信进程。
图8是第三实施例的通信系统的软件实现的图示。例程开始于判决步骤800,该步骤判断是否从应用程序700接收到通信请求。如果接收到通信请求,通信建立装置702就发起通信进程,并且流程前进到步骤802以向接收的通信请求动态分配源端口号,这作为通信进程的一部分。在步骤804,通信进程的执行被中止。在步骤806,由任意计算机系统的标识判决装置707确定HID和AID。
在步骤807,服务器608的搜索装置712从任意计算机系统600的标识判决装置707接收HID和AID,并用它们作为搜索关键字来搜索查找表714,以检测相应的通信控制数据。在判决步骤808,补充装置716接收来自任意计算机系统600的钩子装置710的分配的端口号(PN)、HID和AID,并将接收的HID和AID与在步骤807中使用的分配的端口号和HID和AID相比较,以判断匹配还是失配。如果它们不匹配,流程则前进到例程结尾。
如果与分配的端口号一起接收的HID和AID与步骤807中的HID和AID相同,流程则前进到步骤810,以利用与匹配的HID和AID一起接收的源端口号来补充由步骤807检测到的通信控制数据。
在步骤812,补充的通信控制数据被设置到通信控制装置706中,并且由匹配的HID标识的计算机系统600的通信进程的执行恢复(步骤813)。
在步骤814,通信建立装置702通过根据TCP/IP或UDP/IP协议编排分组格式以及通过通信控制装置706将分组转发到网络NW来恢复其通信进程。在步骤816,通信控制装置706根据已经在步骤812中设置的控制数据对转发的分组执行控制。
图6到图8所示第三实施例的优点在于,与先前的实施例相比,用于执行应用程序700的处理负担量和用于执行通信控制装置706的功能的处理负担量被分布在不同的计算机系统中。作为结果,计算机603和614各自的处理负担可以减小。
第三实施例的另一优点在于计算机系统600-1~600-N之间可以共享单个查找表714,而不用在计算机系统600-1~600-N上安装独立的查找表。
本发明的第四实施例在图9和图10中示出。在图9中,通信系统包括通信终端900,该通信终端900包括将终端900接口到有线以太网ENW的有线以太网接口902、计算机904和作为计算机904的外部存储设备的硬盘驱动器906。
在图10中,Web浏览器1000操作应用程序。作为其功能的一部分,Web浏览器1000调用网络相关系统调用1006(这是一个被应用程序用来请求来自操作系统的服务的机制),以便通过分组过滤器1030经由有线以太网上的IP网络1002与远程Web服务器1004建立通信。如果使用UNIX操作系统,系统调用1006则包括套接字系统调用1008(编排套接字格式请求,以连接到Web服务器1004)、绑定系统调用1010、连接系统调用1012(到Web服务器1004的连接请求)和接收系统调用(从Web服务器1004的数据获取请求)。
在典型示例中,Web浏览器100按顺序连续调用套接字系统调用1008、连接系统调用1012和接收系统调用1014。由于Web浏览器1000通常在不指定源端口号的情况下工作,因此绑定系统调用1010不被调用,该绑定系统调用1010的一般功能包括明确指定源端口号的能力。
当Web浏览器1000调用连接系统调用1012时,连接系统调用1012的网络连接请求进程(即通信进程)被执行,以建立经由分组过滤器1030到网络的连接,并且SPN(源端口号)分配OS内部函数1016被调用,以在连接系统调用1012中分配源端口号(例如#48932)(取决于不同的操作系统,OS内部函数1016不作为独立的函数安装,而是作为其他函数的进程的一部分安装)。作为结果,开始于作为通信建立装置的网络相关系统调用1006和分组过滤器1030的一部分的操作的通信进程被中止。
用于源端口号分配的OS内部函数1016被修改以实现本发明。更具体而言,OS内部函数1016被修改为使得钩子函数1018在SPN分配OS内部函数1016的所有内部进程的函数都被执行之后立即被调用。
钩子函数1018将OS内部函数1016分配的源端口号交给控制数据补充进程1020,该进程1020用于用通过UNIX域套接字所提供的进程到进程通信从钩子函数1018提供的被分配的端口号来补充分组过滤器控制数据。钩子函数1018获得发出调用的Web浏览器1000的进程ID并利用UNIX域套接字的进程到进程通信将其交给ps命令调用进程1022。(注意,在UNIX操作系统中,进程ID被用来标识运行的进程,并且这样的ID可以容易地在网络相关系统调用1006中获得)。响应于来自钩子函数1018的进程ID,ps命令调用进程1022识别相应进程的文件名并使用UNIX域套接字的进程到进程通信将其交给数据库搜索进程1024,该进程1024搜索分组过滤器控制数据。
利用识别出的文件名作为搜索关键字,数据库搜索进程1024搜索分组过滤器控制数据库1026,并获取Web浏览器控制数据1028。Web浏览器控制数据1028包括源端口#X(未知)、目的地端口#80和指定“发送到病毒检测进程”的控制数据。数据库搜索进程1024使用进程到进程通信来将获取的控制数据1028提供到控制数据补充进程1020,以利用OS内部函数1016分配的源端口号补充Web浏览器控制数据1028,以产生补充后的Web浏览器控制数据1032,该补充后的Web浏览器控制数据1032经由UNIX域套接字的进程到进程通信被提供到分组过滤器控制数据设置进程1034。Web浏览器控制数据1032包括分配的源端口#48932、目的地端口#80和“发送到病毒检测进程”控制数据,现在该控制数据对于使分组过滤器1030正常工作来说是完整的。
分组过滤器控制数据设置进程1034现在通过重新写入其设置文件并重启来执行将完整的Web浏览器控制数据设置到分组过滤器1030中的操作。
响应于钩子函数1018分配源端口号而启动的介入操作现在由于完整在控制数据被设置到分组过滤器1030中而结束。由于连接系统调用1012的网络连接请求进程已完成,因此通过接收系统调用1014恢复通信进程,该接收系统调用1014执行用于从Web服务器1004接收数据的数据获取进程。当从Web服务器1004接收到分组时,分组过滤器1030根据补充后的控制数据将接收的数据传送到病毒检测进程1036。当对接收的数据进行病毒检查并被证实时,分组过滤器1030将已证实的数据发送到Web浏览器1000。
从先前的描述可知,TCP/IP通信可以在不修改Web浏览器1000并且无需向Web浏览器控制数据1028写入源端口号的情况下受控于分组过滤器1030。
另外,本发明可被用来增强其软件具有可扩展能力的个人计算机以及移动电话的安全性。此外,本发明还可被用在用于针对同义词执行数据库搜索的应用中,和被用在用于实现计算机中的信息搜索系统的程序中。
虽然已经提到源端口号,但是诸如网络地址之类的其他通信参数同样可被用于不指定这样的通信参数的应用程序。
权利要求
1.一种通信系统,包括通信建立装置,其响应于来自应用程序的通信请求来根据通信协议发起通信进程,并中止所述通信进程,所述应用程序没有指定预定通信参数;分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数;补充装置,其在所述通信进程被中止期间,利用已分配的通信参数补充与所述应用程序相关联的通信控制数据,以生成补充后的通信控制数据;以及通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据而被设置,其中所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,其中所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
2.如权利要求1所述的通信系统,其中所述通信建立装置在所述通信参数被分配给所述通信请求时中止所述通信进程。
3.一种通信系统,包括通信建立装置,其响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议发起通信进程;分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数;钩子装置,其致使所述通信建立装置响应于所述通信参数被分配给所述通信请求来中止所述通信进程;补充装置,其在所述通信进程被中止时,利用已分配的通信参数补充与所述应用程序相关联的通信控制数据,以生成补充后的通信控制数据;以及通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据而被设置,其中所述钩子装置致使所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,其中所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
4.如权利要求1或3所述的通信系统,还包括存储器,其存储至少一个通信控制数据;判决装置,其确定所述应用程序的标识;搜索装置,其对所述存储器执行搜索,以检测已存储的与确定的标识相关联的通信控制数据之一,并将检测到的通信控制数据提供到所述补充装置。
5.如权利要求1或3所述的通信系统,其中所述分配装置动态分配所述通信参数,这作为所述通信进程的一部分。
6.一种通信系统,包括至少一个计算机系统和连接到所述至少一个计算机系统的服务器,所述至少一个计算机系统包括通信建立装置,其响应于来自应用程序的通信请求来根据通信协议发起通信进程,并中止所述通信进程,所述应用程序没有指定预定通信参数;和分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数,所述服务器包括补充装置,其接收来自所述至少一个计算机系统的所述被分配的通信参数,并利用所述接收的通信参数来补充与所述应用程序相对应的通信控制数据;和通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据而被设置,其中所述至少一个计算机系统的所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,其中所述服务器的所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
7.一种通信系统,包括至少一个计算机系统和连接到所述至少一个计算机系统的服务器,所述至少一个计算机系统包括通信建立装置,其响应于来自应用程序的通信请求来根据通信协议发起通信进程,并中止所述通信进程,所述应用程序没有指定预定通信参数;分配装置,其向所述通信请求动态分配通信参数,作为所述预定通信参数,和标识判决装置,其确定第一计算机系统的硬件标识和所述第一计算机系统的应用程序的应用标识,所述服务器包括存储器,其存储至少一个通信控制数据;搜索装置,其使用由所述至少一个计算机系统确定的硬件和应用标识作为搜索关键字来对所述存储器进行搜索,以检测相应的通信控制数据;补充装置,其从所述至少一个计算机系统接收所述硬件和应用标识以及所述已分配的通信参数,并且如果与所述通信参数一起接收的硬件和应用标识与对应于检测到的通信控制数据的硬件和应用标识相匹配,则用所述接收的通信参数补充所述检测到的通信控制数据;和通信控制装置,该通信控制装置被布置为利用来自所述补充装置的补充后的通信控制数据而被设置,其中由匹配的硬件标识所标识的所述至少一个计算机系统的所述通信建立装置在利用所述控制数据设置了所述通信控制装置时恢复所述通信进程,以建立通信网络上的通信,其中所述服务器的所述通信控制装置根据所述补充后的通信控制数据对所述建立的通信执行控制。
8.如权利要求1、3、6或7所述的通信系统,其中所述预定通信参数是TCP/IP或UDP/IP协议的源端口号。
9.如权利要求1、3、6或7所述的通信系统,其中所述通信控制装置包括分组过滤器。
10.一种通信方法,包括以下步骤响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议发起通信进程;向所述通信请求动态分配通信参数,作为所述预定通信参数;中止所述通信进程;利用所述被分配的通信参数补充与所述应用程序相关联的通信控制数据,以生成补充后的通信控制数据;恢复所述通信进程,以建立通信网络上的通信;以及根据所述补充后的通信控制数据来控制建立的通信。
11.一种用于至少一个计算机系统和连接到这至少一个计算机系统的服务器的通信方法,该方法包括以下步骤响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议在所述至少一个计算机系统中发起通信进程;在所述至少一个计算机系统中,中止所述通信进程;在所述至少一个计算机系统中,向所述通信请求动态分配通信参数,作为所述预定通信参数;在所述至少一个计算机系统中,确定所述至少一个计算机系统的硬件标识和所述至少一个计算机系统的应用程序的应用标识;在所述服务器中,通过利用由所述至少一个计算机系统确定的硬件和应用标识作为搜索关键字对至少一个通信控制数据进行搜索,以检测相应的控制数据;在所述服务器处,从所述至少一个计算机系统接收所述硬件和应用标识以及所述通信参数,并且如果与所述通信参数一起接收的硬件和应用标识与对应于所述检测到的控制数据的硬件和应用标识相同,则用所述接收的通信参数补充检测到的通信控制数据;在所述至少一个计算机系统中,恢复所述通信进程,以在通信网络上建立通信;以及在所述服务器中,根据补充后的通信控制数据来控制所述建立的通信。
12.一种用于至少一个计算机系统和连接到这至少一个计算机系统的服务器的通信方法,该方法包括以下步骤a)响应于来自没有指定预定通信参数的应用程序的通信请求来根据通信协议在所述至少一个计算机系统中发起通信进程;b)在所述至少一个计算机系统中,中止所述通信进程;c)在所述至少一个计算机系统中,向所述通信请求动态分配通信参数,作为所述预定通信参数;d)在所述至少一个计算机系统中,确定所述至少一个计算机系统的硬件标识和所述至少一个计算机系统的应用程序的应用标识;e)在所述服务器处,从所述计算机系统中的任意一个接收由步骤(d)确定的硬件和应用标识,并对多个通信控制数据进行搜索,以检测与接收到的硬件和应用标识相对应的通信控制数据;f)在所述服务器处,从所述至少一个计算机系统接收由步骤(c)分配的通信参数和由步骤(d)确定的硬件和应用标识,并且如果与所述通信参数一起接收的硬件和应用标识与对应于所述检测到的控制数据的硬件和应用标识相匹配,则用所述通信参数补充由步骤(e)检测到的通信控制数据;g)在由匹配的硬件标识所标识的所述至少一个计算机系统中,恢复所述通信进程,以在通信网络上建立通信;以及h)在所述服务器中,根据所述补充后的通信控制数据来控制所述建立的通信。
13.如权利要求10、11或12所述的方法,还包括以下步骤确定所述应用程序的标识;以及对至少一个通信控制数据进行搜索,以检测与所述确定的标识相对应的通信控制数据。
14.如权利要求10、11、12或13所述的方法,其中所述预定通信参数是TCP/IP或UDP/IP协议的源端口号。
全文摘要
在TCP/UDP通信系统中,通信进程开始于从没有指定预定通信参数(例如源端口号)的应用程序接收通信请求。端口号被动态分配给通信请求。通信进程随后被中止,并且与应用程序相关联的通信控制数据被补充以被分配的源端口号,以生成补充后的通信控制数据。通信进程随后被恢复,以在通信网络上建立通信,并且建立的通信根据补充后的通信控制数据被控制。
文档编号H04L29/02GK1937626SQ20061015231
公开日2007年3月28日 申请日期2006年9月21日 优先权日2005年9月21日
发明者樋口直志 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1