一种具有tcp移动性选项的无缝移动性和会话连续性

文档序号:1510738 发布日期:2020-02-07 浏览:5次 >En<

阅读说明:本技术 一种具有tcp移动性选项的无缝移动性和会话连续性 (Seamless mobility and session continuity with TCP mobility options ) 是由 伯吉兹·皮特哈瓦拉 乌马·S·春都里 于 2018-06-11 设计创作,主要内容包括:一种为具有会话连续性的传输控制协议(TCP)传输提供移动性的方法。在一个实施例中,所述方法使用TCP无缝移动性选项(TCP-SMO)连接标识符在第一通信设备和第二通信设备之间建立通信会话,其中,所述连接标识符用于标识所述第一通信设备和所述第二通信设备之间的通信会话。通信会话期间,所述方法在所述通信设备和所述第二通信设备之间交换数据。所述方法使用TCP-SMO连接标识符维护所述通信设备和所述第二通信设备之间的通信会话,以响应移动性事件。(A method of providing mobility for Transmission Control Protocol (TCP) transmissions with session continuity. In one embodiment, the method establishes a communication session between a first communication device and a second communication device using a TCP seamless mobility option (TCP-SMO) connection identifier, wherein the connection identifier is used to identify the communication session between the first communication device and the second communication device. During a communication session, the method exchanges data between the communication device and the second communication device. The method maintains a communication session between the communication device and the second communication device using a TCP-SMO connection identifier in response to a mobility event.)

一种具有TCP移动性选项的无缝移动性和会话连续性

相关申请案交叉申请

本发明要求于2018年6月6日递交的发明名称为“一种具有TCP移动性选项的无缝移动性和会话连续性”的第16/001,767号美国非临时专利申请案的优先权,该申请反过来要求于2017年6月23日递交的发明名称为“一种具有TCP移动性选项的无缝移动性和会话连续性”的第62/524,278号美国临时专利申请案的优先权,其全部内容通过引用结合在本申请中。

技术领域

本发明的实施例涉及无线通信领域,尤其涉及使用传输控制协议(TransmissionControl Protocol,简称为TCP)移动性选项提供无缝移动性和会话连续性的方法和装置。

背景技术

TCP是互联网协议(Internet Protocol,简称为IP)组的主要协议之一。TCP定义了如何建立和维护网络通信会话。TCP在通过IP网络进行通信的主机上运行的应用程序之间提供可靠、有序和检错的八比特字串流传送。万维网、电子邮件、远程管理和文件传输等主要互联网应用依赖于TCP。

发明内容

本发明的第一方面提供了一种由第一通信设备执行的为第一通信设备和第二通信设备之间的具有会话连续性的传输控制协议(TCP)传输提供移动性的方法。所述方法包括使用TCP无缝移动性选项(TCP seamless mobility option,简称为TCP-SMO)连接标识符在所述第一通信设备和所述第二通信设备之间建立通信会话,其中,所述连接标识符用于标识所述第一通信设备和所述第二通信设备之间的通信会话。通信会话期间,所述方法在所述第一通信设备和所述第二通信设备之间交换数据。所述方法使用所述TCP-SMO连接标识符维护所述第一通信设备和所述第二通信设备之间的通信会话,以响应移动性事件。

本发明的第二方面提供了一种通信设备。所述通信设备包括:网络通信接口,用于通过网络实现通信;存储器存储单元,包括指令;以及一个或多个处理器,与所述网络通信接口和所述存储器存储单元进行通信,其中,所述一个或多个处理器执行所述指令以进行以下操作:使用TCP无缝移动性选项(TCP-SMO)连接标识符在所述通信设备和第二通信设备之间建立通信会话,其中,所述连接标识符用于标识所述通信设备和所述第二通信设备之间的通信会话;通信会话期间,在所述通信设备和所述第二通信设备之间交换数据;以及使用所述TCP-SMO连接标识符维护所述通信设备和所述第二通信设备之间的通信会话,以响应移动性事件。

本发明的第三方面提供了一种数据结构。所述数据结构为第一通信设备和第二通信设备之间的具有会话连续性的传输控制协议(TCP)传输提供移动性。所述数据结构可以包括一个或多个以下字段:源连接标识符字段,用于指定源连接标识符;目标连接标识符字段,用于指定目标连接标识符;移动性事件字段,用于指定移动性事件;安全选项字段,用于指定安全选项;以及可选数据字段,用于使用内容标识符指定生成散列的校验和。

在任一前述方面中,所述TCP-SMO连接标识符可以包括所述第一通信设备的第一TCP-SMO连接标识符和/或所述第二通信设备的第二TCP-SMO连接标识符。

在任一前述方面中,在所述第一通信设备与所述第二通信设备之间建立通信会话可以包括:所述第一通信设备向所述第二通信设备发送TCP-同步(TCP-Synchronize,简称为TCP-SYN)消息,其中,所述TCP-SYN消息的TCP报头中具有所述TCP-SMO连接标识符;所述第一通信设备接收同步-确认(Synchronize-Acknowledgement,简称为SYN-ACK)消息,其中,所述SYN-ACK消息的TCP报头中具有所述TCP-SMO连接标识符,指示所述第二通信设备支持TCP-SMO;以及所述第一通信设备向所述第二通信设备发送同步-确认-确认(Synchronize-Acknowledgement-Acknowledgement,简称为SYN-ACK-ACK)消息,其中,所述SYN-ACK-ACK消息的TCP报头中具有所述TCP-SMO连接标识符,确认收到所述SYN-ACK消息,进而在所述第一通信设备和所述第二通信设备之间建立通信会话。

在任一前述方面中,维护所述第一通信设备和所述第二通信设备之间的通信会话,以响应移动性事件可以包括:在响应所述移动性事件的通信会话期间,所述第一通信设备从所述第二通信设备接收所述第二通信设备的新IP地址。

在任一前述方面中,维护所述第一通信设备和所述第二通信设备之间的通信会话,以响应移动性事件可以包括:在响应所述移动性事件的通信会话期间,所述第一通信设备将所述第一通信设备的新IP地址发送至所述第二通信设备。

在任一前述方面中,可以在空数据包或TCP保活探测报文中发送新IP地址。

在任一前述方面中,所述TCP-SMO连接标识符可以是随机生成的唯一标识符,所述标识符由所述第一通信设备的TCP栈生成或通过应用程序或第二协议中的一个提供给所述第一通信设备的TCP层。

在任一前述方面中,所述TCP-SMO连接标识符可以包括在TCP-SMO数据结构中。所述TCP-SMO数据结构可以包括用于指定安全选项的安全字段。所述安全选项可以包括所述第一通信设备和所述第二通信设备之间的传输安全协议TCP认证选项(TCP-Authentication Option,简称为TCP-AO)、TCP消息摘要5(TCP-Message Digest5,简称为TCP-MD5)和迪菲-赫尔曼(Diffie-Hellman,简称为DH)密钥交换算法。所述安全字段可以是两比特字段,用于将任一DH分组指定为安全选项,以保护响应所述移动性事件的IP地址更改通知。

下面将在

具体实施方式

中对以上方面、其他方面及其优点进行描述。

附图说明

为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中,相同的附图标记表示相同的部件。

图1示出了根据本发明实施例的源设备和目标设备之间的当前TCP连接的图。

图2示出了根据本发明实施例的图1中TCP连接期间IP地址更改的图。

图3示出了根据本发明实施例的TCP-SMO数据结构的图。

图4示出了根据本发明实施例的移动性选项激活的图3中TCP-SMO数据结构的图。

图5示出了根据本发明实施例的具有TCP-SMO的通信会话的时序图。

图6示出了根据本发明实施例的不含TCP-SMO的通信会话的时序图。

图7示出了根据本发明实施例的具有安全TCP-SMO的通信会话的时序图。

图8示出了根据本发明实施例的一种为具有会话连续性的TCP传输提供无缝移动性的方法的流程图。

图9示出了根据本发明实施例的另一种为具有会话连续性的TCP传输提供无缝移动性的方法的流程图。

图10示出了根据本发明实施例的装置的图。

所示附图仅是示例性的,并非旨在声明或暗示对可以实现不同实施例的环境、架构、设计或过程构成任何限制。在所示附图中,可选组件或步骤均用虚线表示。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实现方式,但所公开的系统和/或方法可使用任意数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

正如在本书面公开内容和权利要求书中所使用的,术语“包括”和“包含”的使用不受限制,因此应当理解为“包括,但不限于”。除非另有说明,否则如本文所使用的,“或”并不要求相互排他性,并且单数形式“一”、“一个”和“这个”也表示包括复数形式,除非上下文另有明确指示。

本文所引用的模块或单元可以包括一个或多个硬件或电子组件,例如专用于执行特定功能的电路、处理器、以及存储器。所述存储器可以是易失性存储器或非易失性存储器,所述存储器存储数据,例如但不限于计算机可执行指令、机器代码以及其他各种形式的数据。所述模块或单元可用于使用数据来执行一个或多个指令,以执行一个或多个任务。在某些情况下,单元还可以表示一组特定的功能、软件指令或用于执行特定任务的电路。

本文引用的网络是指通过通信链路连接在一起的电子设备系统,以便能够交换信息和/或共享资源。网络的非限制性示例包括局域网(local-area network,简称为LAN)、广域网(wide-area network,简称为WAN)、城域网(metropolitan-area network,简称为MAN)、无源光网络(passive optical network,简称为PON)和无线接入网(radio accessnetwork,简称为RAN)。所述网络可以包括一个或多个私有网络和/或公用网络,例如因特网。在各种实施例中,所述网络可以采用任何类型的通信标准和/或协议。

TCP是一种在IP上分层的面向连接的可靠传输协议。TCP是用于提供可靠的全双工连接的主要传输协议。TCP的最常见用途是交换封装在IP数据报中的TCP数据。IP数据报包括IP报头和TCP报文段。所述TCP报文段包括TCP报头和可选的TCP数据。交换TCP报文段,以建立连接、传输数据、发送确认、广告窗口大小和关闭连接。

