CN1185841C - 执行网络操作的方法和设备 - Google Patents
执行网络操作的方法和设备 Download PDFInfo
- Publication number
- CN1185841C CN1185841C CNB008171084A CN00817108A CN1185841C CN 1185841 C CN1185841 C CN 1185841C CN B008171084 A CNB008171084 A CN B008171084A CN 00817108 A CN00817108 A CN 00817108A CN 1185841 C CN1185841 C CN 1185841C
- Authority
- CN
- China
- Prior art keywords
- system call
- network
- blocking
- result
- application
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000000903 blocking effect Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000000977 initiatory effect Effects 0.000 claims abstract description 5
- 230000004069 differentiation Effects 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 240000000233 Melia azedarach Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Crystals, And After-Treatments Of Crystals (AREA)
- Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
- Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种方法和设备,能够通过一个处理应用层系统调用并启动网络层网络操作的模块、经过高时延网络来快速执行网络操作。在所述模块中区分阻塞和非阻塞的实现模式。非阻塞实现模式意味着所考虑的系统调用向应用返回一个逻辑值作为结果,它用信号通知是否成功执行该系统调用。在此情况下,本发明提供在调用非阻塞的系统调用时向应用直接发送逻辑值,而不必等候在通信伙伴实例中执行并且对应于该系统调用的操作的实际结果。稍后进行对实际执行的操作结果的处理。
Description
技术领域
本发明涉及一种经过特征为高时延的网络来快速执行网络操作的方法和设备。
背景技术
高时延网络的一个例子是GSM(全球移动通信系统)网络。GSM网络是每个信道可用数据速率为9.6kBit/s的数字移动通信网。与目前诸如数据速率高达64kBit/s的ISDN(综合业务数字网)等固定网络相比,GSM的数据速率较小。因此,GSM连接严重影响在异类网络连接中(即在延续至少两种不同网络的连接中)整个连接的绝对吞吐量。在GSM用户为了进行所谓的网络冲浪或/和从互联网上下载数据、而已经建立了一个到互联网服务提供商(ISP)的连接时,这尤其会引发问题。在所述场景中,GSM连接构成关于有效传输速率的关键部分连接。
在通信伙伴实例之间,在此情况下是在GSM终端和互联网服务提供商(ISP)之间,交换信息是基于一个为互联网应用而标准化的协议栈,也就是所谓的TCP/IP(传输控制协议/互联网协议)协议栈。所述协议栈包括五个协议层,此后也称之为层。最高层为应用层,包括用户所直接使用的应用,例如互联网上冲浪就是一种用户可能使用的应用。与应用层紧连的下层为传输层,包括诸如TCP(传输控制协议)或UDP(用户数据报协议)等实现所述层任务的传输协议。网络层由例如互联网协议(IP)来组成。最下两层(链路层和物理层)可以概括为术语面向网络的层,因为它们是根据底层的网络特别定义的。
一个层的任务尤其是要处理所接收的数据或要传输的数据。在这方面,一个层的通信只与其直接相邻的层发生。提供用于传输的数据从一个层传送到紧连的下层,由此对数据进行格式化。应用层的数据经常超出了可经物理连接传输的分组大小。为此把一个消息划分成一些在一次传输中连续排列的较小数据分组。数据的划分是格式化的一部分。在每个协议层都进行数据的格式化。格式化数据特别地包括添加每个协议层所特有的控制数据。在多数情况下,控制数据以所谓头标的形式加在数据分组的开始、或/和以所谓尾标的形式加在分组的结尾。实际的数据包含在数据字段中。所述控制数据对于每层进行特别地定义和标准化,因为只有用这种方式才能保证双方实例的统一标准通信。关于本发明,TCP的具体控制数据非常重要。
传输协议TCP为两个通信伙伴之间的字节流提供可靠的传输服务。在此方面可靠性是指避免错误、维持顺序并保护防止数据丢失和重复。要传输的字节流从应用层向TCP层传送,它被TCP细分为分段,而这些分段会作为IP数据报来传输。IP数据报指定一个根据IP协议规则进行格式化的数据分组。数据报的性质在于使用数据报来实现的数据交换并不可靠。于是,IP不能保证一个分组确实被传输到接收方。而且,IP数据报可能以错误的顺序或者重复的到达接收侧。但是在所述概念中,检测有错误的传输并去除已出现的错误是TCP的任务。由于分层原则,IP数据报又被传送到其紧连的下层。
为了实现这些任务已向TCP中集成了多种复杂的机制。这里不会详细描述各种机制,如窗口机制、累积确认方案,所谓的慢启动算法或用于避免拥塞的算法,所谓的拥塞避免算法。所述方法的精确描述可以参考W.Richard Stevens的《TCP/IP Illustrated,Volume 1(TCP/IP说明,第一卷)》。
一种会在这里进行更为仔细处理的重要机制涉及用TCP建立连接。建立连接时,TCP使用所谓的三次握手来确保交换固定定义的信令信息。在图2中可见这些内容。通信双方被称为客户机和服务器,其中客户机是通信的启动单元,而服务器是通信的接受单元。总体而言,客户机和服务器之间的连接建立需要三次消息交换。通过第一消息的发送通告了通信伙伴之间的初始序号。所交换的数据分组由准确的号码来标识,即所谓的序号。为此TCP数据分组头标提供了一个用于连接建立时同步序号的字段即所谓的SYN标志,在图2中表示为SYN。如果服务器准备好接受连接,则会应答一个消息,其中包含设置的SYN标志以及对客户机初始序号的确认ACK(SYN)。客户机最后发送的消息含有对于服务器SYN消息的确认ACK(SYN)。三次消息已交换时,连接建立阶段完成。在下一步中传输数据,这是通过连接建立而完成的实际通信。连接启动要求交换四个消息。首先,从客户机向服务器发送一个包括设置的FIN标志(FIN)的消息,此标志实现了发送方向上连接的断开。由此客户机启动了连接。服务器用ACK(FIN)确认此消息的接收,并同样启动连接断开阶段。为此服务器向客户机发送带有设置的FIN标志(FIN)的消息,而客户机用ACK(FlN)应答。一旦交换此消息就完成了连接启动。
总体而言,连接建立和启动需要最少七个消息或三个半所谓的RTT(往返行程时间)。RTT描述了一个在发送请求消息和接收相关应答消息之间的时间容限。所述时间相应的随底层网络的传输速率而有所改变。
但是许多应用基于通信伙伴实例之间的简单交互。简单交互的一个例子是所谓的事务处理,由此客户机可以向服务器发送一个请求消息,而接收方在响应消息中向发送方发送所请求的信息。这种数据交换可能出现在例如互联网中,并且其特征为万维网协议的面向事务处理的流量模式。互联网中的事务处理主要由于所用的HTTP协议而引起。
关于当前所使用的协议版本HTTP/1.0(Berners-Lee,R.Fielding和H.Frystyk 1996年5月的RFC 1945“Hypertext/Transfer Protocol-HTTP/1.0(超文本传输协议-HTTP/1.0”)),首先为WWW网页中每个所请求的对象建立TCP连接,例如文本块或者图像。只有此时才能执行一个事务处理,即发送方向接收方发送一个请求消息,然后接收方在应答消息中发送所请求的数据。此后再断开TCP连接。如果必须为每个对象建立明确的连接,而此对象仅是一个小图像对象,且此连接基于三次握手并再次要求至少三个建立消息和四个启动消息,则所述情况会严重影响会话的总体性能。
TCP必须完成的任务已经表明,TCP被设计为适用于特征为快速数据传输和少量传输失败的网络环境,这是对于有线连接的数据网络而发生的。但是这些假设没能在GSM中实现,这是造成在这种网络中TCP的非最优功能性的原因。许多文档表示了为小传输容量的网络解决TCP优化的概念。此后会介绍一个解决方案的例子。
R.Braden的RFC 1644“T/TCP-TCP Extensions forTranscations Functional Specidication(T/TCP-事务处理功能规范的TCP扩展)”介绍了一种特别优化连接建立阶段的概念。为此缓冲有关到具体服务器的连接信息。于是,只通过与服务器的第一次连接建立而执行完整的三次握手,并缓冲在所述连接建立期间所通告的有关连接配置的信息。在对同一服务器的后续访问中通过从所存储的信息取回配置,从而回避了完整的连接建立阶段。
但是这种解决方案的不利之处在于对于应用不存在透明性。实现此概念需要修改应用中的系统调用。实现更快的连接建立可以通过例如用系统调用“sendto(发送到)”取代“connect(连接)”和“send(发送)”来获得。所述系统调用是所谓的套接字编程接口的一部分,其更为精确的功能性可以参考下面的描述。
发明内容
因此,本发明的一个目的是提供一种经过特征为高时延的传输链路来实现两个通信单元之间事务处理的有效执行的方法和设备。
根据本发明提供了通过一个用于处理应用层的系统调用并启动网络层的网络操作的模块来经过具有高时延的网络而快速执行网络操作的方法,包括下面的步骤:将系统调用传送到此模块,通过区分阻塞和非阻塞执行模式来确定系统调用的执行模式,在非阻塞执行模式的情况下,直接向应用层返回一个逻辑值,并启动一个网络操作。
根据本发明还提供了通过一个用于处理应用层的系统调用并启动网络层的网络操作的模块来经过具有高时延的网络而快速执行网络操作的设备,具有:一个用于通过区分阻塞和非阻塞执行模式而确定系统调用执行模式的确定单元,用于把系统调用转换成网络操作的转换装置,一个用于发送网络操作的发送器,一个用于接收执行的网络操作结果的接收器,一个用于存储所接收结果的存储器,一个用于处理所接收结果的处理单元。
由此看出有利之处在于,优化事务处理的执行可以直接影响应用的效率,因为事务处理的快速执行保证了对时延敏感的应用更为稳定的工作方式。
另一有利之处在于本发明的实现独立于应用层以及传输层,因为它保证了本发明的使用对两层都保持透明。
本发明其他有利的实施方案包括:在上面提及的快速执行网络操作的方法中,网络操作被传送到一个与启动网络操作的单元进行通信的伙伴实例。在伙伴实例中所接收的网络操作被转换成要执行的操作,而且其中该操作的结果被返回到启动网络操作的单元。在此模块中实现对所接收操作结果的处理。在启动网络操作之后,一个非阻塞的系统调用就被转换成一种状态:其中等候在伙伴实例中所执行系统调用的实际结果而不阻塞调用应用的执行。所接收的结果涉及非阻塞状态并且具有逻辑值,或者它们是在伙伴实例中所执行的阻塞系统调用的结果。存储具有非阻塞执行模式的所接收结果。此逻辑值具有逻辑肯定或者逻辑否定的建议值。通过后续系统调用的执行以逻辑否定返回值的形式向应用报告逻辑否定结果。对于非阻塞系统调用,在先前呼叫的未决否定结果的情况下,总是向应用返回一个逻辑肯定值。为了保证返回先前所执行操作的结果报告,连接的最后的系统调用被设置为阻塞状态。阻塞系统调用是通过等候在伙伴实例中所执行系统调用的结果而以一种熟知的方式实现的。系统调用是套接字系统调用。套接字系统调用形成了一个对于操作系统的编程接口。此模块是一个流水线模块。
而在上面提及的快速执行网络操作的设备中还具有:用于实现一种状态的单元,其中一旦启动网络操作就等候在伙伴实例中所执行系统调用的结果,而不阻塞调用应用的执行。用于处理所接收结果的装置区分肯定和否定值。
附图说明
下面通过实施方案和示图更为详细的对本发明进行解释,其中
图1表示了根据本发明方法的流程图,
图2表示了三次握手的示意图,
图3表示了根据现有技术(3a)和根据本发明(3b)建立连接的图解,以及
图4表示了一个实施示例的图解。
具体实施方式
此后会通过图1来解释本发明。
根据图1,应用1调用一个系统调用2,此调用在步骤3被传送到一个模块,所谓的流水线模块。流水线模块的首要任务在于确定系统调用4的执行模式,即是阻塞系统调用还是非阻塞系统调用。如果流水线模块确认系统调用为阻塞调用,则会用熟知的方式进行处理,也就是启动网络操作5而仍阻塞调用应用6,直至返回所启动网络操作的结果7。在图1中识别应用的阻塞状态可以通过:没有箭头从阻塞执行模式返回到应用,而只是启动网络操作5。在非阻塞系统调用的情况下直接向应用返回一个逻辑值8。此步使应用没有保持阻塞而是继续其后续程序步骤,以便等候在伙伴实例中所实际执行的系统调用的结果成为可能。术语“直接”在这里是指在启动网络操作的单元中确定逻辑值所需的时间。由于这在所述单元中本地完成,故所述时间远远少于网络操作经网络传输、系统调用在伙伴实例中执行以及发送和接收结果所需的时间。
在非阻塞执行模式的情况下直接返回逻辑值同样引起网络操作的启动5。这发生在逻辑值返回之前不久或者紧随其后。对于非阻塞系统调用,在流水线模块中同样等候所启动网络操作的结果6,但这独立于应用运行而发生。一旦接收到结果,则根据执行模式和返回的值检查并处理所述结果9。
下面会说明一个处理所接收结果的示例。
首先,检查所接收结果的执行模式。如果结果源自非阻塞系统调用,则很明显应用此时正在运行,并在非阻塞状态中等候一个结果。为此需要存储所接收的结果。在下一步中,检查此结果的值,即它是否定还是肯定。如果结果是否定的,则例如通过特定的注释来标记它,以便为应用标记错误信息的必要性。否定结果表示出现了错误,例如连接的断开,而且必须向正在运行的应用报告此情况。如果尽可能早地作用于错误消息,则可保证考虑到错误消息的实现本发明的最安全方式。为此最好首先检查对于每个系统调用,是否存储了否定结果以及至今还未报告的先前调用的结果。如果所述检查认识到存在未决的否定结果,则用逻辑否定值的形式向应用返回所述结果,作为当前正执行系统调用的返回值。
发生一个有关返回值的类似过程,其结果包含对正处于阻塞状态的应用的响应。在此情况下,同样首先检查是否存储了至今还未报告的否定结果。如果通过所述检查认识到存在未决的否定结果,则用逻辑否定值的形式向应用返回所述结果,作为返回值。但是如果不存在否定结果,则向应用返回当前所接收的值。
理论上要谈及为了例如建立连接而发送的数据分组形式的消息。实际上可以用例如一种编程接口来实现它,这种编程接口实现了从应用层编程命令到网络层网络操作的转换。所述编程命令可以实现为使用户能访问网络服务的系统调用。
网络服务形式上的特征为多个服务单元或网络操作,由此用户能够使用服务。这些服务单元关心例如,服务执行某种活动、或用某种方式响应伙伴实例的活动。在一个诸如TCP/IP或OSI(开放系统互连)的协议栈中,不同服务单元相互区别。所述服务单元关心:一个服务执行某种活动。例如,通过服务单元“请求(request)”以及活动“CONNECT(连接)”来启动连接建立。在OSI格式中,相应消息具有格式CONNET.request(连接请求)。如果已满足所述请求,则伙伴实例经过一个指示来接收一个通告活动的信令。例如,定址的伙伴实例在CONNECT.request(连接请求)之后接收一个表示需要建立连接的CONNET.indication(连接指示)。然后所述实例为了传达对于连接请求它想要接受还是拒绝而使用一个响应消息,在此情况下为CONNECT.response(连接响应)。发送最初CONNECT.request(连接请求)的伙伴实例通过一个确认,即所谓的CONNECT.confirm(连接确认)来获悉伙伴实例的就绪。所述例子涉及一个由CONNECT(连接)启动的连接建立。还为诸如数据发送(SEND)等其他操作定义了可比较的服务单元,目前不会对它们进行更为详细的描述。但是所述示例表示网络操作的规范非常抽象。例如,对于操作系统Unix4.3BSD,为了与系统无关地访问网络服务而引入了统一编程接口即所谓的套接字接口。这保证了服务单元更为明确的规范。因而消息的启动具体涉及应用层的编程命令规范。然后套接字接口实现了把此后被称为系统调用或者调用的编程命令转换成服务单元。为了解释本发明,下面会使用所述的编程接口作为示例。
套接字编程接口包括一组系统调用,每个都涉及一个所谓的套接字。至于这个概念,一个套接字构成一个通信终接点,一侧连接网络连接,而另一侧连接应用。此后会更为详细的规定最重要的系统调用。用系统调用套接字生成新套接字,从而把地址格式、套接字类型和协议指定为参数。例如,对于TCP连接,选择了互联网地址格式、面向连接的套接字类型和TCP/IP协议。通过系统调用connect(连接),一个应用请求到网络中远程套接字的连接。由此包括了本地套接字和远程套接字的地址作为参数。因此每个连接明确的特征在于一对套接字。数据的实际发送由调用send(发送)来实现而所接收数据的读取由调用recv来实现。除了这里所提及的示例外,还有更多系统调用,但是为了简洁不进行详细的描述。这些系统调用通过编程接口被转换成网络操作。这意味着例如调用connect(连接)的执行引起三次握手的启动。用户对网络操作的执行没有直接影响。但是用户通过系统调用可以控制对网络操作的访问。为了避免修改当前应用,本发明的目的也相应的是在系统调用和网络操作之间集成一个附加层,这使得可透明转换两种类型的操作却不改变应用的实现。此后被称为流水线模块的所述附加层的任务是对从应用所接收的系统调用进行翻译和相应处理。
但是流水线模块的主要任务在于确定系统调用的执行模式,即判定系统调用的结果是可以直接被传送到应用,还是应用必须等候服务器正执行操作的实际值。在第一种情况下涉及非阻塞系统调用,而在第二种情况下涉及阻塞系统调用,在这种情况下应用期望所执行操作的实际值。这意味着流水线模块必须区别两种类型的系统调用,这可以以下面的方式来实现。如果返回值具有逻辑建议值,即在成功执行操作的情况下对于真返回1,而在未成功执行操作的情况下对于假返回0,则一个应用可以识别出有关一个非阻塞调用,而这隐含了一个给应用的直接返回值。一旦接收到该值,应用就继续执行下一个操作。未决操作的状态(即已经发送给相连的服务器,却至今还未收到有关其的实际值的操作)在流水线模块中进行缓冲。状态的存储对于允许流水线模块一旦接收到实际值就向仍在未决状态的操作分配实际值是必要的。
在阻塞系统调用的情况下需要等候数据而非逻辑值来作为系统调用的返回值,故流水线模块并不向应用返回一个直接的值,而是等待直到收到实际数据。在此期间仍阻塞应用。除了那些不返回逻辑返回值而返回数据的系统调用,系统必须确保一个连接中最后的系统调用也被额外地设置成阻塞状态,因为只有用此方式才能保证返回先前所执行操作的结果。根据套接字编程接口语义,在终止其使用时需要关闭套接字,其完成是通过使用系统调用close或shutdown(关闭),即可以用阻塞模式实现的系统调用。
一个有关本发明保证的优化的问题在于非阻塞套接字调用的返回值的语义的改变,并不等候该调用的实际执行。为此必要的是,流水线模块通过给应用的相应消息来确保控制所执行的系统调用。例如,如果由于网络故障造成了定址的IP地址不可达,而调用connect(连接)失败,则在接收到相关返回值之后以及在应用认为所述调用已经被成功终止之后,流水线模块仅获悉相应的错误。但是可以一旦接收到返回值就将其存储在流水线模块中并在下一系统调用中向应用进行报告。优选的实现方案规定通信直接发生在后面的系统调用中,保证了尽可能早地报告错误。检查未决错误报告的计算机时间少于在GSM中的传输时间。因此,存在于流水线模块中的返回值检查无需太多投入就可实现。
另一可能性在于在以阻塞状态执行的下一系统调用中报告所出现的错误。
这些实施方案取决于实现。但是在两种情况下必要的是在阻塞状态下实现最后系统调用的执行。
“延迟”的错误报告并未在已知的应用中带来任何问题,因为同样有关TCP,这些应用已经准备好错误可以出现在任意时间。
此后会通过一个实施方案以及附图3a和3b来更为详细的解释本发明的实现。一方面,附图说明了应用所启动的、执行的系统调用,这在附图的左侧进行了解释。而附图的右侧表示了网络操作,由此启动了相应系统调用的执行。
根据图3a的实施方案表示了一个连接建立,它可以以现有技术即协议HTTP 1.0(RFC 1945)实现。在这个用于调用WWW网页的协议中,为每个对象分别建立连接。根据图3a通过第一调用connect(连接)实现了一个连接。结果,诸如对象等数据是通过第一调用send(发送)和第二调用recv进行请求,并且传输,而此后连接是通过另一调用close(关闭)启动的。根据本发明,转换的系统调用并未经过传输装置来直接传输,而是首先传送到负责处理系统调用的流水线模块。根据图3b在第一步中启动第一系统调用connect(连接),这被流水线模块解释为一个非阻塞的系统调用。这里的解释是用这种方式:一方面流水线模块向服务器发送相应的网络操作,而同时直接向应用发送有关系统调用的结果而不等候服务器所执行操作的实际结果。结果的直接传输用直接返回箭头来标记。
此方法的作用在于应用不必在持续整个RTT(往返行程时间)期间都设置成阻塞状态,而是一旦接收到结果就直接继续下面步骤的执行。根据图3b,是另一系统调用send(发送),它被使用与第一系统调用connect(连接)相同的方式处理。下一系统调用是recv。所述系统调用也首先被传输到流水线模块,此模块标识它为阻塞调用,因为期望数据作为返回值。为此流水线模块不能向应用返回一个直接的结果,而是等候在服务器中实际执行的系统调用的结果。由于计算机的操作时间相对于网络连接尤其是GSM连接的传输时间较短,故网络操作的发送直接依次进行。为此在现在的情况下节省了两个RTT,因为并不等候系统调用connect(连接)和send(发送)的结果。所述结果随着系统调用recv的结果一起被返回。在图3b中通过较宽的箭头说明了直接依次发送网络操作,其中包括依照发送顺序的相应网络操作。
本发明的特征在于独立于传输平台,因为如果使用了不同于T/TCP的传输协议也确保了此功能性。在T/TCP的情况下,系统调用connect(连接)和send(发送)被解释为所谓的sendto(发送到)系统调用。但是使用所述其他协议在总体节省所需RTT的这方面(在所说明的示例中其数量从3降到1)并未有任何改变。
下面将会更为详细的描述本发明。通过根据本发明经过长时延网络来快速执行网络操作的设备,借助一个确定单元来确定系统调用的执行模式。在这方面需要区分阻塞和非阻塞状态。系统调用通过转换装置被转换成网络操作。发送器向通信单元发送网络操作。在通信单元中所执行网络操作的结果由启动网络操作的单元通过接收器来接收。所接收的结果被存储在一个存储器中,并通过一个处理单元根据所包含的值来进行处理。区分肯定和否定的值。
在非阻塞系统调用的情况下,一旦已启动了相应的网络操作就等候在伙伴实例中所执行系统调用的结果,而不阻塞应用的执行。这是通过用于实现这种状态的单元来实现的。
本发明的实现基于在套接字编程接口下提供一个附加模块,上述流水线模块。为此本发明的实施必须通过考虑不同操作系统的不同配置而在操作系统层上实现。但是套接字编程接口的基本思想在于独立于协议,这就是为何在大多数操作系统中为了向套接字编程接口附加额外协议模块而提供内部软件接口,此内部软件接口便于本发明的实现。
此后基于示例的Windows操作系统和图4更为详细的解释本发明的实现。
图4描述了一个包括所涉及实例的协议栈。直接相邻的实例,应用、Winsock2、流水线模块和传输协议彼此间进行通信,这用箭头进行标记。相邻层的通信是通过一个已定义的软件接口进行,例如实例应用和实例Winsock2之间的通信是通过在Windows操作系统中称为Winsock API的套接字编程接口进行。软件接口Winsock SPI(服务提供商接口)用于Winsock2层和底层实现的协议,在这种情况下是流水线模块,之间的通信,Winsock SPI在微软1997年8月的“WindowsSocket 2 Service Provider Interface(Windows Socket 2服务提供商接口)”2.2.2版中有更为详细的解释。
Claims (18)
1.通过一个用于处理应用层的系统调用并启动网络层的网络操作的模块来经过具有高时延的网络而快速执行网络操作的方法,包括下面的步骤:
-将系统调用传送到此模块,
-通过区分阻塞和非阻塞执行模式来确定系统调用的执行模式,
-在非阻塞执行模式的情况下,直接向应用层返回一个逻辑值,并启动一个网络操作。
2.根据权利要求1的方法,其中网络操作被传送到一个与启动网络操作的单元进行通信的伙伴实例。
3.根据权利要求2的方法,其中在伙伴实例中所接收的网络操作被转换成要执行的操作,而且其中该操作的结果被返回到启动网络操作的单元。
4.根据权利要求1-3中任意一个的方法,其中在此模块中实现对所接收操作结果的处理。
5.根据权利要求1-3中任意一个的方法,其中在启动网络操作之后,一个非阻塞的系统调用就被转换成一种状态:其中等候在伙伴实例中所执行系统调用的实际结果而不阻塞调用应用的执行。
6.根据权利要求3的方法,其中所接收的结果涉及非阻塞状态并且具有逻辑值,或者它们是在伙伴实例中所执行的阻塞系统调用的结果。
7.根据权利要求3的方法,其中对具有非阻塞执行模式的所接收结果进行缓冲。
8.根据权利要求1-3中任意一个的方法,其中此逻辑值具有逻辑肯定或者逻辑否定的建议值。
9.根据权利要求8的方法,其中通过后续系统调用的执行以逻辑否定返回值的形式向应用报告逻辑否定结果。
10.根据权利要求3的方法,其中对于非阻塞系统调用,在先前呼叫的未决否定结果的情况下,总是向应用返回一个逻辑肯定值。
11.根据权利要求1-3的方法,其中为了保证返回先前所执行操作的结果报告,连接的最后的系统调用被设置为阻塞状态。
12.根据权利要求1的方法,其中阻塞系统调用是通过等候在伙伴实例中所执行系统调用的结果而以一种熟知的方式实现的。
13.根据权利要求1-3中任意一个的方法,其中系统调用是套接字系统调用。
14.根据权利要求13的方法,其中套接字系统调用形成了一个对于操作系统的编程接口。
15.根据权利要求1的方法,其中此模块是一个流水线模块。
16.通过一个用于处理应用层的系统调用并启动网络层的网络操作的模块来经过具有高时延的网络而快速执行网络操作的设备,具有
-一个用于通过区分阻塞和非阻塞执行模式而确定系统调用执行模式的确定单元,
-用于把系统调用转换成网络操作的转换装置,
-一个用于发送网络操作的发送器,
-一个用于接收执行的网络操作结果的接收器,
-一个用于存储所接收结果的存储器,
-一个用于处理所接收结果的处理单元。
17.根据权利要求16的设备,具有用于实现一种状态的单元,其中一旦启动网络操作就等候在伙伴实例中所执行系统调用的结果,而不阻塞调用应用的执行。
18.根据权利要求16或17的设备,其中用于处理所接收结果的装置区分肯定和否定值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP99124727A EP1109374A3 (de) | 1999-12-13 | 1999-12-13 | Verfahren und Vorrichtung zur Durchführung von Netzwerkoperationen |
EP99124727.1 | 1999-12-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1409913A CN1409913A (zh) | 2003-04-09 |
CN1185841C true CN1185841C (zh) | 2005-01-19 |
Family
ID=8239583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008171084A Expired - Fee Related CN1185841C (zh) | 1999-12-13 | 2000-11-18 | 执行网络操作的方法和设备 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6820269B2 (zh) |
EP (2) | EP1109374A3 (zh) |
JP (1) | JP4611593B2 (zh) |
CN (1) | CN1185841C (zh) |
AT (1) | ATE250307T1 (zh) |
AU (1) | AU2507101A (zh) |
DE (1) | DE60005396T2 (zh) |
WO (1) | WO2001045353A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7623932B2 (en) | 1996-03-28 | 2009-11-24 | Fisher-Rosemount Systems, Inc. | Rule set for root cause diagnostics |
US7627441B2 (en) | 2003-09-30 | 2009-12-01 | Rosemount Inc. | Process device with vibration based diagnostics |
US7630861B2 (en) | 1996-03-28 | 2009-12-08 | Rosemount Inc. | Dedicated process diagnostic device |
US7940189B2 (en) | 2005-09-29 | 2011-05-10 | Rosemount Inc. | Leak detector for process valve |
US8112565B2 (en) | 2005-06-08 | 2012-02-07 | Fisher-Rosemount Systems, Inc. | Multi-protocol field device interface with automatic bus detection |
US8290721B2 (en) | 1996-03-28 | 2012-10-16 | Rosemount Inc. | Flow measurement diagnostics |
US8898036B2 (en) | 2007-08-06 | 2014-11-25 | Rosemount Inc. | Process variable transmitter with acceleration sensor |
US9052240B2 (en) | 2012-06-29 | 2015-06-09 | Rosemount Inc. | Industrial process temperature transmitter with sensor stress diagnostics |
US9207670B2 (en) | 2011-03-21 | 2015-12-08 | Rosemount Inc. | Degrading sensor detection implemented within a transmitter |
US9602122B2 (en) | 2012-09-28 | 2017-03-21 | Rosemount Inc. | Process variable measurement noise diagnostic |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US7904187B2 (en) * | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US7426380B2 (en) | 2002-03-28 | 2008-09-16 | Telecommunication Systems, Inc. | Location derived presence information |
US9154906B2 (en) | 2002-03-28 | 2015-10-06 | Telecommunication Systems, Inc. | Area watcher for wireless network |
US8027697B2 (en) | 2007-09-28 | 2011-09-27 | Telecommunication Systems, Inc. | Public safety access point (PSAP) selection for E911 wireless callers in a GSM type system |
US8290505B2 (en) | 2006-08-29 | 2012-10-16 | Telecommunications Systems, Inc. | Consequential location derived information |
US8918073B2 (en) | 2002-03-28 | 2014-12-23 | Telecommunication Systems, Inc. | Wireless telecommunications location based services scheme selection |
US8126889B2 (en) | 2002-03-28 | 2012-02-28 | Telecommunication Systems, Inc. | Location fidelity adjustment based on mobile subscriber privacy profile |
US8666397B2 (en) | 2002-12-13 | 2014-03-04 | Telecommunication Systems, Inc. | Area event handling when current network does not cover target area |
US7424293B2 (en) | 2003-12-02 | 2008-09-09 | Telecommunication Systems, Inc. | User plane location based service using message tunneling to support roaming |
US7260186B2 (en) | 2004-03-23 | 2007-08-21 | Telecommunication Systems, Inc. | Solutions for voice over internet protocol (VoIP) 911 location services |
US20080126535A1 (en) | 2006-11-28 | 2008-05-29 | Yinjun Zhu | User plane location services over session initiation protocol (SIP) |
KR20050079730A (ko) * | 2004-02-06 | 2005-08-11 | 삼성전자주식회사 | 이종 프로토콜 노드들을 연결하는 방법 및 장치 |
US20050187979A1 (en) * | 2004-02-09 | 2005-08-25 | Microsoft Corporation | System and method for message-level connection management |
US7629926B2 (en) | 2004-10-15 | 2009-12-08 | Telecommunication Systems, Inc. | Culled satellite ephemeris information for quick, accurate assisted locating satellite location determination for cell site antennas |
US7353034B2 (en) | 2005-04-04 | 2008-04-01 | X One, Inc. | Location sharing and tracking using mobile phones or other wireless devices |
US8660573B2 (en) * | 2005-07-19 | 2014-02-25 | Telecommunications Systems, Inc. | Location service requests throttling |
US9282451B2 (en) | 2005-09-26 | 2016-03-08 | Telecommunication Systems, Inc. | Automatic location identification (ALI) service requests steering, connection sharing and protocol translation |
CN100401688C (zh) * | 2005-09-30 | 2008-07-09 | 华为技术有限公司 | 光通信系统的自动恢复检测方法、自动恢复方法及装置 |
US7825780B2 (en) | 2005-10-05 | 2010-11-02 | Telecommunication Systems, Inc. | Cellular augmented vehicle alarm notification together with location services for position of an alarming vehicle |
US7907551B2 (en) | 2005-10-06 | 2011-03-15 | Telecommunication Systems, Inc. | Voice over internet protocol (VoIP) location based 911 conferencing |
US7626951B2 (en) | 2005-10-06 | 2009-12-01 | Telecommunication Systems, Inc. | Voice Over Internet Protocol (VoIP) location based conferencing |
US8150363B2 (en) | 2006-02-16 | 2012-04-03 | Telecommunication Systems, Inc. | Enhanced E911 network access for call centers |
US8059789B2 (en) | 2006-02-24 | 2011-11-15 | Telecommunication Systems, Inc. | Automatic location identification (ALI) emergency services pseudo key (ESPK) |
US7899450B2 (en) | 2006-03-01 | 2011-03-01 | Telecommunication Systems, Inc. | Cellular augmented radar/laser detection using local mobile network within cellular network |
US7471236B1 (en) | 2006-03-01 | 2008-12-30 | Telecommunication Systems, Inc. | Cellular augmented radar/laser detector |
US8208605B2 (en) | 2006-05-04 | 2012-06-26 | Telecommunication Systems, Inc. | Extended efficient usage of emergency services keys |
WO2008057477A2 (en) | 2006-11-03 | 2008-05-15 | Telecommunication Systems, Inc. | Roaming gateway enabling location based services (lbs) roaming for user plane in cdma networks without requiring use of a mobile positioning center (mpc) |
KR20080064607A (ko) * | 2007-01-05 | 2008-07-09 | 삼성전자주식회사 | 재구성 가능한 프로세서를 위한 통합 메모리 장치 및 이의사용 방법 |
US8050386B2 (en) | 2007-02-12 | 2011-11-01 | Telecommunication Systems, Inc. | Mobile automatic location identification (ALI) for first responders |
WO2009038726A1 (en) | 2007-09-17 | 2009-03-26 | Telecommunication Systems, Inc. | Emergency 911 data messaging |
US7929530B2 (en) | 2007-11-30 | 2011-04-19 | Telecommunication Systems, Inc. | Ancillary data support in session initiation protocol (SIP) messaging |
US9301191B2 (en) | 2013-09-20 | 2016-03-29 | Telecommunication Systems, Inc. | Quality of service to over the top applications used with VPN |
JP5544903B2 (ja) * | 2010-01-28 | 2014-07-09 | カシオ計算機株式会社 | サーバ装置およびその制御プログラム |
US8938689B2 (en) * | 2010-03-30 | 2015-01-20 | Ncr Corporation | Window suppression |
US8688087B2 (en) | 2010-12-17 | 2014-04-01 | Telecommunication Systems, Inc. | N-dimensional affinity confluencer |
US8682321B2 (en) | 2011-02-25 | 2014-03-25 | Telecommunication Systems, Inc. | Mobile internet protocol (IP) location |
US8649806B2 (en) | 2011-09-02 | 2014-02-11 | Telecommunication Systems, Inc. | Aggregate location dynometer (ALD) |
US9479344B2 (en) | 2011-09-16 | 2016-10-25 | Telecommunication Systems, Inc. | Anonymous voice conversation |
US8831556B2 (en) | 2011-09-30 | 2014-09-09 | Telecommunication Systems, Inc. | Unique global identifier header for minimizing prank emergency 911 calls |
US9264537B2 (en) | 2011-12-05 | 2016-02-16 | Telecommunication Systems, Inc. | Special emergency call treatment based on the caller |
US8984591B2 (en) | 2011-12-16 | 2015-03-17 | Telecommunications Systems, Inc. | Authentication via motion of wireless device movement |
US8688174B2 (en) | 2012-03-13 | 2014-04-01 | Telecommunication Systems, Inc. | Integrated, detachable ear bud device for a wireless phone |
US9307372B2 (en) | 2012-03-26 | 2016-04-05 | Telecommunication Systems, Inc. | No responders online |
US9313638B2 (en) | 2012-08-15 | 2016-04-12 | Telecommunication Systems, Inc. | Device independent caller data access for emergency calls |
US9208346B2 (en) | 2012-09-05 | 2015-12-08 | Telecommunication Systems, Inc. | Persona-notitia intellection codifier |
US9456301B2 (en) | 2012-12-11 | 2016-09-27 | Telecommunication Systems, Inc. | Efficient prisoner tracking |
CN103312688B (zh) * | 2013-03-13 | 2015-11-18 | 四川天翼网络服务有限公司 | 一种基于socket的包驱动方法 |
US8983047B2 (en) | 2013-03-20 | 2015-03-17 | Telecommunication Systems, Inc. | Index of suspicion determination for communications request |
US9408034B2 (en) | 2013-09-09 | 2016-08-02 | Telecommunication Systems, Inc. | Extended area event for network based proximity discovery |
US9479897B2 (en) | 2013-10-03 | 2016-10-25 | Telecommunication Systems, Inc. | SUPL-WiFi access point controller location based services for WiFi enabled mobile devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0770958A1 (en) * | 1995-10-27 | 1997-05-02 | Sun Microsystems, Inc. | WinSock network socket driver subsystem and method for windows emulator running under unix operating system |
KR19980086586A (ko) * | 1997-05-29 | 1998-12-05 | 제프리 엘. 포맨 | Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴 |
KR19980086588A (ko) * | 1997-05-29 | 1998-12-05 | 제프리 엘. 포맨 | Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴 |
JPH114259A (ja) * | 1997-06-13 | 1999-01-06 | Nec Software Ltd | 仮想コネクション通信装置及び通信方法 |
US6161152A (en) * | 1998-06-04 | 2000-12-12 | Intel Corporation | System for providing asynchronous I/O operations by identifying and polling a portal from an application process using a table of entries corresponding to I/O operations |
KR20010072477A (ko) * | 1998-08-13 | 2001-07-31 | 썬 마이크로시스템즈, 인코포레이티드 | 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치 |
-
1999
- 1999-12-13 EP EP99124727A patent/EP1109374A3/de not_active Withdrawn
-
2000
- 2000-11-18 CN CNB008171084A patent/CN1185841C/zh not_active Expired - Fee Related
- 2000-11-18 AT AT00988726T patent/ATE250307T1/de not_active IP Right Cessation
- 2000-11-18 JP JP2001546119A patent/JP4611593B2/ja not_active Expired - Fee Related
- 2000-11-18 AU AU25071/01A patent/AU2507101A/en not_active Abandoned
- 2000-11-18 EP EP00988726A patent/EP1238511B1/en not_active Expired - Lifetime
- 2000-11-18 WO PCT/EP2000/011503 patent/WO2001045353A1/en active IP Right Grant
- 2000-11-18 DE DE60005396T patent/DE60005396T2/de not_active Expired - Lifetime
- 2000-12-05 US US09/730,873 patent/US6820269B2/en not_active Expired - Lifetime
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7623932B2 (en) | 1996-03-28 | 2009-11-24 | Fisher-Rosemount Systems, Inc. | Rule set for root cause diagnostics |
US7630861B2 (en) | 1996-03-28 | 2009-12-08 | Rosemount Inc. | Dedicated process diagnostic device |
US8290721B2 (en) | 1996-03-28 | 2012-10-16 | Rosemount Inc. | Flow measurement diagnostics |
US7627441B2 (en) | 2003-09-30 | 2009-12-01 | Rosemount Inc. | Process device with vibration based diagnostics |
US8112565B2 (en) | 2005-06-08 | 2012-02-07 | Fisher-Rosemount Systems, Inc. | Multi-protocol field device interface with automatic bus detection |
US7940189B2 (en) | 2005-09-29 | 2011-05-10 | Rosemount Inc. | Leak detector for process valve |
US8898036B2 (en) | 2007-08-06 | 2014-11-25 | Rosemount Inc. | Process variable transmitter with acceleration sensor |
US9207670B2 (en) | 2011-03-21 | 2015-12-08 | Rosemount Inc. | Degrading sensor detection implemented within a transmitter |
US9052240B2 (en) | 2012-06-29 | 2015-06-09 | Rosemount Inc. | Industrial process temperature transmitter with sensor stress diagnostics |
US9602122B2 (en) | 2012-09-28 | 2017-03-21 | Rosemount Inc. | Process variable measurement noise diagnostic |
Also Published As
Publication number | Publication date |
---|---|
EP1109374A3 (de) | 2001-06-27 |
EP1238511B1 (en) | 2003-09-17 |
AU2507101A (en) | 2001-06-25 |
JP4611593B2 (ja) | 2011-01-12 |
EP1109374A2 (de) | 2001-06-20 |
US20010021183A1 (en) | 2001-09-13 |
ATE250307T1 (de) | 2003-10-15 |
JP2003517688A (ja) | 2003-05-27 |
CN1409913A (zh) | 2003-04-09 |
DE60005396D1 (de) | 2003-10-23 |
WO2001045353A1 (en) | 2001-06-21 |
EP1238511A1 (en) | 2002-09-11 |
US6820269B2 (en) | 2004-11-16 |
DE60005396T2 (de) | 2004-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1185841C (zh) | 执行网络操作的方法和设备 | |
US6427171B1 (en) | Protocol processing stack for use with intelligent network interface device | |
US7324533B1 (en) | Using modem profiles to improve connectivity, connect timing, and compression performance on a modem relay (MR) gateway | |
US6697868B2 (en) | Protocol processing stack for use with intelligent network interface device | |
CA2205068C (en) | Multi-processor environments | |
US6393487B2 (en) | Passing a communication control block to a local device such that a message is processed on the device | |
CN108494817A (zh) | 数据传输方法、相关装置及系统 | |
CN110838935B (zh) | 高可用sdn控制器集群方法、系统、存储介质及设备 | |
CN1422473B (zh) | 定义和控制网络处理器设备的总体行为的方法 | |
US5619645A (en) | System isolation and fast-fail | |
US20030202470A1 (en) | Method and apparatus for managing network traffic | |
JP3214454B2 (ja) | プログラム内蔵方式パケット処理装置 | |
CN102315918B (zh) | 一种tcp连接与sctp连接互通的方法及装置 | |
Farber et al. | Thinwire protocol for connecting personal computers to the Internet | |
CN102055774A (zh) | 基于包处理的http服务器及其数据处理方法 | |
TWI839155B (zh) | 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法 | |
CN113259271B (zh) | 报文交换方法和报文交换系统 | |
US20080056263A1 (en) | Efficient transport layer processing of incoming packets | |
EP1355472B1 (en) | Method and system to determine the most appropriate software layer after reception of a packet | |
US8248939B1 (en) | Transferring control of TCP connections between hierarchy of processing mechanisms | |
EP1286517B1 (en) | Message transmission between telecommunication network entities | |
CN101217551A (zh) | 本地存储协议接口和网络存储协议接口间的数据传输方法 | |
CN119248696B (zh) | 一种基于PCIe的RDMA连接管理方法 | |
JP3070749B2 (ja) | ヘツダ予測方式及び通信制御処理装置 | |
Wang et al. | CPN modeling and analysis of L2TP |
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 |
Granted publication date: 20050119 Termination date: 20161118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |