CN1741530B - 服务器设备、客户机设备以及处理执行方法 - Google Patents
服务器设备、客户机设备以及处理执行方法 Download PDFInfo
- Publication number
- CN1741530B CN1741530B CN200510091656.XA CN200510091656A CN1741530B CN 1741530 B CN1741530 B CN 1741530B CN 200510091656 A CN200510091656 A CN 200510091656A CN 1741530 B CN1741530 B CN 1741530B
- Authority
- CN
- China
- Prior art keywords
- message
- client devices
- calculation
- server apparatus
- difficult problem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种服务器设备、客户机设备以及处理执行方法,其中,服务器设备20请求客户机设备30执行具有不同难度等级的多个计算之一。客户机设备30根据所述多个计算中每一个所需的计算量,识别要执行的计算并执行计算。当向服务器设备20请求执行给定处理时,客户机设备30向服务器设备20发送计算的结果。当计算结果正确时,服务器设备根据基于计算量的优先级,执行预定处理。
Description
技术领域
本发明涉及一种用于使服务器设备响应来自客户机设备和服务器设备的请求来执行处理的技术。
背景技术
近年来,使用因特网的各种通信业务已经投入使用。用于在因特网上发送和接收数据的通信协议的一个示例是TCP(传输控制协议)。TCP是一种能够使数据通信在因特网上高度可靠地执行的连接型通信协议。在TCP环境下,在内容数据的传输之前,数据发送设备(以下称作“服务器设备”)和数据接收设备(以下称作“客户机设备”)交换连接数据(以下称作“连接标识符”)。将交换的连接标识符用于指定通信路径(以下称作“连接”),以便由此建立内容数据的传输所用的连接。连接标识符的示例包括:分配给服务器设备或客户机设备的通信地址;指示了由设备分别用于发送和接收数据的通信端口(例如,通信端口号)的数据;或序列号的初始值。在TCP环境下,利用被称作“3方握手(3-way handshake)”的过程来建立连接。该过程的大概说明如下。
图10提供了由客户机设备40A和服务器设备50A执行的3方握手的概况。每一个设备均能够在TCP环境下进行通信。出于说明的目的,假设希望从服务器50A得到内容数据的用户执行例如输入数据(例如URL)之类的预定操作,所述数据表示了服务器设备40A的通信地址和要用于获取希望的内容数据的通信协议。客户机设备50A首先向服务器设备40A发送SYN消息200,如图10所示。当要从服务器设备40A向客户机设备50A发送数据时(以下称作“下行连接”),SYN消息用于请求建立连接;该消息包括用于下行连接的连接标识符。
当接收到SYN消息200时,服务器设备40A分配用于与SYN消息200的源(客户机设备50A)建立连接的计算机资源(以下称作“资源”)。具体地,服务器设备40A将用于识别对应设备(即,客户机设备50A)的数据(例如上述下行连接的连接标识符)写入到例如RAM(随机存取存储器)的存储设备中。然后,服务器设备40A向客户机设备50A发送指示了SYN消息200的接收的SYN/ACK消息210,并且还发送用于在反方向建立连接(以下称作“上行连接”)的请求。当数据从客户机设备50A传送到服务器设备40A时,使用上行连接;所述SYN/ACK消息210包括用于上行连接的连接标识符。在从消息210的发送之后的预定时间内没有接收到确认SYN/ACK消息210的接收的消息(以下称作“ACK”)的情况下,服务器设备40A通过参考存储设备中存储的数据来重发SYN/ACK消息210。
当接收到SYN/ACK消息210时,客户机设备50A读取SYN/ACK消息210中的连接标识符,并根据连接标识符建立连接(即,上行连接)。然后,客户机设备50A向服务器设备40A发送指示了SYN/ACK消息210的接收的ACK 220。ACK 220包括用于下行连接的标识符。当接收到ACK 220时,服务器设备40A建立由包括在ACK 220中的连接标识符识别的上行连接,从存储设备中删除识别对应设备的数据,并等待从客户机设备50A通过下行连接发送的消息的接收,例如用于发送数据的请求(例如,包含HTTP GET方法的消息)。
注意,由于服务器设备40A的资源,例如存储设备的容量,是有限的,因此限制了能够存储在存储设备中的连接标识符(即,指示了能够与其建立连接的对应设备的数据)的数目。因此,服务器设备40A等待的、来自客户机设备50A的ACK 220的数目被限制为能够在服务器处保留的连接标识符的数目。该限制造成容易滥用服务器。即,通过从设备向服务器发送大量用于排队的SYN消息200,能够发起恶意的、客户机设备对服务器的服务器攻击的拒绝,由此耗尽了服务器的资源。将这种攻击称作“SYN洪泛攻击(SYN Flood Attack)”。
当发起SYN洪泛攻击时,作为攻击源的恶意客户机设备连续地向服务器设备40A发送大量SYN消息200。当服务器发送或试图发送响应SYN/ACK消息210时,没有来自客户机设备的ACK 220。因此,假设在对应设备之间还没有建立连接,服务器在设定时间周期内保留识别对应设备的数据,并等待ACK 220。当试图进行SYN洪泛攻击时,在服务器处排队的连接标识符的数据很快达到上限。结果,服务器设备不再能够接受来自客户机设备的连接请求;并且不能提供通信服务。
已经提出了各种方法用于处理SYN洪泛攻击。包括Ari Juels和John Brainard(RSA Labs)的“Client Puzzles:A Cryptographic DefenseAgainst Connection Depletion Attacks”中公开的客户机难题协议(clientpuzzle protocol)(http://www.rsasecurity.com/rsalabs/staff/bios/ajuels/publications/client-puzzles)以及在XiaoFeng Wang,Michael K.Reiter的“DefendingAgainst Denial-of-Service Attack with Puzzle Auctions”,Proceeding ofthe 2003 IEEE Symposium on Security and Privacy,(http://www.cs.cornell.edu/People/egs/syslunch-spring04/puzzleauctions.pdf)。下面,将参考附图来给出这些技术的说明。
图11是提供了客户机难题协议的概况图。在图中,服务器设备40B和客户机设备50B是根据客户机难题协议建立连接的通信设备。服务器设备40B与图10的服务器设备40A的不同之处在于,当接收时,设备40B不存储示出了SYN消息100的源(source)的数据,并且当接收到SYN消息100时,设备40B发送请求执行预定计算的消息(图11的RST/ACK消息101)和包括计算结果的答复。RST/ACK消息101包括表示预定计算的数据(以下称为“客户机难题”)。
当接收到RST/ACK消息101时,客户机设备50B执行由包含在RST/ACK消息101中的客户机难题指定的计算,并在将计算结果写入消息之后,将SYN消息102发送到服务器设备40B。下面,将由客户机难题指定的计算的执行称作“求解客户机难题”,将计算结果称作“客户机难题的解答”。当服务器设备40B接收到SYN消息102时,其确定包含在SYN消息102中的解答是否正确;只有当确定解答正确时,设备40B根据与在3方握手方法中使用的过程相同的过程,建立与客户机设备50B之间的连接。
因此,服务器设备40B向请求建立连接的客户机设备50B发送客户机难题,并且不建立连接,直到从客户机设备50B返回客户机难题的正确解答。试图通过发送大量SYN消息对服务器40B进行SYN洪泛攻击的客户机设备不再能够继续进行攻击,除非其向服务器设备40B提交了对于从服务器返回的客户机难题的正确解答,作为每一个SYN消息的响应。为了继续对于服务器40B的SYN洪泛攻击,客户机设备不得不求解多个客户机难题,这意味着客户机设备必须具有用于计算的大量资源。结果,客户机设备不能继续发送SYN消息。因此,根据客户机难题协议,能够有效地对付SYN洪泛攻击。
实现客户机难题协议的关键因素在于适当地调整由客户机难题指定的计算的量(以下将“计算的量”称作“客户机难题难度”)。在将客户机难题难度设置得过低的情况下,即,计算量过小,客户机设备可以通过利用相当少的资源来得到对于客户机难题的解答;结果,不能抵御SYN洪泛攻击。相反,当客户机难题难度过高时,即,计算量过大,即使对于不试图进行SYN洪泛攻击的合法客户机设备,也要耗费时间来求解客户机难题;结果,这种客户机设备对于使用由服务器设备提供的通信服务存在困难。
然而,在实际中,在现有通信系统中,不容易调整适于每一个客户机设备的客户机难题难度的适当等级。通常,在现有通信系统中使用具有不同能力程度的各种客户机设备的混合,例如个人计算机和PDA(个人数字助理),但是客户机难题难度的适当等级依赖于每一个客户机设备的能力。作为其目的,由Wang等人建议的客户机难题拍卖(client puzzle auction)已经提供了在客户机难题协议中存在的这种问题的解决方案。现在给出客户机难题拍卖的说明。
图12是用于说明客户机难题拍卖的概况的图。服务器设备40C和客户机设备50C是根据客户机难题拍卖建立间接的通信设备。当发送包含得到的客户机难题解答的SYN消息102(102a或102b)时,图12的客户机设备50C适于发送第一数据或第二数据,第一数据是对于发送具有更高难度的客户机难题的请求,第二数据是对于不发送任意更难客户机难题的请求。
当第一数据包括在从客户机设备50C接收到的SYN消息中时,服务器设备40C产生具有更高难度的客户机难题,并发送包含所产生的客户机难题的RST/ACK消息101b。在从客户机设备50C接收到的SYN消息102包括第二数据的情况下,服务器设备40C根据传统的3方握手发起连接的建立。
根据客户机难题拍卖,当接收到来自多个客户机设备的SYN消息102时,在处理请求时,图12的服务器设备40C给予包括对于具有较高难度等级的客户机难题的解答的SYN消息102较高的优先级,并优选与作为SYN消息102来源的客户机设备建立连接。由于解决具有较高等级难度的客户机难题通常会消耗大量资源,能够减小连接打开请求的发送频率。给予较高的优先级,作为对于接受较高处理负担并且使其能够以较低频率发送连接建立请求的客户机的补偿。换句话说,如果希望服务器设备40C以较高的优先级处理其发送的连接打开请求,客户机设备50C必须接受大量的资源保证(commitment)。
如上所述,由于保证大量资源是客户机设备执行SYN洪泛攻击的障碍,客户机难题拍卖能够有效地抵御SYN洪泛攻击。此外,由于使每一个客户机设备50C能够接收适于其处理自身处理能力的客户机难题并求解难题,也解决了在客户机难题协议中存在的上述问题。因此,根据客户机难题拍卖,使客户机设备能够根据其能力来承担负担,并根据与每一个客户机设备已接受的负担相对应的优先级来建立连接。
然而,当使用客户机难题拍卖时,如图10、11和12清楚所示,当与3方握手和客户机难题协议相比时,增大了服务器设备和客户机设备之间交换的消息数目(以下称作“通信业务量”)。由于可能会成为在通信网络中引起拥塞的因素,通过所述通信网络执行两个设备之间的通信,这种服务器设备和客户机设备之间通信业务量的增大并不受到欢迎。
发明内容
虑到上述问题构思了本发明,其目的在于提供一种技术,用于使客户机设备承担的负担取决于每一个客户机的处理能力,还使服务器设备能够根据与每一个客户机设备已接受的负担相对应的优先级来处理来自客户机设备的处理请求,同时避免客户机设备和服务器设备之间通信业务量的增大。
为了解决上述问题,在一方面,本发明提出了一种服务器设备,包括:发送装置,用于向对应客户机设备发送包括多个客户机难题的第一消息,多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,该计算用的数据集合需要不同的计算量,多个客户机难题与对于难题计算用的至少一个数据集合的计算请求和对于计算用的至少一个数据集合的解答发送请求一起被发送;确定装置,用于当接收到来自每一个对应客户机设备的第二消息时,确定接收到的计算结果是否正确,所述第二消息请求执行给定处理并且包括计算用的至少一个数据集合的计算结果;以及处理执行装置,用于当确定装置确定计算结果正确时,识别每一个客户机设备对于计算用的至少一个数据集合所执行的计算量,并用于执行所请求的、基于所识别的计算量进行优先级排序的给定处理。
在优选实施例中,发送装置可以响应请求只执行给定处理的初步(preliminary)消息,将第一消息发送到作为初步消息的来源的客户机设备。
在另一个优选实施例中,只有当第一消息的源和目的地开始通信时,第一消息才具有其中包含数据的预定区域,预定区域包含用于向目的地通知通信的详细模式的附加数据;以及发射装置可以发送在预定区域包含了多个客户机难题的第一消息。优选地,发送装置可以根据TCP(传输控制协议)发送消息;以及预定区域可以是选项(Option)字段。
在另一方面,本发明提供了一种程序和存储这种程序的计算机可读记录介质,所述程序用于使计算机起到上述发射装置、确定装置和处理执行装置的作用。
为了解决上述目的,本发明还提供了一种服务器设备,包括:通信装置;以及控制装置,其中控制装置执行:第一处理,用于由通信装置向对应客户机设备发送包括多个客户机难题的第一消息,多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,该计算用的数据集合需要不同的计算量,多个客户机难题与对于难题计算用的至少一个数据集合的计算的请求和对于计算用的至少一个数据集合的解答的发送的请求一起被发送;第二处理,用于当通信装置接收到来自每一个对应客户机设备的第二消息时,确定接收到的计算结果是否正确,所述第二消息请求执行给定处理并且包括计算用的至少一个数据集合的计算结果;以及第三处理,用于当在第二处理中确定计算结果正确时,识别每一个客户机设备对于计算用的至少一个数据集合所执行的计算量,并用于执行所请求的、基于所识别的计算量进行优先级排序的给定处理。
本发明还提供了一种程序和存储这种程序的计算机可读记录介质,所述程序用于使计算机执行上述第一、第二和第三处理。
在另一方面,本发明还提供了一种客户机设备,包括:选择装置,当接收到来自对应服务器设备的第一消息、对于难题计算用的至少一个数据集合的计算的请求和对于计算用的至少一个数据集合的解答的发送的请求时,在根据每一个难题识别对于每一个计算要执行的计算量之后,根据计算量选择要执行的计算,所述第一消息包括多个客户机难题,多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,该计算用的数据集合需要不同的计算量;计算执行装置,用于执行由选择装置选择的计算;以及发送装置,用于当请求服务器设备执行给定处理时,向服务器设备发送具有处理执行请求的第二消息,所述第二消息包括由计算执行装置得到的计算结果。
在优选实施例中,当在接收到第一消息之前请求给定处理的执行时,发送装置将只包括处理执行请求的初步消息发送到服务器设备。
此外,本发明提供了一种程序和存储这种程序的计算机可读记录介质,所述程序用于使计算机起到上述选择装置、计算执行装置和发送装置的作用。
在另一方面,本发明还提供了一种客户机设备,包括:通信装置;以及控制装置,其中控制装置执行:第一处理,用于当通信装置接收到来自对应服务器设备的第一消息、对于难题计算用的至少一个数据集合的计算的请求和对于计算用的至少一个数据集合的解答的发送的请求时,在根据每一个难题识别对于每一个计算要执行的计算量之后,根据计算量选择要执行的计算,所述第一消息包括多个客户机难题,多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,该计算用的数据集合需要不同的计算量;第二处理,用于执行在第一处理中选择的计算;以及第三处理,用于当请求服务器设备执行给定处理时,通信装置向服务器设备发送具有处理执行请求的第二消息,所述第二消息包括在第二处理中得到的计算结果。
此外,本发明提供了一种程序和存储这种程序的计算机可读记录介质,所述程序用于使计算机执行上述第一处理、第二处理和第三处理。
在另一方面,本发明提供了一种处理执行方法,包括:第一步骤,用于从服务器设备向对应客户机设备发送第一消息,所述第一消息包括多个客户机难题,多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,该计算用的数据集合需要不同的计算量,所述第一消息包括对于难题计算用的至少一个数据集合的计算的请求和对于计算用的至少一个数据集合的解答的发送的请求;第二步骤,用于在接收到第一消息的每一个客户机设备处,在根据每一个难题识别对于每一个计算要执行的计算量之后,根据每一个所识别的计算量选择要执行的计算,执行所选择的计算,并向服务器设备发送请求执行给定处理的第二消息,所述第二消息包括执行计算的结果;以及第三步骤,用于当在服务器设备处接收到第二消息时,确定计算结果是否正确,并且当确定正确时,根据计算结果识别由作为第二消息的源的每一个客户机设备的计算量,以及用于根据基于所识别的计算量所确定的优先级,执行给定处理。
根据这种服务器设备、客户机设备和处理执行方法,由客户机设备执行包括在被写入到从服务器设备发送的第一消息中的客户机难题之一中的计算,并且将计算结果和执行给定处理的请求一起写入到第二消息中,用于发送到服务器设备。当接收到第二消息时,在写入在第二消息中的计算结果正确的情况下,对于计算,服务器设备识别由客户机设备执行的计算量,并且执行所请求的、基于所识别的计算量进行优先级排序的给定处理。
根据本发明,使客户机设备能够根据每一个设备的处理能力来承担负担,还使服务器设备能够根据与已接受承担的负担相对应的优先级来处理来自客户机设备的处理请求。
此外,根据本发明,由于集中地将指定了需要不同计算量的多个类型计算的多个客户机难题发送到客户机设备,不会在客户机设备和服务器设备之间引起通信业务量的增加。
附图说明
图1示出了根据本发明第一实施例包括服务器设备20和客户机设备30的通信系统的示例。
图2是示出了根据TCP交换的消息的消息格式的图。
图3是示出了当在客户机设备30和服务器设备20之间建立连接之后的通信序列示例的图。
图4是示出了服务器设备20的硬件配置的示例的图。
图5是示出了服务器设备20的控制单元200根据软件执行连接建立处理的流程的流程图。
图6是示出了客户机设备30的硬件结构的示例的图。
图7是示出了客户机设备30的控制单元300根据软件执行连接建立处理的流程的流程图。
图8是说明了由服务器设备20产生的客户机难题的图。
图9是说明了根据修改2的客户机难题的图。
图10是说明了传统3向握手的图。
图11是说明了在Juels等公开的客户机难题协议的图。
图12是说明了在Wang等公开的客户机难题拍卖的图。
具体实施方式
下面,将参考附图,给出本发明优选实施例的说明。
A:配置
A-1:通信系统的配置
图1是示出了根据本发明的实施例,包括服务器设备20和客户机设备30的通信系统的整体配置的示例的图。如图1所示,通信系统包括:例如因特网的通信网络10、服务器设备20和客户机设备30。尽管在图1中只示出了与通信网络10相连的一个客户机设备和一个服务器设备,可以将多个客户机设备和/或多个服务器设备与通信网络10相连。下面,在二者之间的区分不必要时,将客户机设备和服务器设备统一地称作通信设备。
如图1所示,通信网络10包括例如路由器、网关等的中继设备。当根据预定协议(在本实施例中是TCP)从与网络相连的通信设备发送消息时,通信网络10通过经过中继设备路由消息,将所述消息传送到其目的地。在本实施例中,以通信网络10是因特网的情况来进行说明;但是通信网络10还可以是LAN(局域网)、移动分组通信网和例如无线LAN的无线通信网等。
图1中的服务器设备20和客户机设备30是与通信网络10相连的个人计算机(以下称作“PC”);其能够通过通信网络10,根据TCP建立连接和交换数据。具体地,服务器设备20和客户机设备30产生图2所示格式的消息,并当将预定数据写入消息的报头部分的区域之后,发送所述消息,由此能够建立连接并通过连接来交换数据。
图2所示的格式用于根据TCP发送的消息。尽管省略了详细的图形描述,图2的控制标志区域是用于写入6比特标志的区域:URG、ACK、PSH、RST、SYN和FIN。在发送每一个SYN、SYN/ACK、ACK和RST消息之前,服务器设备20和客户机设备30将“1”或“0”设置到这6比特标志中的每一个。
当从客户机设备30向服务器设备20发送SYN消息时,将各个数据写入到消息的报头部分的每一个区域。即,在源端口号字段,写入了已经请求通信开始的应用程序(浏览器等)的通信端口号;在目的端口号字段,写入了对应的应用程序(例如HTTPD)的通信端口号;以及在序列号字段,写入了服务器设备20和客户机设备30使用的序列号的初始值。在控制标志字段,只将SYN标志设为“1”,而将其它标志设为“0”。注意,尽管图2未示出,当在低于TCP的协议(例如因特网协议:以下称作“IP”)处理消息时,还将报头附到在服务器设备20和客户机设备30之间交换的消息上。在较底层添加的报头中,写入了表示通信设备的数据,其构成了消息的目的地和源(例如,诸如分配到每一个设备的IP地址的通信地址)。即,从客户机设备30发送到服务器设备20的SYN消息包括当从服务器设备20向客户机设备30发送数据时使用的下行连接的连接标识符。
图1的服务器设备20和客户机设备30中的每一个包括根据与上述3方握手(参考图10)、客户机难题协议(参考图11)或客户机难题拍卖(参考图12)不同的通信序列(参考图3)来建立连接的功能。下面,将给出服务器设备20和客户机设备30的更详细的说明。
A-2:服务器设备20的配置
现在,参考图4,给出服务器设备20的说明。如图所示,服务器设备20具有:控制单元200、通信接口(以下称作“IF”)单元210、存储器设备220和互连服务器设备20的每一个单元的总线230。
例如,控制单元200是CPU(中央控制单元),并通过运行存储在存储设备220上的软件来控制服务器设备20的每一个单元。与通信网络10相连的通信IF单元210接收通过通信网络10发送的消息,将消息送向控制单元200,并将来自控制单元200的消息发送到通信网络10。
如图4所示,存储设备220包括易失性存储器220a和非易失性存储设备220b。例如,易失性存储器220a是RAM,用作根据软件进行操作的控制单元200的工作区。例如,非易失性存储设备220b是硬盘,其中存储了各种数据。
存储在非易失性存储设备220b中的数据的示例包括响应来自客户机设备30的请求,要发送到客户机设备30的发送数据;以及当产生具有不同难度等级的多个客户机难题时使用的多个数据单元(以下称作“服务器秘密”)。在本实施例中,给出了当将多个服务器秘密存储在非易失性存储设备220b中的情况下的说明。可选地,可以将根据预定伪随机数产生算法(例如,M序列方法或混合同余方法)产生的伪随机数用作服务器秘密。此外,可以通过将预定值余该伪随机数相加来产生服务器秘密。
此外,非易失性存储设备220b中存储了用于使控制单元200实现OS功能的操作系统(以下称作“OS”)软件和用于使控制单元200根据图3所示的通信序列执行建立连接处理的服务器软件。下面,将给出通过执行软件提供到控制单元200的功能的说明。
当开启服务器设备20时,控制单元200首先运行并执行来自非易失性存储设备220b中的OS软件。根据OS软件操作的控制单元200配备了控制服务器设备20的每一个单元的功能,还配备了运行并执行来自非易失性存储设备220b的其它软件的功能。当控制单元200完成OS软件的执行时,已经实现了OS的控制单元200立即运行并执行来自非易失性存储设备220b的上述控制软件。
当通过通信IF单元210接收到来自客户机设备30的请求建立下行连接的消息(图3:SYN消息100)时,根据服务器软件进行操作的控制单元200具有以下三种功能,所述功能用于根据图5的流程图所示的过程建立与客户机设备30的下行连接。
提供给根据服务器软件进行操作的控制单元200的第一功能是,通过客户机设备30的通信IF单元210交换执行消息发送的功能(以下称作“发送处理”),所述消息请求执行需要不同计算量的多个计算之一,并且请求设备30来答复计算的结果,其中在本实施例中所述消息是SYN消息109(图3)。SYN消息109包括指示了与客户机设备30之间的上行连接的连接标识符,消息109还用于请求到客户机设备30的上行连接的建立。
更具体地,根据上述第一功能,控制单元200根据包括在SYN消息100中的连接标识符、示出了接收消息100的时间的接收时间(由时间保持装置(未示出)得到时间数据)以及多个服务器秘密,产生具有不同难度等级的多个客户机难题,并将所产生的多个客户机难题中的每一个写入到SYN消息109中的特定区域(在本实施例中的图2的选项字段),以便发送到客户机设备30。
在本实施例中,当控制单元200发送SYN消息109时,其与消息109的目的地相关联地将多个客户机难题的解答写入到非易失性存储器220a中。由控制单元200使用所存储的数据来确定从每一个客户机设备30发送的解答是否正确。在本实施例中,给出了在根据连接标识符、接收时间数据和服务器秘密来产生客户机难题的情况下的说明。可选地,当产生客户机难题时,至少使用连接标识符、接收时间数据和服务器秘密其中之一。此外,可以通过利用附加来产生客户机难题。
出于以下原因,将图2的选项字段用作写入所产生的多个客户机难题的特定区域。在Juels等和Wang等所公开的传统技术中,将客户机难题写入到序列号、紧急指示符和窗口大小的每一个区域中。然而,由于这三个区域的总区域大小是64比特(即,8字节),在一个消息中只能写入一个客户机难题。这是为何需要如图12所示发送多个消息的原因。
相反,选项字段最初用于写入通知SACK选项和时间戳选项的可用性的数据(以下称作“附加数据”),并且能够存储40各字节。因此,在本实施例中,由于选项字段用于写入客户机难题的数据,可以将具有不同难度等级的多个客户机难题写入到一个SYN消息109中。因此,可以在一个消息中发送执行具有不同计算量的多个计算之一的请求和用于返回计算结果的请求。
在这种情况下,可以代替上述附加数据,将多个客户机难题的数据写入到选项字段中。可选地,可以将多个客户机难题的数据与附加数据一起包含在选项字段中。在多个客户机难题和附加数据的数据规模超出选项字段的存储容量的情况下,可以只将客户机难题包括在选项字段中,而可以将附加数据包括在相同TCP报头的不同区域中,例如紧急指示符字段、窗口大小字段或者序列号字段(图2)。作为另一选择,可以优先地将附加数据写入选项字段,而使用选项字段的剩余区域将多个客户机难题写入的相同字段中;在这种情况下,如果剩余区域的尺寸不足以容纳所有的客户机难题,可以将一些客户机难题写入如上所述的相同TCP报头的不同区域中。
再次参考图5,提供给根据服务器软件进行操作的控制单元200的第二功能是,当通过通信IF单元210接收到来自客户机设备30的消息时,确定由计算结果的数据表示的解答是否正确的功能(以下称作“确定处理”),所述消息请求给定处理的执行,并且其选项字段中包括表示用于多个客户机难题之一的解答的计算结果数据,其中在本实施例中,所述消息是SYN/ACK消息110(图3)。SYN/ACK消息110示出了客户机设备30接收到SYN消息109,并且请求执行用于建立下行连接的处理。
提供给根据服务器软件进行操作的控制单元200的第三功能是,当确定从客户机设备30返回的客户机难题的解答正确时,根据计算结果数据识别在同一客户机设备30处执行的计算量并根据与识别结果相对应的优先级来执行给定处理(在本实施例中是建立下行连接的处理)的功能。
具体地,控制单元200向来自已经解答了具有较高难度等级的客户机难题的客户机设备(即,已经执行了具有较大量的计算的客户机设备)的连接建立请求给予较高的优先级。在本实施例中,给出在处理请求时向来自已经解答了较难客户机难题的客户机设备的处理请求给予较高的优先级的情况下的说明。可选地,在处理请求时,向来自已经解答了较低难度客户机难题的客户机设备的处理请求给予较高的优先级,只要根据取决于在作为处理请求的来源的客户机设备处执行的计算量的优先级,来执行处理即可。
如前所述,服务器设备20的硬件配置与通用计算机设备的相同。在本实施例的服务器设备20中,由控制单元200运行并执行在非易失性存储设备220b中存储的各种软件,由此,使控制单元200实现专用于本发明服务器设备的三种功能。换句话说,服务器软件是用于控制单元200用作以下装置的软件:执行发送处理的发送装置、执行确定处理的确定装置以及处理执行装置,用于根据与客户机设备执行的计算量相对应的优先级,执行从客户机设备请求的处理。
在本实施例中,给出了根据软件模式来实现专用于本发明的服务器设备的功能的情况下的说明。当然,可以利用具有与软件模块相同功能的硬件模块来配置服务器设备20;即,可以通过利用硬件模块来实现发送装置、确定装置和处理执行装置,以使每一个装置根据图5所示的流程图进行操作,从而配置服务器设备20。
A-3客户机设备30的配置
接下来参考图6,给出客户机设备30的配置的说明。如图6所示,客户机设备30的硬件配置与服务器设备20不同,其中在客户机设备30中设置了:控制单元300、通信IF单元310、存储设备320和总线330。假设存储设备320是易失性存储器320a和非易失性存储设备320b。因此,与服务器设备20相同,客户机设备30具有通信计算机设备相同的配置。
非易失性存储设备320b中存储了专用于客户机设备30的数据和软件。具体地,代替多个服务器秘密,将示出了客户机设备30的处理能力的阈值数据存储在非易失性存储设备320b中。当从发送自服务器设备20的多个客户机难题中选择客户机设备30要解答的难题时,使用该阈值数据,下面将给出更详细的说明。此外,在非易失性存储设备320b中,代替服务器软件,处理OS软件以外,还存储了用于使控制单元300实现专用于本发明的客户机设备的功能的客户机软件。下面,将给出通过执行软件提供到控制单元300的功能的说明。
当开启客户机设备30时,控制单元300首先运行并执行来自非易失性存储设备320b中的OS软件。根据OS软件操作的控制单元300配备了控制客户机设备30的每一个单元的功能,还配备了运行并执行来自非易失性存储设备320b的其它软件的功能。例如,当给出指令以运行并执行客户机软件时,控制单元300运行并执行来自非易失性存储设备320b的客户机软件。在OS软件的控制下根据客户机软件进行操作的控制单元300配备了根据图7的流程图建立与服务器设备20之间的连接的功能。下面,将给出提供到根据客户机软件进行操作的控制单元300的三种功能的说明。
提供给根据客户机软件进行操作的控制单元300的第一功能是,当消息执行请求需要不同计算量的多个计算之一并请求包括计算结果的答复(本实施例是图3的SYN消息109)时,执行识别多个计算中的每一个所需的计算量的处理的功能,以及根据识别的结果来选择要执行的计算的功能(以下称作“选择处理”)。具体地,当接收到来自服务器设备20的SYN消息109时,控制单元300根据包括在消息109中的多个客户机难题和阈值数据,选择客户机设备30要解答的一个客户机难题。
提供给根据客户机软件进行操作的控制单元300的第二功能是执行在选择处理中所选择的计算的功能。在本实施例中,控制单元300解答由选择处理所选择的客户机难题,以得到解答。第三功能是在将计算结果(即,客户机难题的解答)写入到消息之后,发送请求执行给定处理的消息的功能。在本实施例中,在将计算结果的数据写入到消息110的选项字段(图2)之后,控制单元300发送示出了SYN消息109的接收并请求建立下行连接的SYN/ACK消息110。
如前所述,由控制单元300运行并执行存储在非易失性存储设备320b中的各种程序,由此使控制单元300实现专用于本发明的客户机设备的三种功能。客户机软件是使控制单元300用作选择装置、计算执行装置和答复装置的软件,所述选择装置用于执行选择处理,所述计算执行装置用于执行由选择处理选择的计算,所述答复装置用于在计算执行装置写入计算结果之后,发送请求执行给定处理的消息。在本实施例中,给出了根据软件模块实现专用于本发明的客户机设备的功能情况下的说明。当然,可以利用具有与软件模块相同功能的硬件模块来配置客户机设备;即,可以通过利用硬件模块来实现选择装置、计算执行装置和答复装置,以使每一个装置根据图7所示的流程图进行操作,从而配置客户机设备。
B:操作
接下来将给出由服务器设备20和客户机设备30执行的操作的说明,具体地,给出当清楚地示出了设备20和30的特性时执行的操作的说明。
当用户执行例如通过操作单元(未示出)输入服务器设备20的URL的预定操作时,客户机设备30的控制单元300向服务器设备20发送SYN消息100,如图3所示。下面,将参考图5,给出当接收到SYN消息100时,由服务器设备20的控制单元200执行的操作的说明。
当通过通信IF单元210接收到消息时,如图5所示(步骤SA1),控制单元200根据消息的内容确定该消息是SYN消息还是SYN/ACK消息(步骤SA2)。具体地,当只有包含在消息中的控制标志封入SYN标志(图2)被设为“1”时,控制单元200确定该消息是SYN消息;而当除了SYN标志以外,ACK标志也被设为“1”时,确定消息是SYN/ACK消息。相反,在控制单元200在步骤SA2确定所接收的消息是SYN消息的情况下,其执行图5的步骤SA3的处理;而当控制单元200在步骤SA2确定所接收的消息是SYN/ACK消息时,其执行从步骤SA5的处理和后续步骤。
在本示例中,假设把从客户机设备30发送SYN消息100,在步骤SA2确定在步骤SA1接收的消息是SYN消息,并执行SA3的处理。在步骤SA3,控制单元200产生具有不同难度等级的多个客户机难题。
图8是示出了由控制单元200产生的客户机难题的图。在步骤SA3,控制单元200首先将以下内容输入到预定散列函数H中,以得到L比特的散列值X:包含在步骤SA1接收的SYN消息100中的连接标识符、示出了消息100的接收时间的接收时间数据以及存储在非易失性存储设备220b中的多个服务器秘密之一。控制单元200随后将散列值X再次输入到散列函数H中,得到L比特的散列值Y。尽管在本实施例中给出了散列值X和Y具有相同比特长度的情况下的说明,其可以具有不同比特长度。
然后,控制单元200产生一对第一k比特(其中1≤k≤L)散列值X(以下称作“X<1,k>”)和散列值Y,作为客户机难题。该客户机难题是用于得到输入数据的计算,利用预定散列函数(本实施例中是散列函数H)能够从所述输入数据中得到散列值Y,输入数据的第一k比特对应于X<1,k>。根据这种客户机难题,随着X<1,k>的比特长度变大(即,k接近于L),得到客户机难题的解答(即,X<k+1,L>)所需的计算量减小,下面将给出详细说明。
控制单元200产生具有不同数值k的多个客户机难题,由此产生具有不同难度等级的多个客户机难题。此外,可以将不同服务器秘密用于每一个客户机难题。
在图5中,控制单元200产生请求客户机设备30建立上行连接的SYN消息109、与多个客户机难题的解答(在本实施例中是X<k+1,L>)相关联地存储SYN消息109的目的地并在将多个客户机难题写入到其选项字段(图2)之后,发送SYN消息109(步骤SA4)。结果,如图3所示,将SYN消息109从服务器设备20发送到客户机设备30。下面,参考图7,给出当接收到SYN消息109时由客户机设备30的控制单元300执行的操作的说明。
当接收到SYN消息109时(步骤SB1),控制单元300从消息109中读取多个客户机难题,并根据每一个客户机难题的计算量和存储在非易失性存储设备320b中的阈值数据来选择要解答的客户机难题(即,要执行的计算)(步骤SB2)。在本实施例中,从包括在多个客户机难题中的每一个的X<1,k>和Y中,X<1,k>(即,k)的数据长度示出了每一个客户机难题的难度等级。因此,控制单元300从包括不同X<1,k>的客户机难题中选择包括具有最长比特长度的X<1,k>的客户机难题,作为要解决的客户机难题,所述不同X<1,k>的比特长度不超出由阈值数据表示的数值。
然后,控制单元300执行在步骤SB2选择的计算,并得到计算结果(即,在步骤SB2选择的客户机难题的解答)(步骤SB3)。具体地,控制单元300按照以下方式得到客户机难题的解答。控制单元300首先将具有比特均被设为OFF(即,“0”)的(L-K)各比特的比特串W添加到包括在步骤SB2中选择的客户机难题中的X<1,k>,以便输入到预定散列函数H中,并检查输出散列值是否与客户机难题的Y相对应。
当它们彼此不一致时,控制单元300逐一地将比特串W的每一个比特设为ON(即,“1”),用于再次输入到散列函数H,并重复处理,直到输出散列值与Y彼此一致。当其彼此一致时,则控制单元300得到具有一致值Y的比特串W,作为客户机难题的解答。
然后,控制单元300产生示出了SYN消息109的接收并请求建立下行连接的SYN/ACK消息110,将示出了上述计算结果的计算结果数据(本实施例中是W)写入到消息110中,用于发送到服务器设备20(步骤SB4)。结果,如图3所示,将SYN/ACK消息110从客户机设备30发送到服务器设备20。接下来,再次参考图5,给出当接收到SYN/ACK消息110时,由服务器设备20执行的控制单元200的操作。
当通过通信IF单元210接收到SYN/ACK消息110时(步骤SA1),控制单元200执行如上所述步骤SA5及之后的处理。具体地,控制单元200首先确定由包括在接收自客户机设备30的SYN/ACK消息110的选项字段中的计算结果数据表示的计算结果是否正确(步骤SA5)。具体地,控制单元200检查计算结果数据W是否与任一X<1,k>相一致,将所述X<1,k>与SYN/ACK消息110的源(即,SYN消息109的目的地)相关联地存储在易失性存储器220a中,并当其一致时确定计算结果正确。
当步骤SA5的确定结果是否定时,控制单元200发送示出了拒绝来自客户机设备30的请求的消息(例如RST消息)(步骤SA8),并结束例程。相反,当步骤SA5的确定结果是肯定时,控制单元300根据计算结果数据,识别由客户机设备30执行的计算量(步骤SA6)。在本实施例中,控制单元200根据计算结果数据W的比特长度来识别计算量。在本实施例中,认为计算结果数据W的比特长度越长,则客户机设备30执行的计算量越大。
然后,控制单元200根据包括在步骤SA1接收的SYN/ACK消息中的连接标识符,建立基于在步骤SA6识别的计算量的降序的下行连接(步骤SA7)。随后,在步骤SA7完成之后,控制单元200发送示出了SYN/ACK消息的接收和建立下行连接的完成的ACK 120。结果,如图3所示,将ACK 120从服务器设备20发送到客户机设备30。
当接收到ACK 120时,客户机设备30的控制单元从ACK 120中读取示出了上行连接的连接标识符,以根据连接标识符建立上行连接。因此,在服务器设备20和客户机设备30之间建立下行和上行连接。
如前所述,根据本实施例,根据与在客户机设备30处执行的计算量相对应的优先级基础,在服务器设备20和客户机设备30之间建立连接。作为效果,需要通过向本发明的服务器设备20发送大量SYN消息来进行SYN洪泛攻击的客户机设备来解答与所发送的SYN消息相同数目的客户机难题。然后,客户机设备必须保证用于解答客户机难题的大量资源,由此在较短的时间周期内,客户机设备难以响应从服务器设备20发送的SYN消息109来返回SYN/ACK消息110。由于除非返回SYN/ACK消息110,否则不会在服务器设备20处建立下行连接,能够抵御SYN洪泛攻击。
试图进行SYN洪泛攻击的客户机设备可以发送SYN/ACK消息,而实际上不解答客户机难题,而是只将随机值写入在消息中,作为客户机难题的解答;然而,这种随机值与客户机难题的正确解答相一致的概率非常低,因此,服务器设备20会拒绝用于建立下行连接的请求。客户机设备还可以通过解答从服务器设备20发送的多个客户机难题中最容易的客户机难题,来发送SYN/ACK消息。然而,由于按照最低优先级来处理包括最容易客户机难题的解答的连接建立请求,不会总能建立连接。因此,根据本实施例,必定能够抵御SYN洪泛攻击。
此外,根据本实施例,在一个消息中集中地向客户机设备30发送每一个不同难度等级的多个客户机难题。因此,能够避免客户机设备30和服务器设备20之间通信业务量的增大。
C:变型
上文中,已经给出了本发明优选实施例的说明。然而,可以如下进行修改。
C-1:变型1
在上述实施例中,给出了服务器设备20和客户机设备30是根据TCP的进行通信的PC情况下的说明。可选地,服务器设备20和/或客户机设备30可以是根据TCP进行通信的PDA或移动电话。可以使用任意计算机设备,只要其根据TCP进行通信。此外,上述实施例给出了服务器设备20和客户机设备30根据TCP进行通信的说明,应当显而易见的是,可以使用任意其它通信协议。
C-2:变型2
在上述实施例中,给出了与SYN消息109的目的地相关联地将写入在SYN消息109中的客户机难题的解答存储在服务器设备20中的说明。可选地,可以使用利用以下的客户机难题,其中无需将客户机难题的解答存储在服务器设备20中。
图9是用于说明根据本修改的客户机难题的图。如图所示,根据客户机难题,散列值Ns是通过将服务器秘密、示出了接收SYN消息100的时间的接收时间数据和源地址(即,客户机设备30的IP地址)输入到预定散列函数H得到的数值。然后,通过将散列值Ns、目的地址(服务器设备20的IP地址)、源和目的端口号、序列号的初始值以及给定参数Z输入到散列函数H中,得到散列值,其中散列值的第一部分的预定比特长度的所有比特被设为“0”。当使用该类型的客户机难题时,将一对散列值Ns和预定比特长度发送到客户机设备30;并且客户机难题的解答是参数Z。在客户机难题中,预定比特长度示出了客户机难题的难度;随着比特长度增大,难度等级变得更高。
当使用图9的客户机难题时,服务器设备20只发送示出了散列值Ns和预定比特长度的数据到客户机设备30,作为客户机难题。当从客户机设备30发送客户机难题的解答Z时,执行图9所示的计算,以确定所发送的解答是否正确。因此,当使用图9的客户机难题时,服务器设备20无需在得到其解答用于存储之前执行计算,而只要与设备30的通信地址相关联地存储发送到客户机设备30的、示出了散列值Ns和预定比特长度的数据,以便确定从客户机设备30发送的解答是否正确。
按照这种方式,由于无需在SYN消息109的发送之前执行用于产生客户机难题的计算,能够立即将消息109发送到客户机设备30。
此外,用于客户机难题的计算并不局限于利用散列函数的计算,而可以是用于得到代数方程的解答的计算,例如n(n≥3)次方程和线性方程系统。在这种情况下,可以将示出了n次方程或联立方程的数据(例如,在使用三次方程的代数方程aX3+bX2+cX+d=0的情况下,是系数a、b、c和d)用作客户机难题,其中在代数方程中使用的系数的数目与计算量相对应。
C-3:变型3
在上述实施例中,给出了使客户机设备解决从服务器设备发送的多个客户机难题之一的情况的说明,然而,可以使客户机设备解决多于一个客户机难题,其中可以将所有解答包括在SYN/ACK消息110中。当服务器设备接收到包括多个解答的SYN/ACK消息110时,设备可以根据解答之一(例如,最难或最容易的客户机难题的解答)或根据多个解答,识别由客户机设备执行的计算量。例如,服务器设备可以通过求和针对对应于各个解答的客户机难题执行的计算量,识别由客户机设备执行的服务器设备。
C-4:变型4
在上述实施例中,当从客户机设备发送用于建立连接的请求时,服务器设备根据取决于要由客户机设备解答的客户机难题的难度等级的优先级基础,建立连接。然而,响应来自客户机设备的请求由服务器设备执行的处理并不限于连接建立处理,而可以是根据预定算法的产生数据、存储数据(例如,在数据库中)或将数据转发到给定目的地的处理。可以是响应来自客户机设备的请求,将给定数据发送到客户机设备的处理。
当将本发明应用到根据预定算法执行产生数据的处理的服务器设备中时,服务器设备可以在执行针对客户机设备的处理中间接收来自另一个客户机设备的另一个请求,所述另一个客户机设备已经执行了比服务器设备当前执行处理所针对的客户机设备执行的计算量更大的计算。在这种情况下,利用系统调用(例如,根据Unix的nice系统调用)减小当前执行处理的优先级次序。此外,在本修改中,代替SYN消息109,可以将RST消息用于发送多个客户机难题。
因此,根据本修改,本发明的技术不仅可以低于SYN洪泛攻击,还可以使响应来自客户机设备的请求执行给定处理的服务器设备根据客户机设备可以承担的负担,执行根据优先级的处理。
C-5:变型5
在上述实施例中,给出了以下情况下的说明:首先将请求建立连接的SYN消息发送到服务器设备,然后,使服务器设备集中地向客户机设备发送具有不同难度等级的多个客户机难题。可选地,可以在建立与多个客户机设备的连接之后,在接收到来自每一个客户机设备的请求之前,首先使服务器设备向每一个客户机设备发送多个客户机难题。只有当发送包括客户机难题解答的处理请求时,服务器设备才执行处理。根据本修改,服务器设备能够控制从客户机设备接收处理请求的频率,由此可以在其发生之前避免可能的拥塞。
相反,由于将客户机难题写入在TCP报头的序列号、紧急指示符和窗口大小区域中,这种修改对于Juels等和Wang等公开的现有技术是不可能的,由于在连接建立之后,TCP报头的这些区域的使用不会转向写入客户机难题,当每一次通过所建立的连接在服务器设备和客户机设备之间交换数据时,更新了包括在序列号和紧急指示符中的数据。另一方面,由于该区域用于写入上述附加数据,即使在建立之后,TCP选项字段仍可以用于写入客户机难题,所述附件数据用于在连接建立之前通知SACK选项和时间戳选项的可用性,因此,使用TCP选项字段来写入客户机难题很少会引起问题。
C-6:变型6
在上述实施例中,提前将用于使控制单元实现专用于本发明的服务器设备的功能的软件存储在非易失性存储设备220b中。为了存储软件,除了硬盘以外,可以使用其它计算机可读介质,例如CD-ROM(压缩盘只读存储器)、DVD(数字多功能盘)等,并且利用这种介质将软件安装到通用计算机设备上。按照这种方式,可以使处于已有通信系统中的服务器设备用作根据本发明的服务器设备。类似地,可以将使控制单元实现专用于本发明的客户机设备的功能的软件存储在如上所述的记录介质中,并且利用这种介质将软件安装到通用计算机设备上。
Claims (7)
1.一种服务器设备,包括:
发送装置,用于向对应客户机设备发送包括多个客户机难题的第一消息,所述多个客户机难题中的每一个包括计算用的数据集合,对于每一个所述难题,所述计算用的数据集合需要不同的计算量,所述多个客户机难题与包含在所述第一消息中的对于所述难题的计算用的至少一个数据集合的计算的请求和对于所述计算用的至少一个数据集合的解答的发送的请求一起被发送;
确定装置,用于当接收到来自每一个所述对应客户机设备的第二消息时,确定接收到的计算结果是否正确,所述第二消息请求执行给定处理并且包括用于所述计算用的至少一个数据集合的计算结果;以及
处理执行装置,用于当确定装置确定所述计算结果正确时,识别每一个所述客户机设备对于所述计算用的至少一个数据集合所执行的计算量,以及用于执行所请求的、基于所识别的计算量进行优先级排序的所述给定处理。
2.根据权利要求1所述的服务器设备,其特征在于,所述发送装置响应请求只执行所述给定处理的初步消息,将所述第一消息发送到作为所述初步消息的源的客户机设备。
3.根据权利要求1所述的服务器设备,其特征在于,只有当所述第一消息的源和目的地开始通信时,所述第一消息才具有其中包含数据的预定区域,预定区域包含用于向目的地通知通信的详细模式的附加数据;以及
其中所述发射装置可以发送在预定区域包含了所述多个客户机难题的第一消息。
4.根据权利要求3所述的服务器设备,其特征在于,所述发送装置根据传输控制协议发送消息;以及
所述预定区域是选项字段。
5.一种客户机设备,包括:
选择装置,当接收到来自对应服务器设备的第一消息、对于难题的计算用的至少一个数据集合的计算的请求和对于所述计算用的至少一个数据集合的解答的发送的请求时,在根据每一个难题识别对于每一个计算要执行的计算量之后,根据计算量选择要执行的计算,所述第一消息包括多个客户机难题,所述多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,所述计算用的数据集合需要不同的计算量;
计算执行装置,用于执行由所述选择装置选择的所述计算;以及
发送装置,用于当请求所述服务器设备执行给定处理时,向服务器设备发送具有处理执行请求的第二消息,所述第二消息包括由所述计算执行装置得到的计算结果。
6.根据权利要求5所述的客户机设备,其特征在于,当在接收到所述第一消息之前请求所述给定处理的执行时,所述发送装置将只包括处理执行请求的初步消息发送到所述服务器设备。
7.一种处理执行方法,包括:
第一步骤,用于从服务器设备向对应客户机设备发送包括多个客户机难题的第一消息,所述多个客户机难题中的每一个包括计算用的数据集合,对于每一个难题,所述计算用的数据集合需要不同的计算量,所述第一消息包括对于所述难题的计算用的至少一个数据集合的计算的请求和对于所述计算用的至少一个数据集合的解答的发送的请求;
第二步骤,用于在接收到所述第一消息的每一个客户机设备处,在根据每一个所述难题识别对于每一个所述计算要执行的计算量之后,根据每一个所识别的计算量选择要执行的计算,执行所选择的计算,并向所述服务器设备发送请求执行给定处理的第二消息,所述第二消息包括执行计算的结果;以及
第三步骤,用于当在所述服务器设备处接收到第二消息时,确定所述计算结果是否正确,并且当确定正确时,根据所述计算结果识别由作为第二消息的源的所述每一个客户机设备的计算量,并用于根据基于识别的计算量所确定的优先级,执行所述给定处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004245433A JP4555025B2 (ja) | 2004-08-25 | 2004-08-25 | サーバ装置、クライアント装置および処理実行方法 |
JP2004-245433 | 2004-08-25 | ||
JP2004245433 | 2004-08-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1741530A CN1741530A (zh) | 2006-03-01 |
CN1741530B true CN1741530B (zh) | 2010-09-01 |
Family
ID=35559486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510091656.XA Expired - Fee Related CN1741530B (zh) | 2004-08-25 | 2005-08-11 | 服务器设备、客户机设备以及处理执行方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8001188B2 (zh) |
EP (1) | EP1635530B1 (zh) |
JP (1) | JP4555025B2 (zh) |
CN (1) | CN1741530B (zh) |
DE (1) | DE602005005753T2 (zh) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7675854B2 (en) * | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US8584199B1 (en) | 2006-10-17 | 2013-11-12 | A10 Networks, Inc. | System and method to apply a packet routing policy to an application session |
US8412952B1 (en) * | 2009-05-06 | 2013-04-02 | Symantec Corporation | Systems and methods for authenticating requests from a client running trialware through a proof of work protocol |
US9960967B2 (en) * | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
CN102281258B (zh) * | 2010-06-09 | 2016-08-03 | 中兴通讯股份有限公司 | 基于密钥管理协议的防止拒绝服务攻击的方法和装置 |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
US9386088B2 (en) | 2011-11-29 | 2016-07-05 | A10 Networks, Inc. | Accelerating service processing using fast path TCP |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US9118618B2 (en) | 2012-03-29 | 2015-08-25 | A10 Networks, Inc. | Hardware-based packet editor |
US8887280B1 (en) * | 2012-05-21 | 2014-11-11 | Amazon Technologies, Inc. | Distributed denial-of-service defense mechanism |
US8782221B2 (en) | 2012-07-05 | 2014-07-15 | A10 Networks, Inc. | Method to allocate buffer for TCP proxy session based on dynamic network conditions |
US8856924B2 (en) | 2012-08-07 | 2014-10-07 | Cloudflare, Inc. | Mitigating a denial-of-service attack in a cloud-based proxy service |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
JP2015534769A (ja) | 2012-09-25 | 2015-12-03 | エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. | データネットワークにおける負荷分散 |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
US9106561B2 (en) | 2012-12-06 | 2015-08-11 | A10 Networks, Inc. | Configuration of a virtual service network |
US9338225B2 (en) | 2012-12-06 | 2016-05-10 | A10 Networks, Inc. | Forwarding policies on a virtual service network |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9906552B1 (en) * | 2013-02-13 | 2018-02-27 | Amazon Technologies, Inc. | Managing system load |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
WO2014144837A1 (en) | 2013-03-15 | 2014-09-18 | A10 Networks, Inc. | Processing data packets using a policy based network path |
US9614868B2 (en) | 2013-03-15 | 2017-04-04 | Robert Bosch Gmbh | System and method for mitigation of denial of service attacks in networked computing systems |
US10038693B2 (en) * | 2013-05-03 | 2018-07-31 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
US9392018B2 (en) * | 2013-09-30 | 2016-07-12 | Juniper Networks, Inc | Limiting the efficacy of a denial of service attack by increasing client resource demands |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US8984635B1 (en) | 2014-01-06 | 2015-03-17 | Cloudflare, Inc. | Authenticating the identity of initiators of TCP connections |
US8806011B1 (en) | 2014-01-06 | 2014-08-12 | Cloudflare, Inc. | Transparent bridging of transmission control protocol (TCP) connections |
DE102014205331A1 (de) * | 2014-03-21 | 2015-09-24 | Siemens Aktiengesellschaft | Sender zum Senden einer Nachricht und Empfänger zum Empfangen einer Nachricht |
US10020979B1 (en) | 2014-03-25 | 2018-07-10 | A10 Networks, Inc. | Allocating resources in multi-core computing environments |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9806943B2 (en) | 2014-04-24 | 2017-10-31 | A10 Networks, Inc. | Enabling planned upgrade/downgrade of network devices without impacting network sessions |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
CN105634982B (zh) * | 2014-11-05 | 2019-01-11 | 大唐软件技术股份有限公司 | 一种测速服务器的排队方法、测速服务器和客户端 |
US10268467B2 (en) | 2014-11-11 | 2019-04-23 | A10 Networks, Inc. | Policy-driven management of application traffic for providing services to cloud-based applications |
CN107534642B (zh) * | 2015-04-16 | 2020-11-10 | 瑞典爱立信有限公司 | 用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备 |
US10284371B2 (en) | 2015-05-19 | 2019-05-07 | Workday, Inc. | Brute force attack prevention system |
US9787696B2 (en) * | 2015-05-19 | 2017-10-10 | Workday, Inc. | Brute force attack prevention system |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
US10318288B2 (en) | 2016-01-13 | 2019-06-11 | A10 Networks, Inc. | System and method to process a chain of network applications |
US10389835B2 (en) | 2017-01-10 | 2019-08-20 | A10 Networks, Inc. | Application aware systems and methods to process user loadable network applications |
CN107104852A (zh) * | 2017-03-28 | 2017-08-29 | 深圳市神云科技有限公司 | 监控云平台虚拟网络环境的方法及装置 |
US10866822B2 (en) * | 2017-11-28 | 2020-12-15 | Bank Of America Corporation | Computer architecture for emulating a synchronous correlithm object processing system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058418A (en) * | 1997-02-18 | 2000-05-02 | E-Parcel, Llc | Marketing data delivery system |
US7197639B1 (en) * | 1999-02-05 | 2007-03-27 | Rsa Security Inc. | Cryptographic countermeasures against connection depletion attacks |
US20020016835A1 (en) * | 2000-05-25 | 2002-02-07 | Gary Gamerman | System and method for cascaded distribution of processing |
US7143163B1 (en) * | 2000-07-26 | 2006-11-28 | Lucent Technologies Inc. | System and method for exacting a system resource access cost |
US6883095B2 (en) * | 2000-12-19 | 2005-04-19 | Singlesigon. Net Inc. | System and method for password throttling |
US20040136379A1 (en) * | 2001-03-13 | 2004-07-15 | Liao Raymond R | Method and apparatus for allocation of resources |
US6958998B2 (en) * | 2001-07-09 | 2005-10-25 | International Business Machines Corporation | Traffic management in packet-based networks |
US6944663B2 (en) * | 2002-03-06 | 2005-09-13 | Sun Microsystems, Inc. | Method and apparatus for using client puzzles to protect against denial-of-service attacks |
US20030187732A1 (en) * | 2002-03-29 | 2003-10-02 | Seta Joseph D. | Method and system for presenting a sales incentive |
US7269136B2 (en) * | 2002-08-30 | 2007-09-11 | Sun Microsystems, Inc. | Methods and apparatus for avoidance of remote display packet buffer overflow |
US7149801B2 (en) * | 2002-11-08 | 2006-12-12 | Microsoft Corporation | Memory bound functions for spam deterrence and the like |
KR100565896B1 (ko) * | 2002-12-11 | 2006-03-31 | 한국전자통신연구원 | 양방향 위성 멀티미디어 시스템에서의 동적 자원 할당 장치 및 그 방법과 기록매체 |
US20070008884A1 (en) * | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
-
2004
- 2004-08-25 JP JP2004245433A patent/JP4555025B2/ja not_active Expired - Fee Related
-
2005
- 2005-08-11 CN CN200510091656.XA patent/CN1741530B/zh not_active Expired - Fee Related
- 2005-08-23 DE DE602005005753T patent/DE602005005753T2/de active Active
- 2005-08-23 EP EP05018258A patent/EP1635530B1/en not_active Ceased
- 2005-08-24 US US11/210,719 patent/US8001188B2/en not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
Xiaofeng Wang, Michael K. Reiter.Defending against denial-of-service attacks withpuzzle auctions.Proceedings of the 2003 IEEE Symposium on Security and Privacy.2003,78-92. |
Xiaofeng Wang, Michael K. Reiter.Defending against denial-of-service attacks withpuzzle auctions.Proceedings of the 2003 IEEE Symposium on Security and Privacy.2003,78-92. * |
崔筠,周大水.用Puzzle方法积极防御DoS攻击.通信技术 9.2002,(9),81-83. |
崔筠,周大水.用Puzzle方法积极防御DoS攻击.通信技术 9.2002,(9),81-83. * |
Also Published As
Publication number | Publication date |
---|---|
US20060069804A1 (en) | 2006-03-30 |
EP1635530B1 (en) | 2008-04-02 |
JP4555025B2 (ja) | 2010-09-29 |
JP2006065492A (ja) | 2006-03-09 |
EP1635530A1 (en) | 2006-03-15 |
DE602005005753D1 (de) | 2008-05-15 |
DE602005005753T2 (de) | 2009-04-16 |
CN1741530A (zh) | 2006-03-01 |
US8001188B2 (en) | 2011-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1741530B (zh) | 服务器设备、客户机设备以及处理执行方法 | |
CN100403716C (zh) | 服务器设备及其控制方法和使用该服务器建立连接的方法 | |
US8989706B2 (en) | Automated secure pairing for wireless devices | |
CN100552626C (zh) | 用网络栈同步和上载已卸载网络栈连接的方法 | |
Buttyan et al. | Enforcing service availability in mobile ad-hoc WANs | |
US9210163B1 (en) | Method and system for providing persistence in a secure network access | |
EP1580958B1 (en) | Internet protocol tunnelling using templates | |
US8245028B2 (en) | Method and apparatus for dynamic, seamless security in communication protocols | |
CN102685203B (zh) | 数据资源传输的方法和设备 | |
JPH1195658A (ja) | マルチキャスト・ネットワーク上で暗合鍵を安全に配布するための方法およびシステム | |
US20080104170A1 (en) | Collaborative Networks for Parallel Downloads of Content | |
US8402264B2 (en) | Method for securing an interaction between nodes and related nodes | |
CN100473067C (zh) | 用于对象交换网桥的装置、方法和系统 | |
EP4054154A1 (en) | Blockchain-based systems and methods for propagating data in a network | |
US7388866B2 (en) | System and method for expediting upper layer protocol (ULP) connection negotiations | |
US20060161667A1 (en) | Server apparatus, communication control method and program | |
CN110011892B (zh) | 一种虚拟专用网络的通信方法及相关装置 | |
CN108429682A (zh) | 一种网络传输链路的优化方法及系统 | |
TWI337822B (en) | Processor-accessible media, device, apparatus, network gateway, and method for routing hints | |
US9106479B1 (en) | System and method for managing network communications | |
CN114513450A (zh) | 计算路由信息发送方法、装置、设备及存储介质 | |
Rajesh et al. | A systematic review of congestion control in ad hoc network | |
JP4340562B2 (ja) | 通信の優先制御方法並びに通信の優先制御システム及び通信の優先制御装置 | |
TW200400726A (en) | A method and apparatus for sharing connection state information between multiple processing elements | |
JP3472098B2 (ja) | 移動計算機装置、中継装置及びデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100901 Termination date: 20190811 |