CN111788817A - 传输控制协议之间的转换 - Google Patents
传输控制协议之间的转换 Download PDFInfo
- Publication number
- CN111788817A CN111788817A CN201980016411.0A CN201980016411A CN111788817A CN 111788817 A CN111788817 A CN 111788817A CN 201980016411 A CN201980016411 A CN 201980016411A CN 111788817 A CN111788817 A CN 111788817A
- Authority
- CN
- China
- Prior art keywords
- mptcp
- packet
- transmission control
- control protocol
- tcp
- 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.)
- Pending
Links
Images
Classifications
-
- 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/14—Multichannel or multilink protocols
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/08—Protocols for interworking; Protocol conversion
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种用于将第一传输协议的分组转换为第二传输控制协议的分组的方法和装置,其中第一传输控制协议和第二传输控制协议中的一者是多径传输控制协议(MPTCP),并且另一者是传输控制协议(TCP),其中转换包括:获取在第一分组的第一报头元素中指示的序列号,以及将所获取的序列号复制到第二分组的第二报头元素中。
Description
技术领域
本发明涉及通信。
背景技术
在现代网络中,数据传输容量需求在将来继续增加。已经提出了用于增加容量的不同解决方案。一种解决方案是使用所谓的多径传输控制协议(MPTCP),该协议利用多个TCP子流。但是,并非所有设备都支持MPTCP,并且因此需要提供使得系统能够同时利用MPTCP和TCP设备两者的解决方案。
发明内容
根据一个方面,提供了独立权利要求的主题。
一些实施例在从属权利要求中被定义。
在附图和以下描述中更详细地阐述了实现的一个或多个示例。根据说明书和附图以及权利要求书,其他特征将很清楚。
附图说明
在下文中,将参考附图描述一些实施例,在附图中
图1A、图1B、图1C和图1D示出了可以将实施例应用于其的示例系统;
图2示出了根据实施例的流程图。
图3A、图3B、图3C、图3D、图3E、图4A、图4B、图4C、图4D、图4E示出了一些实施例;
图5示出了根据实施例的信号图;
图6和图7示出了根据一些实施例的流程图;以及
图8示出了实施例。
具体实施方式
例示了以下实施例。尽管说明书可以在文本的若干位置引用“一”、“一个”或“一些”实施例,但是这并不一定表示每个引用都指向相同的(多个)实施例,也不一定表示特定特征仅适用于单个实施例。不同实施例的单个特征也可以被组合以提供其他实施例。
所描述的实施例可以在无线电系统中实现,诸如以下中的至少一项:全球微波接入互操作性(WiMAX)、全球移动通信系统(GSM,2G)、GSM EDGE无线电接入网(GERAN)、通用分组无线电服务(GPRS)、基于基本宽带码分多址(W-CDMA)的通用移动电信系统(UMTS,3G)、高速分组接入(HSPA)、长期演进(LTE)和/或高级LTE。
合适的通信系统的另一示例是5G概念。5G可能会使用多输入多输出(MIMO)技术(包括MIMO天线)、比LTE(所谓的小小区概念)更多的基站或节点,包括与较小的站点协同操作的宏站点并且也许还采用各种无线电技术来获取更好的覆盖范围和更高的数据速率。5G可能包含不止一种无线电接入技术(RAT),每种技术都针对某些使用情况和/或频谱进行了优化。5G移动通信将具有更广泛的使用情况和相关应用,包括视频流、增强现实、不同方式的数据共享、以及各种形式的机器类型应用,包括车辆安全性、不同的传感器和实时控制。预期5G将具有多个无线电接口,即低于6GHz、cmWave和mmWave,并且还与诸如LTE等现有传统无线电接入技术集成。与LTE的集成可以至少在早期阶段被实现为系统,在该系统中,由LTE提供宏覆盖并且5G无线电接口接入通过聚合到LTE而来自小小区。换言之,计划5G支持RAT间可操作性(诸如LTE-5G)和RI间可操作性(无线电接口间可操作性,诸如低于6GHz(cmWave)、低于6GHz(cmWave-mmWave))两者。被认为在5G网络中使用的概念之一是网络切片,其中可以在同一基础设施中创建多个独立且专用的虚拟子网(网络实例)以运行对时延、可靠性、吞吐量和移动性具有不同要求的服务。应当理解,未来的网络将最有可能利用网络功能虚拟化(NFV),这是一种网络架构概念,其建议将网络节点功能虚拟化为可以在操作上连接或链接在一起以提供服务的“构建块”或实体。虚拟化网络功能(VNF)可以包括使用标准或通用类型服务器而非定制硬件运行计算机程序代码的一个或多个虚拟机。也可以利用云计算或云数据存储。在无线电通信中,这可能表示节点操作要至少部分在操作上耦合到远程无线电头的服务器、主机或节点中执行。节点操作也可以分布在多个服务器、节点或主机之间。还应当理解,核心网操作与基站操作之间的劳动分配可以不同于LTE的劳动分配,或者甚至不存在。要使用的一些其他技术进步是软件定义联网(SDN)、大数据和全IP,它们可能会改变网络的构建和管理方式。
图1A和图1B示出了可以将实施例应用于其的无线系统的一些示例。参考图1A,无线通信网络(诸如长期演进(LTE)、第三代合作伙伴计划(3GPP)的高级LTE(LTE-A)、WLAN或预测的未来的5G解决方案)通常包括提供至少一个小区(诸如小区104)的至少一个网络元件(诸如网络元件102)。在图1A的示例中,示出了小区104、114。例如,小区114可以由网络元件112提供。小区104可以由网络元件102提供。但是,无线无线电系统的网络元件可以提供一个以上的小区。因此,例如,网络元件102可以提供小区104和小区114。通常,该系统可以包括一个或多个网络元件,其中每个网络元件提供一个或多个小区,该一个或多个小区向该小区中的一个或多个终端设备提供服务。
无线电通信网络的每个小区可以是例如宏小区、微小区、毫微微或微微小区,这表示每个上述小区可以有一个或多个。无线电通信网络的每个网络元件(诸如网络元件102、112)可以是如LTE和LTE-A中的演进型节点B(eNB)、如UMTS中的无线电网络控制器(RNC)、如GSM/GERAN中的基站控制器(BSC)、或者能够控制无线通信并且管理一个或多个小区内的无线电资源的任何其他装置。也就是说,每个上述装置或实体可以有一个或多个。
对于5G解决方案,实现可以类似于LTE-A,如上所述。例如,网络元件102、112可以是(多个)基站或(多个)小型基站。在通信网络中有多个eNB的情况下,eNB可以利用如LTE中指定的X2接口连接。取决于实现和所使用的(多个)无线电通信协议,网络元件之间的其他通信方法也是可能的。
该无线系统还可以包括一个或多个网络元件102、112可以向其提供通信服务的至少一个终端设备110。小区104、114可以为至少一个终端设备110提供服务,其中至少一个终端设备110可以位于或被包括在小区104、114中的至少一个中。至少一个终端设备110可以使用(多个)通信链路132、142与网络元件102、112通信,(多个)通信链路132、142可以被理解为用于端到端通信的(多个)通信链路,其中源设备向目的地设备传输数据。至少一个终端设备110可以包括移动电话、智能电话、平板计算机、膝上型计算机、机器类型通信(MTC)设备、以及被用于与无线通信网络通信的其他设备。
仍然参考图1A,除了一个或多个蜂窝网络元件(例如,网络元件102),无线系统还可以包括一个或多个接入点(AP)112。也就是说,通常,例如,无线系统可以包括一个或多个eNB 102和一个或多个AP 112。(多个)AP 112可以根据(多个)无线通信协议(诸如根据WLAN规范和/或蜂窝通信规范)提供无线通信。也就是说,例如,AP 112可以充当常规WLAN AP,和/或充当用于提供与蜂窝网络的一个或多个网络元件102的聚合通信的AP。WLAN有时可以称为Wi-Fi或WiFi。
在无线系统中利用至少两种不同的技术可以使得终端设备110能够使用到上行链路和/或下行链路方向的至少两个不同的通信链路132、142来与无线系统通信。然而,通信路径可以利用相同的通信技术(例如,蜂窝式)。这样的一个示例可以是所谓的IETF标准化多径传输控制协议(MPTCP),MPTCP可以被用于将多种无线电接入技术(例如,LTE和WiFi)的容量聚合到单个数据流(例如,WebEx)和这样可以提高用户体验的质量。在这种情况下,链路132、142可以被理解为MPTCP连接或会话的子流132、142。
参考图1B,支持MPTCP的终端设备110(也简称为支持MPTCP的用户设备(UE)110或MPTCP-UE 110或简称为UE 100)可以使用两个不同的通信路径132、142与无线通信系统通信。例如,通信路径之一可以利用蜂窝接口,而另一通信路径可以利用WiFi接口,这两种接口都可以由UE 110的通信电路系统来支持。在该示例中,MPTCP可以具有两个子流,即,经由路径132和经由路径142。但是,内容提供者170(例如,WebEx)可以仅支持基于TCP的通信,而不支持基于MPTCP的通信,而基于MPTCP的通信可能具有多个TCP子流,如上所述。因此,例如,该系统可以利用所谓的MPTCP/TCP代理150,在UE 110和经由互联网160可访问的内容提供者170之间,该MPTCP/TCP代理150可以被配置为将MPTCP流改变为TCP流,反之亦然。本质上,特定MPTCP代理150可以被用于将多径MPTCP流132、142转换或变换(translate)为单径TCP流152,因为内容提供者170可能不直接支持MPTCP流132、142。这样的解决方案还可以通过仅使用每个个体流的复杂的全状态多分组分析独立生成MPTCP和TCP分组来将TCP流转换为MPTCP流。结果是,常规MPTCP/TCP代理(例如,代理150)可能无法在UE和用户的可实现容量和/或所支持的数目方面扩展。
在图1C的示例中可以示出所使用的基于MPTCP代理150的解决方案的一个示例。UE110可以利用MPTCP流与仅TCP内容服务器170(即,仅支持TCP而不支持MPTCP的内容提供者)通信。这可以通过在服务器170与网络地址变换(NAT)180(例如,云边缘NAT 180)之间使用代理150来实现。通常,NAT的使用使得能够将第一类型的互联网协议(IP)地址变换为第二类型的IP地址,反之亦然。例如,可以基于在NAT 180处的关系表将专用网络IP地址改变为公共IP地址。因此,基本上,代理150可以从NAT 180接收MPTCP流,并且将这些流改变为可以由服务器170处理的TCP流。另一方面,代理150可以将TCP流作为输入并且向NAT 180提供MPTCP子流(例如,两个流),MPTCP子流可以根据NAT 180处的路由指令还被转发给UE 110。例如,代理150可以是虚拟机(例如,Linux虚拟机,其处理MPTCP与TCP之间的有效载荷数据的转换)。
该方法可能存在一些缺点:首先,该解决方案可能需要大量资源并且非常复杂,因为代理150可能需要在连接的两侧(例如,132、142和152)实现包括(MP)TCP拥塞控制在内的完整协议功能性。第二,可能需要先将分组路由到MPTCP/TCP代理150,对其进行处理,并且然后将其路由到服务器170。这可能导致附加延迟,因为所有业务可能都需要通过代理150。第三,为了在变化的业务负载强度下实现服务扩展,可能需要将代理150实现为负载均衡器将入口业务分配给其的一组虚拟代理实例。但是多连接性负载均衡可能很困难,并且可能需要附加的基础设施(即,另外的云计算资源),因为负载均衡器可能需要识别属于同一MPTCP连接的TCP子流(例如,使用路径132、142的流)并且将它们映射到同一代理虚拟机。
因此,提供了一种可以被用于实现MPTCP/TCP转换以实现具有MPTCP能力的设备与不具有MPTCP能力的设备之间的通信的解决方案。这样的一个示例在示出实施例的图1D中示出。参考图1D,NAT 180可以获取MPTCP连接192的子流。NAT 180可以包括被配置为将MPTCP连接192的子流转换为单个TCP连接194的MPTCP/TCP转换或变换功能182。因此,可能不再需要代理150,并且因此可以在没有代理150的情况下直接在NAT 180与服务器170之间配置TCP连接。这至少可以减少无线通信系统中的时延。还应当指出,可以向另一方向执行转换,即,从TCP连接194转换为MPTCP连接192的多个子流。也就是说,MPTCP/TCP转换功能182可以将MPTCP流转换为TCP流,并且反之亦然,如下面将更详细地讨论的。例如,MPTCP连接192可以将连接132和142用于子流。
图2示出了根据示例实施例的流程图。参考图2,用于在支持MPTCP的设备与不支持MPTCP的设备之间转发分组的网络元件从以第二设备为目标的第一设备接收第一传输控制协议的第一分组(框210);将第一分组转换为第二传输控制协议的第二分组,其中第一传输控制协议和第二传输控制协议中的一者为MPTCP,而另一者为TCP(框220);并且向第二设备传输或转发(框230)经转换的第二分组。
框220中的转换还可以包括:通过所述网络元件获取在第一分组的第一报头元素(报头元素也可以称为报头字段)中指示的序列号(框222),并且通过所述网络元件将所获取的序列号复制到第二分组的第二报头元素中(框224)。
执行图2的步骤和下面描述的实施例的网络元件可以是或者可以实现MPTCP/TCP转换器或变换器功能,诸如MPTCP/TCP转换器VNF。然而,所述网络元件可以是被配置为执行所述功能的物理装置(例如,稍后将更详细讨论的网络元件400)。根据示例实施例,所述网络元件是NAT 180或某个其他NAT或者被包括在其中。因此,例如,NAT 180可以实现所提出的解决方案的功能,并且代理150的使用可以被避免。
在MPTCP与TCP之间进行转换也可以被表示为在多径TCP与非多径TCP(即,单径TCP)之间进行转换。因此,在本说明书的上下文中,TCP可以被理解为单径TCP,而MPTCP可以被理解为多径TCP(即,支持多于单个路径或单个子流)。因此,MPTCP和TCP在逻辑上可以不同。
根据一个实施例,第一报头元素在逻辑上与第二报头元素不同。这可能仅表示,序列号是从与序列号被复制到的报头元素(即,第二报头元素)不同的报头元素(即,第一报头元素)获取的。因此,序列号是从包括要转换的分组的序列号的报头元素获取的,并且被复制到另一报头元素以指示序列号。基本上,可以根据实现从不同的选项中进行选择。但是,稍后将描述一些特定示例。还应当注意,尽管报头元素或字段在逻辑上可以不同,但是至少在它们都被配置为以一种形式或另一种形式携带序列号方面,它们可以是相似的。然而,逻辑上的不同可以是指从序列号字段获取的序列号没有被复制到另一分组的同一序列号字段,而是被复制到所述另一分组的另一字段的情况,这将在后面更详细地公开。
图3A、图3B、图3C、图3D和图3E示出了一些示例实施例。图3A示出了第一分组310到第二分组320的转换,其中在该示例中,第一分组310是TCP分组,第二分组320是MPTCP分组。因此,NAT180可以从非MPTCP设备(诸如从服务器170)接收第一分组310。第一分组310可以包括互联网协议(IP)报头312、TCP报头314和数据有效载荷316。数据有效载荷部分316在第一分组是控制分组的情况下可以不必使用。然而,在第一分组是数据分组的情况下,数据有效载荷部分316可以被用于携带数据。由NAT 180进行的转换可以包括将TCP报头314的信息元素复制到第二分组320的报头的信息元素中。在该示例中,来自TCP报头314的信息(不一定是所有信息,而是可以是一些信息)可以被复制到第二分组的MPTCP报头324。数据有效载荷326可以与数据有效载荷316基本相同。IP报头322可以取决于路由标准而改变。以最简单的形式,将第一分组310转换为第二分组320可以包括将信息从TCP报头314复制到同一报头314的某个其他元素中。这可以在逻辑上生成另一数据分组(即,第二数据分组320)。但是,如果需要,可以利用更复杂的转换。还应当指出,尽管示出了从TCP分组到MPTCP分组的转换,但是可以执行从MPTCP分组到TCP分组的转换。
图3B示出了根据一个实施例的分组(例如,第一分组310和/或第二分组320)的报头的更详细的结构。报头可以包括用于以下各项的字段或元素:源端口号332(例如,2个字节)、目的地端口号334(例如,2个字节)、序列号336(例如,4个字节)、确认号338(例如,4个字节)、数据偏移342(例如,4个比特)、保留344(例如,3个比特)、标志346(例如,9个比特)、窗口大小348(例如,2个字节)、校验和352(例如,2个字节)、紧急指针354(例如,2个字节)、和/或可选数据360(例如,0-40个字节)。
关于TCP分组,序列号元素336(也可以称为序列号元素)可以包括和/或指示TCP分组序列号。例如,传输器(例如,非MPTCP设备)可以生成TCP分组并且在元素336中指示TCP分组的序列号。因此,当NAT 180接收到所述分组以进行转发时,NAT 180可以从元素336获取序列号。
关于MPTCP分组,可选数据360可以包括数据序列信号DSS选项元素362,如图3C的示例所示。所述MPTCP DSS选项元素362可以包括MPTCP数据序列号(DSN)字段或元素364和/或MPTCP子流序列号(SSN)字段或元素366。MPTCP DSS选项元素362可以被用于指示当例如MPTCP-UE 110利用MPTCP时MPTCP分组的序列号。
因此,应当注意,TCP分组和MPTCP分组关于其报头元素或字段方面也可以非常相似。与TCP分组相比,MPTCP分组可以至少包括MPTCP DSS选项元素362以指示(多个)MPTCP序列号。
参考图3B,端口号可以作为本机NAT(native NAT)操作的一部分来处理,并且因此MPTCP/TCP变换功能可以忽略它们。因此,MPTCP/TCP变换可以主要包括使单流TCP序列号与MPTCP DSS选项中的数据序列号相关。由于从应用层的角度来看这两个累积指示符是等效的,因此可以在原始(即,初始)数据传输和重传中使用简单复制(例如,一对一映射)。
因此,根据一个实施例,第一报头元素是DSS选项元素362和序列号元素336中的一者,并且第二报头元素是所述元素362、336中的另一者。例如,如果第一分组是TCP分组,并且需要将其变换或转换为MPTCP分组,则在元素336中指示的TCP分组的序列号可以被复制到MPTCP DSS选项元素362中。更具体地,序列号(即,从报头的序列号元素或字段获取的)可以被复制到MPTCP DSN元素364中。如果第一分组是需要被转换或变换为TCP分组的MPTCP分组,则MPTCP DSN元素364的内容(即,序列号)可以被复制到TCP分组的序列号元素336中。一旦执行了复制,就可以将所生成和/或变换的第二分组传输给目标设备。
关于TCP和/或MPTCP分组的某些其他元素或字段,在执行从TCP分组到MPTCP分组的转换时,可以应用以下规则(和/或反之亦然):
-标志346和时间戳选项可以被直接复制而无需任何修改;
-窗口大小348——服务器侧TCP(即,非MPTCP设备)接收器窗口(RWND)被公告为所有MPTCP子流的总和,或者被公告为跨MPTCP子流的最小/最大RWND乘以活动MPTCP子流的数目。如果需要超出默认的16比特范围的TCP RWND缩放比例,则可以使用标准的TCP窗口缩放比例选项。但是,最大分段大小可能无法被改变以避免IP片段;
-校验和352——该值可以作为本机NAT操作的一部分而针对每个分组被重新计算,并且MPTCP/TCP转换/变换功能可以故意忽略该元素。因此,尽管该值可以重新计算,但是执行重新计算的实体可以是NAT,而不是MPTCP/TCP转换/变换功能;和/或
-选择性确认(SACK)——通常,NAT可以基于MPTCP/TCP变换逻辑(即,MPTCP DSS-vs-TCP SEQ映射)来将连接级MPTCP SACK变换为TCP级SACK。
因此,根据示例实施例,除了将序列号从一个字段复制到另一字段以生成经转换或变换的分组,网络元件(例如,网络元件400)还将一个或多个不同的报头字段或元素(或简单地是它们的内容)复制到经变换或转换的分组的报头。上面给出了很多示例。在复制所有需要复制的报头字段之后,网络元件可以(重新)计算分组的校验和,并且将其复制到经变换或转换的分组(即,第二分组)的报头中的校验和字段或元素。因此,可以将第一分组的两个或更多报头字段或元素复制到第二分组的报头中。
图3D示出了从TCP分组到MPTCP分组的转换或变换370。转换370包括将TCP分组的序列号元素336的序列号复制到所生成的MPTCP分组的MPTCP DSN元素364中。因此,在该示例中,序列号是874,它从一个报头元素被复制到另一报头元素。在图3E中,示出了相反的转换或变换390,即,从MPTCP分组到TCP分组:MPTCP DSN元素364可以被复制到所生成的TCP分组的序列号元素336(即,序列号876)。
关于MPTCP分组,序列号元素336可以被用于指示TCP序列号。MPTCP可以利用两个或更多TCP子流,并且因此TCP序列号可以被指示。
关于MPTCP分组,MPTCP SSN元素366可以被用于指示MPTCP子流序列号。
根据一个实施例,将第一分组转换为第二分组还包括:在将所获取的序列号复制到第二报头元素中之后,重新计算第二分组的校验和352。也就是说,由于复制序列号可能会改变分组的结构,因此可能需要重新计算校验和。也就是说,在不进行重新计算的情况下,接收器可以在不重新计算校验和的情况下确定由于某些数据的改变而损坏了分组。校验和352因此可以被用来验证分组已经被正确地传送。校验和352可以包括IPv4和TCP校验和,或者如果使用IPv6,则仅包括TCP校验和。例如,IPv4校验和可以基于IP报头数据来计算,并且TCP校验和可以基于TCP有效载荷以及TCP报头(所谓的伪报头)的所选择的字段来计算。此外,在复制所有需要的报头字段或元素之后,可以重新计算校验和。
图4A示出了根据实施例的信号图。参考图4A,示出了MPTCP设备410(例如,UE110)、网络元件400(例如,执行图2的步骤的装置,诸如NAT 180)和非MPTCP设备420(例如,非MPTCP或仅TCP服务器计算机,诸如服务器170)。
在框432中,MPTCP设备410传输以非MPTCP设备420为目标的MPTCP分组。MPTCP设备410可能不具有关于设备420为非MPTCP设备的信息,并且因此它可以使用MPTCP传输。网络元件400可以接收MPTCP分组,并且在框434中,检测/确定设备420不是MPTCP设备。该检测可以基于先前从设备420获取的信息。在检测到设备420是非MPTCP设备之后和/或响应于检测到设备420是非MPTCP设备,网络元件400可以发起将MPTCP分组转换(框436)为TCP分组,如上面更详细地讨论的。一旦分组已经被转换(即,在逻辑上从MPTCP分组被转换为TCP分组),则TCP分组就可以被转发给非MPTCP设备420(框438)。
反之亦然,非MPTCP设备420可以传输以MPTCP设备410为目标的TCP分组(框442)。在框444中,网络元件400可以检测/确定目标设备410支持MPTCP和/或已经与网络元件400或与网络元件400被包括在其中的实体建立了MPTCP会话。例如,可以在MPTCP设备410与包括网络元件400的NAT 180之间建立包括两个或更多子流的MPTCP会话。在检测到设备410是MPTCP设备和/或存在活动MPTCP会话之后和/或响应于检测到设备410是MPTCP设备和/或存在活动MPTCP会话,网络元件400可以发起将TCP分组转换(框446)为MPTCP分组,如上面更详细地讨论的。一旦已经生成了MPTCP分组,就可以经由MPTCP会话的MPTCP子流之一将MPTCP分组转发给MPTCP设备410。
例如,MPTCP会话可以至少利用连接132和142来指代MPTCP连接192(例如,一个是蜂窝的,诸如LTE,而一个是WiFi连接)。也就是说,MPTCP会话也可以称为MPTCP连接192,该MPTCP连接192包括在多个连接132、142上的多个子流。
需要指出,该解决方案不需要转换TCP分组和MPTCP分组两者,而是可以实现这两种转换,如上所述。
在更仔细地观察图4B、图4C、图4D和图4E的实施例之前,参考示出信号图的图5来讨论一些示例实施例。
根据参考图5的实施例,如果多个MPTCP子流在第一设备与第二设备之间的连接中由第一设备或第二设备利用,则网络元件400被配置为触发534将第一分组转换为第二分组。因此,例如,如果第一设备是MPTCP设备410并且MPTCP设备410已经在与非MPTCP设备420的连接中建立了至少两个MPTCP子流,则网络元件400可以在连接中将TCP分组转换为MPTCP分组和将MPTCP分组转换为TCP分组。然而,如果多个MPTCP子流在第一设备与第二设备之间的连接中没有由第一设备或也没有由第二设备利用,则可以根据TCP在第一设备与第二设备之间转发分组,而无需执行转换534(即,在MPTCP设备410与非MPTCP设备420之间)。因此,例如,如果仅建立一个MPTCP流,则可以不执行转换,并且可以简单地根据TCP转发规则来转发520分组。使用这种方法还可以节省资源,因为可以响应于具有一个以上的MPTCP子流而触发MPTCP/TCP转换,在这种情况下,可能不需要执行转换。也就是说,一个MPTCP子流实质上可以是或等于TCP流。
参考图5,根据示例实施例,网络元件400还被配置为从第一设备(即,MPTCP设备410)向第二设备(即,非MPTCP设备420)转发消息,该消息指示对建立第一MPTCP子流的需要。在图5中,所接收的消息可以被指示为TCP SYN 502,所转发的消息可以被指示为TCPSYN 504。因此,可以利用简单转发。TCP SYN 502和504可以包括第一MPTCP密钥和关于设备410支持MPTCP的指示。网络元件400可以使存储关于设备410是支持MPTCP的设备的指示。
应当指出,网络元件400不必转发消息,而是执行MPTCP与TCP之间的变换/转换。例如,转发可以由单独的NAT执行。但是,这两种功能性可以由同一逻辑实体或设备执行,并且因此,为简单起见,图5中仅示出了网络元件400。如上所述,例如,网络元件400可以是NAT180或者被包括在其中。
网络元件400可以接收来自第二设备的、去往第一设备的指示第二设备不支持MPTCP的响应消息(例如,TCP SYN确认(ACK)506)。例如,TCP SYN ACK 506可以指示设备420不支持MPTCP(即,是仅TCP设备)。
在接收到响应消息(例如,TCP SYN ACK 506)之后,网络元件400可以防止将所述响应消息转发给第一设备,并且存储关于第二设备不支持MPTCP的指示(框512)。因此,由于所述消息指示设备420不支持MPTCP,所以TCP SYN ACK 506可以不被转发给MPTCP设备410。
在514中,网络元件400可以向第一设备传输关于第一MPTCP子流的确认;并且在第一设备与第二设备之间转发分组时利用所述指示(即,框512)。更准确地,在框508中,网络元件400可以检测到设备420是非MPTCP设备,并且在框510中,代表非MPTCP设备420生成第二密钥(例如,MPTCP密钥)。第二密钥可以在响应消息(例如,TCP SYN ACK 514)中被传输给MPTCP设备410。响应消息还可以指示支持MPTCP。因此,MPTCP设备410可以变为意识到可以在与非MPTCP设备420的连接中使用MPTCP。MPTCP设备410还可以用TCP ACK 516进行响应,该ACK 516还可以被转发(即,518)到非MPTCP设备420。TCP ACK 516、518可以包括另一密钥或第一密钥和第二密钥的组合。因此,通过防止转发消息506并且代表非MPTCP设备420生成第二密钥,网络元件400可以使得非MPTCP设备420能够与MPTCP设备410通信。
如所讨论的,如果仅添加一个MPTCP子流,则会话可以被标记为需要MPTCP/TCP转换(框512)。一旦添加至少一个其他MPTCP子流(即,至少两个并行MPTCP子流),就可以触发转换。因此,在520中,可以在没有分组转换过程的情况下由网络元件400在第一设备(即,MPTCP设备410)与第二设备(即,非MPTCP设备420)之间转发分组以进行正常NAT操作。
根据示例实施例并且参考图5,网络元件400(或更一般地是NAT)还可以从第一设备(即,MPTCP设备410)接收指示需要建立第二MPTCP子流的消息(例如,TCP SYN 522);至少基于所存储的、第二设备不支持MPTCP的指示来向第一设备传输关于第二MPTCP子流的确认(例如,TCP SYN ACK 530)(参见框512);并且至少基于第一MPTCP子流和第二MPTCP子流的使用来触发将从第一设备到第二设备的MPTCP分组转换为TCP分组,并且将从第二设备到第一设备的TCP分组转换为MPTCP分组(MPTCP/TCP转换534)。
因此,更精确地,在框524中,网络元件400可以基于先前做出的关于设备420的指示来检测到设备420是非MPTCP设备(参见框512)。因此,网络元件400可以不将TCP SYN 522转发给设备420,而是代表设备420生成第四MPTCP密钥。TCPSYN 522可以包括第三MPTCP密钥。在框528中,网络元件400可以将第二子流添加到会话中(即,现在包括第一MPTCP子流和第二MPTCP子流两者)。因此,534的转换过程可以开始。网络元件400可以通过传输消息530来对会话的第二子流添加进行ACK,MPTCP设备410可以利用TCP ACK 532来响应。
响应于从MPTCP会话中删除子流,如果会话中仅存在一个MPTCP子流或者会话中不存在多个MPTCP流,则网络元件400停止转换操作(即534)。因此,转发可以根据常规TCP规则(即,520)开始。
根据一个实施例,网络元件400被称为MPTCP/TCP转换器或变换器。
因此,在图5中,在框502-518中指示第一MPTCP流建立,并且在框522-532中指示第二MPTCP流建立。在第二流被建立之前,网络元件300可以如箭头520所示经由常规TCP规则转发MPTCP分组。一旦第二子流被添加到MPTCP设备410与网络元件400之间的MPTCP会话中,则网络元件可以如箭头534所示开始MPTCP/TCP转换。MPTCP设备410与网络元件400之间的会话实际上可以是指MPTCP设备410与非MPTCP设备420之间的会话。但是,由于非MPTCP设备不能通过利用MPTCP进行操作,因此可以将MPTCP会话理解为建立在MPTCP设备410与网络元件400之间,而在网络元件400与非MPTCP设备42之间建立正常或常规TCP会话。这使得非MPTCP设备420能够与MPTCP设备410通信。与传统MPTCP/TCP代理(例如,代理150)不同,可能不需要实现TCP拥塞控制、流控制、重传和/或其他机制。因此,如上所述的简单报头复制就足够了。
然后,仔细观察图4B至图4E,图4B至图4E示出了转发和转换在设备410和420之间传输的TCP和/或MPTCP分组。首先观察图4B,非MPTCP设备420(例如,服务器)向MPTCP设备410传输具有序列号的TCP分组A、B、C和D。如上所述,网络元件400可以充当非MPTCP设备420与MPTCP设备410(例如,客户端)之间的路由器(例如,NAT)。TCP分组A、B、C和D利用TCP序列号(TCP SEQ#,例如字段或元素336)编号,并且网络元件400可以在生成MPTCP设备子流的TCP报头时将这些编号直接复制到MPTCP DSS选项362的MPTCP DSN元素364中。根据MPTCP标准,MPTCP DSS选项还可以指示被用于重构被传递到应用层的原始数据流的子流序列号(即,MPTCP SSN#(即,MPTCP SSN号))。然后,将该MPTCP DSS选项362嵌入到子流TCP分组的报头中,该子流TCP分组的TCP序列号(TCP SEQ#)是与MPTCP SSN无关地选择的。子流TCP分组是指经由子流之一传输的MPTCP分组。由于根据MPTCP标准,TCP序列号仅具有本地子流重要性,因此网络元件可以重用否定确认的序列号。
在图4B至4E的示例中,MPTCP分组(或子流TCP分组)被指示为经由两个不同的子流来传输。但是,可以使用两个以上的子流。MPTCP分组如下所示:TCP序列号336:MPTCP SSN366/MPTCP DSN 364。因此,例如,具有序列号B的TCP分组被变换或转换为具有TCP序列号100、SSN=2和DSN=B的MPTCP分组。该逻辑适用于在图4B至图4E中指示的所有分组。
网络元件400未能成功接收到具有序列号A的分组(或简称为分组A)。因此,网络元件400只能转换分组B、C和D。MPTCP分组100、101和200的TCP序列号例如可以任意选择。例如,用于MPTCP分组100、101和200的SSN可以任意选择。然而,如上所述,TCP分组TCP序列号可以被直接复制到DSN元素或字段。
在图4B中,网络元件400将经变换的分组B、C和D转发给未成功接收到分组B的MPTCP设备410。可以如箭头所示经由两个MPTCP流来传输分组。注意,由于未成功接收到分组A,所以此时根本不转发分组A。根据一个实施例,网络元件400不请求重传。也就是说,网络元件400可以仅执行路由和转换操作。
根据一个实施例,网络元件400执行重传请求。也就是说,网络元件400还可以代表目标接收器(例如,设备410)主动请求重传在设备420与网络元件400之间的连接上丢失的数据(例如,而不由设备410转发相同类型的任何后续请求)。以类似的方式,网络元件400可以高速缓存所转发的数据并且代表服务器进行重传。两种技术都可以减少端到端重传延迟,并且在TCP机制下,还可以提高整体吞吐量。
在图4C中,MPTCP设备410经由两个不同的子流确认所接收的分组B和D。分组可以例如经由被用于传输分组的同一子流来确认。但是,可以利用不同的子流。网络元件400可以将确认转发给非MPTCP设备420。因此,非MPTCP设备420可以意识到分组A和B需要被重传,因为它们没有被MPTCP设备410接收到。ACK也可能需要从MPTCP分组变换/转换为TCP分组。也就是说,例如,ACK可以是没有有效载荷的MPTCP和TCP分组。
在图4D中,非MPTCP设备420可以重传分组A和B。此外,A和B的重传还可以包括传输一个或多个新分组,诸如分组E。网络元件400可以将所述分组转换为MPTCP分组并且将它们转发给设备410。如图所示,由于在图4B中未成功接收到分组B,因此TCP序列号100被重用。而且,数字100现在用于分组A,并且数字102被用于分组B。因此,根据一个实施例,MPTCP分组可以重用否定确认的TCP序列号。
在图4E中,MPTCP设备410可以确认所接收的分组A、B和E,并且ACK可以再次被转换并且作为TCP分组转发给设备420。
根据一个实施例,响应于将经转换的分组传输给MPTCP设备410,从MPTCP设备410接收关于经转换的分组的确认或否定确认;并且响应于根据MPTCP接收到确认或否定确认,将确认或否定确认转发给非MPTCP设备420,其中在转发之前将确认或否定确认转换为TCP分组。反之亦然,相似的逻辑可以应用,即,在将TCP ACK或NACK转发给MPTCP设备420之前,将其转换为MPTCP ACK或NACK。
根据一个实施例,网络元件400从多个MPTCP子流中选择MPTCP子流以用于传输经转换的分组。例如,网络元件400可以选择用于传输分组B的子流132或142、以及用于传输分组C的另一子流。例如,这在理论上与重传发生在哪个路径或子流上无关。这将允许MPTCP/TCP变换功能的完全无状态操作。然而,取决于部署方案,网络元件400可以选择在原始子流上重传数据(例如,在存在重播旧数据和/或拒绝具有序列号孔的子流的中间盒的情况下,保留子流完整性),其中在这种情况下,可以维持基本的分组到流计费。因此,可以经由最初传输分组B的同一子流来重传分组B。但是,可以不同地选择重传路径,即,不同的子流。
根据一个实施例,基于对所述子流的一个或多个测量来在多个子流中选择用于传输经转换的分组的MPTCP子流,以转发该分组。替代和/或附加标准可以包括分组优先级信息。也就是说,具有较高优先级的分组可以经由第一子流来传输,并且具有较低优先级的分组可以经由第二子流来传输,其中与第二子流相比,例如基于(多个)所述测量,第一子流被确定为更可靠。因此,例如,具有较低优先级的(多个)分组可以经由不太可靠的子流来传输。
根据一个实施例,所述一个或多个测量包括往返时间(RTT)测量。例如,可以测量每个子流的RTT,并且可以选择具有最低RTT的子流。例如,网络元件400可以基于转发(即,传输分组)并且从目标接收器接收ACK来记录RTT。平滑函数可以被用于获取最终RTT估计值,该估计值可以被用于选择具有最低RTT的链路。网络元件400可以在具有更高RTT的链路上发送一些分组,以便更新其RTT估计。例如,可以以规则的间隔执行这样的RTT重新估计。例如,如果所述子流不被用于传输分组,则未使用子流的RTT可以减小。因此,不时地重新测量或重新估计可能是有益的。
根据一个实施例,所述一个或多个测量包括信号质量和/或信号强度测量。由网络元件400调度下行链路分组的一种方式可以基于无线信号强度。本文中,网络元件400可以记录每个MPTCP子流的信号强度,并且使用适当的调度机制。例如,可以选择与最高信号质量和/或强度相关联的子流来传输分组。
图6示出了一个实施例,其中还示出了上述子流选择步骤618。参考图6,例如,该方法可以由网络元件400执行。在602处,如果分组是下行链路(即,从服务器到客户端设备),则该方法可以继续进行到框612。如果分组是上行链路(即,从客户端设备到服务器),则该方法可以继续进行到框604。如图6所示,下行链路分组为TCP分组,上行链路分组为MPTCP分组。
在框612中,接收TCP分组,并且在框614中,应用NAT。“应用NAT”可以包括取决于分组的方向来改变源和/或目的地地址和端口。如果存在注册的MPTCP连接,则该过程可以从框616继续进行到框618,否则该过程可以从框616继续进行到框610。而且,在框616中,可以确定在所注册的连接中是否存在至少两个子流。如果否,则该过程可以继续进行到框610。如果存在至少两个子流,则该过程可以继续进行到框618。
在框618中,可以选择用于传输分组的子流。在框620中,获取TCP分组TCP序列号,并且在框622中,将TCP分组TCP序列号复制到MPTCP DSN元素或字段。在框624中,设置所生成的MPTCP分组TCP序列号。类似地,可以设置SSN号。该过程可以从框624继续进行到框610,在框610中,可以转发分组。
在框604中,可以接收上行链路分组。在框606中,可以确定分组是否使用MPTCPDSS选项。如果未使用MPTCP DSS选项,则该过程可以直接继续进行到框608,并且从那里继续转发TCP分组。然而,如果使用MPTCP DSS选项,则该过程可以继续进行到框632。在框632中,确定是否存在包括至少两个子流的注册的MPTCP连接。如果存在,则该过程可以继续进行到框634,否则该过程可以继续进行到框608。在框634中,将MPTCP DSN元素复制到TCP序列号元素以获取可以在框610中转发的TCP分组。因此,在框634中,该分组是MPTCP分组,该MPTCP分组通过将DSN元素复制到序列号元素中而被转换为TCP分组。
根据一个实施例,将MPTCP DSN元素复制到序列号元素中包括重写序列号字段。
根据一个实施例,将序列号元素复制到MPTCP DSN元素中包括重写MPTCP DSN元素。
应用NAT(614、608)和选择子流(618)功能都可以由网络层(L3)多径决策制定来驱动。关于子流选择618,该系统可以利用基于互联网控制消息协议(ICMP)的探测和调度。例如,并且参考图7的实施例,支持MPTCP的客户端设备410可以向网络元件400发送ICMP探测(例如,回声请求,诸如ICMP ECHO请求),并且还可以记录传输时间(例如,时间戳)(框702)。网络元件400可以在框712中接收回声请求,并且通过向设备410传输回声响应(例如,ICMPECHO响应)来响应于回声请求。当设备410从网络元件400接收到回声响应时(框704),可以估计RTT(例如,使用RTT样本平滑来避免瞬时波动)。然后,设备410可以在接收到ICMP探测响应(即,回声响应)之后等待预定义时间间隔,并且在预定义时间间隔过去时和/或响应于预定义时间间隔而发送另一ICMP探测。第二探测可以被用于估计网络元件400侧的RTT,作为两个接收的连续ICMP探测之间的(平滑的)差异。该方案的优点可以是,元件400可以确定RTT而无需主动地自行探测所有客户端。连续探测的RTT被计算作为两个探测之间的经过时间,然后减去间隔。如上所述,RTT测量然后可以被用作调度输入。这样的探测可以经由每个子流来传输,从而可以确定每个子流的RTT。因此,设备410可以在传输两个连续的探测之间的预定义时间间隔内向网络元件400传输至少两个探测。基于所接收的探测和预定义时间间隔,网络元件400可以确定该子流的RTT。
图8提供了一种装置800,装置800包括诸如至少一个处理器等控制电路系统(CTRL)810、以及包括计算机程序代码(软件)832的至少一个存储器830,其中至少一个存储器和计算机程序代码(软件)832被配置为与至少一个处理器一起,使相应装置800执行上面诸如参考图1A至图7描述的实施例中的任何一个或其操作。
参考图8,存储器830可以使用任何合适的数据存储技术来实现,诸如基于半导体的存储器设备、闪存、磁存储器设备和系统、光学存储器设备和系统、固定存储器和可移动存储器。存储器830可以包括用于存储数据的数据库834。例如,MPTCP会话信息(例如,在MPTCP连接中建立多少子流)可以被存储在数据库834中。
装置800还可以包括无线电接口(TRX)820,TRX 820包括用于根据一个或多个通信协议来实现通信连接性的硬件和/或软件。TRX可以向该装置提供例如接入无线电接入网并且实现网络节点之间的通信的通信能力。TRX可以包括标准的众所周知的组件,诸如放大器、滤波器、频率转换器、(解)调制器、编码器/解码器电路系统和一个或多个天线。TRX可以使得该装置能够根据TCP和MPTCP两者进行通信。因此,TRX可以使得能够使用多个通信协议来启用对MPTCP的使用或者至少启用对在相同TCP连接中使用相同通信技术的多个连接路径的使用。
装置800还可以包括用户接口840,该用户接口840包括例如至少一个小键盘、麦克风、触摸显示器、显示器、扬声器等。用户接口840可以被装置800的用户用来控制相应装置。
在一个实施例中,装置800可以是基站(例如,也称为基站收发站、节点B、无线电网络控制器或演进型节点B)或者被包括在其中。装置800例如可以是网络元件400。装置800例如可以被包括在NAT180中或实现NAT 180。在一个实施例中,装置800是MPTCP/TCP变换/转换功能182。在一个实施例中,装置800是NAT 180,并且包括MPTCP/TCP变换/转换功能182。
根据一个实施例,CTRL 810包括分组接收电路系统812,该分组接收电路系统812被配置为至少引起执行关于框210描述的操作;分组转换电路系统814,该分组转换电路系统814被配置为至少引起执行关于框220、222和224描述的操作;以及分组传输电路系统816,该分组传输电路系统816被配置为至少引起执行关于框230描述的操作。
在一个实施例中,装置800的功能中的至少一些功能性可以在形成一个操作实体的两个物理上分离的设备之间共享。因此,可以看到装置800描绘了包括用于执行所描述的过程中的至少一些的一个或多个物理上分离的设备的操作实体。因此,利用这种共享架构的装置800可以包括在操作上耦合(例如,经由无线或有线网络)到位于基站或网络元件或NAT中的远程无线电头端(RRH)的远程控制单元(RCU),诸如主机计算机或服务器计算机。在一个实施例中,所描述的过程中的至少一些可以由RCU执行。在一个实施例中,所描述的过程中的至少一些的执行可以在RRH与RCU之间共享。
在一个实施例中,RCU可以生成虚拟网络,RCU通过该虚拟网络与RRH通信。通常,虚拟联网可以涉及将硬件和软件网络资源以及网络功能性组合到单个基于软件的管理实体(即,虚拟网络)中的过程。网络虚拟化可以涉及平台虚拟化,其通常与资源虚拟化相结合。网络虚拟化可以归类为将很多网络或部分网络组合到服务器计算机或主机计算机(即,RCU)中的外部虚拟网络。外部网络虚拟化旨在优化网络共享。另一类是内部虚拟联网,内部虚拟联为单个系统上的软件容器提供类似于网络的功能性。
在一个实施例中,虚拟网络可以在RRH与RCU之间提供操作的灵活分配。实际上,可以在RRH或RCU中执行任何数字信号处理任务,并且可以根据实现来选择责任在RRH与RCU之间转移的边界。
根据一个实施例,提供了一种系统,该系统包括一个或多个网络元件400(或装置800)和一个或多个MPTCP设备(例如,设备410,诸如客户端设备)和一个或多个非MPTCP设备(例如,设备420,诸如服务器),其中一个或多个网络元件被配置为执行根据上述一个或多个实施例的在一个或多个MPTCP设备与一个或多个非MPTCP设备之间传输的分组的转换。如上所述,设备中的另一设备可以支持第一传输控制协议,并且设备中的另一设备可以支持第二传输控制协议,但是不支持第一传输控制协议。因此,可能需要在第一传输控制协议与第二传输控制协议之间进行转换。
如本申请中使用的,术语“电路系统”是指以下所有内容:(a)仅硬件电路实现,诸如仅在模拟和/或数字电路系统中的实现,以及(b)电路和软件(和/或固件)的组合,诸如(如适用):(i)(多个)处理器的组合,或(ii)(多个)处理器/软件的部分,包括(多个)数字信号处理器、软件和(多个)存储器,其共同作用以使装置执行各种功能,以及(c)需要软件或固件才能操作的电路,诸如(多个)微处理器或(多个)微处理器的一部分,即使软件或固件物理上不存在。“电路系统”的这一定义适用于该术语在本申请中的所有用法。作为另外的示例,如在本申请中使用的,术语“电路系统”还将涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们的)随附软件和/或固件的实现。术语“电路系统”还将涵盖(例如,如果适用于特定元素)用于移动电话的基带集成电路或应用处理器集成电路,或者服务器、蜂窝网络设备或另一网络设备中的类似集成电路。
在一个实施例中,结合图1A至图7描述的至少一些过程可以由包括用于执行至少一些所述过程的对应部件的装置来执行。用于执行过程的一些示例部件可以包括以下中的至少一个:检测器、处理器(包括双核和多核处理器)、数字信号处理器、控制器、接收器、传输器、编码器、解码器、存储器、RAM、ROM、软件、固件、显示器、用户接口、显示电路系统、用户接口电路系统、用户接口软件、显示软件、电路、天线、天线电路系统、和电路系统。在一个实施例中,至少一个处理器、存储器和计算机程序代码形式处理部件,或包括用于执行根据图1A至图7或其操作的实施例中的任何一个实施例的一个或多个操作的一个或多个计算机程序代码部分。
根据又一实施例,执行实施例的装置包括电路系统,该电路系统包括至少一个处理器和包含计算机程序代码的至少一个存储器。在被激活时,该电路系统使该装置执行根据图1A至7的实施例中的任何一个实施例的至少一些功能性或其操作。
本文中描述的技术和方法可以通过各种方式来实现。例如,这些技术可以以硬件(一个或多个设备)、固件(一个或多个设备)、软件(一个或多个模块)或其组合来实现。对于硬件实现,实施例的(多个)装置可以在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行本文中描述的功能的其他电子单元、或其组合内实现。对于固件或软件,该实现可以通过执行本文中描述的功能的至少一个芯片组的模块(例如,过程、功能等)来执行。软件代码可以被存储在存储器单元中并且由处理器执行。存储器单元可以在处理器内部或在处理器外部实现。在后一种情况下,如本领域公知的,它可以经由各种方式通信地耦合到处理器。另外,本文中描述的系统的组件可以通过附加组件重新布置和/或补充,以便实现关于其描述的各个方面等,并且它们不限于给出的附图中阐述的精确配置,如本领域技术人员将理解的。
如上所述的实施例也可以以由计算机程序或其部分限定的计算机过程的形式来执行。结合图1A至图7描述的方法的实施例可以通过执行包括对应指令的计算机程序的至少一部分来执行。该计算机程序可以是源代码形式、目标代码形式或某种中间形式,并且可以被存储在某种载体中,该载体可以是能够承载该程序的任何实体或设备。例如,计算机程序可以被存储在计算机或处理器可读的计算机程序分发介质上。计算机程序介质可以是例如但不限于记录介质、计算机存储器、只读存储器、电载波信号、电信信号和软件分发包。例如,计算机程序介质可以是非瞬态介质。用于执行所示和所述的实施例的软件的编码完全在本领域普通技术人员的范围内。在一个实施例中,一种计算机可读介质包括所述计算机程序。
即使上面已经参考根据附图的示例描述了本发明,但是显然本发明不限于此,而是可以在所附权利要求的范围内以若干方式进行修改。因此,所有的单词和表达应当被宽泛地解释,并且它们旨在说明而不是限制实施例。对于本领域技术人员将很清楚的是,随着技术的进步,本发明构思可以以各种方式来实现。此外,对于本领域技术人员而言清楚的是,所描述的实施例可以而非必须以各种方式与其他实施例组合。
Claims (15)
1.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使网络元件执行操作,所述操作包括:
从第一设备接收第一传输控制协议的第一分组,所述第一分组以第二设备为目标;
将所述第一分组转换为第二传输控制协议的第二分组,其中所述第一传输控制协议和所述第二传输控制协议中的一者为多径传输控制协议MPTCP,并且另一者为传输控制协议TCP,其中所述转换包括:
获取在所述第一分组的第一报头元素中指示的序列号,以及
将所获取的所述序列号复制到所述第二分组的第二报头元素中;以及
向所述第二设备传输经转换的所述第二分组。
2.根据权利要求1所述的装置,其中所述第一报头元素是数据序列信号DSS选项元素和序列号元素中的一者,并且所述第二报头元素是所述元素中的另一者。
3.根据权利要求1或2所述的装置,其中所述转换还包括:
在将所获取的所述序列号复制到所述第二报头元素中之后,重新计算所述第二分组的校验和。
4.根据前述权利要求中任一项所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述网络元件还执行包括以下的操作:
如果多个MPTCP子流在所述第一设备与所述第二设备之间的连接中由所述第一设备或者由所述第二设备利用,则触发所述第一分组到所述第二分组的所述转换。
5.根据前述权利要求中任一项所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述网络元件还执行包括以下的操作:
如果多个MPTCP子流在所述第一设备与所述第二设备之间的连接中没有由所述第一设备也没有由所述第二设备利用,则在所述第一设备与所述第二设备之间根据TCP来转发分组而不执行所述转换。
6.根据前述权利要求中任一项所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述网络元件还执行包括以下的操作:
从所述第一设备向所述第二设备转发消息,所述消息指示对建立第一MPTCP子流的需要;
接收来自所述第二设备的、去往所述第一设备的响应消息,所述响应消息指示所述第二设备不支持MPTCP;
在接收到所述响应消息时,防止向所述第一设备转发所述响应消息并且存储关于所述第二设备不支持MPTCP的指示;
向所述第一设备传输关于所述第一MPTCP子流的确认;以及
在所述第一设备与所述第二设备之间转发分组时利用所述指示。
7.根据权利要求6所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述网络元件还执行包括以下的操作:
从所述第一设备接收指示对建立第二MPTCP子流的需要的消息;
至少基于所存储的、所述第二设备不支持MPTCP的指示,来向所述第一设备传输关于所述第二MPTCP子流的确认;以及
至少基于所述第一MPTCP子流和所述第二MPTCP子流的使用,来触发将从所述第一设备到所述第二设备的MPTCP分组转换为TCP分组,并且将从所述第二设备到所述第一设备的TCP分组转换为MPTCP分组。
8.根据前述权利要求中任一项所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述网络元件还执行包括以下的操作:
响应于向所述第二设备传输经转换的所述第二分组,从所述第二设备接收关于所述第二分组的确认或否定确认;以及
响应于根据所述第二传输控制协议接收到所述确认或所述否定确认,向所述第一设备转发所述确认或所述否定确认,其中所述确认或所述否定确认在所述转发之前从所述第二传输控制协议被转换为所述第一传输控制协议。
9.根据前述权利要求中任一项所述的装置,其中所述第一传输控制协议是TCP,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使所述网络元件还执行包括以下的操作:
基于对所述子流的一个或多个测量来在多个MPTCP子流中选择MPTCP子流以用于转发所述第一分组。
10.根据权利要求9所述的装置,其中所述一个或多个测量包括往返时间测量。
11.根据权利要求9或10所述的装置,其中所述一个或多个测量包括信号质量和/或信号强度测量。
12.一种在网络元件中用于在支持多径传输控制协议MPTCP的设备与不支持MPTCP的设备之间转发分组的方法,所述方法包括:
从第一设备接收第一传输控制协议的第一分组,所述第一分组以第二设备为目标;
将所述第一分组转换为第二传输控制协议的第二分组,其中所述第一传输控制协议和所述第二传输控制协议中的一者为MPTCP,并且另一者为传输控制协议TCP,其中所述转换包括:
获取在所述第一分组的第一报头元素中指示的序列号,以及
将所获取的所述序列号复制到所述第二分组的第二报头元素中;以及
向所述第二设备传输经转换的所述第二分组。
13.一种非瞬态计算机可读介质,包括程序指令,所述程序指令用于使网络元件至少执行以下:
从第一设备接收第一传输控制协议的第一分组,所述第一分组以第二设备为目标;
将所述第一分组转换为第二传输控制协议的第二分组,其中所述第一传输控制协议和所述第二传输控制协议中的一者为MPTCP,并且另一者为传输控制协议TCP,其中所述转换包括:
获取在所述第一分组的第一报头元素中指示的序列号,以及
将所获取的所述序列号复制到所述第二分组的第二报头元素中;以及
向所述第二设备传输经转换的所述第二分组。
14.一种系统,包括:
第一设备,支持第一传输控制协议;
第二设备,支持第二传输控制协议;
装置,包括至少一个处理器和至少一个存储器,所述至少一个存储器包括计算机程序代码,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起,使网络元件执行操作,所述操作包括:
从所述第一设备接收所述第一传输控制协议的第一分组,所述第一分组以所述第二设备为目标;
将所述第一分组转换为所述第二传输控制协议的第二分组,其中所述第一传输控制协议和所述第二传输控制协议中的一者为多径传输控制协议MPTCP,并且另一者为传输控制协议TCP,其中所述转换包括:
获取在所述第一分组的第一报头元素中指示的序列号,以及
将所获取的所述序列号复制到所述第二分组的第二报头元素中;以及
向所述第二设备传输经转换的所述第二分组。
15.一种计算机程序产品,包括程序指令,所述程序指令在被加载到装置中时执行根据权利要求12所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20185196 | 2018-03-01 | ||
FI20185196 | 2018-03-01 | ||
PCT/FI2019/050155 WO2019166697A1 (en) | 2018-03-01 | 2019-02-26 | Conversion between transmission control protocols |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111788817A true CN111788817A (zh) | 2020-10-16 |
Family
ID=65763483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980016411.0A Pending CN111788817A (zh) | 2018-03-01 | 2019-02-26 | 传输控制协议之间的转换 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10630815B2 (zh) |
EP (1) | EP3759891A1 (zh) |
CN (1) | CN111788817A (zh) |
WO (1) | WO2019166697A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9843530B2 (en) * | 2015-12-15 | 2017-12-12 | International Business Machines Corporation | System, method, and recording medium for queue management in a forwarder |
CN109951260B (zh) * | 2018-02-12 | 2020-04-03 | 华为技术有限公司 | 一种数据包发送方法及相关设备 |
US11191121B2 (en) * | 2018-07-23 | 2021-11-30 | Parallel Wireless, Inc. | Multipath TCP with mesh access |
US11252104B2 (en) * | 2019-03-29 | 2022-02-15 | Denso Corporation | Relay apparatus |
CN113242248B (zh) * | 2021-05-10 | 2022-03-25 | 重庆邮电大学 | 工业异构网络高速协议转换装置及并行处理单元 |
US11799822B2 (en) * | 2022-01-21 | 2023-10-24 | Google Llc | Proxyless network address translation with dynamic port allocation |
US20230269305A1 (en) * | 2022-02-24 | 2023-08-24 | Cisco Technology, Inc. | Dynamic proxy placement for policy-based routing |
WO2024071490A1 (ko) * | 2022-09-30 | 2024-04-04 | 삼성전자 주식회사 | 멀티 엑세스 연결을 지원하기 위한 프록시 장치 및 그 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801812A (zh) * | 2004-12-14 | 2006-07-12 | 英特尔公司 | 高性能传输控制协议syn队列的实现 |
CN103155518A (zh) * | 2010-10-15 | 2013-06-12 | 瑞典爱立信有限公司 | 多径传送控制协议代理 |
CN104769910A (zh) * | 2012-11-02 | 2015-07-08 | 瑞典爱立信有限公司 | 在通信网络中指派地址 |
CN106416199A (zh) * | 2014-06-24 | 2017-02-15 | 国际商业机器公司 | 用于性能增强代理的混合方式 |
CN107409121A (zh) * | 2015-03-12 | 2017-11-28 | 瑞典爱立信有限公司 | 用于多路径业务聚合的方法和布置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8817797B2 (en) * | 2012-01-31 | 2014-08-26 | Alcatel Lucent | Method and apparatus for multipath protocol packet relay |
US9154468B2 (en) * | 2013-01-09 | 2015-10-06 | Netronome Systems, Inc. | Efficient forwarding of encrypted TCP retransmissions |
US9888042B2 (en) * | 2013-05-21 | 2018-02-06 | Citrix Systems, Inc. | Systems and methods for multipath transmission control protocol connection management |
US10143001B2 (en) * | 2013-08-29 | 2018-11-27 | Telefonaktiebolaget Lm Ericsson (Publ) | MPTCP scheduling |
EP2854357A1 (en) * | 2013-09-30 | 2015-04-01 | Thomson Licensing | Method for connecting a first host and a second host within at least one communication network through a relay module, corresponding relay module |
EP2882148A1 (en) * | 2013-12-09 | 2015-06-10 | Université Catholique De Louvain | Establishing a data transfer connection |
US9762702B2 (en) | 2014-01-14 | 2017-09-12 | Apple Inc. | Multipath TCP signaling with application specific tags |
US9350672B2 (en) * | 2014-03-13 | 2016-05-24 | Cisco Technology, Inc. | Performance enhancement and congestion control of multipath protocol packets in a heterogeneous network environment with multipath transport protocols |
EP3143742B1 (en) * | 2014-05-15 | 2020-07-08 | Telefonaktiebolaget LM Ericsson (publ) | Method and devices for controlling usage of multi-path tcp |
US10554793B2 (en) * | 2014-07-31 | 2020-02-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Routing of MPTCP subflows |
WO2016049933A1 (zh) * | 2014-09-30 | 2016-04-07 | 华为技术有限公司 | 多路径传输控制协议通信的地址管理装置、系统及方法 |
US10397379B2 (en) | 2015-03-06 | 2019-08-27 | Apple Inc. | Robust multipath TCP stateless connection establishment |
US9742628B2 (en) * | 2015-03-20 | 2017-08-22 | Alcatel-Lucent Usa Inc. | Cross-layer aware communication of a multipath data flow via a communication network |
KR102411188B1 (ko) | 2015-11-30 | 2022-06-21 | 삼성전자주식회사 | 무선 통신 시스템에서의 혼잡 관리 장치 및 방법 |
EP3459217B1 (en) * | 2016-05-16 | 2020-07-08 | Telefonaktiebolaget LM Ericsson (PUBL) | Transporting udp packets over an mptcp connection |
EP3255845A1 (en) * | 2016-06-10 | 2017-12-13 | Tessares SA | Multipath tcp in hybrid access networks |
-
2019
- 2019-02-26 WO PCT/FI2019/050155 patent/WO2019166697A1/en active Application Filing
- 2019-02-26 CN CN201980016411.0A patent/CN111788817A/zh active Pending
- 2019-02-26 EP EP19710724.6A patent/EP3759891A1/en not_active Withdrawn
- 2019-03-01 US US16/290,088 patent/US10630815B2/en not_active Expired - Fee Related
-
2020
- 2020-01-21 US US16/748,022 patent/US20200162588A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801812A (zh) * | 2004-12-14 | 2006-07-12 | 英特尔公司 | 高性能传输控制协议syn队列的实现 |
CN103155518A (zh) * | 2010-10-15 | 2013-06-12 | 瑞典爱立信有限公司 | 多径传送控制协议代理 |
CN104769910A (zh) * | 2012-11-02 | 2015-07-08 | 瑞典爱立信有限公司 | 在通信网络中指派地址 |
CN106416199A (zh) * | 2014-06-24 | 2017-02-15 | 国际商业机器公司 | 用于性能增强代理的混合方式 |
CN107409121A (zh) * | 2015-03-12 | 2017-11-28 | 瑞典爱立信有限公司 | 用于多路径业务聚合的方法和布置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019166697A1 (en) | 2019-09-06 |
US10630815B2 (en) | 2020-04-21 |
EP3759891A1 (en) | 2021-01-06 |
US20200162588A1 (en) | 2020-05-21 |
US20190273812A1 (en) | 2019-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10630815B2 (en) | Conversion between transmission control protocols | |
US10143001B2 (en) | MPTCP scheduling | |
CN109076017B (zh) | 用于路由信号的方法、路由设备和计算机可读存储介质 | |
US10075987B2 (en) | Multipath TCP subflow establishing on single IP connection | |
US10973071B2 (en) | Improving communication reliability | |
US9253015B2 (en) | Transparent proxy architecture for multi-path data connections | |
CN110915181B (zh) | 用于多连接性控制的方法和网络元件 | |
EP2827649B1 (en) | User equipment and method for user equipment feedback of flow-to-rat mapping preferences | |
WO2019059836A1 (en) | METHODS AND UNITS IN A NETWORK NODE FOR PROCESSING COMMUNICATION WITH A WIRELESS DEVICE | |
KR20140077936A (ko) | 무선 통신 네트워크에서 다중경로 전송 접속을 위한 동적 서브플로우 제어 | |
CN111837371A (zh) | 基于增强mptcp的应用移动性 | |
US20160373339A1 (en) | Method and Device for Handling Multi Path Connections | |
CN110662308B (zh) | 一种通信方法及装置 | |
AU2018409096B2 (en) | Transmission control method, apparatus, and system | |
TW201308945A (zh) | Ip流頻寬聚合方法及裝置 | |
US20230189368A1 (en) | Associating transport identifiers with quality of service flows | |
CN107079515B (zh) | 提高通信效率 | |
US10623941B2 (en) | PMIP protocol enhancement | |
Kumar et al. | Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol | |
CN113039835A (zh) | 以信息为中心的联网中的移动性管理 | |
Jin et al. | Bapu: efficient and practical bunching of access point uplinks | |
US20220183023A1 (en) | Methods and Arrangements for Managing Round Trip Time Associated with Provision of a Data Flow via a Multi-Access Communication Network | |
JP6545827B2 (ja) | 無線通信ネットワークにおけるハンドオーバのための通信デバイスおよびそこでの方法 | |
WO2013023798A1 (en) | Pmip protocol enhancement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201016 |