一种用于一个或多个时延段的源路由的系统和方法

文档序号:10518114阅读:306来源:国知局
一种用于一个或多个时延段的源路由的系统和方法
【专利摘要】多个网络节点由网络控制器控制,用于执行将报文流中的数据包从源端定向到目的地的方法。在一实施例中,网络控制器向网络中的第一节点传输指令以指示第一节点沿着第一路由从源端向目的地传输报文流中的第一数据包,其中第一路由存在第一时延。网络控制器还向网络中的节点传输指令以沿着与第一路由不同的第二路由传输报文流中的第二数据包,其中第二路由存在第二时延,且第二时延的时长小于比第一时延的时长。
【专利说明】
一种用于一个或多个时延段的源路由的系统和方法
技术领域
本发明一般涉及源路由,尤其涉及用于一个或多个时延段的源路由的系统和方法。
【背景技术】
源路由是通过网络或网段转发数据包的机制,其中汇接设备(例如,网络中既不是源路由段的入口节点也不是出口节点的设备或节点)不提供每路径状态。在很多系统中,源路由是由源路由报头中包含的信息开启。源路由报头通常包含要遵从的显式链路列表,或者,要遵从的各个编码格式的严格或松散的节点列表。因为管理或操作的原因,所以必须经常更换数据包应当遵从的路径。

【发明内容】

