无线网络上的会话持续的制作方法

文档序号:6454419阅读:182来源:国知局
专利名称:无线网络上的会话持续的制作方法
技术领域
本发明涉及会话持续。更具体地,本发明涉及用于在无线网络上 进行会话持续的方法和系统。
背景技术
移动计算设备,例如与增大普及的公司企业网络耦合的无线计算 设备数目的增加,导致来自无线计算设备的对面向网络的应用的可靠、 透明的访问的需求。
企业网络包括典型地运行在企业服务器上的企业应用。这些企业 应用包括执行诸如计费、生产调度、顾客信息跟踪和帐目维护之类的 功能的商业逻辑。对访问企业网络和提供服务给很多用户的其它公司
计算机网络的增加的需求,已经刺激虚拟专用网络("VPN")的开发。
VPN是典型地在公司内部使用的通过公共网络通信的专用通信网 络。VPN消息业务是使用标准协议在公共联网基础结构上传送的。VPN 经常使用密码隧传协议来提供必要的机密性、发送者鉴权和消息完整 性以实现必要的隐私权。VPN的使用可以扩展地理连接性、提高安全、 减少来自传统的广域网("WAN")的操作成本、提供电子通勤者 (telecommuter)支持,并且展示了良好规模经济。
移动计算中的改善与上述联网改进已同时发生。 一个这样的开发 是移动IP。移动IP是因特网工程任务组("IETF")标准通信协议,该 通信协议被设计为当保持移动设备用户的永久IP地址时,允许移动设 备用户从一个网络移动到另一个。联网方法己演进为允许在不可靠的传统有线数据网络上进行健壮 的通信。在很大程度上,在这样的传统不可靠网络上的增加的可靠性
已经通过开发面向连接、端对端可靠协议而实现,该协议例如为在IETF RFC 793中定义的传输控制协议(TCP)。已经将TCP设计成通过在 会话中进行通信来可靠地执行端到端的数据传输。TCP保证发送者到 接收者数据的可靠和有序的递送。TCP也针对运行在相同主机上的多 个并发的应用区别数据。许多成品联网应用已经被开发为与TCP对接, 因为TCP引擎是成功和广泛使用的传输协议引擎。作为面向连接的协 议,TCP需要连接状态的周期性指示,例如,确认("ACK")传输的 接收。没有这些指示,会话将终止。诸如TCP的传输协议针对有线数 据通信网络而被优化,并且大大增加在这样网络上进行数据传输的可 靠性。
联网应用,例如利用VPN和移动IP功能的联网应用,己经被开 发为利用面向连接的TCP的可靠性到这样的程度,即这些联网应用经 常需要使用TCP会话来充分实现应用的益处。然而,当移植到无线技 术,这样的联网应用性能会下降。无线网络的特征在于由从无线电区 域网络("RAN")的暂时断开或长移交延迟导致的"间断连接"的持续期 (extended period)。因此在无线技术中,由于无线联网中固有通信的 暂时中断,会话经常被过早终止,该暂时中断阻止连接状态的周期性 指示被接收。因此,问题是尽管缺少连接却保持通信继续的方式、被 称为TCP会话持续的课题。
许多成品联网应用例如需要TCP/IP会话或专用虚拟电路。 一些应 用对TCP连接的丢失处理得极其乏力,有时甚至需要机器的整个重新 启动。因此,当参与者经历断开的持续期时,需要保持TCP连接活跃 (alive)的方式。已通过开发新技术而解决了这些问题。
例如,由Hass等申请的专利号为5,566,225的美国专利("'225专 利")公开了一种通过无线网络在移动终端用户设备和主机之间保持TCP会话的系统,该专利的完整主题在这里通过引用被结合。公开
在,225专利中的用于TCP会话持续的系统使用在移动终端用户设备中 执行的"本地代理"和在无线网络或主机中的处理器中执行的"网络代 理", 一检测到无线链接的不运转(imperative)状况,就模拟TCP会 话的运转(operative)模式。然而,该'225专利没有解决将TCP持续 集成到由服务器代理的通信网络中。
由Hanson等申请的专利号为6,546,425的美国专利(",425专利") 公开了在代理移动管理服务器("移动服务器")上的TCP会话持续, 该专利的完整主题在这里通过引用被结合。例如,'425专利公开了一 种移动服务器,其提供用于"移动终端系统"(即,移动客户端)的用 户可配置会话优先级、用于管理网络资源消耗的每个用户移动策略管 理,和针对移动客户端的地址管理。


