本发明涉及通信技术领域,尤其涉及一种补偿时延的方法和设备。
背景技术:
随着互联网协议(英文:internetprotocol,简称:ip)网络的应用和业务的多样化,ip网络发展常需要解决在现有以太网接口速率等级下,满足更高带宽的需求。灵活以太网(英文:flexibleethernet,简称:flexe)技术提供了一种支持多种以太网媒体接入控制(英文:mediaaccesscontrol,简称:mac)速率的通用机制,其速度不再受物理层速率限制,可以满足多种业务速率的需求。
为了解决超低时延的问题,flexe交叉作为一种新兴的以太网交换技术,因具备超低时延和超低抖动的转发特性,被用于5g移动业务承载以及电力继保业务承载等场景,而这些业务往往对时延信息的传递有着严苛的要求。因此,控制承载网中设备的时延是实现时间同步的重要问题。传统移动承载网解决时间同步的方法是通过在每一台基站上连接一台时间服务器来实现时间同步,但该方案需要部署大量的时间服务器和gps,成本很高,部署难度很大;另外一种解决方案是通过在承载网络中部署一台或几台时间服务器,时间服务器通过承载网透传时间信息到基站,该方案需要承载网中的每台设备均需支持对精确时钟同步协议(英文:precisiontimeprotocol,ptp)报文的处理能力,以及复杂的协议状态机运算,这样导致配置、管理和维护都比较复杂。
技术实现要素:
本申请实施例提供了一种补偿时延的方法和设备,通过设备对双向数据流的时延进行补偿,以实现设备对数据流时延的控制。
第一方面,本申请提供了一种补偿时延的方法,该方法包括设备确定第一数据流从该设备的第一物理端口到该设备的第二物理端口的第一时延值,其中,第一物理端口为第一数据流的入端口,第二物理端口为第一数据流的出端口。设备确定第二数据流从第二物理端口到第一物理端口的第二时延值,其中,第二物理端口为第二数据流的入端口,第一物理端口为第二数据流的出端口。在第一时延值小于第二时延值的条件下,该设备基于第一时延值和第二时延值确定第一目标时延值。该设备将第一数据流的时延值调整至第一目标时延值。
采用上述方法,设备通过第一数据流的第一时延值和第二数据流的第二时延值来确定第一目标时延值,并将第一数据流的时延值调整到与第一目标时延值相等,实现设备对双向数据流中第一数据流时延值的调整。
结合第一方面,在第一种可能的实现方式中,第一目标时延值和第二时延值相等。
上述方法,该设备确定第一目标时延值和第二时延值相等,使得第一数据流的时延值调整到与第二数据流的第二时延值相等,这样就可以实现该设备对双向数据流的对称性补偿,使第一数据流的从设备的第一物理端口到第二物理端口的时延值与第二数据流从该设备的第二物理端口到第一物理端口的时延相等,可以实现对时间同步报文的透传,避免传输时间同步报文的设备都需要具备处理1588协议的能力。
结合第一方面,在第二种可能的实现方式中,在第一目标时延值大于第二时延值时,该方法还包括:该设备将第二数据流的时延值调整至第一目标时延值。
上述方法,在第一目标时延值大于第二时延值时,该设备将第二数据流的时延值调整至第一目标时延值,这样就可以使第一数据流的时延值与第二数据流的时延值相等,即设备将第一数据流的时延值与第二数据流的时延值都调整到第一目标时延值,使第一数据流由设备第一物理端口到第二物理端口的时延值与第二数据流由第二物理端口到第一物理端口的时延值相等,即通过该设备补偿时延使设备的双向数据流的时延值相等。
结合第一方面,在第三种可能的实现方式中,该方法还包括,该设备基于第一时延值和第二时延值确定第二目标时延值。该设备将第二数据流的时延值调整至第二目标时延值。
上述方法,设备根据第一时延值和第二时延值确定第二目标时延值,并将第二数据流的时延值调整到第二目标时延值,这样可以实现设备对第二数据流的时延进行调整。
结合第一方面,在第四种可能的实现方式中,第二物理端口确定第一时延值和第一物理端口确定第二时延值包括:第二物理端口将第一时延值添加在第二数据流中。第一物理端口接收携带在第二数据流中的第一时延值。该设备基于第一物理端口接收的第一时延值和第一物理端口确定的第二时延值确定第一目标时延值。
上述方法,第二物理端口将第一时延值添加在第二数据流中,第一物理端口根据接收的第一时延值和确定的第二时延值来确定第一目标时延值,实现设备根据第一数据流的第一时延值确定第一目标时延值。
第二方面,本申请提供了一种设备,用于执行第一方面或第一方面任意可能的设计中的方法。具体地,该设备包括用于执行第一方面或第一方面任意可能的实施方式中的方法的模块。
第三方面,本申请提供了一种设备,包括:网络接口、处理器和存储器。其中,网络接口、处理器和存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第一方面或第一方面任意可能的设计中的方法中所述设备执行的信息收发以外的操作。
结合第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面和第一方面任意可能的实现方式中的方法的指令。
附图说明
图1为本发明实施例提供的一种补偿时延的方法的应用场景示意图。
图2为本发明实施例提供的一种补偿时延的方法流程示意图。
图3为本发明实施例提供的一种设备的结构示意图。
具体实施方式
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列操作或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些操作或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它操作或单元。
图1提供了一种补偿时延的系统架构示意图,该系统可以是传统的移动承载网,该网络系统中的设备101至104可以是支持flexe技术的设备。在图1所示的网络系统中,解决时间同步的相关方法可以是在该承载网络中部署一台或几台时间服务器,时间服务器通过承载网将时间信息发送给基站。该时间同步方法具体如图1中的时间服务器105从gps卫星或精确时钟同步协议(precisiontimeprotocol,ptp)等获得时延信息编码并发出时间信息到设备104。然后按照由主设备到从设备的关系进行时钟同步,例如由主设备104向从设备103发布时间信息,设备103作为主设备向从设备102发布时间信息。而在使用上述方法实现时间同步的过程中,由于1588同步报文在支持flexe的设备内转发存在时延不确定、双向时延不相等的问题,因此需要该承载网中的设备101至104都要逐跳运行1588同步报文。从1588同步报文的实现时间同步的过程中可以看出,承载网中的每台设备都需要支持对1588同步报文的收发处理以及复杂的协议状态机运算,即实现配置、管理和维护都比较复杂。
为了解决上述技术问题,实现设备对时间同步报文的透明传输,减少设备处理1588同步报文的复杂性,就需要解决设备如何控制双向数据流的时延,具体方法可以通过设备对数据流时延进行补偿,使设备的双向数据流的时延值保持稳定的关系,例如设备可以通过对双向数据流的补偿实现双向数据流时延值相等;还可以通过设备补偿双向数据流的时延,使双向数据流的时延保持稳定的差值,这样就实现对时间同步报文的透明传输,不需要设备通过1588来实现测量设备处理数据流的时延。图如2所示,为本申请提供了一种补偿时延的方法流程示意图,图2中所述的设备可以是图1中设备101至104中任意一个,该方法包括以下内容。
s210,设备确定第一数据流从所述设备的第一物理端口到所述设备的第二物理端口的第一时延值。
在一种实现方式中,第一数据流既可以是以太网物理层数据流,例如可以是1588时间同步报文或者网络时间协议(networktimeprotocol,ntp)报文,还可以是时分复用(timedivisionmultiplexing,tdm)数据流等,本申请对第一数据流的类型不做具体限制。为了简便,本申请说明书部分用正向时延表示第一数据流从设备的第一物理端口到第二物理端口方向的时延,用反向时延表示第二数据流从第二物理端口到第一物理端口方向的时延。
在一种实现方式中,第一数据流从该设备的第一物理端口到达该第二物理端口的过程中,该设备可以通过第一物理端口对第一数据流标记第一时间戳,通过第二物理端口标记第二时间戳,其中,标记时间戳的形式既可以是第一物理端口将第一时间戳添加在数据块中,还可以是在第一数据流到达第一物理端口时,第一物理端口标记第一时间戳并将该第一时间戳上报给设备的处理器,该设备还可以通过其它已知方式标记时间戳,本申请对标记时间戳的方式不做任何限制。第二物理端口标记第二时间戳的方式可以参考上述第一时间戳的标记方式。第一数据流从设备第一物理端口到该设备的第二物理端口的时延值为第二时延戳的值减去第一时间戳的值所获得的数值d1。
举例来说,不同的场景下该设备可以但不限于采用以下几种确定第一时间戳。
方式一、该设备可以为图1承载网中的设备102或103,该设备发送第一数据流的入端口和出端口均为flexe端口,即第一物理端口和第二物理端口均为flexe端口,其中,flexe端口根据不同的应用场景,又可以区分为单物理层(英文:physicallayer,简称:phy)场景和多phy场景,多phy场景可以理解为多组单phy的组合。
下面以该设备的第一物理端口和第二物理端口均为单phy为例对该设备确定正向时延的方式进行详细描述。第一物理端口用于接收第一数据流和发送第二数据流,并将接收到的第一数据流转化为内部并行信号或者将发送的第二数据流由内部并行信号转换为可以在外部介质上传输的数据流。具体来说,该设备的第一物理端口接收第一数据流,并将第一数据流转换为第一数据块。第一物理端口的物理媒介附加(英文:physicalmediumattachmentsublayer简称:pma)接收到第一数据块时,可以用第一数据块首比特记录第一时间戳t1,每一组数据块都会记录。携带标记t1的第一数据块经过pma和物理编码子层(英文:physicalcodingsublayer,简称:pcs)处理后,会被转换为64/66比特数据块。为了更加精确计算正向时延,在第一数据块被转换为64/66比特数据块时,设备可以在64/66比特数据块的入口时戳标记t1,其中,该时间戳t1是通过时间戳t1和第一数据块首比特与64/66比特数据块首比特位置偏移转换得到的。该64/66比特数据块和该时间戳t1由第一物理端口发送到第二物理端口,即由设备的入端口发送到设备的出端口,携带时间戳标记t1的64/66比特数据块在被发送到第二物理端口之前,还可以经过设备其它模块的处理,对此不做限制。
该设备的第二物理端口接收到该64/66比特数据块和时间戳t1,识别并提取时间戳t1,获得t1的值。该64/66比特数据块经过第二物理端口的处理后发送给第二物理端口的pma,第二物理端口的pma用数据块的首比特记录第一数据流的经过第二物理端口pma的出口时间戳t2,并将数据块转换为第一数据流。正向时延值的计算方法可以是上述t2与t1的差值,也可以是上述t2与t1的差值。
为了减少时间戳所占用的带宽,举例来说,可以对第一数据流采用抽样的方式,只在被抽样的数据块中标记时间戳。
方式二、当所述设备为图1中设备104,所述设备为承载网中的接入设备,所述设备的入端口为普通以太网(英文:ethernet,简称:eth)端口,出端口为flexe端口时,即所述设备的第一物理端口为普通以太网端口,第二物理端口为flexe端口,对所述设备正向时延的测量和计算方法可以参考上述设备的入端口和出端口均为flexe端口的测量和计算方法,可以通过第一物理端口对第一数据流标记第一时间戳,第二物理端口标记第一数据流到达出端口的第二时间戳。设备可以通过计算第二时间戳与第一时间戳差值获得正向时延值,具体方法可以参考方式一种所述,此处不再赘述。
方式三、所述设备还可以是通用公用无线接口(英文:commonpublicradiointerface,简称:cpri)业务的接入设备,crpi是移动前传网络中射频拉远单元(英文:remoteradiounit,简称:rru)和基带单元(英文:basebandunit,简称:bbu)之间的业务接口,该设备对传输时延和双向时延的差值要求极为苛刻。在crpi业务中,同样可以采用设备的入端口和出端口均为flexe端口场景下测量正向时延的方法,具体测量方法可参考设备的入端口和出端口均为flexe端口场景下测量正向时延的方法,此处不再赘述。
方式四、当所述设备为固定比特率(英文:constantbitrate,简称:cbr)业务接入设备,即所述设备的入端口为cbr业务端口,可称为第一物理端口,出端口为flexe端口,可称为第二物理端口。由于业务接入设备的入端口为cbr业务端口,该cbr业务端口的业务处理部分无pma,在cbr业务接入场景下需要在第一物理端口的帧(framer)模块接收到所述报时标记第一时间戳。第二物理端口为flexe端口,第一数据流到达第二物理端口时,可以在第二物理端口的pma标记第二时间戳。同样可以通过计算第二时间戳与第一时间戳的差值获得正向时延值。
s220,该设备确定第二数据流从第二物理端口到第一物理端口的第二时延值,其中,第一时延值小于第二时延值。
在一种实现方式中,将第二数据流从该设备的第二物理到第一物理端口的时延称为反向时延。本领域普通技术人员可知,设备通过检测确定的正向时延值和反向时延值多数情况大并不相等,既可以是正向时延值大于反向时延值,也可以是反向时延值大于正向时延值,本申请下面以正向时延值小于反向时延值为例进行说明。
在一种实现方式中,反向时延值的测量方法可以参考正向时延的测量方法。
举例来说,该设备发送第二数据流的入端口和出端口可以均为flexe端口,即第一物理端口和第二物理端口均为flexe端口,可以参考s210中的方式一的方法确定反向时延值。
举例来说,该设备的入端口可以为普通以太网端口,出端口为flexe端口,即所述设备的第一物理端口为普通以太网端口,第二物理端口为flexe端口,可以参考s210中方式二确定该设备反向时延值。
举例来说,该设备还可以是cpri业务的接入设备。在cpri业务中,设备的入端口和出端口均为flexe端口,具体确定反向时延的方法可参考设备的入端口和出端口均为flexe端口场景下的方法确定该设备反向时延值。
举例来说,该设备为cbr业务接入设备,即所述设备的入端口为cbr业务端口,可参考s210中方式四确定该设备反向时延值。
在一种实现方式中,该设备可以通过第二物理端口确定第一时延值,通过第一物理端口确定第二时延值,其中,第二物理端口将第一时延值添加在所述第二数据流中。第一物理端口接收携带在第二数据流中的所述第一时延值。该设备基于第一物理端口接收的第一时延值和第一物理端口确定的第二时延值确定第一目标时延值。
s230,所述设备基于第一时延值和第二时延值确定第一目标时延值。
在一种实现方式中,该设备可以根据第一时延值和第二时延值的大小来确定第一目标时延值,第一目标时延值可以大于或者等于第一时延值和第二时延值中的最大值。
举例来说,设备确定第一时延为0.5秒,第二时延为0.8秒,可将第一目标时延值设置为大于或者等于第二时延值的数值,例如可以将第一目标时延值设置为0.8秒,也可以将第一目标时延值设置为1秒。
在一种实现方式中,该设备在s210中通过第二物理端口确定该设备处理第一数据流的第一时延值之后,该设备的第二物理端口可以将该第一时延值添加在第二数据流。第二物理端口将携带第一时延值的第二数据流发送到第一物理端口。第一物理端口可以通过接收到携带第一时延值的第二数据流,确定第二数据流的第二时延值以及提取第一时延值。第二物理端口根据获的第一时延值和第二时延值的大小确定第一目标时延值。
s240,设备将第一数据流的时延值调整至第一目标时延值。
在一种实现方式中,该设备调整第一数据流的时延值至第一目标时延值是通过在第一数据流的第一时延值的基础上补偿第一数据流的时延。换句话说,就是在该设备将第一数据流通过第二物理端口发送出去之前,对第一数据流的时延进行补偿。具体可以是该设备计算获得第一时延值与第一目标时延值的差为d1,该设备将d1配置到该设备的缓冲器中。第一数据流被转化为第一数据块后,对第一数据块增加空闲(idle)数据块以补偿d1,即将第一数据流的时延调整到第一目标时延值,使设备调整第一数据流的正向时延值与第一目标时延值相等。设备对第一数据流增加空闲数据块的具体位置可以根据实际设计合理放置,本申请对此不做限制。
该设备可以将第一目标时延值的数值设置为与与第一时延值和第二时延值中的最大值相等,也可以将第一目标时延值的数值设置成大于所述最大值,其中,在本实现方式中,所述最大值为所述第二时延值。当将第一目标时延值的数值设置成大于所述最大值时,不仅可以将第一数据流的时延值调整至与第一目标时延值相等,还可以将第二数据流的时延值调整至与第一目标时延值相等。
s240还可以包括设备根据第一时延值和第二时延值的大小确定与第一目标时延值不等的第二目标时延值。其中第二目标时延值为大于所述最大值的数值。设备可以将第一数据流的时延值调整至与第一目标时延值相等,还可以将第二数据流的时延值调整至与第二目标时延值相等。
在一种实现方式中,由于引起时延不确定的因素主要发生在业务初始化阶段,或者频率失步状态。考虑到时延测量过程中设备内部传递时戳会消耗业务带宽,测量次数越多消耗的带宽资源越大。为了节省带宽,可以只在业务初始化结束且频率同步后启动上述时延补偿方法。
通过上述方法,该设备接收到双向数据流时,数据流从第一物理端口端口到第二物理端口的时延和数据流从第二物理端口到第一物理端口的时延均会被精确测得。该设备通过设定目标时延值,对第一数据流或者第二数据流的时延进行调整,从而实现控制双向流经过设备的时延值。例如该设备通过对第一数据流的正向时延或第二数据流的反向时延进行调整,使第一数据流的正向时延值和第二数据流的反向时延值相等,这样就可以实现对时间同步信息的透明传输,以解决传统设备需要依赖1588技术才能透传时间信息的技术问题,不需要承载网中的所有设备都具备对1588报文处理的能力,使得网络的配置、管理和维护的复杂度均大大降低。
图3是本申请实施例提供的一种设备300的结构示意图,该设备300可以应用于图1所示的网络架构中,例如可以是图1所示的网络架构中的设备101至104中任意一个设备,可以实现该设备101至104中任意一个设备的功能。如图3所示,设备300可以包括处理器310,与处理器310耦合连接的存储器320,网络接口330。
处理器310可以是中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。
处理器310还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。处理器310可以是指一个处理器,也可以包括多个处理器。
存储器320可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:rom),快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd)。存储器320还可以包括上述种类的存储器的组合。
在一个实施方式中,存储器320可以包括多个软件模块,例如确定模块321和调整模块322。通过执行上述软件模块中的指令,处理器310可用于执行多个操作。存储器320可以是指一个存储器,也可以包括多个存储器。在一些实施方式中,当一个模块被配置用于执行一个操作,它可能实际表示处理器310被配置于执行模块中的指令以完成上述操作。通过执行存储器320中的指令,处理器310可以执行方法210至240中该设备所执行的部分或全部操作。例如,处理器310可以通过网络接口330接收第一数据流和第二数据流。
总线340可以包括任意数量的互联的总线和桥,总线340将包括由处理器310代表的一个或多个处理器310和存储器320代表的存储器的各种电路链接在一起。总线340还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
确定模块321用于确定第一数据流从该设备的第一物理端口到该设备的第二物理端口的第一时延值,其中,第一物理端口为第一数据流的入端口,第二物理端口为第一数据流的出端口。该确定模块321还用于确定第二数据流从第二物理端口到第一物理端口的第二时延值,其中,第二物理端口为第二数据流的入端口,第一物理端口为第二数据流的出端口,第一时延值小于第二时延值。确定模块321还用于基于第一时延值和第二时延值确定第一目标时延值的大小。
调整模块322用于将第一数据流的时延值调整至第一目标时延值。
在一个具体的实施方式中,第一目标时延值和第二时延值相等。
在一个具体的实施方式中,在第一目标时延值大于第二时延值时,调整模块322还用于将第二数据流的时延值调整至第一目标时延值。
在一个具体的实施方式中,确定单元321还用于基于所述第一时延值和第二时延值确定第二目标时延值,调整模块322还用于将所述第二数据流的时延值调整至所述第二目标时延值。
在一个具体的实施方式中,该设备300还可以包括添加模块323,该添加模块用于将所述第一时延值添加在所述第二数据流中。该网络接口330接收携带在第二数据流中的第一时延值。确定模块321用于基于第一物理端口接收的第一时延值和第一物理端口确定的第二时延值确定所述第一目标时延值。
在上述具体实施方式中,处理器310、存储器320以及网络接口330的具体实现可以参考图2中设备的功能和操作,为了简介,不再赘述。各个软件模块用于执行的操作实际上是由处理器310根据各个软件模块中的指令来直接或者间接执行的。
应理解,在本申请的各种实施例中,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所公开的方法和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
所述集成的单元如果以硬件结合软件的形式实现并作为独立的产品销售或使用时,所述软件可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案对现有技术做出贡献的部分技术特征可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者设备等)执行本发明各个实施例所述方法的部分或全部操作。而前述的存储介质可以是u盘、移动硬盘、只读存储器(简称:rom,英文:read-onlymemory)、随机存取存储器(简称:ram,英文:randomaccessmemory)、磁碟或者光盘。