每个TCP连接维护连接状态,在数据结构中通常称为TCB。所述TCB包含连接状态、计时器、标志、本地和远程主机号和端口、以及有关连接传输属性的反馈参数的信息。所述TCB基于每次连接进行维护。正如当前实施的一样,当与对等体一起打开TCP连接时,所述连接的发起者和响应者通过源端口、目标端口、源IP地址和目标IP地址来标识所述连接(例如,TCP会话或套接字)。所述源端口和所述目标端口设置在TCP报头中。所述源IP地址和所述目标IP地址设置在所述IP报头中。

该连接由套接字参数标识并存储在所述TCB中。对连接两端的连接标识符(例如,源IP地址和/或目标IP地址)的任何更改,例如,当端点移动/切换其网络连接时,都会导致TCP重置(Reset,简称为RST)或会话最终超时。

因此,本发明实施例包括用于提供具有TCP移动性选项的无缝移动性和会话连续性的系统、方法和新数据结构,在本文中也称为“TCP-无缝移动性选项(TCP-SMO)”。根据本发明实施例,所述TCP-SMO包括用于TCB或TCP中连接识别的连接标识符。通过使用新TCP-SMO中的连接标识符而不是由请求注解(request for comment,简称为RFC)793当前定义的常规TCB连接标识符(所述常规TCB连接标识符使用TCP中的源IP地址和目标IP地址),即使连接的任一端点更改其IP地址,也可以在支持新TCP-SMO的端点之间建立的通信会话中实现会话连续性。在本发明实施例中,通过消除因端点IP地址更改而终止通信会话和重新建立新通信会话的时间和过程来减少通信延迟。

图1示出了客户端或源102与目标104之间的当前TCP连接。所述源102和所述目标104可以是任何类型的电子通信设备,例如,个人计算机、移动计算/通信设备和/或服务器。所述源102通过路由器/交换机R1建立与网络110的连接,所述目标104通过路由器/交换机R2连接到所述网络110。为了识别TCP可以处理的单独数据流,所述TCP提供端口标识符。因为端口标识符由每个TCP各自选择,所以它们可能不是唯一的。因此,为了在每个TCP内提供唯一地址,所述源102的IP地址(IP1)及其端口标识符(端口X),以及所述目标104的IP地址(IP2)及其端口标识符(端口Y)用于创建在整个网络110中唯一的套接字,用于标识所述源102和所述目标104之间的数据流。所述TCP存储TCB中所述源102和所述目标104之间通信会话的套接字信息(IP1、IP2、端口X、端口Y)。

图2示出了在建立了图1所示的TCP连接之后,所述源102/客户端设备移动并切换到用于与所述网络110连接的不同路由器R11的效果。例如,移动电话或Wi-Fi网络上的用户穿过路由器R1边界并进入路由器R11边界移动到一个点。在移动性的边界处,所述源102从使用路由器R1与所述网络110连接切换为使用路由器R11与所述网络110连接。通过所述新连接,所述源102获取新的IP地址(IP11)。如果所述源102继续在同一个图1中已建立的连接上利用该新的IP地址(IP11)发送数据,所述目标104最终要么超时,要么发送更改的IP地址的接收消息的RST,并关闭/重置连接。因此,在当前的TCP实现方式(如RFC 793所定义)下,当发生移动性事件时,需要断开并重启基于IP地址的全部会话。该过程引入了通信延迟,这是因为所述源102和所述目标104之间必须重新建立新通信会话。

因此,本发明实施例旨在使用新TCP-SMO提供具有不间断TCP连接的无缝移动性。在一实施例中,所述新TCP-SMO引入了连接标识符并配置了TCP以将这些标识符用于TCB或连接标识。例如,图3示出了TCP-SMO数据结构300的示意图,所述TCP-SMO数据结构300可以用作TCP报头的一部分以实施本发明实施例。图3中本发明实施例及其领域仅仅是本发明实施例的TCP-SMO的一个示例,并且在替代实施例中可能有所差异,例如,那些最终由互联网工程任务组(Internet Engineering Task Force,简称为IETF)确定的实施例。

在所述实施例中,所述TCP-SMO数据结构300包括种类字段302、长度字段304、安全选项(security option,简称为DH)字段306、移动性(mobility,简称为M)字段308、标志字段310、源长度(source length,简称为SL)字段312、目标长度(destination length,简称为DL)字段314、源连接标识符(connection identifier,简称为CID)字段316、目标CID字段318和可选数据字段320。在一实施例中,所述种类字段302为可用于提供各种信息的可选报头字段。例如,所述TCP互联网号码分配局(Internet Assigned Numbers Authority,简称为IANA)可指定使用所述种类字段302。所述长度字段304可用于以字节为单位指定所述TCP-SMO数据结构300的总长度(包括种类字段302和长度字段304)。在一实施例中,所述长度字段304的最小值为12字节、最大值为40字节。在一实施例中,当所述长度字段304小于12字节时,所述TCP丢弃该报文段。