图1是'425专利的例示实施。在例示的系统中,移动服务器120 保持每个移动客户端102的状态,并且处理对网络和其它处理(诸如 在主机系统138上运行的处理)保持持续连接所需要的复杂的会话管 理。如果移动客户端102变为不可到达的、挂起或改变网络地址,则 移动服务器120通过确认数据的接收和在协议栈中在UDP引擎128和 TCP引擎130上方排队请求,来保持到主机系统138的连接。通过移 动服务器120进行的这个代理允许移动客户端102上的网络应用104 保持连续的连接,即使其可能暂时丢失它的无线连接136。移动服务器 120也管理移动客户端102的地址,并且在这个方面,为每个移动客户 端102提供专用网络上的代理地址,其被称为移动客户端102的"虚拟 地址"。当移动系统从一个网络互连改变成另一个,移动服务器120将 保持常值的虚拟地址映射到移动客户端102的当前"存在点"地址。
在,425专利中,利用移动拦截器IIO通过传输驱动器接口("TDI") 108在传输协议引擎(例如TCP引擎)上方实现TCP会话持续。移动 拦截器110拦截在TDI 108接口的某些呼叫并且借助于远端程序呼叫("RPC")和因特网移动协议通过使用标准传输协议的网络将它们路由 到移动服务器120。这样的标准传输协议可以包括由TCP引擎114提 供的TCP,和用户数据报l办议("UDP"),由UDP引擎112提供的无 连接协议。远端程序呼叫是允许在一个计算机上的程序执行在服务器 计算机上的程序的一种协议。因此移动拦截器110可以拦截所有网络 活动并使用RPC操作而不是TCP操作来将其中继到移动服务器120。 移动拦截器110使用操作系统特性透明地工作,以便当移动客户端102 丢失与网络的连接时允许客户端一侧的应用会话保持活动。移动服务 器120按照镜像有效地操作,以与移动客户端102上的操作系统相似 的方式与主机系统138 —起工作。因此单独的RPC操作代替用于RAN 的TCP操作。
尽管'425专利公开了持续代理联网的手段,但在TCP引擎上方实 现持续手段是难处理的。在市场中当前可用的一个实施方式中,例如, 这个体系结构通过钩住用于连接应用到网络协议的socket应用程序接 口 ("API"), 一组例程、协议和工具而允许会话持续,以便将TCP应 用呼叫从成品应用重定向到具体设计的TDI 108。 Socket应用程序接口 在图1的系统中被实现为"Windows Sockets("Winsock") 1.1/2.0 106、诸 如TCP的允许Windows网络软件访问网络服务的API。 TDI 108终止 TCP呼叫并打开到服务器的UDP socket。钩住socket API以将应用的 TCP呼叫重定向到所有者的驱动器是相对未经测试的,经常有问题, 并且需要广泛的配置。TDI 108必须重新实现面向TCP的应用所预期 的TCP行为,例如确认产生、确认过期、副本检测和分段重排序。进 一步,这样广泛的实施通常限制将由移动管理服务器120使用的可用 应用的数目。
附图简介
在结合附图阅读时,通过参考接下来的详细描述而最好地理解本 公开发明方面的实施例,其中
图1例示了根据现有技术的网络上的TCP持续;图2例示了根据本发明的实施例的、用于在服务器代理网络上在 主机系统和移动计算设备上的客户端之间进行TCP会话持续的系统;
图3是例示根据本发明的实施例的、用于在服务器代理网络上在 主机系统和移动计算设备上的客户端之间进行TCP会话持续的方法的
数据流图4例示了国际标准化组织开放系统相连("ISO/OSI")网络协议 模型层之间的信息传递;
图5是例示根据本发明的实施例的、在无线连接的移动客户端一 侧上的TCP持续的数据传输图;和
图6A和图6B是例示无线连接中发生中断后、在无线连接的移动 服务器/主机一侧上根据本发明实施例的TCP会话持续的数据传输图。
具体实施例方式
本发明阻止两个设备(实体)之间的通信会话的终止,其中通信 会话至少部分地在无线网络上被引导,并且在通信中发生暂时中断。 为了更容易解释,需要注意的是,接下来的解释和例子具体地涉及TCP,
然而,可以使用任何其它面向连接的传输协议(例如,流控制传输协 议)。因此,在一个实施例中,更具体的是,当在通信中发生暂时中 断时,本公开通过会话持续,通过使第一设备产生标准的TCP信号, 由此该第一设备"相信"产生的信号是从会话中的第二设备传送而来的, 以及该会话仍旧"活跃",从而阻止TCP会话过早终止。仅当检测到网 络通信中的中断时才产生这些信号。通过识别什么时候没有检测到设 备所预期接收的信号来检测网络通信中的中断。在TCP会话持续中, 这些预期的信号可以是确认信号。确认信号是控制分组,其由参与TCP 会话的第一设备的传输层发送到参与TCP会话的第二设备的传输层, 来确认对来自第二设备的传输的接收。因此, 一旦接收到信号,第二 设备"相信"第一设备仍旧与第二设备通信,并且在它们之间的TCP会 话不应该终止。
显著地,与本公开背景技术中讨论的现有技术形成对照,会话持续驱动器位于第一和第二设备两者上的TCP层下方(不需要服务器), 或者位于服务器和第一设备上的TCP层下方(如果第二设备不能用本
发明修改),以便模拟信号,而不需要中断第一设备、第二设备和服 务器(如果存在的话)上的应用级程序和传输层之间的标准接口。换
句话说,会话持续驱动器在传输层下方的ISO/OSI网络协议模型的层 模拟信号,下面将更详细描述。这个配置允许经过标准接口通过应用 完全利用TCP层。
例如,在一些实施例中,可以通过模拟从第一设备的TCP层到第 二设备的TCP层的确认信号来实现TCP会话持续。也可以通过模拟从 第二设备的TCP层到第一设备的TCP层的确认信号来实现TCP会话 持续。在一个实施例中,模拟从每个设备到其它设备的确认信号。通 过将会话持续驱动器置于TCP层下方,应用可以利用TCP呼叫来初始 化网络通信。因为如果许多而不是大多数成品应用被设计为使用TCP 作为用于联网的传输层协议,那么将这些应用对接到TCP层被简单地 配置并且产生可靠的通信网络(由于这些配置的广泛测试)。此外, 由于应用层和传输层是每个自包含,所以应用软件中的改变和升级是 无缝的。
图2例示了用于在服务器代理网络上在第一设备202和第二设备 236之间进行TCP会话持续的系统。术语"服务器代理网络"代表了这 样的网络,在该网络上第一设备202和第二设备236之间的通信由服 务器216代理,服务器216使代理服务器220应用安装并运行在其上。 图2的服务器代理网络通过经过有线网络246将第二设备236连接到 服务器216和经过具有无线连接234的无线网络235将第一设备202 连接到服务器216而实现。在下文参考图3进一步解释这样的代理。 尽管本公开涉及在无线网络上的第一设备202与有线网络上的第二设 备之间代理通信的服务器,但本发明的其它实现可以包括在每个都 在无线网络上的两个设备之间代理通信的服务器,或是合并了本发明 的两个无线设备,因此彻底消除了对服务器的需求。第一设备202、服务器216和第二设备236每个在某种程度上被实 现为安装和运行在计算机上的软件模块,该计算机即自动计算设备, 每个包括至少一个处理器或"CPU"(未示出)和计算机存储器(未示出), 该计算机存储器包括易失性随机访问存储器("RAM")和非易失性计 算机存储器的一些形式,例如硬盘驱动、光盘驱动,或电擦除可编程 只读存储器空间(也称为'EEPROM'或'Flash'存储器)。计算机存储器 通过总线连接到计算机的处理器和其它部件。因此,软件模块是存储 在计算机存储器中的程序指令。
第二设备236包括安装并运行在计算机上的软件,包括执行任务 或访问信息的一个或多个网络服务238。在企业联网模型中,第二设备 236可以包括执行公司商业操作的商业逻辑和访问公司机密信息的应 用。
代理服务器220,作为运行在服务器216中的ISO/OSI应用层中但 是也可以运行在内核空间中的一些网络应用218之一,允许第一设备 202通过服务器216间接连接或访问第二设备236上的其它网络服务 238。如下所述,服务器216也使额外的功能添加到网络。因此,在一 个实施例中,尽管在正常操作中,第一设备202和第二设备236表面 上看是相互之间进行透明通信,但通信实际上是在第一设备202和第 二设备236之间通过第一设备202和服务器216之间的第一 TCP会话 和服务器216和第二设备236之间的第二 TCP会话而实现的。这些TCP 会话包括由对数据的请求、对这些请求的响应,和用于会话操作的信 号所组成的传输。TCP会话看起来是在第一设备202和第二设备236 之间通过这些设备而被发起的,但是该会话实际上被服务器216截取, 并且被分割成上述的两个TCP会话。作为代替,在第一设备和第二设 备之间可仅使用一个TCP会话。
因此,第一设备202通过如上所述的发起与代理服务器220的TCP会话并且之后请求连接、文件或第二设备236上的其它可用资源,从 而连接到网络服务238。代理服务器220, 一旦连接到指定的第二设备 236,则通过获得来自第二设备236的资源或通过从存储器中指定的位 置供给资源来提供资源。
服务器216、第一设备202和第二设备236中的每一个包括操作在 ISO/OSI网络协议模型应用层的应用软件组件(分别为网络应用218、 网络应用204,和网络服务238),该应用软件组件执行包括软件应用 和低层网络服务之间的通信的高层操作,以便网络可以解释应用的请 求并且应用可以解释从网络发送的数据。
图2中的服务器216、第一设备202和第二设备236中的每一个还 包括形成网络通信栈(205、 221和239)的一部分的TCP层(206、 222 和240) 、 IP层(208、 224和242),和网络驱动器接口规格("画S,,) 应用编程接口 ("API") (212, 228和244),用以促进网络通信。应 用软件组件(网络应用218、网络应用204和网络服务238)发起到它 们各自TCP层(206、 222、 240)的呼叫,以通过网络传送信息到其它 应用软件组件。典型的,以连续字节流形式将信息从应用软件组件传 送到TCP层。
TCP层206、 222和240实现TCP,如上所述,TCP使用错误检测 来保证数据分组被可靠且有序的传递到运行在接收计算机上的合适应 用。运行在每个实体中的IP层208、 224和242实现IP层,该IP层通 过使用机器唯一的IP地址来寻址分组以保证数据分组的传递。NDIS API(212、 228和244)是网卡接口,其提供功能和程序上的手段,用于 通过计算机网卡和以太网将网络实体之间的数据传递到相应实体的网 卡。NDIS API通过使用物理寻址方案来寻址数据分组,所述物理寻址 方案例如为在生产阶段硬编码进大多数联网设备中的媒体访问控制 ("MAC")地址。尽管图2中公开的实施例的服务器216、第一设备202 和第二设备236每个包括作为网卡接口的NDIS API,但图2系统的替代实施例可以包括任何网络过滤器(例如Linux)的使用,并且仍旧在 权利要求所定义的本发明的范围内。
对于本发明实施例来说重要的是,服务器216通过网络通信栈221 中的一个或多个会话持续驱动器226而耦合到网络。图2的会话持续 驱动器(多个)226是监视网络通信以检测中断并创建信号以保持TCP 持续的软件模块,接下来将进行更详细的介绍。会话持续驱动器226 通过服务器216中的IP层耦合到TCP层222。 TCP层222下方的所有 通信通过会话持续驱动器226,以后将更详细地介绍。IP层224进一步 通过NDIS API 228耦合到网络。接下来会更详细地讨论TCP/IP栈和 NDIS API 228。在一些实施例中,在独立于服务器216中的处理器的单 独的处理器上执行会话持续驱动器226。在其它实施例中,会话持续驱 动器226可以作为硬件或硬件和软件的结合而实现。所有这样的实施 例是意欲落入本发明的范围内的会话持续驱动器226。
为了执行它的TCP会话持续功能,会话持续驱动器226包括用于 产生一个或多个TCP信号的计算机程序指令,所述一个或多个TCP信 号适于被第二设备236中的TCP层240解释为是从第一设备202传送 而来的。在一个实施例中,会话持续驱动器226产生并沿着协议栈向 上发送0窗口通告("ZWA") 230到TCP层222,以及产生并沿着协议 桟向下且通过有线网络发送ZWA 232到第二设备236上的TCP层240, 由此使TCP层222和240"相信"TCP层206仍然被连接并且在第一设 备202和第二设备236之间保持TCP会话。从ISO/OSI网络协议模型 角度看,这种模拟的ZWA 230是在传输层下方产生的,与本发明的实 施例相当,随后将进行更详细的解释。
第一设备202也包含会话持续驱动器210,其同样在网络通信栈 205中产生一个或多个TCP信号。会话持续驱动器210的TCP信号适 于被第一设备202中的TCP层206解释为是从第二设备236传送而来 的。会话持续驱动器210因此相似地被实现成产生并沿着协议栈向上发送ZWA 214到TCP层206,由此使TCP层206"相信"TCP层240(或 222)仍然被连接,由此在第一设备202和第二设备236之间保持TCP会话。
在有了关于系统的基本描述的情况下,现在把注意力转向图3,图 3阐明了例示根据本发明的实施例的、用于通过网络上保持TCP会话 持续的方法的流程图。鉴于连贯性,在图3的流程图的整个描述中使 用图2中的附图标记。该方法开始于通过服务器216代理网络通信(步 骤302)。如上所提示,这可以通过利用服务器216中的代理服务器 220来执行,以实现本公开背景技术部分所解释的用于通信网络的VPN 和移动IP。
在本方法中实现的移动IP功能可以包括通过规范-移动IPv4、移 动Ipv6,或者本领域所熟知的任何其它移动IP规范所实现的功能。在 优选的移动IP实现中,每个无线设备(例如第一设备202)通常由它 的本地地址(home address)来标识,而不考虑它连接因特网的当前点。 此外,当第一设备202远离本地时,它也与"转交"地址关联,众所周知, 该"转交"地址提供关于它连接因特网的当前点的信息。简而言之,代理 步骤302也可以提供登记转交地址和典型地在第一设备202和第二设 备236之间发生的其它基本联网细节。
如上所述,VPN是典型的通过公共网络进行通信的在公司内使用 的专用通信网络。VPN经常使用密码隧传协议来提供必要的机密性、 发送者鉴权和消息完整性以实现隐私权。相应地,在一些实现中,代 理步骤302可以包括使用密码隧传协议来传送数据,该密码隧传协议 即将一个协议或会话封装在另一个内的加密网络协议。在这样的VPN 实现中,当VPN为活动来提高不安全网络上的安全时,系统可以要求 所有业务通过隧道。使用密码隧传协议传送数据也可以包括提供其它 VPN功能,诸如,例如专用寻址。如上所述,根据本公开的TCP会话持续包括使用会话持续驱动器
210、 226来模拟暂时断开期间的预期TCP传输。在执行这个任务期间, 并且如图3所示,会话持续驱动器210和226包括计算机程序指令用 于.-监视(304)第一设备202和第二设备236之间的网络通信;检测 (306)网络通信中的暂时中断;以及检测到暂时中断(307)时在暂时 中断期间阻止传输层终止会话(310),如以下更详细地解释。
在监视步骤(304)期间,第一设备202和服务器216中的会话持 续驱动器210和226分别操作以检测网络通信中的中断。由于只要来 自一个TCP层的预期信号被其它TCP层接收至(j, TCP会话就继续,该 监视步骤304可以包括透明地传递接收的TCP信号以及检测接收预期 的TCP信号的失败。在一些实施中,在会话持续驱动器中接收到TCP 数据分组并之后将其传递到TCP层。在替代的实施例中,仅TCP数据 分组被监视直到通信中的中断被检测到,在检测到的时候,会话持续 驱动器进入活动状态并且将自己插入栈以使所有的TCP数据分组通过 会话持续驱动器。 一个对该监视目的有用的这样的信号是确认所传送 分组的接收的"ACK"信号。相应地,在会话期间,当第一TCP层发送 TCP分组到第二 TCP层时,它等待ACK信号的返回。如果在合理的 往返时间(round-trip time)内没有接收到确认,发送TCP层的计时器 将引起超时,并且然后(可能丢失的)数据将被重新传送。在可配置 时间量后,或者在可配置数目的重试后,发送TCP层会终止会话。第 一设备202和第二设备216中的会话持续驱动器210和226分别通过 响应通信中检测到的暂时中断来阻止这个终止。对于会话持续驱动器, 会话中的暂时中断也可以被检测为没有接收到预期确认的可配置时间 量或可配置数目的重试。然而,用于会话持续驱动器的可配置时间量 或可配置数目的重试每个都比允许会话持续驱动器阻止TCP会话终止 的TCP层的可配置时间量或可配置数目的重试小。替换地,会话持续 驱动器210、 226通过外部指示来检测通信中的暂时中断。外部指示可 以是任何外部输入,诸如,例如硬件中断、软件事件、或策略改变通 知,会话持续模块应当从该外部输入推断通信中的中断。一旦已经检测到中断(步骤306),图3方法中的接下来的步骤 (310)用于通过例如模拟信号来阻止传输层在暂时中断期间终止会话, 由此系统坚持保持第一设备202和第二设备236被连接,而不管暂时 中断。因此,使用会话持续驱动器(多个)210、 226来执行对TCP信 号312的模拟,会话持续驱动器(多个)210、 226模拟在第一设备202 和第二设备236之间的连续数据通信,而不管暂时中断。
如之前所述,在本发明的实施例中,会话持续驱动器210和226 分别位于TCP层206和222下方,意味着这样的信号模拟发生在TCP 层206和222下方的ISO/OSI层,具有以下优点应用可以利用TCP 呼叫来发起网络通信,增加服务器代理网络的可靠性和使网络升级更 容易。
在一个实施例中,模拟步骤(310)包括在会话持续驱动器210、 226之一或两者中产生一个或多个TCP信号312,该一个或多个TCP 信号312适合于被第二设备236解释为来自第一设备202,或者被第一 设备202解释为来自第二设备236。 TCP信号312指示在第二设备中被 分配用以接收进入数据的缓冲器是满的(例如,ZWA)。响应于ZWA信 号,TCP层停止发送数据分组,但是仍旧保持TCP会话。再一次,在 TCP层下方的ISO/OSI栈中的层内产生ZWA信号。
图4例示了 ISO/OSI网络协议模型的各层之间的信息传递, ISO/OSI网络协议模型是一种向导,用于提供用于在两个不同节点400 和401中开发针对联网服务和协议的标准的框架。该协议模型具有七 层。从顶部到底部,它们如下应用层402 (层7)、表示层404 (层 6)、会话层406 (层5)、传输层408 (层4)、网络层410 (层3)、 数据链路层412 (层2),和物理层414 (层1)。每层使用下层的服 务并提供服务给上层。 一个节点400中的层与不同节点401中的对等 层通信。通过向下传递数据到下一个最低层,数据从第一设备中的协议层传播到第二设备中的相同协议层,该下一个最低层又传递数据到 其下方的层。在层l (物理层),数据被物理地传递到另一个节点。然 后数据从一个层传递到下一个层,直到到达它的目的地。当每层向下 传递数据时,其在报头中添加信息,并且在向上的路径中通过移除报 头来使用信息。本领域的读者将意识到,不存在精确地按照示出的协 议模型实现的网络。在实践中,经常省略层5和6。当将第一层描述为 位于第二层下方,我们意指,第一层是数字上比第二层低的任何层。
本发明的会话持续层440在传输层408下方实现。因此,它位于比第4 (传输)层低的任何层,诸如,例如,网络层410、数据链路层412, 或者它们之间的层(例如本领域技术人员所知的2.5层)。作为比较,'425 专利的持续装置430,例如在传输层408上方操作。还需要注意,尽管 为了更容易解释,当前描述涉及执行功能的"层",本领域的技术人员应 当明白,层内的协议或设备实际上在执行功能。例如,传输层具有通 过传输协议引擎或类似设备实现的传输协议。
为了进一步解释本发明的实施例,图5提出例示根据图3公开的 方法在图2的网络上进行数据传输的呼叫图。因为在图2的无线网络 上的第一设备上和有线网络上的第二设备上均被触发会话持续,图5、 6A和6B例示双侧的信号传递。在每个呼叫图中,从图的顶部到底部 以时间顺序例示了从一个模块到另一个模块的数据分组的传输。
图5,例示无线连接234的第一设备202 —侧上的TCP会话持续, 首先示出(505)当在第一设备202和服务器216之间的无线连接234 中不存在中断时TCP会话中的数据分组的传输。如可见的,在这样的 情形中,通过图2中例示的各种媒介(intermediary),字节流从第一 设备应用204向服务器网络应用218流动。具体的,第一设备应用204 将8比特字节流,或字节流517发送到第一设备中的TCP层206,以 通过网络传递。第一设备中的TCP层206将字节流517存储在缓冲器 中,并且从第一TCP数据分组518开始,开始构造包含来自字节流517 的数据的片断,或TCP数据分组。给予每个数据分组序列号。第一设备中的TCP层206传送作为结果的TCP数据分组518到因特网协议层 208(未示出)。在一些实施例中,将TCP数据分组518从因特网协议 层208 (未示出)发送到会话持续驱动器210,用于通过无线网络235 从会话持续驱动器210递送到在服务器216处的会话持续驱动器226。 在替换的实施例中,会话持续驱动器仅监视通过无线网络从因特网协 议层20S (未示出)发送的数据分组518,直到如上所述被激活。两种 实现都包括在下面涉及传递数据分组的会话持续驱动器210、 226的讨 论中。会话持续驱动器226传递数据分组到服务器中的TCP层222, 服务器通过分析每个分组的序列号进行检查,以确认没有数据分组丢 失并且数据分组是正确的顺序。服务器中的TCP层222递送字节流519 形式的信息到网络应用218。对于被成功接收的TCP数据分组518,服 务器中的TCP层222发送回确认'TCPACK 520。
作为比较,当中断存在于无线连接234 (507)中时,来自会话持 续驱动器210或因特网协议层208 (未示出)的TCP数据分组522在 某定时的时段后,甚至一些重试(524, 526)后保持未确认。如上所 述,由于无线连接234中的中断的高潜在性,这是无线网络上的普遍 事件。
因此,为了阻止TCP会话终止,其中该TCP会话终止另外可能是 由第一设备中的TCP层206超过预定数目的重试而引起的,会话持续 驱动器210计算对于每个TCP数据分组重试的次数。对于数据分组, 一旦超出重试(528)的可配置数目(比预先确定的终止TCP会话所需 要的重试数目小),会话持续驱动器210发送ZWA214到第一设备中 的TCP层206。ZWA 214告知第一设备中的发送TCP层206停止发送, 因为接收TCP过程的缓冲器窗口是满的,但是保持连接/会话开启。第 一设备中的发送TCP层206通过停止传输并且通过传送窗口通告探针 532周期性地测试连接来回应ZWA 214。如果服务器中的TCP层接收 到窗口通告探针,TCP连接可以被重置。因此,会话持续驱动器210 拦截窗口通告探针532,并且连续地传送TCP保持活跃分组534到服务器216中的会话持续驱动器226。 TCP保持活跃分组534的传输允许 重新连接探测,而不具有重置TCP连接/会话的风险。TCP保持活跃分 组也是使用标准TCP功能的有效TCP消息,因此使用TCP保持活跃 分组避免额外TCP连接管理的开销。响应于每个窗口通告探针,会话 持续驱动器210也传送ZWA 214,以继续安抚第一设备中的发送TCP 层206。尽管以上公开了使用TCP保持活跃分组534进行重连接,然 而可以通过发送可由对等会话持续驱动器检测到的任何消息来执行重 连接。
一旦重建立通信,服务器216中的会话持续驱动器226将能够通 过经过无线网络235将TCP保持活跃ACK 538回传到会话持续驱动器 210来响应连续传送的TCP保持活跃分组534的一个。TCP保持活跃 ACK 538通知会话持续驱动器210已经恢复了无线连接234。在接收到 保持活跃ACK 538后,会话持续驱动器210发送在前窗口通知540到 第一设备中的TCP层206,该在前窗口通知540告知第一设备中的TCP 层206考虑在前窗口通知540中描述的缓冲器窗口的大小来继续重新 传送丢失的数据。丢失的数据现在将作为TCP数据分组542被重新传 送,因为现在恢复了通信,TCP数据分组542与正常的一样在第一设 备202上的应用204和服务器216上的服务器TCP层222 (产生TCP ACK 544)之间传播,并且通过字节流543传播到服务器218。
已经描述了无线连接的第一设备202 —侧的呼叫图,TCP会话持 续协议类似地工作,以在无线连接234的移动服务器216/第二设备236 一侧上保持TCP会话。第二设备236上的网络服务238和移动服务器 216上的网络应用218传送字节流到它们各自的TCP层,240和222。 第二设备236上的协议栈通过有线网络246传送数据分组到服务器216 上的协议栈,服务器216上的协议栈又通过无线连接235传送数据分 组到第一设备202上的协议栈。如上所述,每个传送TCP层等待TCP ACK来确认成功的传输。无线连接234的移动服务器216/第二设备236 一侧上的TCP会话持续的大多数方面与第一设备一侧类似,并且因此不作详细描述。然而,将在下面直接地详细描述在网络通信的中断
后,服务器216/第二设备236 —侧的TCP会话持续的方面。
因此,图6A和6B示出无线连接234中有中断时的TCP会话持续。 图6A和6B示出会话持续驱动器226对相同的检测到的通信中的中断 的两个响应。在某时段后,甚至在一些重试(624, 626)后,来自会 话持续驱动器210的TCP数据分组622保持未确认。
图6A例示关于移动服务器216和第一设备202之间的TCP会话 的TCP会话持续,示出会话持续驱动器226计算每个TCP数据分组的 重试次数。 一旦超出关于数据分组的可配置的重试次数(比预定的终 止TCP会话所要求的重试次数少)(628),会话持续驱动器226发送 ZWA 230到移动服务器TCP层222。由于接收TCP过程的缓冲器窗口 是满的,ZWA 230告知发送移动服务器TCP层222停止发送,但是保 持连接/会话开启。发送移动服务器TCP层222通过停止传输和通过传 送窗口通告探针632周期性地测试连接,来响应ZWA 230。
现在转向图6B,会话持续驱动器226也通过有线网络246发送 ZWA 232到第二设备中的TCP层240。由于接收TCP过程的缓冲器窗 口是满的,ZWA 232告知第二设备处的发送TCP层240停止发送,但 是保持连接/会话开启。第二设备处的发送TCP层240通过停止传输和 通过传输窗口通告探针662周期性地测试连接,来响应ZWA 232。因 为移动服务器216不能传送,并且继续进行传送会使代理服务器220 中的缓冲器过载,导致数据的丢失,所以停止传输是重要的。
转向图6A,会话持续驱动器226接收窗口通告探针632并且连续 传送TCP保持活跃分组634到服务器216中的会话持续驱动器210。 响应于每个窗口通告探针,会话持续驱动器226也传送ZWA 230'以继 续安抚移动服务器中的发送TCP层222。再回到图6B,会话持续驱动器226接收窗口通告探针662。响应 于每个窗口通告探针,会话持续驱动器226也传送ZWA 232,以继续安 抚第二设备中的发送TCP层240。
转向图6A, 一旦通信被重新建立,服务器216中的会话持续驱动 器210将能够通过经过无线网络235将TCP保持活跃ACK 628回传到 会话持续驱动器226来响应连续传送的TCP保持活跃分组634中的一 个。TCP保持活跃ACK 638通知会话持续驱动器226无线连接234已 经恢复。在接收到保持活跃ACK 638后,会话持续驱动器226发送在 前窗口通知640到服务器中的TCP层222,该在前窗口通知640告知 服务器TCP层222考虑在前窗口通知640中所描述的缓冲器窗口的大 小来继续重新传送丢失的数据。在前窗口通知是在通信丢失时声明缓 冲器大小的窗口通知。现在,丢失的数据将作为TCP数据分组被重新 传送,并且正常的通信重新开始。
再回到图6B,在接收到保持活跃ACK 638后,会话持续驱动器 226也发送在前窗口通知680到第二设备中的TCP层240,该在前窗口 通知680告知第二设备中的TCP层240考虑在前窗口通知640中所描 述的缓冲器窗口的大小来继续重新传送丢失的数据。第二设备重新开 始传送TCP分组,并且正常的通信重新开始。
需要理解的是,这里公开的有发明原理可以作很多修改。只要这 样的修改落入所附权利要求和它们的等价物的范围内,它们就旨在被 本发明所涵盖。
权利要求
1. 一种第一设备的操作方法,所述第一设备通过运行在所述第一设备上的网络通信栈耦合到网络,所述网络通信栈包括允许在会话期间在所述第一设备和第二设备之间进行网络通信的传输层,所述操作方法包括在所述网络通信栈中的所述传输层下方,监视在所述第一设备和所述第二设备之间的所述网络通信;检测所述网络通信中的暂时中断;以及在所述暂时中断期间,阻止所述第一设备上的所述传输层终止所述会话。
2. 如权利要求1所述的操作方法,其中所述网络通信由服务器代理。
3. 如权利要求l所述的操作方法,其中所述阻止步骤包括 在所述第一设备上的所述网络通信栈中的所述传输层下方,产生一个或多个信号的集合,所述一个或多个信号的集合将被所述第一设备解释为来自所述第二设备;以及发送所述一个或多个信号的集合到所述第一设备上的所述传输层。
4. 如权利要求3所述的操作方法,其中所述一个或多个信号的集 合指示在所述第二设备处被分配用于接收进入数据的缓冲器为满。
5. 如权利要求1所述的操作方法,其中所述第一设备上的所述网 络通信桟进一步包括在所述网络通信栈中的所述传输层下方操作的会 话持续驱动器,并且其中所述会话持续驱动器执行所述监视和检测的 步骤。
6. 如权利要求5所述的操作方法,其中所述会话持续驱动器发送 信号到所述第一设备上的所述传输层来执行所述阻止步骤。
7. —种服务器的操作方法,其中所述服务器在第一会话期间耦合 到无线网络上的第一设备,并且在第二会话期间耦合到有线网络上的 第二设备,其中所述服务器、所述第一设备和所述第二设备每个都包 括网络通信桟,该网络通信栈具有允许在所述第一设备和所述第二设 备之间进行网络通信的传输层,该操作方法包括在所述服务器上的所述网络通信栈中的传输层下方,在所述第一 会话期间监视在所述第一设备和所述第二设备之间的所述网络通信; 在所述第一会话期间检测所述网络通信中的暂时中断; 在所述暂时中断期间阻止所述服务器上的所述传输层终止所述第 一会话;以及在所述暂时中断期间阻止所述第二设备上的所述传输层终止所述 第二会话。
8. 如权利要求7所述的操作方法,其中所述第一会话对于所述第 二设备透明,并且所述第二会话对于所述第一设备透明。
9. 如权利要求7所述的操作方法,其中在所述暂时中断期间阻止 所述服务器上的所述传输层终止所述第一会话的所述步骤包括在所述服务器上的所述传输层下方,产生一个或多个信号的集合, 所述一个或多个信号的集合将被所述服务器解释为来自所述第一设 备;以及发送所述一个或多个信号的集合到所述服务器上的所述传输层。
10. 如权利要求7所述的操作方法,其中在所述暂时中断期间阻 止所述第二设备上的所述传输层终止所述第二会话的所述步骤包括在所述服务器上的所述传输层下方,产生一个或多个信号的集合, 所述一个或多个信号的集合将被所述第二设备解释为来自所述第一设备;以及通过所述有线网络传送所述一个或多个信号的集合到所述第二设 备,以在所述暂时中断期间阻止所述第二设备上的所述传输层终止所 述第二会话。
全文摘要
本公开提供用于阻止两个设备之间的通信会话的终止的方法和系统,其中该通信会话至少部分地在无线网络上进行。更具体地,本公开提供阻止TCP会话过早地终止或者TCP会话持续的方法和系统,在这样的网络中,通过模拟正常通信的信号,使得接收设备“相信”模拟的信号从其它设备传送而来。当没有检测到设备预期接收的预期信号时,将从会话持续驱动器发送的模拟信号发送到设备。
文档编号G06F15/16GK101416174SQ200780011753
公开日2009年4月22日 申请日期2007年3月20日 优先权日2006年4月5日
发明者亚当·C·里维斯, 克里斯托弗·博让, 组拉布·酷卡什微里 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1