面向远过程调用的持久tcp连接方法

文档序号:7889807阅读:237来源:国知局
专利名称:面向远过程调用的持久tcp连接方法
技术领域
本发明涉及ー种TCP连接方法,尤其是涉及ー种面向远过程调用的持久TCP连接方法。
背景技术
远程过程调用协议(Remote Procedure Call Protocol, RPC)采用客户机/服务器模型。请求发起程序相当于ー个客户机,它通过网络调用远程计算机上提供的服务程序。 RPC有多种模式,其主流为Sun RPC、DEC及ORPC。网络文件系统(Network File System, NFS)是ー个使用Sim RPC构造的客户机/服务器应用程序,NFS客户机通过它的TCP/IP模块(或者是UDP/IP模块)向NFS服务器发送RPC请求,NFS底层的传输协议为用户数据报 UDP或传输控制协议TCP。NFSv3版本在实现中,基本是为每个NFS请求建立ー个TCP连接, 具体是指每次服务器完成一个应答后相关的TCP连接就被关闭,即每个连接没有持续到可以传输其他请求。这种连接方法称为非持久连接,这种做法的开销很大。经过对现有文献的检索发现,((TheAdvancement of NFS Benchmarking :SFS2. 0)) (该文最初发表于1999年在美国华盛顿州西雅图市举办的第13届大型装置系统管理 “LISA”学术研讨会的论文集里)中,NFSv3开始引入TCP作为传输协议,客户端可以选择传输协议为UDP或TCP。UDP作为ー种无连接轻量级的协议,消息的交互次数少,(每个请求处理TCP需要5个消息,而UDP需要仅需2个消息),但是,UDP不为IP提供可靠性、流控或差错恢复功能,其丢包会导致严重的可靠性问题。经过对现有文献的检索发现,((TCP/IP详解卷1 协议》第1-1版第10章以及第 17章至第21章中,TCP提供的是面向连接的,可靠的字节流服务,它不会导致严重的丢包问题。但是,两个进程在使用TCP进行数据交換之前,必须建立ー个连接,完成数据交換后,需要关闭这个连接;这样频繁的建立与关闭TCP连接导致系统CPU资源浪费客户得为每个等待请求的对象建立并维护ー个新的连接,并为其分配缓冲区,并维持TCP变量;而在关闭 TCP连接时释放这些资源;不同的TCP连接之间完全独立,使得TCP具有的拥塞控制功能不能发挥有效作用。所述的TCP协议提供可靠的连接服务,采用三次握手来初始化TCP连接,即通过三次握手来同步连接双方的序列号和确认号并交換TCP窗ロ大小信息。所述的TCP关闭连接, 由于TCP连接是全双エ,因此每个方向必须单独地进行关闭, 终止ー个TCP连接要经过4 次握手。

发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供ー种面向远过程调用的持久TCP连接方法。本发明的目的可以通过以下技术方案来实现一种面向远过程调用的持久TCP连接方法,其特征在干,包括以下步骤
1)客户端与服务器端三次握手建立TCP连接,传输数据并启动倒计时计时器;2)设置倒计时计时起的初始值;3)倒计时计时器时间到点后,执行回调函数,客户端向服务器端发起请求,请求断开TCP连接;4)客户端与服务器端第四次握手断开TCP连接,结束本次持续的TCP连接。所述的设置倒计时计时起的初始值的依据为1)服务器和客户端之间的中间节点负载程度;2)客户端与服务器端的负载状况;3)应用请求类型以及历史连接时间。与现有技术相比,本发明具有以下优点客户端与服务器端的TCP连接不再是非持续的,而是自适应关闭的,对于传输频繁的客户端与服务器端之间,减少了频繁的TCP连接建立与关闭次数,可以使系统更充分利用网络带宽,提高传输效率。


图1为本发明的实现硬件结构示意图;图2为本发明的软件流程图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细说明。实施例如图1、图2所示,一种面向远过程调用的持久TCP连接方法,包括以下步骤1)客户端与服务器端三次握手建立TCP连接,传输数据并启动倒计时计时器;2)设置倒计时计时起的初始值;3)倒计时计时器时间到点后,执行回调函数,客户端向服务器端发起请求,请求断开TCP连接;4)客户端与服务器端第四次握手断开TCP连接,结束本次持续的TCP连接。所述的设置倒计时计时起的初始值的依据为1)服务器和客户端之间的中间节点负载程度,若中间节点(如路由器、网关、防火墙等)负载大,则可减短TCP连接时间,否则可将持续连接时间加长;2)客户端与服务器端的负载状況,因为创建TCP连接需要耗费一定的系统资源, 若TCP连接两段的主机负载重,则可减短TCP连接时间,以便及时释放所占用的系统资源;3)应用请求类型以及历史连接时间,在计时器中存有各类型操作前几次TCP连接的持续时间(各类型操作的TCP连接首次持续时间),根据操作的不同(如读文件和写文件)和历史数据的变化来动态更改连接持续时间。本发明所提出的方法,是依托于现NFS对基于TCP的RPC调用,是对现有NFS执行 RPC调用的缺点的改进,具有良好的适应性。只需对现有的NFS客户端模块做些改动,就可以很好的实现。
权利要求
1.一种面向远过程调用的持久TCP连接方法,其特征在干,包括以下步骤1)客户端与服务器端三次握手建立TCP连接,传输数据并启动倒计时计时器;2)设置倒计时计时起的初始值;3)倒计时计时器时间到点后,执行回调函数,客户端向服务器端发起请求,请求断开 TCP连接;4)客户端与服务器端第四次握手断开TCP连接,结束本次持续的TCP连接。
2.根据权利要求1所述的ー种面向远过程调用的持久TCP连接方法,其特征在干,所述的设置倒计时计时起的初始值的依据为1)服务器和客户端之间的中间节点负载程度;2)客户端与服务器端的负载状况;3)应用请求类型以及历史连接时间。
全文摘要
本发明涉及一种面向远过程调用的持久TCP连接方法,包括以下步骤1)客户端与服务器端三次握手建立TCP连接,传输数据并启动倒计时计时器;2)设置倒计时计时起的初始值;3)倒计时计时器时间到点后,执行回调函数,客户端向服务器端发起请求,请求断开TCP连接;4)客户端与服务器端第四次握手断开TCP连接,结束本次持续的TCP连接。与现有技术相比,本发明具有可以使系统更充分利用网络带宽、提高传输效率等优点。
文档编号H04L29/08GK102546659SQ20121003966
公开日2012年7月4日 申请日期2012年2月21日 优先权日2012年2月21日
发明者战科宇, 李小勇, 王玲惠, 王皓, 胡鹏, 闫鹤 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1