在一实施例中,所述DH字段306为2比特,并且用于指定提供安全通信的安全选项。例如,在一实施例中,所述DH字段306可以用作传输安全协议,例如但不限于,TCP-AO和TCP-MD5,所述传输安全协议在本文中称为安全选项-1。TCP-AO和TCP-MD5在两个端点之间提供加密认证和消息完整性验证。或者,所述DH字段306还可用于指示源节点和目的节点之间的DH密钥交换,本文称其为安全选项-2。Diffie-Hellman是一种用于在双方之间建立共享密钥的算法。它主要用作交换加密密钥以在对称加密算法中使用的方法。例如,在一实施例中,可以在TCP三次握手的端点之间交换DH对,作为建立端点之间通信会话的SYN/Syn-Ack/Sync-Ack-Ack消息中数据的一部分。在该实施例中,计算共享秘钥并用其验证来自源端点或目标端点的IP地址的更改。例如,在一实施例中,当非零Diffie-Hellman值正在交换时,所述DH字段306中的以下DH比特可用于指示以下内容:

00:未交换Diffie-Hellman值。

01:1024比特模幂(ModP)组(必选)。

10:2048比特ModP群/椭圆曲线群,具有200比特ModP。

11:预留。

上述设置仅是一个示例性实施例,并且上述比特可用于指示其他实施例中的一些其他可能的ModP DH群。所述TCP-SMO数据结构300具有上述DH字段306的优点之一是:在必要时,提供了改变所述DH算法的能力。

此外,在各实施例中,安全选项-2可以应用于多路径TCP(MultiPath TCP,简称为MPTCP)协议以及TCP协议。与当前MP-TCP安全性不同,如https://tools.ietf.org/html/draft-ietf-mptcp-rfc6824bis-10#section-2.7所述,密钥在MP_CAPABLE消息中以明文形式发送,并且MP_JOIN消息由HMAC-SHA256保护,本发明实施例中的安全选项-2使DH交换能够获得共享密钥,然后可以使用该共享密钥来保护所述MP_JOIN消息。

在一实施例中,所述M字段308用于指定移动性事件。当端点(例如,源102和/或目标104)从具有第一IP地址的第一网络接入点切换到具有第二IP地址的第二网络接入点时,则发生本文所引用的移动性事件。如上所述,在当前TCP实现方式下,移动性事件会造成两个端点之间的通信会话被重置(即,使用新的IP地址关闭和重建)。然而,正如进一步所描述的,根据本发明实施例,端点可以使用所述TCP-SMO数据结构300来指示移动性事件的发生,并且可以维护两个端点之间的通信会话。

在一实施例中,由于会被TCP-IANA标准化,所述标志字段310可用于指定或指示特定条件。或者,在某些实施例中,所述标志字段310可以因特定目的而保持未定义和/或用户配置。所述SL字段312可用于以字节为单位指定源CID的长度(例如,4比特)或所述源标识符的长度。类似地,所述DL字段314可用于以字节为单位指定目标CID的长度或目标标识符的长度。在一实施例中,最小源CID长度和目标CID长度为4字节,最大源CID长度和目标CID长度为16字节。

在一实施例中,所述源连接标识符(source connection identifier,简称为SCID)字段316指定源连接标识符,并且所述目标连接标识符(destination connectionidentifier,简称为DCID)字段318指定目标连接标识符。在一实施例中,所述连接标识符是随机的可变长度描述符集,其用于标识连接而不是TCP中的源IP地址和目标IP地址。所述SCID和DCID的长度分别由所述SL字段312中的SCID长度和所述DL字段314中的DCID长度指示。在一实施例中,所述源连接标识符和所述目标连接标识符可以由TCP模块或TCP栈生成,或者可以在打开TCP套接字时由应用程序或其他协议(例如,定位编号分离协议(LocatorID Separation Protocol,简称为LISP)、主机标识协议(Host Identity Protocol,简称为HIP)、ION或任何其他标识的(ID)相关协议)提供。在一实施例中,TCP连接的发起者在发起TCP连接和用于其他会话时使用两个标识符(源连接标识符和目标连接标识符)。在一实施例中,如果目标不支持所公开的TCP-SMO,则所述TCP连接使用常规TCB连接标识符,如图6所述。

在一实施例中,所述可选数据字段320为4字节,并且仅当M字段308设为1比特时才必须存在。例如,图4示出了根据本发明实施例的移动性选项激活的TCP-SMO数据结构300的示意图。如图4所示,在该实施例中,通过将M字段308中的比特设为“1”来激活移动性选项,以指示移动性事件已发生。所述可选数据字段320包含4字节,指示源连接标识符的生成散列和固定数据/字符串的校验和。所述固定字符串有助于规范散列函数的总数据,因为连接标识符的长度可以低至4字节。例如,在一实施例中,所述可选数据字段320包含与固定的12字节串(例如,0xFEFEFEFEABABABABDEDEDEDE)连接的源连接标识符的键控散列。在一实施例中,如果使用安全选项-1,则所述散列函数使用安全散列算法1(Secure Hash Algorithm1,简称为SHA1-96)以散列上述连接数据。SHA1-96是密码散列函数,其输入并产生称为消息摘要的160比特(20字节)的散列值。所述可选数据字段320存储该散列数据的校验和。在一实施例中,如果使用安全选项-2,则所述散列函数可以使用基于[美国国家标准与技术研究院(National Institute of Standards and Technology,简称为NIST)-SP800-38B][联邦信息处理标准(Federal Information Processing Standard,简称为FIPS)197]的高级加密标准-128-加密消息认证码-96(Advanced Encryption Standard-128-Cipher-basedMessage Authentication Code-96,简称为AES-128-CMAC-96)。在该实施例中,所述可选数据字段320为加密散列数据的校验和。在一实施例中,所述校验和和散列是在通信侧生成的,检测IP地址更改且需要提供无缝移动性。

