数据网络报文端到端传输时延随带测量方法
技术领域
属于数据通信技术领域和工业控制技术领域。
技术背景
数据网络通信或者工业控制都有不同地点的设备(或功能模块)间时间、时钟同步要求或者不同设备(或模块)间信息传输时延的要求。这些设备或者(功能模块)会使用适合的数据通信网络进行通信,实现系统的分布式。现有的数据网络时间或时钟同步、实时测量技术主要使用物理层的时钟传递如同步以太网或SDH,或者使用集中式的数据网络时间授时方法例如NTP或PTP方式。前者需要从物理信号中恢复时钟,成本高;后者依赖主从的集中模式影响系统分布性和可靠性,并且不适合测量单个报文经过数据网络的时间。本发明通过数据网络设备(或功能模块)在被测报文的内部实时记录、携带相关时间信息的机制和采用设备内统一时钟(但不同设备的时钟是相互独立的)进行相关时间测量的办法,可以实现全分布式的时间同步或被测报文经过网络的传输时间。
发明内容
数据网络(data network),或称为计算机网络(computer network),由实现OSI七层模型所述的各种数据网络通信协议的网络单元NE(network element)和连接NE间的链路(line)构成;NE根据是否终结该数据网络通信协议可以分为DTE(数据通信发起或终结单元)和DCE(数据通信单元,例如数据网络交换/路由设备,但不限于这些设备);NE根据其数据通信协议所在的OSI七层分层模型的位置,又可以分成物理层网络设备、数据链路层网络设备、网络层网络设备、传输层网络设备等;NE可以是独立的设备,也可以是通过电路板互联的模块,这里统称为数据网络设备。数据网络通过数据报文(即各种OSI数据网络的最小信息传输结构,这里统称报文)传输信息。报文由相关数据网络通信协议字段和用户信息字段构成,并在途径的每个数据网络设备内接受相关通信协议的处理。为区别本发明产生的时间测量处理,我们称前者为常规处理。
本发明要求组成网络的链路对称并且传输时延固定,此时报文经过数据网络的总传输时由下述公式表示:
报文端到端的时延=累计报文途径数据网络设备(或模块)驻留时延+累计途径链路时延。
其中链路延时在传输路径不发生变化时对于被测报文不同时刻的传输应该是一样的,而报文在设备(或模块)内的驻留时间对于不同时刻的传输是变化的。所有时间测量都以接收或发送被测报文的第一个bit为准。
链路传输时延可以通过专用仪表一次性测量得到或者通过专门的报文携带时间信息的方法测量得到。使用后一种方法,通过链路相连的两个相邻数据网设备,一方可以向另一方发送专门的测量链路时延的报文,对方接收到后将该报文原路返回,并把利用本地时钟测到的报文离开和进入时间差τ放入报文中,本方接收到返回的报文时,利用本方本地时钟测得报文离开和进入到的时间差为t并从返回报文中取出时间信息τ,则(t-τ)的一半即为链路传输时延。所涉及的设备内本地时钟是相互独立的。说明如图1所示。
对于报文在网络设备内的驻留时间可以通过本发明使用的被测报文动态携带时间信息的方式,即在在网络设备对被测报文进行常规网络通信协议处理过程中动态实时地在被测报文约定的位置更新或读取相关时间信息,并且该报文在经受常规网络协议处理过程中携带这些时间信息。测量报文在设备内的驻留时间,还必须在设备内建立统一的时钟系统,为在各个环节测量时间提供统一的时间。该时钟系统只在本设备内有意义,不同的设备内的时钟系统没有任何相位关系。该时钟的最长计时时间(即时钟翻转时间长度)须远远大于最大报文通过该设备的驻留时间。测量报文在设备内驻留时延原则上只需要在设备内报文处理过程中携带报文进入设备时刻时间信息,在设备间链路传输时可以不必携带该信息。但为了实现方便可以在报文端到端传输过程中始终开辟在报文中开辟携带该信息的专门字段。说明如图2所示。
为了在相邻设备间传递累计时延信息,需要在报文中携带累计时延或分成累计途经链路时延和累计途经设备驻留时延信息。当报文从上一个设备通过相连的链路进入当前设备时,需要在报文携带的累计时延或累计线路时延上加上事先已经测量好的该端口所连的链路的传输时延,然后报文携带更新过的这些时间信息继续接受常规的通信协议处理,在报文离开设备进入连接下一设备的链路时,需要在报文携带的累计时延或累计驻留时延上,加上利用前面所述设备内驻留时延测量办法得到的报文在本设备内的驻留时延。实现过程说明如图3所示。
本发明通过在被测报文内同时携带当前累计传输时延信息(或分成当前累计链路时延信息和当前累计设备内驻留时延)和报文进入当前数据网络设备时刻时间信息实现该报文的端到端时延的测量,测量流程如下:
1)利用当前数据网络设备本地时钟测量被测报文进入该设备时刻
2)从该报文中取出随带的到当前为止累计的传输时延或累计的途径链路延时(如果驻留时延和链路时延分开在被测报文中记录),加上已经测得的进入端口所连链路时延,重新放入报文随带区域中并更新相关协议要求的校验,送报文进行常规协议处理
3)并在该报文内随带该时间信息,
4)在报文离开设备时同样利用本地时钟测量报文离开时刻,
5)并从报文中取出报文进入设备时间信息,报文离开设备时间与进入设备时间相减得到该报文在当前设备内的驻留时间,
6)从该报文中取出当前累计驻留时间,加上被设备的驻留时间后重新放入被测报文中并更新相关协议要求的校验,进行报文常规发送。
为携带上述时延和时刻时间信息,本发明须在被监测的报文中开辟专门的字段,分成三个或两个区域,如果分成三个区域,则分别记录该报当前文累计途经设备(或功能模块)内驻留时延、当前累计途经链路时延和该报文进入当前设备的时刻;也可以只分两个区,其中记录本报文进入设备时刻的区域与三个分区中记录相同信息的分区一样,另一个分区可以合并三分区方式中累计驻留时延和累计链路时延成一个区域,记录累计总时延。
报文携带时间信息的方式有如下限制:
-对于时间信息在报文中的位置须不违反网络所使用的通信协议要求;
-对于是否需要将总时延分成链路时延和驻留时延、每个分区的字段长短、每个分区是否采用结构化方式(即该分区分为单位表示区和时间信息表示区),需要满足如果通过增加额外字段携带时间信息则加长后的报文长度不能超过网络使用的通信协议MTU的要求(除非网络支持超长包),同时还必须保证时延分区大小足够记录最长可能时延以及该报文进入当前设备的时刻分区须大于本地时钟的翻转时间长度;
-对于时间单位的大小要与端到端时延的测量精度要求一致。
在进行本发明描述的时间测量时,会涉及改变被测报文中记录时间信息的字段的内容或者引起被测报文长度变化(例如,通过增加报文中客户字段来携带时间信息;又例如在测量设备内报文驻留时间时,采取仅在该设备内被测报文携带报文进入设备时刻时间信息的策略),需要按照使用的数据网络通信协议要求同时实时修改报文协议字段的相关内容,并保证最终经过这些修改后报文符合该数据网络协议的要求,例如在以太网网络中,在更改报文中携带的时间信息后,须要同时重新计算并修改报文的FCS。
附图说明
图1利用专门报文测量链路延时的说明
图2利用被测报文携带时间信息机制和设备本地时钟测量报文在设备内驻留时间的说明
图3利用被测报文携带时间信息机制测量报文通过相邻设备时累计线路时延和累计驻留时延的说明
具体实施方式
以以太网交换机组成的以太网数据网络为例,被测报文携带时间信息的方法采用以太报文中用户数据开头的位置增加7个字节的方法,其中前4个记录当前总传输时延,后3个记录报文进入交换机时刻,两个区域都使用非结构化方式,直接记录相关时间信息,单位为纳秒。总传输时延部分为最大可以记录4秒,大于报文通常通过网络的端到端时延。报文进入设备时间部分最长可以记录8388608纳秒,等于本地时间计数器的最大翻转时间。为了方便说明,本例子假设被测以太网报文在增加7个字节后任然小于或等于以太网协议MTU的要求。(对于超过MTU的情况,需要该网络中的所有设备都必须支持超长包)。本例子采用全程保留报文进入设备时刻时间分区的方式。
在以太网设备例如交换机内需要通过硬件实现时间测量单元,包括一个时钟系统和一个对报文进出设备时间进行测量、对报文携带的时间信息区域可以实时在线更新的功能单元。例如在所有接口处的PHY和MAC芯片间插入FPGA实现时间测量单元。利用交换机本地晶振可以在FPGA内产生一个计数器形成测量时间的时钟,在本例子中假设晶振频率为125M,计数器为20bit,则时钟可以记录的最长时间为8388608纳秒,远远大于一个以太网最大报文通过一个交换机的常规时间。利用时间测量单元在实现发明内容中描述的端到端时延测量的过程。