数据传输方法和装置
技术领域
本发明涉及通信领域,具体而言,涉及一种数据传输方法和装置。
背景技术
多协议标签交换(Multi-Protocol Lable Switching,简称为MPLS)3层虚拟专用网络(Virtual Private Network of3Layers,简称为L3VPN)提供基于MPLS网络的三层VPN服务,它使用边界网关协议(Border Gateway Protocol,简称为BGP)在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。MPLS L3VPN的组网方式灵活、可扩展性好,并能够方便地支持MPLS QoS(Quality ofService,服务质量)和MPLS TE,因此得到越来越多的应用。
MPLS L3VPN模型主要由三部分组成:CE、PE和P,下面对这三部分进行具体的介绍:
1)CE(Customer Edge)设备:用户网络边缘设备,有接口直接与服务提供商(Service Provider,简称为SP)相连。CE可以是路由器或交换机,也可以是一台主机,同时,CE“感知”不到VPN的存在,也不需要必须支持MPLS。
2)PE(Provider Edge)路由器:服务提供商边缘路由器,是服务提供商网络的边缘设备,与用户的CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上。
3)P(Provider)路由器:服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本的MPLS转发能力。
如图1所示,现有技术中MPLS L3VPN组网方案的一种网络示意图,其中,CE和PE的划分主要是根据SP与用户的管理范围,CE和PE是两者管理范围的边界。
CE设备通常是一台路由器,当CE与直接相连的PE建立邻接关系后,CE把本站点的VPN路由发布给PE,并从PE学到远端VPN的路由。CE与PE之间使用BGP/IGP(InteriorGateway Protocols,内部网关协议)交换路由信息,也可以使用静态路由交换路由信息。
在PE从CE学到CE本地的VPN路由信息后,PE通过BGP与其它PE交换VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,而不需要维护服务提供商网络中的所有的VPN路由的路由信息。
P路由器只维护到PE的路由,不需要了解任何VPN路由信息。当在MPLS骨干网上传输VPN流量时,入口PE作为Ingress(入口)标签交换路由器(Label Switch Router,简称为LSR),出口PE作为Egress(出口)LSR,P路由器则作为Transit(传输)LSR。
传输控制协议(TCP)的窗口(windowing)的工作方式是:客户端向PE发送一个信息段,如果客户端接收到PE返回的接收成功的应答,则客户端再发送两个信息段(即,两个“窗口大小”)。如果应答回复这两个信息段发送成功,则发送四个信息段,并继续如此进行下去,窗口大小以指数的形式增加。但是,当一个信息段丢失时,TCP流将进入TCP慢启动(TCPSlow Start),这时窗口大小将减少到1,TCP流接着再以指数的形式增长其窗口大小,直到拥塞发生时窗口大小的一半。然后,TCP流的窗口大小以线性的形式增长。TCP慢启动与QoS(服务质量)有关,这主要是因为当一个接口的输出队列已满时,所有新到达的数据包都将被丢弃(即“Tail Dropped”),所有的TCP流将同时进入TCP慢启动。一般将所有TCP流同时进入TCP慢启动的过程称为全局同步(Global Synchronization)或者称为TCP同步。
目前,很多从客户端发送的业务都是通过L3VPN进行传输的,在PE的入口一般会针对每个客户端进行限速(例如,限制在100M以内),尽管客户端发送数据的平均速率会保持在100M以内,但是会出现数据突发的情况,所谓突发,就是在某个时间段内某个客户端集中发送大量的数据。现有技术中,一旦存在突发,PE中的交换芯片将在入口处丢弃所有客户端新到达的数据,这样势必会导致全局同步的发生,使得交换芯片的带宽不能充分利用,造成了带宽的浪费。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种数据传输方法和装置,以至少解决现有技术中交换芯片在某些客户端在单位时间内向交换芯片发送大量数据信息时对所有的客户端发送过来的数据进行限速而导致交换芯片的带宽浪费的技术问题。
根据本发明的一个方面,提供了一种数据传输方法,包括:对要通过交换芯片接入L3VPN的客户端进行分类;当检测到客户端中的一个或多个客户端在预定时间内发送到交换芯片的数据的数据量大于第一预定阈值时,交换芯片将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。
优选地,在交换芯片将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内之后,数据传输方法还包括:将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内。
优选地,将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内的步骤包括:从所有客户端接收的数据中随机丢弃预定个数的数据,使得交换芯片在单位时间内从所有客户端接收的数据的数据量的总和小于第三预定阈值。
优选地,当接入交换芯片的客户端被分成N个类别时,第三阈值为系统总带宽,第二预定阈值为系统总带宽的1/N。
优选地,在将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内之后,数据传输方法还包括:交换芯片将接收到的客户端发送的数据传输到L3VPN。
优选地,对要通过交换芯片接入L3VPN的客户端进行分类的步骤包括:获取客户端向交换芯片发送的数据的源地址和/或目的地址;对源地址和/或目的地址进行哈希运算;根据哈希运算得到的哈希值将客户端分为不同的类别,其中,属于同一类别的客户端对应相同的哈希值。
根据本发明的另一方面,提供了一种数据传输装置,包括:分类单元,用于对要通过交换芯片接入L3VPN的客户端进行分类;第一限制单元,用于在检测到客户端中的一个或多个客户端在预定时间内发送到交换芯片的数据的数据量大于第一预定阈值时,将交换芯片在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。
优选地,该数据传输装置还包括:第二限制单元,用于在第一限制单元将交换芯片在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内之后,将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内。
优选地,该数据传输装置还包括:传输单元,用于在第二限制单元将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内之后,将交换芯片接收到的客户端发送的数据传输到L3VPN。
优选地,分类单元包括:获取模块,用于获取客户端向交换芯片发送的数据的源地址和/或目的地址;哈希模块,用于对源地址和/或目的地址进行哈希运算;分类模块,用于根据哈希运算得到的哈希值将客户端分为不同的类别,其中,属于同一类别的客户端对应相同的哈希值。
在本发明中,当客户端在某一时间段内向交换芯片发送大量的数据,交换芯片将只对类别与在某一时间段内向交换芯片发送大量的数据的客户端的类别相同的客户端发送的数据进行限速,而不是对所有的客户端发送过来的数据进行限速,从而避免了全局同步的发生,解决了现有技术中交换芯片在某些客户端在单位时间内向交换芯片发送大量数据信息时对所有的客户端发送过来的数据进行限速而导致交换芯片的带宽浪费的技术问题,达到了提高带宽利用率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的MPLS L3VPN组网方案的一种网络示意图;
图2是根据本发明实施例的数据传输装置的一种优选结构框图;
图3是根据本发明实施例的数据传输装置的另一种优选结构框图;
图4是根据本发明实施例的数据传输装置的又一种优选结构框图;
图5是根据本发明实施例的数据传输装置的又一种优选结构框图;
图6是根据本发明实施例的数据传输方法的一种优选流程图;
图7是根据本发明实施例的数据传输方法的另一种优选流程图;
图8是根据本发明实施例的数据传输方法的又一种优选流程图;
图9是根据本发明实施例的数据传输方法的又一种优选流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
如图2所示,本发明提供了一种优选的数据传输装置200,该装置包括:包括:分类单元202,用于对要通过交换芯片接入L3VPN的客户端进行分类;第一限制单元204,用于在检测到客户端中的一个或多个客户端在预定时间内发送到交换芯片的数据的数据量大于第一预定阈值时,将交换芯片在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。
在上述优选实施方式中,当客户端在某一时间段内向交换芯片发送大量的数据,交换芯片将只对类别与在某一时间段内向交换芯片发送大量的数据的客户端的类别相同的客户端发送的数据进行限速,而不是对所有的客户端发送过来的数据进行限速,从而避免了全局同步的发生,解决了现有技术中交换芯片在某些客户端在单位时间内向交换芯片发送大量数据信息时对所有的客户端发送过来的数据进行限速而导致交换芯片的带宽浪费的技术问题,达到了提高带宽利用率的技术效果。
在本发明一个优选实施方式中,当交换芯片接收到的数据的数据量大于交换芯片所能承受的最大数据量时,第一限制单元204丢弃与存在突发的客户端属于同一类别的客户端新发送的所有的数据包,使得交换芯片可以将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。
优选的,在本发明各个优选实施方式中,交换芯片对接入L3VPN的客户端进行分类可以是根据从客户端发送到交换芯片的业务的业务数据来对客户端进行分类。
在本发明一个优选实施方式中,如图3所示,数据传输装置200还包括:第二限制单元302,用于在第一限制单元204将交换芯片在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内之后,将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内。在上述优选实施方式中,在对业务数据进行第一级限速以后,再设置一个第二级限速,对所有的客户端发送过来的数据的总量进行限速,从而保证了交换芯片需要向L3VPN发送数据是交换芯片可以处理的量,达到了对突发的有效处理。
在本发明一个优选实施方式中,为了实现将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内,第二限制单元302可以从所有客户端接收的数据中随机丢弃预定个数的数据,使得交换芯片在单位时间内从所有客户端接收的数据的数据量的总和小于第三预定阈值。在上述优选实施方式中,采用随机丢弃或者是对相同类型的客户端发送的数据全部丢弃的方式,避免了TCP同步的发生,进一步的,采用随机丢弃的方式也避免了指定某种数据被丢弃而造成的有些数据被全部丢弃的问题。
在本发明一个优选实施方式中,当接入交换芯片的客户端被分成N个类别时,第三阈值为系统总带宽,第二预定阈值为系统总带宽的1/N。在上述优选实施方式中,将第一级限速将每种类别的速度限制在系统总带宽的1/N内,在第二级限速将交换芯片接收的数据的总量限制在系统带宽以内,从而使得在在某些业务存在突发时,只会影响少数的其他业务,使得系统不会进入TCP同步,提高了系统性能。
在本发明一个优选实施方式中,如图4所示,数据传输装置200还包括:传输单元402,用于在第二限制单元将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内之后,将交换芯片接收到的客户端发送的数据传输到L3VPN。在上述优选实施方式中,将限速后的数据传输到L3VPN,实现了基于L3VPN的数据传输。
在本发明一个优选实施方式中,如图5所示,分类单元202包括:获取模块502,用于获取客户端向交换芯片发送的数据的源地址和/或目的地址;哈希模块504,用于对源地址和/或目的地址进行哈希运算;分类模块506,用于根据哈希运算得到的哈希值将客户端分为不同的类别,其中,属于同一类别的客户端对应相同的哈希值。
例如,存在4个客户端,IP地址分别为:100.0.0.1、100.0.0.2、100.0.0.3和100.0.0.4,将IP地址末位的二进制数值作为哈希值,则客户端100.0.0.1的数据存在突发时,只会对100.0.0.1和100.0.0.3进行限速,而并不会影响100.0.0.2和100.0.0.4数据的传输。
在上述优选实施方式中,对IP地址进行哈希运算得到哈希值,根据哈希值对客户端进行分类,实现起来比较简单,通用性比较强。
实施例2
基于图2-5所示的优选的数据传输装置,本发明还提供了一种优选的数据传输方法,如图6所示,该方法具体步骤包括:
S602:对要通过交换芯片接入L3VPN的客户端进行分类;
S604:当检测到客户端中的一个或多个客户端在预定时间内发送到交换芯片的数据的数据量大于第一预定阈值时,交换芯片将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。
在上述优选实施方式中,当客户端在某一时间段内向交换芯片发送大量的数据,交换芯片将只对类别与在某一时间段内向交换芯片发送大量的数据的客户端的类别相同的客户端发送的数据进行限速,而不是对所有的客户端发送过来的数据进行限速,从而避免了全局同步的发生,解决了现有技术中交换芯片在某些客户端在单位时间内向交换芯片发送大量数据信息时对所有的客户端发送过来的数据进行限速而导致交换芯片的带宽浪费的技术问题,达到了提高带宽利用率的技术效果。
在本发明一个优选实施方式中,当交换芯片接收到的数据的数据量大于交换芯片所能承受的最大数据量时,丢弃与存在突发的客户端属于同一类别的客户端新发送的所有的数据包,使得交换芯片可以将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。
优选的,在本发明各个优选实施方式中,交换芯片对接入L3VPN的客户端进行分类可以是根据从客户端发送到交换芯片的业务的业务数据来对客户端进行分类。
在本发明一个优选实施方式中,基于图6所示的数据传输方法,在交换芯片将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内之后,如图7所示,该数据传输方法还包括:
S702:将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内。在上述优选实施方式中,在对业务数据进行部分限速以后,再设置一个第二级限速,对所有的客户端发送过来的数据的总量进行限速,从而保证了交换芯片需要向L3VPN发送数据是交换芯片可以处理的量,达到了对突发的有效处理。
在本发明一个优选实施方式中,可以从所有客户端接收的数据中随机丢弃预定个数的数据,使得交换芯片在单位时间内从所有客户端接收的数据的数据量的总和小于第三预定阈值。或者当达到交换芯片入口的数据量大于交换芯片所能承受的最大数据量时,丢弃与存在突发的客户端属于同一类别的客户端新发送的所有的数据包,使得交换芯片可以将在单位时间内从与一个或多个客户端的类别相同的客户端接收到的数据的数据量限制在第二预定阈值以内。在上述优选实施方式中,采用随机丢弃或者是对相同类型的客户端发送的数据全部丢弃的方式,避免了TCP同步的发生,进一步的,采用随机丢弃的方式也避免了指定某种数据被丢弃而造成的有些数据被全部丢弃的问题。
在本发明一个优选实施方式中,当接入交换芯片的客户端被分成N个类别时,第三阈值为系统总带宽,第二预定阈值为系统总带宽的1/N。在上述优选实施方式中,将第一级限速将每种类别的速度限制在系统总带宽的1/N内,在第二级限速将交换芯片接收的数据的总量限制在系统带宽以内,从而使得在在某些业务存在突发时,只会影响少数的其他业务,使得系统不会进入TCP同步,提高了系统性能。
在本发明一个优选实施方式中,在将交换芯片在单位时间内从所有客户端接收的数据的数据量的总和限制在第三预定阈值以内之后,数据传输方法还包括:交换芯片将接收到的客户端发送的数据传输到L3VPN。在上述优选实施方式中,将限速后的数据传输到L3VPN,实现了基于L3VPN的数据传输。
在本发明一个优选实施方式中,如图8所示,可以通过如下步骤对要通过交换芯片接入L3VPN的客户端进行分类,包括:
S802:获取客户端向交换芯片发送的数据的源地址和/或目的地址,优选的,以发送端的IP地址或者是接收端的IP地址作为源地址和/或目的地址;
S804:对源地址和/或目的地址进行哈希运算;
S806:根据哈希运算得到的哈希值将客户端分为不同的类别,其中,属于同一类别的客户端对应相同的哈希值。
例如,存在4个客户端,IP地址分别为:100.0.0.1、100.0.0.2、100.0.0.3和100.0.0.4,将IP地址末位的二进制数值作为哈希值,则客户端100.0.0.1的数据存在突发时,只会对100.0.0.1和100.0.0.3进行限速,而并不会影响100.0.0.2和100.0.0.4数据的传输。
在上述优选实施方式中,对IP地址进行哈希运算得到哈希值,根据哈希值对客户端进行分类,实现起来比较简单,通用性比较强。
实施例3
本发明提供了一种优选的实施例来进一步对本发明进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。
当从PE设备的用户侧(客户端)发送来的基于虚拟局域网(VirtualLocalAreaNetwork,简称为VLAN)三层接口接入L3VPN的报文,优选的,在本发明各个优选实施方式中,从用户侧发送过来的数据一般是报文的格式,因此本发明所说的报文就是发送的数据。交换芯片在入口可以基于报文的源IP+目的IP进行哈希运算得到报文的IP哈希值,接入控制列表(Access Control List,简称为ACL)可以基于不同类别的报文对应的IP哈希值+VLAN分别进行带宽控制,从而保证当某些传输控制协议(Transmission ControlProtocol,简称为TCP)连接存在突发的时候,和这些TCP连接类别相同的TCP连接被优先丢弃,从而不会影响IP哈希值不一样的TCP连接,尽可能地避免了TCP全局同步,保证了L3VPN中TCP下载的性能。
为了可以达到上述目的,可以通过如图9所示的方法实现数据业务的传输,具体步骤包括(S902-S906):
S902:设置交换芯片中IP哈希模块的哈希算法,优选的,该哈希算法可以是基于源IP、目的IP或者是它们的组合,IP报文通过交换芯片的IP哈希模块会得到该报文对应的的IP哈希值。
S904:将交换芯片的入口上用于接入L3VPN的带宽根据需要分成N个部分(例如,N可以是2、4、8等),通过入口中多个ACL规则分别匹配L3VPN中的VLAN+IP哈希值(例如,哈希值可以是0,1,2,3等)对数据的传输进行第一级的限速,优选的,可以将ACL规则定义为:IP哈希值+VLAN pir限速,cir pir,其中,pir为系统总带宽,cir为系统总带宽/N,,当某个客户端发送过来的业务的突发量很大时,将哈希值与该业务哈希值相同的业务的业务数据的传输速率都限制在cir以内,从而实现第一级限速,也就是说第一级限速的限速器相当于工作在色盲模式。在经过第一级限速后,所有限速后的数据再进入全局限速器,其中,全局限速器就是多个ACL规则共同指向的限速器。
以客户端从端口1VLAN100接入L3VPN,其中,接入带宽为100M,数据从端口2进入L3VPN,存在4个客户端,IP地址分别为100.0.0.1、100.0.0.2、100.0.0.3和100.0.0.4为例进行说明。
根据哈希值将交换芯片接收到的业务分成两类:一类是源IP的最低位为0,另外一类是源IP的最低位为1;设置规则1为:IP哈希值最低位为0+VLAN 100限速,cir 50Mpir100M;设置规则2为:IP哈希值最低位为1+VLAN 100限速,cir 50M pir 100M。优选的,当客户端的数目比较多的时候,可以根据需要多选择哈希值的bit数目。
当有业务存在突发时,比如,客户端100.0.0.1的业务存在突发,则对客户端100.0.0.3和客户端100.0.0.1进行限速,从而只有客户端100.0.0.1和100.0.0.3可能受到影响,其它两个客户端100.0.0.2和100.0.0.4的业务并不会受到影响。
S906:对所有限速后的数据再进行第二级限速,全局限速器工作模式为色敏感模式,在全局限速器中,cir=pir=接入总带宽。
从以上的描述中可以看出,本发明的实施例实现了如下技术效果:同时采用2级限速器进行限速,第一级限速器工作在色盲模式,第二级限速器工作在色敏感模式,如果某个客户端发送的业务突发很大时,只会影响同一类别的客户端(例如:哈希值一样的客户端)的业务数据传输,使得这些业务会有丢包,从而进入慢启动,而对于不是同一类别的客户端(例如,哈希值不一样的客户端)的业务数据传输并没有影响,使得整个L3VPN里面的TCP连接不会进入全局同步,从而提高了带宽的利用率,保证了L3VPN业务TCP下载的性能。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。