图5示出了根据本公开实施例的具有TCP-SMO的通信会话的时序图500。在所述实施例中,所述TCP报文段时序图500表示从三次握手到以新定义的TCP-SMO结束连接的完整连接。在所述实施例中,所述源102的初始IP地址是IP1,所述目标104的初始IP地址是IP2。TCP-SMO在会话启动时协商,仅当双方都支持TCP-SMO时才生效。步骤502至506示出了在TCP报头中使用所述TCP-SMO数据结构在源节点和目标节点之间建立通信会话的过程。从步骤502开始,所述源节点发送具有TCP-SMO的TCP同步(TCP-SYN)消息。在一实施例中,若源连接标识符和目标连接标识符均由应用选择并分配给TCP,则两者均可存在于TCP-SYN消息中。如果TCP用于选择或生成连接标识符,则所述源102选择/生成TCP-SMO数据结构的唯一(本地TCP栈)连接标识符(源CID)。在一实施例中,所述源102将所述目标连接标识符保持为0x0,其中,TCP-SYN报文段中最小长度为4字节。当所述目标104接收到该报文段时,所述目标104确定其是否支持TCP-SMO。如果支持,则所述目标104分配另一个唯一连接标识符(目标CID)并使用SYN-确认(SYN-ACK)消息中的TCP-SMO向所述源102提供目标CID,如步骤504所示。在步骤506中,所述源102向所述目标104发送Sync-ACK-ACK报文段,以完成使用所述源102和所述目标104之间的TCP-SMO建立通信会话的三次握手过程。在所述源102和所述目标104处,通过源CID、目标CID、源端口和目标端口建立具有查找参数的TCB;而不是使用RFC793第2.7节中所述的源102和目标104的IP地址。

步骤508到510示出了基于已建立通信会话的源102和目标104之间的数据交换。这些数据段包括所述TCP报头中的TCP-SMO。在所述实施例中,在步骤512中,在源102处发生移动性事件,并且其IP地址从IP1更改为IP11。如果删除或修改任何IP地址(连接的路由),则可能会发生IP地址更改。根据本发明实施例,必须向TCP层通知本地栈上IP地址的任何更改。这将确保所述TCP层指示对目标104的这种更改。在这种情况下,所述TCP层被通知该更改,并且如果绑定到已删除IP地址的套接字开启了其移动性标志,则所述TCP层确定该现有连接的另一源IP地址。在这种情况下,旧IP地址和新IP地址都更新到本地TCP以识别旧连接并使TCP能够为该连接查找新的源IP(不一定是更改的IP,而是基于路由在目标IP上进行查找)。

在步骤514,所述源102发送具有新源IP地址(IP11)的数据段,其中设置所述TCP-SMO数据结构300中的M字段308中的比特以指示移动性事件,并且所述可选数据字段320包含所述源连接标识符的生成散列的校验和。对于应用程序的待处理数据,所述TCB使用新源IP地址并发送包含应用程序数据的报文段。在一实施例中,如果在移动性事件期间没有要由源发送的数据段,则利用该新IP发送TCP保活报文段或空数据包,以更新该新源IP地址的目标104。在一实施例中,可以在IP地址更改期间缓冲动态数据。例如,在一实施例中,在IP地址更改期间,发生更改的本地主机可以具有带TCP栈的握手机制,并且在此期间,可以缓冲任何接收到的数据。

在步骤516,目标104认证是否从源102接收消息(例如,通过生成的散列)。如果认证成功,则更新源102的IP地址。因为TCB不使用源102的IP地址来识别源102和目标104之间的通信会话/连接,所以可以在TCB中更新源102的IP地址而不会重置通信会话。在一实施例中,如果目标不能验证IP1将更改数据发送到了IP11,则会终止会话,这与现有行为相同。在步骤518,目标104使用源102的新IP地址(IP11)将数据发送到源102。

在所述实施例中,在步骤520中,所述目标104经历了将其IP地址由IP2更改为IP22的移动性事件。然而,如果在步骤522中,所述源102在所述目标104可以向所述源102通知移动性事件(例如,所述目标104的IP地址更改)之前将数据发送到所述目标104,则通过所述目标104的旧IP地址(即IP2)发送至所述目标104的任何数据都会丢失,并且当被告知了所述目标104的新IP地址时,所述数据将由所述源102进行重传。在步骤524中,一旦任一端点决定终止连接,无论是谁启动了套接字关闭,端点间将交换包括所述TCP-SMO的TCP-FIN消息。所述TCP-FIN消息指示数据传输结束以完成TCP连接。

图6示出了根据实施例的具有不支持的目标104的TCP-SMO的时序图600。在所述实施例中,在步骤602中,所述源102将具有TCP-SMO的TCP-SYN消息发送到所述目标104。然而,在所述实施例中,所述目标104不支持所述新TCP-SMO。因此,在步骤604中,所述目标104发送回不含TCP-SMO的SYN-ACK。在一实施例中,如果所述源102接收不含TCP-SMO的SYN-ACK消息,则在步骤606中,所述源102用于通过将不含TCP-SMO的TCP-SYN消息发送到所述目标104来恢复到建立不含TCP-SMO的传统TCP通信会话(其中,TCB使用RFC 793中指定的常规连接标识符)。在步骤608中,所述目标104发送不含TCP-SMO的SYN-ACK以确认所述TCP-SYN消息,从而建立传统TCP通信会话。