本发明涉及用于一个或多个时延段的源路由的系统和方法。
根据一实施例,提供了一种由网络控制器将报文流中的数据包从源端定向到目的地的方法。该方法包括:向网络中的第一节点传输指令以指示所述第一节点沿着第一路由从源端向目的地传输所述报文流中的第一数据包,其中所述第一路由存在第一时延;向所述网络中的节点传输指令以沿着与所述第一路由不同的第二路由传输所述报文流中的第二数据包,其中所述第二路由存在第二时延,且所述第二时延的时长小于所述第一时延的时长;向所述第二路由中的节点传输指令以延迟所述第二数据包,从而延迟所述第二数据包到达所述目的地。
根据另一实施例,提供了由网络节点将报文流中的数据包从源端定向到目的地的方法。该方法包括:在沿着第二路由从源端向目的地传输数据包之前,根据网络控制器的指令,将报文流中的数据包进行时延时长的缓存,其中根据与所述第二路由相关的时延在所述源端和所述目的地间的差值以及与第一路由相关的时延在所述源端和所述目的地间的差值,确定所述时延时长。
根据又一实施例,提供了用于将报文流中的数据包从源端定向到目的地的网络控制器。该网络控制器包括至少一个存储器和耦合至所述至少一个存储器的至少一个处理器。所述至少一个处理器用于:控制所述网络控制器向网络中的第一节点传输指令以指示所述第一节点沿着第一路由从源端向目的地传输报文流中的第一数据包,其中所述第一路由存在第一时延;控制所述网络控制器向所述网络中的节点传输指令以沿着与所述第一路由不同的第二路由传输所述报文流中的第二数据包,其中所述第二路由存在第二时延,且所述第二时延的时长小于所述第一时延的时长;控制所述网络控制器向所述第二路由中的节点传输指令以延迟所述第二数据包,从而延迟所述第二数据包到达所述目的地。
根据又一实施例,提供了用于将报文流中的数据包从源端定向到目的地的网络节点。该网络节点包括至少一个存储器和耦合至所述至少一个存储器的至少一个处理器。所述至少一个处理器用于:控制所述网络节点在沿着第二路由从源端向目的地传输数据包之前,根据网络控制器的指令,将报文流中的数据包进行时延时长的缓存,其中根据与所述第二路由相关的时延在所述源端和所述目的地间的差值以及与第一路由相关的时延在所述源端和所述目的地间的差值,确定所述时延时长。
【附图说明】
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,相同的数字表示相同的对象,其中:
图1示出了本发明提供的源路由的示例通信系统;
图2A至图2C示出了可实现本发明的方法和主旨的示例设备;
图3示出了链路源路由的示例;
图4示出了 MPLS段路由的示例;
图5示出了改变网络中的路由的示例;
图6A至图6C示出了本发明提供的通过在源路由路径引入附加时延以尽可能降低数据包错序发生的示例方法;
图7A和图7B示出了本发明提供的通过使用逻辑可变时延段来实现源路由路径的附加时延的示例方法;
图8示出了本发明提供的随着时间从源路由路径中去除附加时延的示例方法;
图9示出了本发明提供的将报文流中的数据包从源端定向到目的地的示例方法;
图10示出了本发明提供的由网络控制器将报文流中的数据包从源端定向到目的地的示例方法;
图11示出了本发明提供的由网络节点将报文流中的数据包从源端定向到目的地的示例方法。
【具体实施方式】
以下讨论的图1至图11和该专利文档中的各个实施例仅通过示例说明的方式描述本发明的原理,而不应以任何方式理解为对本发明范围的限制。本领域技术人员应理解的是,本发明的原理可通过任何适当设置的设备或系统实现。
源路由的特点是网络中汇接设备没有每路径状态。源路由可用于不同的网络架构中,包括互联网协议(简称IP)网络、多协议标记交换(简称MPLS)网络、异步传输模式(简称ATM)网络、软件定义网络(简称SDN)网络和任何其他适当的网络架构。因为管理或操作的原因,所以经常更换数据包应当遵从的路径。例如,在全局优化的背景下,可以将流移动到一条新路径以优化网络性能。其他情况下,由于维护的原因(例如,由于可能需要更换网卡或其他硬件组件),所以可以对流进行移动。因此,需要一种将数据包的源路由流从一条路径移动到另一条路径而对终端服务影响最低或没有影响的机制。在某些情况下,将数据包传输路径从时延$父尚的路径移动到时延$父低的路径可能会造成丢包或错序。
现有各技术试图解决这些或类似的问题,但这些技术并未结合源路由,而是要么基于TDM/WDM(时分复用/波分复用),要么基于标记替换转发,如ATM或MPLS。
相应的,为了解决这些问题,本发明描述的实施例提供了一种方法,通过在源路由中引入时延,以建立必要的时延来避免错序。在一些实施例中,通过引入带内时延,汇接跳使用源路由本身和时延段来控制汇接时延。下文将更具体地描述这些。 图1示出了本发明提供的用于使用源路由的示例通信系统100。一般的,系统100可以使多个无线用户传输和接收数据和其他内容。系统100可实现一个或多个信道接入方法,例如,无线链路如通信链路190的码分多址接入(简称CDMA)、时分多址(简称TDMA)、频分多址(简称FDMA)、正交FDMA(简称OFDMA)或单载波FDMA(简称SC-FDMA)。
在该例中,通信系统100包括用户设备(简称UE) I 1a-110c、无线接入网(简称RAN)120a-120b、核心网130、公共交换电话网络(简称PSTN)140、互联网150和其他网络160。尽管图1中示出了这些组件或元件的特定编号,但是系统100中可包括任何编号的这些组件或元件。在一些实施例中,仅使用了有线网络链路。
UE IlOa-1lOc用于在系统100中进行操作和/或通信。例如,UE IlOa-1lOc用于传输和/或接收无线信号或有线信号。每个UE IlOa-1lOc都代表任何适当的终端用户设备,可包括设备如(或可称为)用户设备(简称UE)、无线传输/接收单元(简称WTRU)、移动台、固定或移动用户单元、寻呼机、移动电话、个人数字助理(简称TOA)、智能手机、笔记本电脑、电脑、触摸板、无线传感器或消费电子设备。
此处RAN 120a-120b分别包括基站170a-170b。每个基站170a-170b都用于无线连接一个或多个UE IlOa-1lOc从而能够接入核心网130、PSTN 140、互联网150和/或其他网络160。例如,基站170a-170b可包括(或者是)几个熟知的设备中的一个或多个,如基站收发信台(简称BTS)、Node_B(简称NodeB)、演进型基站(简称eNodeB)、家庭基站、家庭演进型基站、站点控制器、接入点(简称AP)、无线路由器、服务器、路由器、交换器或有线或无线网络的其他处理实体。
在图1中所示的实施例中,基站170a构成了RAN 120a的一部分,可包括其他基站、元件和/或设备。基站170b也构成了 RAN 120b的一部分,可包括其他基站、元件和/或设备。每个基站170a-170b在特定的地理区域或地区内操作传输和/或接收无线信号,有时也称为“小区”。在一些实施例中,每个小区都有多个收发器,可采用多入多出(简称ΜΜ0)技术。
通过一个或多个空口 190使用无线通信链路,基站170a-170b和一个或多个UE IlOa-1 1c进行通信。空口 190可利用任何适当的无线接入技术。
考虑到系统100可使用多信道接入功能,包括上面描述的方案。在特定的实施例中,基站和UE实现LTE、LTE-A和/SLTE-B。当然,可利用其他多个接入方案和无线协议。
RAN 120a-120b与核心网130通信,为UE IlOa-1lOc提供语音、数据、应用、基于互联网协议的语音传输(简称Vo IP)或其他服务。可理解的是,RAN 120&-12013和/或核心网130可与其他一个或多个RAN(未示出)进行直接或间接通信。核心网130也可作为其他网络(如PSTN140、互联网150和其他网络160)的网关接入。另外,部分或全部UE IlOa-1lOc可包括使用不同的无线技术和/或协议通过不同的无线链路与不同的无线网络来进行通信的功能。
尽管图1示出了通信系统的一个示例,但是可以对图1进行各种变更。例如,通信系统100可包括任意数量的UE、基站、网络或任何适当结构中的其他组件,还可包括在此处任何图中示出的EPC。
图2A至图2C示出了可实现本发明的方法和主旨的示例设备。特别地,图2A示出了示例UE 110,图2B示出了示例基站170,图2C示出了示例网络节点或网络控制器。这些组件可用于系统100、SDN系统或任何其他适当的系统中。特别地,这些组件可配置为用于此处描述的源路由网络中。 如图2A所示,UE 110包括至少一个处理单元200。处理单元200实现UE 110的各个处理操作。例如,处理单元200可执行信号编码、数据处理、功率控制、输入/输出处理或能使UE110在系统100中进行操作的任何其他功能。处理单元200也支持上面详细描述的方法和主旨。每个处理单元200都包括任何适当的用于执行一个或多个操作的处理或运算设备。每个处理单元200均可以包括,例如,微处理器、微控制器、数字信号处理器、现场可编程门阵列或专用集成电路。
[0035]UE 110也包括至少一个收发器202。收发器202用于对至少一个天线204传输的数据或其他内容进行调制。收发器202也用于对至少一个天线204接收的数据或其他内容进行调制。每个收发器202均包括任何适当的结构以生成无线传输的信号和/或处理无线接收的信号。每个天线204均包括任何适当的结构以传输和/或接收无线信号。一个或多个收发器202可用于UE 110,一个或多个天线204可用于UE 110。尽管以单一的功能单元示出,但是也可通过至少一个发射器和至少一个独立的接收器实现收发器202。
UE 110还包括一个或多个输入/输出设备206。输入/输出设备206便于与用户交互。每个输入/输出设备206均包括任何适当的结构以向用户提供信息或接收用户的信息,如扬声器、麦克风、小键盘、键盘、显示器或触摸屏。
[0037]另外,UE 110包括至少一个存储器208。存储器208储存指令和UE 110使用的、生成的或收集的数据。例如,存储器208可储存由处理单元200执行的软件或固件指令和用于减少或消除进入信号干扰的数据。每个存储器208均包括任何适当的易失和/或非易失存储器和恢复设备。可使用任何适当类型的存储器,如随机存取存储器(简称RAM)、只读存储器(简称ROM)、硬盘、光盘、用户识别(简称S頂)卡、记忆棒和安全数码(简称SD)卡等。
如图2B所示,基站170包括至少一个处理单元250、至少一个发射器252、至少一个接收器254、一个或多个天线256和至少一个存储器258。处理单元250实现基站170的各个处理操作,如信号编码、数据处理、功率控制、输入/输出处理或任何其他功能。处理单元250还能支持上面详细描述的方法和主旨。每个处理单元250均包括任何适当的用于执行一个或多个操作的处理或运算设备。每个处理单元250都可以包括,例如,微处理器、微控制器、数字信号处理器、现场可编程门阵列或专用集成电路。
每个发射器252均包括任何适当的结构来生成向一个或多个UE或其他设备无线传输的信号。每个接收器254均包括任何适当的结构来处理从一个或多个UE或其他设备以无线方式接收的信号。尽管以独立的组件示出,但是至少一个发射器252和至少一个接收器254可合并为一个收发器。每个天线256均包括任何适当的结构来传输和/或接收无线信号。尽管通常此处示出的天线256同时耦合至发射器252和接收器254,但是一个或多个天线256可耦合至发射器252,一个或多个独立的天线256可耦合至接收器254。每个存储器258均包括任何适当的易失和/或非易失存储器和恢复设备。
如图2C所示,设备280(例如,网络节点或网络控制器)包括运算块282、处理块284和系统存储器286。处理块284可为执行软件指令的任何类型的可编程的电子器件,但可照例为一个或多个微处理器。系统存储器286可同时包括只读存储器(简称R0M)288和随机存取存储器(简称RAM)290。本领域技术人员应理解的是,只读存储器288和随机存取存储器290都可以储存处理块284执行的软件指令。
通过总线292或替代通信结构,处理块284和系统存储器286要么直接要么间接连接一个或多个外部设备。例如,处理块284或系统存储器286可直接或间接连接一个或多个附加存储设备294。存储设备294可包括,例如,“硬”磁盘驱动器、固态磁盘驱动器、光盘驱动器和可移动磁盘驱动器。处理块284和系统存储器286也可直接或间接连接输入接口 296和输出接口 297。输入接口 296可激活与设备的连接,如键盘、定点设备(如鼠标、触摸板、手写笔、轨迹球或操纵杆)、触摸屏、扫描器、相机和麦克风。输出接口 297可激活与设备的连接,如显示设备、打印机和扬声器。该显示设备可用于显示视频图像。
在一些实现中,运算块282也可直接或间接连接一个或多个网络接口卡(简称NIC)298来与构成网络(如下面描述的网络300)的其他设备通信。根据一个或多个通信协议,如传输控制协议(简称TCP)和互联网协议(简称IP),网络接口卡298将运算块282的数据和控制信号转变为网络消息。同时,网络接口卡298可采用任何适当的连接代理(或代理的组合)来连接有线或无线网络,包括例如无线收发器、调制解调器或以太网连接。
本领域技术人员知道关于UE 110、基站170和设备280的附加细节。因此,此处省去这些细节。应理解的是,图2A至图2C中示出的设备仅仅是示例而不打算限制。本发明的各个实施例可通过一个或多个运算设备实现,其中包括组件:UE 110、基站170、设备280,或包括组件替换组合,包括图2A至图2C中未示出的组件。例如,本发明的各个实施例可通过多处理器电脑、网络中布置的多个单和/或多处理器电脑或两者的某组合。
图3示出了链路源路由的示例。如图3所示,源端310与目的地320间的网络300中布置了多个节点A至G。网络300中各个组件可代表(或被……代表)图1、图2A和图2B中描述的一个或多个组件。源端310、目的地320和节点A至G中的每一个都可包括一个或多个网络硬件或软件组件,如交换器、路由器、其他硬件或以上组合。每个节点A至G为节点和相邻节点间的每个链路分配本地标识。在一些网络中,这可包括平行链路。例如,节点A与节点C、D和B通信连接。节点A和节点B间有平行链路。节点A分别为与节点C、B、D和B的链路分配标识I至4。
为了将数据包通过网络从源端310传输到目的地320,控制器330(例如,网络控制器,如SDN控制器)为每个数据包配置数据包报头,其中该数据包报头包括数据包将要使用的通过网络300的路由。在一些实施例中,控制器330可代表(或被……代表)图2C中的设备280。在一些实施例中,路由可代表源路由通道,如MPLS通道。在图3所示的示例中,以箭头表示路由:节点C是入口节点,节点E是出口节点,节点F和G是汇接节点。入口节点,即节点C配置〈S,D>流条目以及将遵从的链路列表(例如,[1,4,3])封装入数据包中的数据包报头,其中如现有技术所知,链路由每个节点的本地标识来标识。在一些架构中,链路列表设置为在报头中储存的矢量(例如,[1,4,3])的格式。
图4示出了MPLS段路由的示例。如图3,图4示出了源端410与目的地420间的网络400中设置的多个节点A至G。不同于图3中示出的源路由示例,图4中的MPLS架构不用链路标识的矢量来为每个数据包指定路由,而是节点为每个链路(包括可用的平行链路)分配本地标记。节点可为节点集合或各单个节点分配标记用于分组。之后,路由被配置为标记栈。在图4所示的示例中,以箭头表示路由:节点C是入口节点,节点E是出口节点,节点F和G是汇接或中间节点。标记桟(例如,[Li[L4[L3]]])表示节点{C,F,G,E}路由。
图5示出了改变网络中的路由的示例。如图5所示,源端510与目的地520间的网络500中布置了多个节点A至G。网络500中各个组件可代表(或被……代表)图1至图4中描述的一个或多个组件。起初,将要从源端510传输到目的地520的数据包配置为使用源路由[1,4,3]沿着路径Pold 530传输。由于各个原因,可能需要或必须通过使用源路由[3,2,2]将流移动到路径Pnew 540。在全局优化的背景下,可以将流移到一条新路径以优化网络性能,。在其他情况下,由于维护的原因(例如,因为可能需要更换网卡或第一路径中的其他硬件组件,而移动到新的路径),所以可以将流进行移动。在一些系统中,通过简单地将节点C的源路由从[1,4,3]变为[3,2,2]来实现是微不足道的。
每个传输路径固有的包括由于因素如信号传播时延和交换时延等造成的一定量的时延。而一些路径比其他路径的时延更长。例如,通过路径Pc>id530的时延(可表示为时延(Pold ))可能与通过路径Pnew 540的时延(可表示为时延(Pnew))不同。
如果时延(Pnew)彡时延(Pold),那么从路径Pold 530移动到路径Pnew 540可能对终端服务或QoS造成的影响最小,例如,终端服务可能仅有轻微抖动。另一方面,如果时延(Pnew)<时延(Po I d)且数据包传输路径从路径Po I d 530移动到路径Pnew 540,那么数据包到达目的地520时有可能出现错序。
为了解决这个问题,此处描述的实施例中提供了可在路径Pnew中引入附加时延dt来保证时延(Pnew)彡时延(Poid) 0
图6A至图6C示出了本发明提供的通过在源路由路径引入附加时延以尽可能降低数据包错序发生的示例方法。为了便于说明,可将这些方法描述为与图1至图5中的一个或多个组件相关。当然,这些方法可用于任何其他适当的设备或系统。
可在路径P_中引入附加时延dt来保证时延(Pnew)彡时延(Poid)。在一些实施例中,时延dt可用下面的公式计算得出:
dt =时延(Poid)-时延(Pnew)。(I)
当网络没有堵塞时,时延(Pold)、时延(Pnew)和dt之间的计算是相当确定的。大部分造成路径时延的因素(例如,信号传播时延和转换时延等)都可以提前以适当的精确度预测出来。在一些系统中,时延甚至可以按照经验来确定,例如,通过向不同的路径发送Ping。如果dt<0且时延(Pnew)>时延(Pold),那么对终端服务的影响最小。或者,如果dt>0,那么新路径Pnew中引入大于或等于dt的附加时延。在图6A至6C中,如各自虚线的长度所示,时延(Pnew) <时延(Pold)。因此,dt>0。当然,不应认为虚线代表特定的物理路径或路径长度。而是,虚线的长度仅仅代表时延暂时的长度。
如图6A所示,在一些实施例中,使用如现有技术所知的一个或多个缓存技术来在入口(例如,在图5中的节点C或源端510)引入时延dt。因此,在图6A中,在沿着路径Pnew传输前,每个数据包都暂时在入口的缓存存储器中储存dt段时间。时延保证了沿着路径Pnew发送的数据包在之前沿着路径Pold发送的数据包后面到达目的地。
如图6B所示,在一些实施例中,在出口(例如,在图5中的节点E或目的地520)引入时延dt。因此,在图6B中,沿着路径Pnew传输每个数据包,之后在被目的地释放之前在出口缓存dt段时间。
在一些系统中,在入口或出口加入全部的时延dt就缓存使用而言可能会浪费。因此,需要汇接的方法来沿着路径展开时延缓存空间。如图6C所示,在一些实施例中,时延dt被分为多个部分,并在路径Pnew中的不同的点或节点之间分发这些部分。例如,在图6C中,时延dt被分为两个大体均等的部分,每个都为dt/2的时延。在路径Pnew中不同的中间节点(例如,在图5中的节点A和B)实现这两个时延。就是说,在通过剩余路由中继续转发数据包之前,每个中间节点延迟每个数据包dt/2。
可用不同的方法将时延dt分成多个部分。在一些实施例中,可将时延dt均等划分,如每个部分都代表大体均等的时延。在一些实施例中,这些部分的数量可等于路径中汇接节点(例如,在图5中两个汇接节点A和B)的数量。在一些实施例中,时延缓存(例如,由于缺少缓存存储器)中可排除一个或多个汇接节点,在该情况下,在剩下的(未排除的)汇接节点中均等划分时延dt。
在其他另一些实施例中,可用到图6A、图6B和图6C的组合。例如,可在入口和一个或多个汇接节点中分发整个时延dt。或者,可在出口和一个或多个汇接节点中分发整个时延dt。或者,可在入口、出口和一个或多个汇接节点中分发整个时延dt ο在所有情况下,分发可包括在不同的节点中均等分配时延或不均等分配时延,取决于网络要求。
在其他另一些实施例中,可用到图6A、图6B和图6C的组合。例如,可在入口和一个或多个串联节点中分配整个时延dt。或者,可在出口和一个或多个串联节点中分配整个时延dt。或者,可在入口、出口和一个或多个串联节点中分配整个时延dt。在所有情况下,分配可包括在不同的节点中均等分配时延或不均等分配时延,取决于网络要求。
图7A和图7B示出了本发明提供的通过使用逻辑可变时延段来达到源路由路径的附加时延的示例方法。为了便于说明,可将这些方法描述为与图1至图6C中的一个或多个组件相关。当然,这些方法可用于任何其他适当的设备或系统。
如图7A所示,网络700包括入口 710和出口 720。入口 710与出口 720间提供了至少两个路由Pold和Pnew。路由Pnew包括一些汇接节点或遍历节点,包括节点730和740。在一些实施例中,网络700是MPLS网络。在MPLS网络中,路由被分为多段。基于图7A中所示的路由Pnew的段标识(#6、#8和#2),路由Pnew的段列表包括[#6,……,#8,#2,……]。该段列表可嵌入到数据包报头。
为了在节点730和740中引入时延,源路由中可包括一个或多个逻辑段或标识。例如,首端(例如,网络控制器,如图3中的控制器330)可在封装数据包的数据包报头中的段列表上添加一个或多个引入时延的逻辑段标识。例如,如图7B所示,可在一个或多个节点上添加逻辑段#1004。因为逻辑段不代表物理跳,所以逻辑段#1004不改变数据包路由的物理路径。而是,每个逻辑段仅仅在与逻辑段相关的节点添加时延。即,逻辑段是在节点造成时延的单个节点的逻辑跳。例如,在图7B中,在路由Pnew中的节点730和740中已经添加了逻辑段#1004。相应的,图7B的新段列表为[#6,……,#1004,#8,#1004,#2,……],其中每个#1004代表节点730和740的逻辑段。因为逻辑段逻辑地回环到与逻辑段相关的节点,所以每个逻辑段#1004并不真的改变数据包路由的路径。然而,每个逻辑段#1004为节点引入时延。
在一些实施例中,逻辑段标识值(#1004)直接控制时延量。在通过剩余源路由继续转发前,路由的汇接节点将特定的标识解读为触发固定的时延量,并将该时延量加在数据包上。即,在确定在段列表中的逻辑段标识时,汇接节点知道将数据包进行标识值代表的预先确定的时间量的延迟。例如,逻辑段标识#1004可代表例如2微秒或3微秒的时延。
在一些实施例中,网络可有短中或长时延单独的预先确定的标识。例如,#1004、#1005和#1006可分别与时延I微秒、5微秒和10微秒对应。在一些实施例中,一系列标识可与一系列时延相对应:# 1101、# 1102、……、# 1110可分别与时延1、2、……、10微秒对应。在一些实施例中,多个逻辑段可连续积累来达到更长的时延。例如,段列表可包括#1004和#1006连续的条目来达到lysec+lOysec = I Iysec的时延。当然,#1004、#1005和#1101等仅仅是示例标识,lysec、5ysec和1ysec等仅仅是示例的时延时长。也可能是其他逻辑段标识和时延值。
如图7B所示,总时延可分为多个子时延,每个都由段标识代表并被分给网络中的一个或几个不同的节点。例如,在图7B中,节点730-740均包括由逻辑段标识#1004代表的时延。所有子时延总计达到在从高时延路径移动到低时延路径时为避免错序而要求的预定的附加端到端时延。
图8示出了本发明提供的随着时间从源路由路径中去除附加时延的示例方法。为了便于说明,可将这些方法描述为与图1至图7B中的一个或多个组件相关。当然,这些方法可用于任何其他适当的设备或系统。
一般来说,一旦在路径Pnew中引入附加时延dt,可能不必为所有将要沿着路径Pnew传输的数据包无限维持时延。即,一旦通过路径Pold将所有的流量成功传输到出口点,就不需要沿着路径Pnew维持时延dt了。此时,时延dt只会消耗资源,并为段增添延迟。因此,一段时间过后,可去除时延dt。在一些实施例中,可迅速去除时延dt,如将下个传输的数据包的时延dt设置为O。在其他实施例中,可缓慢去除时延dt,或随着时间而“衰减”(例如,一或两个小时)。
在一些实施例中,在使用图6A至图6C中描述的一个或多个技术在路径Pnew中引入时延dt之后,如图8所示,在一个完整的时延周期(dt)之后开始衰减。通过使用适当的衰减方法,在有限的时间内,时延减少至O。示例的衰减技术包括对数衰减、几何衰减和线性衰减等。如果在多个节点间分发的全部的时延dt,如图6C,多个节点间可同时发生衰减,或是连续衰减,从而在其他节点时延开始衰减之前,一个节点的时延衰减至O。减少时延的指令可为每个节点提供明确的逐个数据包的时延限制或可为节点提供参数或公式来管理时延的衰减。
图9示出了本发明提供的将报文流中的数据包从源端定向到目的地的示例方法。为了便于说明,可将方法900描述为与图1至图8中的一个或多个组件相关。然而,方法900可用于任何适当的设备或任何适当的系统或网络。
步骤901中,将报文流中的多个数据包沿着第一路由从源端传输到目的地,其中第一路由包括第一时延。例如,这可包括图3至图5中沿着路由{C,F,G,E}传输的数据包。在一些实施例中,流中只有第一数据包是沿着第一路由传输的。
步骤903中,将至少一部分报文流从第一路由变为与第一路由不同的第二路由。即,在沿着第一路由传输第一数据包之后,沿着第二路由传输第二数据包(在一些实施例中,一个或多个随后的数据包)。例如,这可包括图3至图5中报文流变为路由{C,A,B,E}。第二路由包括第二时延,其中第二时延的时长小于比第一时延的时长。
步骤905中,在每个数据包沿着第二路由到达目的地之前,将数据包进行附加时延的时延,其中附加时延大于或等于第一时延与第二时延的差值。这可包括图6A至图6C中所示的并入附加时延。在一些实施例中,附加时延发生于第二路由的出口点或入口点。在一些实施例中,在通过剩余路由继续转发数据包之前,在第二路由的多个中间节点间分发附加时延,多个中间节点中的每一个在每个数据包上加上一份附加时延。多个中间节点可包括第二路由中所有中间节点的全部或仅仅一部分。
然后,在步骤907中,在将所有沿着第一路由传输的数据包成功传输至目的地之后,去除第二路由报文流的附加时延。如图8所示,这可包括随着时间而衰减附加时延。通过同时减少不同节点的时延、每次减少一个节点的时延和其组合,可达到减少(也称为衰减)时延。也可能是,可因为操作的原因,在其他节点增加时延的同时,减少节点时延。
图10示出了本发明提供的由网络控制器将报文流中的数据包从源端定向到目的地的示例方法。为了便于说明,可将方法1000描述为与图1至图8中的一个或多个组件相关。特别地,方法1000可由控制器执行,如网络控制器330或设备280。然而,方法1000可用于任何适当的设备或任何适当的系统或网络。
步骤1001中,网络控制器向网络段中的第一节点发输指令以沿着第一路由从源端向目的地传输报文流中的第一数据包,其中第一路由存在第一时延。例如,这可包括网络控制器330向节点C、F、G和E发送指令以沿着图3至图5中的路由{C,F,G,E}传输第一数据包。通过直接向每个节点传输路由信息或是通过在第一数据包的数据包报头中包括路由信息,网络控制器330可向节点C、F、G和E指示第一路由。只有第一数据包的数据包报头可包括路由信息,或是报文流中随后数据包的数据包报头可包括路由信息。
步骤1003中,网络控制器向网络段中的第二节点传输指令以沿着与第一路由不同的第二路由传输报文流中的第二数据包。第二节点可与第一节点相同或不同。例如,这可包括网络控制器330控制节点C、A、B和E来沿着图3至图5中的路由{C,A,B,E}传输第二数据包。第二路由存在第二时延,其中第二时延的时长小于比第一时延的时长。通过直接向每个节点传输路由信息或是通过在第二数据包的数据包报头中包括路由信息,网络控制器330可向节点C、A、B和E指示第一路由。
步骤1005中,在第二数据包到达目的地之前,网络控制器向第二路由中的节点传输指令以将第二数据包延迟附加时延,其中附加时延是为了延迟第二数据包到达目的地而提供的。如图6A至图6C所示,这可包括网络控制器330控制节点C、A、B和E中的一个或多个加上附加时延。网络控制器330可直接向节点C、A、B和E传输关于附加时延的信息,或可在数据包报头上加上时延信息。在一些实施例中,附加时延发生于第二路由的出口点或入口点。在一些实施例中,在通过剩余路由继续转发数据包之前,在第二路由的多个节点间分发附加时延,多个节点中的每一个在每个数据包上加上一份附加时延。多个节点可包括第二路由中所有节点的全部或仅仅一部分。
其后,在步骤1007中,在将所有沿着第一路由传输的数据包成功传输至目的地之后,网络控制器指示节点去除第二路由报文流的附加时延。如图8所示,这可包括随着时间衰减附加时延。
图11示出了本发明提供的网络节点将报文流中的数据包从源端定向到目的地的示例方法。为了便于说明,可将方法1100描述为与图1至图8中的一个或多个组件相关。特别地,方法1100可由网络节点执行,如图3至图6中网络节点A至G中的一个,或可由图2C中的设备280执行。然而,方法1100可用于任何适当的设备或任何适当的系统或网络。
步骤1101中,将报文流中的第一数据包沿着第一路由从源端传输到目的地,其中第一路由包括第一时延。例如,这可包括网络节点C向网络节点F传输第一数据包,如同图3至图5中第一数据包沿着路由{C,F,G,E}移动。基于从网络控制器如网络控制器330接收到的指令,沿着第一路由传输第一数据包。应理解的是,是第二路由一部分而不是第一路由一部分的汇接节点无需执行步骤1101。
步骤1103中,在沿着第二路由将第二数据包从源端传输至目的地之前,网络节点接收报文流中的第二数据包,网络节点将第二数据包缓存时延时长。根据第一时延与和第二路由相关的第二时延的差值,确定时延时长。例如,如果说明的节点是节点C,该节点如图6A所示的加上时延,其他节点如节点E可如图6 B所示的引入附加时延。在一些实施例中,附加时延发生于第二路由的出口点或入口点。在一些实施例中,在通过剩余路由继续转发数据包之前,在第二路由的多个节点间分配附加时延,多个节点中的每一个在每个数据包上加上一份附加时延。多个节点可包括第二路由中所有节点的全部或仅仅一部分。
步骤1105中,在缓存数据包之后,网络节点沿着与第一路由不同的第二路由传输第二数据包。例如,这可包括网络节点C向网络节点A传输第二数据包,如同图3至图5中第二数据包沿着路由{C,A,B,E}移动。基于网络节点从网络控制器接收到的指令,网络节点沿着第二路由传输第二数据包。
然后,步骤1107中,在将所有沿着第一路由传输的数据包成功传输至目的地之后,网络节点去除第二路由报文流中引入(或部分引入)的时延。如与图8相关的讨论和上面的描述,这可包括随着时间衰减附加时延。
尽管图9至图11示出了将报文流中的数据包从源端定向到目的地的示例方法,但是这些图可做出各种变化。例如,尽管示出一系列步骤,但是图9至图11中的各个步骤可重叠、可平行发生、可按不同的顺序发生或发生任意次。
如此处所描述的,在一些基于数据包的网络中,流量从网络中的一路由移动到其他路由时,当新路由的时延比之前路径的时延更短时,数据包到达时可能会混乱。因为这个,所以难以实现全局优化过程以通过终端设备易懂的方式对网络中的流进行优化。
为了解决或缓解这些问题,上面公开的实施例利于网络中流“无损”的从路径移动到路径(例如,数据包不重新排序的移动)。实施例使全局优化过程关注于数学最优解决方法,而不是关注由于移动路径却不影响一些服务的需要的次优解决方法。所述公开的实施例中可分发路径的缓存时延,并控制每跳的时延总量而无需明确的信令。
在一些实施例中,由计算机可读程序代码组成且含在计算机可读介质中的计算机程序执行或支持一个或多个设备的一些或全部的功能或过程。术语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。术语“计算机可读介质”包括任何类型的可以被计算机访问的介质,如只读存储器(简称ROM)、随机存取存储器(简称RAM)、硬盘驱动器、光盘(简称CD)、数字视频光盘(简称DVD)或任何其他类型的存储器。
定义本专利文档使用的特定字词和短语是有利的。术语“包括”和“包含”以及它们的派生词意为没有限制的包括。术语“或者”是包容性的,意为和/或。短语“与……相关”和“与其相关”以及其派生短语,意为包括,被包括在内、与……互连、包含、被包含在内、连接到或与……连接、耦合到或与……耦合、可与……通信、与……合作、交织、并列、接近、被绑定到或与……绑定、具有和具有……属性等。
尽管本发明描述了某些实施例和一般相关的方法,但是对于本领域技术人员,这些实施例和方法的修改和排列是显然的。相应的,上述对示例实施例的描述不定义或限制本发明。在不脱离以下权利要求定义的本发明的精神和范围的情况下,还可以做其他改变、替换和变更。
【主权项】
1.一种由网络控制器将报文流中的数据包从源端定向到目的地的方法,其特征在于,所述方法包括: 向网络中的第一节点传输指令以指示所述第一节点沿着第一路由从源端向目的地传输报文流中的第一数据包,其中所述第一路由存在第一时延; 向所述网络中的节点传输指令以沿着与所述第一路由不同的第二路由传输所述报文流中的第二数据包,其中所述第二路由存在第二时延,且所述第二时延的时长小于所述第一时延的时长; 向所述第二路由中的节点传输指令以延迟所述第二数据包,从而延迟所述第二数据包到达所述目的地。2.根据权利要求1所述的方法,其特征在于,用于将第二数据包沿第二路由传输的指令所发往的节点与用于将第二数据包延迟的指令所发往的节点为同一节点。3.根据权利要求1所述的方法,其特征在于,所述第一节点与用于将第二数据包沿着第二路由传输的指令所发往的节点为同一节点。4.根据权利要求1所述的方法,其特征在于,所述网络是源路由网络。5.根据权利要求1所述的方法,其特征在于,用于延迟第二数据包的指令所发往的节点为所述网络的出口节点和入口节点中的一个。6.根据权利要求1所述的方法,其特征在于,传输指令以延迟所述第二数据包的步骤包括,向所述第二路由中的多个节点传输指令以将该时延分发给所述多个节点,其中所述多个节点中的每一个接收传输的指令并实现该时延的一部分。7.根据权利要求6所述的方法,其特征在于,所述控制器指示所述多个节点中的至少一个节点接收传输的延迟指令从而从所述多个节点中的其他节点延迟所述第二数据包更长时长,进一步地,其中每个节点延迟的时长根据节点缓存存储器的大小确定。8.根据权利要求7所述的方法,其特征在于,数据包报头中包括的逻辑段标识指示所述多个节点中的节点要实现的时延。9.根据权利要求6所述的方法,其特征在于,每个指示节点的时延的总和大于或等于所述第一时延与所述第二时延的差值。10.根据权利要求1所述的方法,其特征在于,所述第一路由和所述第二路由部分由源路由数据包报头或多协议标记交换(简称MPLS)段路由数据包报头标识。11.根据权利要求1所述的方法,其特征在于,还包括: 传输指令给用于延迟所述第二数据包的所述指令所发往的节点,以减少指示的时延,用于对确定所述第一数据包已经到达所述网络中的一个出口节点即所述目的地做出响应。12.—种由网络节点将报文流中的数据包从源端定向到目的地的方法,其特征在于,所述方法包括: 在沿着第二路由从源端向目的地传输数据包之前,根据网络控制器的指令,将报文流中的数据包进行时延时长的缓存,其中根据与所述第二路由相关的时延在所述源端和所述目的地间的差值以及与第一路由相关的时延在所述源端和所述目的地间的差值,确定所述时延时长。13.根据权利要求12所述的方法,其特征在于,网络节点是网络中出口节点和入口节点中的一个。14.根据权利要求12所述的方法,其特征在于,所述第一路由和所述第二路由部分由源路由数据包报头或封装每个数据包的多协议标记交换(简称MPLS)段路由数据包报头标识。15.根据权利要求12所述的方法,其特征在于,还包括: 减少所述报文流中随后数据包的时延时长,用于对接收到所述网络控制器的指令做出响应。16.根据权利要求15所述的方法,其特征在于,缓存数据包的所述指令内包括用于减少时延时长的所述指令。17.根据权利要求15所述的方法,其特征在于,减少时延的所述指令包括根据衰减函数减少时延的指令。18.根据权利要求12所述的方法,其特征在于,还包括: 在将所述报文流中的所述数据包进行所述时延时长的缓存之前,沿着所述源端和所述目的地间所述第一路由传输第一数据包。19.一种用于将报文流中的数据包从源端定向到目的地的网络控制器,其特征在于,所述网络控制器包括: 至少一个存储器; 耦合至所述至少一个存储器的至少一个处理器,其中所述至少一个处理器用于: 控制所述网络控制器向网络中的第一节点传输指令以指示所述第一节点沿着第一路由从源端向目的地传输报文流中的第一数据包,其中所述第一路由存在第一时延; 控制所述网络控制器向所述网络中的节点传输指令以沿着与所述第一路由不同的第二路由传输所述报文流中的第二数据包,其中所述第二路由存在第二时延,且所述第二时延的时长小于所述第一时延的时长; 为了延迟所述第二数据包到达所述目的地,控制所述网络控制器向所述第二路由中的节点传输指令以延迟所述第二数据包。20.根据权利要求19所述的网络控制器,其特征在于,用于将第二数据包沿第二路由传输的指令所发往的节点与用于将第二数据包延迟的指令所发往的节点为同一节点。21.根据权利要求19所述的网络控制器,其特征在于,所述第一节点与用于将第二数据包沿着第二路由传输的指令所发往的节点为同一节点。22.根据权利要求19所述的网络控制器,其特征在于,所述网络是源路由网络。23.根据权利要求19所述的网络控制器,其特征在于,用于延迟第二数据包的指令所发往的节点为所述网络的出口节点与入口节点中的一个。24.根据权利要求19所述的网络控制器,其特征在于,为了控制所述网络控制器传输指令以延迟所述第二数据包,所述至少一个控制器用于控制所述网络控制器向所述第二路由中的多个节点传输指令以将该时延分发给所述多个节点,其中所述多个节点中的每一个接收传输的指令并实现该时延的一部分。25.根据权利要求24所述的网络控制器,其特征在于,所述控制器指示所述多个节点中的至少一个节点接收传输的延迟指令从而比所述多个节点中的其他节点延迟所述第二数据包更长时长,进一步地,其中每个节点延迟的时长根据节点缓存存储器的大小确定。26.根据权利要求25所述的网络控制器,其特征在于,所述网络控制器用于通过数据包报头中包括的逻辑段标识来指示所述多个节点中的节点要实现的时延。27.根据权利要求24所述的网络控制器,其特征在于,每个指示的节点的时延的总和大于或等于所述第一时延与所述第二时延的差值。28.根据权利要求19所述的网络控制器,其特征在于,所述第一路由和所述第二路由部分由源路由数据包报头或多协议标记交换(简称MPLS)段路由数据包报头标识。29.根据权利要求19所述的网络控制器,其特征在于,所述至少一个处理器还用于: 控制所述网络控制器传输指令给用于延迟所述第二数据包的所述指令所发往的节点,以减少指示的时延,用于对确定所述第一数据包已经到达所述网络中的一个出口节点即所述目的地做出响应。30.—种用于将报文流中的数据包从源端定向到目的地的网络节点,其特征在于,所述网络节点包括: 至少一个存储器; 耦合至所述至少一个存储器的至少一个处理器,其中所述至少一个处理器用于控制所述网络节点; 在沿着第二路由从源端到目的地传输数据包之前,根据网络控制器的指令,将报文流中的数据包进行时延时长的缓存,其中根据与所述第二路由相关的时延在所述源端和所述目的地间的差值以及与第一路由相关的时延在所述源端和所述目的地间的差值,确定所述时延时长。31.根据权利要求30所述的网络节点,其特征在于,所述网络节点是网络中出口节点与入口节点中的一个。32.根据权利要求30所述的网络节点,其特征在于,所述第一路由和所述第二路由部分由源路由数据包报头或封装每个数据包的多协议标记交换(简称MPLS)段路由数据包报头标识O33.根据权利要求30所述的网络节点,其特征在于,所述至少一个处理器还用于控制所述网络节点: 减少所述报文流中随后数据包的时延时长,用于对接收到所述网络控制器的指令做出响应。34.根据权利要求33所述的网络节点,其特征在于,缓存数据包的所述指令内包括用于减少时延时长的所述指令。35.根据权利要求33所述的网络节点,其特征在于,减少时延的所述指令包括根据衰减函数减少时延的指令。36.根据权利要求30所述的网络节点,其特征在于,所述至少一个处理器还用于控制所述网络节点从而: 在将所述报文流中的所述数据包进行所述时延时长的缓存之前,沿着所述源端和所述目的地间所述第一路由传输第一数据包。
【文档编号】H04L12/28GK105874752SQ201480071720
【公开日】2016年8月17日
【申请日】2014年12月31日
【发明人】彼得·艾斯伍德-史密斯
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1