图7示出了根据本公开实施例的使用DH来提供安全TCP-SMO的通信会话的时序图700。与图5相似,步骤702、704和706示出了使用具有DH安全选项的TCP-SMO数据结构在源102和目标104之间建立安全通信会话的过程。从步骤702开始,根据DH标志中指定的分组,所述源102向所述目标104发送具有TCP-SMO和DH modP数据(长度为1024比特、2048比特)的TCP SYN消息时,所述源102和所述目标104之间的通信被启动。在一实施例中,所述TCP-SMODH标志具有非零值,并且所述源102使用的特定DH组用于生成所述ModP值。当目标104接收到该消息时,假设所述目标104支持所述TCP-SMO和DH组,则所述目标104的TCB使用所述TCP-SMO中的连接标识符而不是IP地址,并生成所述ModP值。此时,所述目标104可以计算所述DH共享密钥,所述DH共享密钥将在移动期间用作用于认证信息的对称密钥。

在步骤704中,所述目标104将具有TCP-SMO和ModP数据的SYN-ACK消息发送回所述源102。当所述源102接收到SYN-ACK消息时,所述源102还计算共享密钥,所述共享密钥将在移动期间用作用于认证信息的对称密钥。

在步骤706中,所述源102将具有TCP-SMO的SYN-ACK-ACK消息发送到所述目标104,在所述源102和所述目标104之间使用具有DH安全选项的TCP-SMO完成建立通信会话的三次握手过程。步骤708至710示出了基于已建立通信会话的源102和目标104之间的数据交换。这些数据段包括TCP报头中的TCP-SMO,但不包括DH比特。

在步骤712中,在所述源102处发生将其IP地址由IP1更改为IP11的移动性事件。在步骤714中,所述源102将包含新IP地址的数据段与TCP-SMO‘M’比特集合以及4字节可选数据发送到所述目标104。在一实施例中,所述4字节可选数据包括使用DH共享密钥计算的散列的校验和。例如,在一实施例中,所述可选数据=校验和(散列((源连接标识符+固定数据规整器),DH-共享密钥)),其中,所述固定数据规整器是0xFEFEFEFEABABABABDEDEDEDE。在一实施例中,可选数据的长度是所述校验和的前4个字节,并且待使用的散列算法是AES-128-CMAC-96。

在上述序列中,所述DH共享密钥被用作生成散列的密钥,并且常规TCP报头校验和算法用于计算所得到的散列输出的校验和。上述实施例不存在安全问题,因为生成的散列不被截断以将其保持在4字节可选数据中,而是保留该散列的4字节校验和。

当所述目标104接收具有M比特集合的上述报文段时,所述目标104计算新IP地址的散列的校验和,并将本地生成的散列与TCP-SMO中可选数据字段中发送的接收值进行比较。如果值匹配,则确保从所述源102接收移动性事件,并且所述新IP地址(例如,IP11)是正确的。响应于上述认证,所述目标104在步骤716中使用所述源102的新IP地址将TCP数据消息发送到所述源102。

上述时序图依赖于三次握手期间待发送的“数据”。在一实施例中,该数据不是应用数据,而是用于所选DH组的ModP(DH公共值)。在一些实施例中,由于该数据的大小是从1024比特(DH组-1)至2048比特(DH组-2)/200比特(椭圆曲线DH组)的任何大小,因此将其作为可选数据的一部分发送是不可能的(TCP报头中的有限选项空间)。虽然RFC 793的第3.4节指定并允许机制在TCP三次握手期间发送应用数据,但是根据一实施例,在握手完成之前不应将该“数据”发送到应用程序。因此,根据一实施例,TCP端主机栈消耗所述数据,直至完成握手过程。

图8示出了根据本发明实施例的用于为具有会话连续性的TCP传输提供移动性的方法800的流程图。在一实施例中,所述方法800可以由通信会话的任一端点发起或执行。所述方法800始于步骤802,在源节点和目标节点之间使用TCP-SMO建立通信会话。如上所述,可以通过与TCP-SMO完成三次握手(TCP-SYN、SYN-ACK和SYN-ACK-ACK)来建立通信会话。在步骤804中,所述方法800通过建立的通信会话在源节点和目标节点之间与TCP-SMO交换数据消息。在步骤806中,所述方法800维护源节点和目标节点之间的相同通信会话,以响应于使用所述TCP-SMO连接标识符的移动性事件,所述TCP-SMO连接标识符更改了源节点和/或目标节点中至少一个的IP地址。如上所述,维护相同通信会话的过程包括:发生移动性事件的设备将设备的新IP地址发送到另一端点。一旦另一端点验证所述数据,例如验证正确的IP地址以及正确的节点发送了消息,就可以使用TCP-SMO和TCB中的连接标识符来标识通信会话,并更新远程节点的IP地址,使得新通信可以通过相同的通信会话定向到新IP地址,而不必重建三次握手。

图9示出了根据实施例的一种用于为具有会话连续性的TCP传输提供无缝移动性的方法900的流程图。在一实施例中,所述方法900由源节点执行,例如,与目标节点(例如,目标104)建立通信的源节点102。在所述实施例中,在步骤902中,所述方法900发送具有TCP-SMO的TCP-SYN消息,该TCP-SMO包括从源节点到目标节点的源连接标识符,用于在源节点和目标节点之间建立通信会话。在步骤904中,所述源节点接收具有TCP-SMO的SYN-ACK消息,其中,目标连接标识符指示所述目标节点支持该TCP-SMO。在步骤906中,所述源节点向所述目标节点发送具有TCP-SMO的SYN-ACK-ACK消息,其中TCP-SMO确认接收到SYN-ACK消息,以在所述源节点和所述目标节点之间建立通信会话。所述源节点更新TCB,以使用所述源节点和所述目标节点的连接标识符来标识该通信会话。

在步骤908中,在所述源节点和所述目标节点通信会话期间,所述源节点向所述目标节点发送具有TCP-SMO的输出TCP数据。反之,在步骤910中,在所述源节点和所述目标节点通信会话期间,所述源节点从所述目标节点接收具有TCP-SMO的输入TCP数据。

在所述源节点和所述目标节点通信会话期间,在步骤912中,所述源节点确定在所述源节点处发生移动性事件。响应于该移动性事件,在步骤914,所述源节点通过源节点与源节点之间建立的通信会话,通过所述源节点的新IP地址向所述目标节点发送具有TCP-SMO的输出TCP数据,以使所述目标节点更新所述源节点的IP地址(在验证如上信息之后)。在步骤916中,所述源节点利用所述源节点的新IP地址更新所述源节点处的TCB。在所述源节点和所述目标节点通信会话期间,在步骤918中,所述源节点继续与所述目标节点进行通信,直至会话终止。

图10是根据本发明实施例的用于实现本文公开的一种或多种方法的装置1000的示意图。例如,所述装置1000可以表示源节点和/或目标节点。所述装置1000包括用于接收数据的入端口1010、用于接收数据的接收器单元(Rx)1020、处理器、逻辑单元或用于处理数据的中央处理单元(central processing unit,简称为CPU)1030、发送器单元(TX)1040、用于发送数据的出端口1050、用于存储数据的存储器1060。所述装置1000还可以包括光电(optical-to-electrical,简称为OE)组件和电光(electrical-to-optical,简称为EO)组件。所述光电组件和电光组件耦合到所述入端口1010、接收器单元1020、发送器单元1040和出端口1050,以便于光信号或电信号进出。

所述存储器1060包括一个或多个磁盘、磁带机或固态硬盘,并且可以用作溢出数据存储设备,以在选择执行这些程序时存储程序,或者在程序执行期间存储读取的指令和数据。所述存储器1060可以是易失性和/或非易失性的存储器,并且可以是只读存储器(read-only memory,简称为ROM)、随机存取存储器(random-access memory,简称为RAM)、三态内容寻址存储器(ternary content-addressable memory,简称为TCAM)或静态随机存取存储器(static random-access memory,简称为SRAM)。

所述处理器1030通过硬件、中间件、固件和软件的任何合适组合实现。所述处理器1030可以作为一个或多个CPU芯片、内核(例如,作为多核处理器)、现场可编程门阵列(field-programmable gate array,简称为FPGA)、专用集成电路(application specificintegrated circuit,简称为ASIC)或数字信号处理器(digital signal processor,简称为DSP)。所述处理器1030与入端口1010、接收器单元1020、发送器单元1040、出端口1050和存储器1060进行通信。在一实施例中,所述存储器1060包括TCP移动性模块1070。所述TCP移动性模块1070包括可执行指令,用于实现如上所述的公开实施例。所述处理器1030执行那些指令。此外,在替代方案中,所述装置1000包括用于实现所述实施例的其他部件。

因此,本发明实施例引入了TCP-SMO数据结构,所述数据结构可用于改变连接两端的TCP主机栈,包括如何查找RFC 793第2.7节中定义的TCB,然后可以用于提供无缝移动性。在一实施例中,在主机栈处完成“开放”调用时,则创建TCB。在一实施例中,在连接开启期间,可以设置标志以指示TCP-SMO的使用以及所需的附加参数。

本发明实施例优于用于TCP移动性的当前解决方案,例如,基于隧道的解决方案(例如,LISP)、基于封装的解决方案(例如,HIP和LISP)、基于转换的解决方案(例如,标识定位地址(ILA)(具有通用用户数据报协议(User Datagram Protocol,简称为UDP)封装(Generic UDP Encapsulation,简称为GUE)))和具有负载平衡选项的多个TCP连接(例如,多路径TCP(MPTCP))。例如,本发明实施例优于任何隧道、封装或具有基于转换的封装的解决方案,因为所有这些解决方案都会造成额外的开销(消息大小、校验和计算和附加层的单独处理)并且取决于网络中待升级的中间节点,而本发明实施例就不会。另外,相比本发明实施例,MPTCP需要更复杂的信令。MPTCP的其他缺点包括性能问题、拥塞控制相关问题,并且MPTCP要求主机深入了解底层网络拓扑结构以创建多条路径。

本发明实施例基于其他推荐方法还提供了几大关键的独特优点或实现方式,例如,Snoeren在https://tools.ietf.org/html/draft-snoeren-tcp-migrate-00中提出的方法。例如,Snoeren公开的方法需要在连接迁移期间进行额外的三次握手,而本发明实施例就不用。第二,Snoeren公开的方法需要使用两种单独选项:迁移许可选项和迁移选项,而本发明实施例仅使用一种移动选项。第三,Snoeren公开的安全选项限于截断椭圆曲线,而本发明实施例可以使用其他DH变体。第四,Snoeren公开的方法在TCP选项本身中发送安全数据,而本发明实施例在TCP层处理的数据部分中提供安全数据。第五,就TCP层的变化而言,在Snoeren所公开的方法中,在新三次握手之后迁移TCB,而本发明实施例依赖于连接标识符的使用。

相比现有技术,本发明实施例的其他优点包括但不限于:连续性的最小时延;移动事件更新到对等体无往返;仅需更改终端主机而不是更改网络基础架构;应用程序无法查看应用程序编程接口(application programming interface,简称为API)到TCP的变化;用户可以控制哪个会话保护移动连续性;使用已知TCP-AO或IPSec和/或使用带DH的嵌入式身份验证提供安全性以保护会话。另外,本发明实施例不受网络设备的影响(95%的路由器通过TCP选项);传输路径中的网络地址转换(Network address translation,简称为NAT)/网络地址端口转换(Network Address and Port Translation,简称为NAPT)框;并且可以用作多个基于ID协议(LISP、HIP和ILA)的数据面。

另外,在一实施例中,本发明实施例对源设备和目标设备之间的NAT/NAPT设备不会产生任何影响,因为TCB仅使用源连接标识符和目标连接标识符。此外,在移动期间,认证数据使用稳定的源标识符来验证双方的散列(即,不包括新的IP地址或端口)。

在一实施例中,因为任何新TCP选项都易于被中间框丢弃(例如,这通常适用于每个RFC 7413第7.1节的5%的TCP连接),以便在具有TCP-SMO的SYN初始超时之后处理该问题,这表明路径遇到不支持的中间框,源发送无此选项的SYN报文段(即,回退到常规TCP-SYN),从而求助于本机TCB,因此不具无缝移动性。

本发明实施例最好使用安全连接来实现,这是因为现有TCP连接可以通过更改源IP地址(连接劫持)来劫持。例如,在一实施例中,可以通过使用IP(IPsec)或传输层(TCP-AO/TCP-MD5)的安全性来实现本发明实施例,以保护包括TCP报头的TCP连接。在一实施例中,当使用TCP-AO时,TCP-SMO大小不得超过12个字节,以适应TCP-AO/TCP-MD5。在一实施例中,利用用于认证IP地址更改的TCP-AO选项,源连接标识符和目标连接标识符必须固定为4字节,每个字节为有效TCP-SMO。

在另一实施例中,通过交换DH公共值并在两端计算共享密钥,在新定义的TCP-SMO内实现TCP-SMO安全性的在线计算,所述TCP-SMO安全性可用作移动期间生成散列值的密钥(预定义算法)。在一实施例中,DH组和散列算法是预定义的,并且利用TCP-SMO实现以提供所需安全性。

根据实施例,当设备/UE(用户设备)连接到TCP服务器时,在大多数情况下,所述TCP服务器的位置不会发生改变。为了支持设备/UE移动性,在一实施例中,必须更新所述服务器TCP栈以支持TCP-SMO。在一实施例中,在服务器侧减少该更新的一种方式是通过使用TCP服务器代理来实现TCP-SMO。

本文公开的某些实施例可被视为现有基于ID的协议(即,具有相应控制面协议的LISP(RFC 6830)或HIP(RFC 7401))的潜在“数据面”替换物。本发明实施例未对现有基于标识符的协议的控制面指定任何改变。然而,现有基于标识符的协议将会限制本文提出的“数据面”的使用(例如,限制TCP-SMO中的标识符的长度(可变,最大为16字节))。

本文公开的某些实施例可以与基于新标志的公共控制面协议一起使用,例如但不限于“https://tools.ietf.org/html/draft-padma-ideas-problem-statement-01”中指定的那些协议,用于为使用TCP传输的应用程序提供“数据面”解决方案,其全部内容并入本文本中。在某些实施例中,基于UDP的应用程序可以使用具有快速UDP网络连接(Quick UDPInternet Connections,简称为QUIC)协议的移动性解决方案,该协议使用相同的工作流程。

此外,如上所述,根据一实施例,如果TCP-SMO不存在,则TCP连接继续识别具有RFC793中规定的连接标识符的TCB。因此,根据本发明实施例,支持根据RFC 793识别连接/TCB的旧方法和在TCP-SMO中具有连接标识符的所提出实施例。例如,在一实施例中,可以通过维护两个单独的TCB或通过协调密钥来访问现有TCB来支持这两种方法。

虽然本公开提供多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离本文公开的精神和范围。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于提供统一交易接口的适配器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类