CN108737296B - 一种数据传输方法、装置和网络设备 - Google Patents

一种数据传输方法、装置和网络设备 Download PDF

Info

Publication number
CN108737296B
CN108737296B CN201710889139.XA CN201710889139A CN108737296B CN 108737296 B CN108737296 B CN 108737296B CN 201710889139 A CN201710889139 A CN 201710889139A CN 108737296 B CN108737296 B CN 108737296B
Authority
CN
China
Prior art keywords
data
length
interface board
window
sending
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.)
Active
Application number
CN201710889139.XA
Other languages
English (en)
Other versions
CN108737296A (zh
Inventor
郭道荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201710889139.XA priority Critical patent/CN108737296B/zh
Priority to JP2020517587A priority patent/JP6978596B2/ja
Priority to PCT/CN2018/106875 priority patent/WO2019062656A1/zh
Priority to US16/648,212 priority patent/US11252111B2/en
Priority to EP18863120.4A priority patent/EP3675439B1/en
Publication of CN108737296A publication Critical patent/CN108737296A/zh
Application granted granted Critical
Publication of CN108737296B publication Critical patent/CN108737296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Abstract

本申请提供一种数据传输方法、装置和网络设备,该方法包括:确定待发送的第一数据对应的接口板和逻辑通道;若所述逻辑通道具有发送所述第一数据的能力,则为所述第一数据添加头信息,得到第二数据,将第二数据存储到所述逻辑通道对应的缓冲区;所述头信息包括接口板标识和逻辑通道标识;从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据,并将得到的第一数据发送给所述接口板标识对应的接口板。通过本申请的技术方案,可以解决主控板与接口板速率不匹配的问题,避免接口板的丢包问题。

Description

一种数据传输方法、装置和网络设备
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置和网络设备。
背景技术
网络设备(如路由器、交换机等)通常包括主控板和接口板,且主控板通过以太接口与接口板连接,由于以太接口的传输速率很快,如GE级别的传输速率,因此,通过使用以太接口,可以减少CPU(Central Processing Unit,中央处理器)的占用,提高多核CPU的并发性,且主控板不会成为性能瓶颈。
但是,接口板是通过非以太接口(如E1接口、T1接口、异步串口、同步串口、AM(Analog Modem,模拟调制解调器)接口等)与其它设备连接,而非以太接口的传输速率较慢,如100M级别的传输速率,因此,主控板向接口板发送数据的速率,与接口板向其它设备发送数据的速率严重不匹配,导致接口板通过以太接口接收到大量数据后,只通过非以太接口发送少量数据,导致丢包。
发明内容
本申请提供一种数据传输方法,所述方法包括:
确定待发送的第一数据对应的接口板和逻辑通道;若所述逻辑通道具有发送所述第一数据的能力,则为所述第一数据添加头信息,得到第二数据,并将所述第二数据存储到所述逻辑通道对应的缓冲区;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据,并将得到的第一数据发送给所述接口板标识对应的接口板。
所述确定待发送的第一数据对应的接口板和逻辑通道之后,还包括:
获取所述逻辑通道的剩余资源长度;若所述剩余资源长度大于等于第一数据的长度,则确定所述逻辑通道具有发送所述第一数据的能力;
若所述逻辑通道具有发送所述第一数据的能力,则将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值;
所述从缓冲区中读取第二数据之后,还包括:将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。
所述逻辑通道对应一个发送窗口,所述发送窗口的长度与所述逻辑通道对应的缓冲区的长度相同;其中,所述发送窗口的参数包括窗口起始位置、窗口结束位置、窗口占用位置;所述窗口占用位置与窗口结束位置之间的长度为所述逻辑通道的剩余资源长度;
将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值,包括:将窗口占用位置向窗口结束位置的方向移动指定长度;
将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和,包括:将窗口占用位置向窗口起始位置的方向移动指定长度;或者,将窗口起始位置向窗口占用位置的方向移动指定长度,并将窗口结束位置向所述窗口起始位置的移动方向移动所述指定长度;
其中,所述指定长度为所述第一数据的长度。
所述将得到的第一数据发送给所述接口板标识对应的接口板的过程,包括:
获取所述接口板通过所述逻辑通道发送第一数据时使用的第一速率;
根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率;
基于第二速率将得到的第一数据发送给所述接口板标识对应的接口板;
其中,所述第二速率小于所述第一速率。
所述根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率的过程,具体包括:
根据特征数据确定所述接口板的转发方式,通过所述转发方式对所述第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程,确定进行处理的第一数据的速率,将确定的速率确定为第二速率。
本申请提供一种数据传输装置,所述装置包括:
确定模块,用于确定待发送的第一数据对应的接口板和逻辑通道;
处理模块,用于当所述逻辑通道具有发送所述第一数据的能力时,则为所述第一数据添加头信息,得到第二数据;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
存储模块,用于将所述第二数据存储到所述逻辑通道对应的缓冲区;
读取模块,用于从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据;
发送模块,用于将得到的第一数据发送给所述接口板标识对应的接口板。
所述确定模块,还用于在确定待发送的第一数据对应的接口板和逻辑通道后,获取所述逻辑通道的剩余资源长度;若所述剩余资源长度大于等于第一数据的长度,确定所述逻辑通道具有发送所述第一数据的能力;
所述处理模块,还用于当所述逻辑通道具有发送所述第一数据的能力时,将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值;在读取模块从缓冲区中读取第二数据后,将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。
所述逻辑通道对应一个发送窗口,所述发送窗口的长度与所述逻辑通道对应的缓冲区的长度相同;其中,所述发送窗口的参数包括窗口起始位置、窗口结束位置、窗口占用位置;所述窗口占用位置与窗口结束位置之间的长度为所述逻辑通道的剩余资源长度;
所述处理模块,具体用于在将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值的过程中,将所述窗口占用位置向所述窗口结束位置的方向移动指定长度;
在将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和的过程中,将所述窗口占用位置向窗口起始位置的方向移动指定长度;或者,将所述窗口起始位置向窗口占用位置的方向移动指定长度,并将窗口结束位置向所述窗口起始位置的移动方向移动所述指定长度;
其中,所述指定长度为所述第一数据的长度。
所述发送模块,具体用于在将得到的第一数据发送给所述接口板标识对应的接口板的过程中,获取所述接口板通过所述逻辑通道发送第一数据时使用的第一速率;根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率;基于所述第二速率将得到的第一数据发送给所述接口板标识对应的接口板;
其中,所述第二速率小于所述第一速率。
所述发送模块,具体用于在根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率的过程中,根据特征数据确定所述接口板的转发方式,通过所述转发方式对所述第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程,确定进行处理的第一数据的速率,将确定的速率确定为第二速率。
本申请提供一种网络设备,所述网络设备包括:
第一限速装置,用于确定待发送的第一数据对应的接口板和逻辑通道;若所述逻辑通道具有发送所述第一数据的能力,则为所述第一数据添加头信息,得到第二数据,并将所述第二数据发送给第二限速装置;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
第二限速装置,用于在接收到第二数据后,从所述第二数据的头信息中获取逻辑通道标识,并将所述第二数据存储到所述逻辑通道标识对应的缓冲区;
从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据,并将得到的第一数据发送给所述接口板标识对应的接口板。
基于上述技术方案,本申请实施例中,多个逻辑通道可以共享同一个主控板的处理能力,且可以将数据存储到各逻辑通道对应的缓冲区,并通过逻辑通道发送缓冲区中的数据,可以解决主控板与接口板速率不匹配的问题,避免接口板的丢包问题,满足QOS(Quality Of Service,服务质量)需求。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的数据传输方法的流程图;
图2是本申请一种实施方式中的网络设备的结构示意图;
图3A和图3B是本申请一种实施方式中的基本信息表的示意图;
图3C-图3F是本申请一种实施方式中的窗口管理的示意图;
图4A和图4B是本申请一种实施方式中的消息格式示意图;
图5是本申请一种实施方式中的数据传输装置的结构图;
图6是本申请一种实施方式中的网络设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例提出一种数据传输方法,可以应用于网络设备,网络设备可以包括主控板和接口板,主控板的数量可以为一个或者多个,接口板的数量可以为一个或者多个。其中,主控板可以通过以太接口、PCIE(Peripheral Component Interconnect Express,高速型外设部件互连标准),SPI4(Serial Peripheral Interface,串行外设接口)等方式与接口板连接,接口板可以通过E1接口、T1接口、异步串口、同步串口、AM接口等方式与其它设备连接。在通常情况下,主控板与接口板之间的数据传输速率,大于接口板与其它设备之间的数据传输速率。
参见图1所示,为本申请实施例中提出的数据传输方法的流程示意图。
步骤101,确定待发送的第一数据对应的接口板和逻辑通道;若该逻辑通道具有发送该第一数据的能力,则为该第一数据添加头信息,得到第二数据(为了与第一数据进行区分,可以将添加了头信息的第一数据称为第二数据),并将第二数据存储到该逻辑通道对应的缓冲区。其中,该头信息可以包括但不限于该接口板的接口板标识和该逻辑通道的逻辑通道标识,对此不做限制。
在一个例子中,针对“确定待发送的第一数据对应的接口板和逻辑通道”的过程,可以包括但不限于:针对待发送的第一数据,可以通过第一数据的目的地址信息(如目的IP地址和/或目的MAC地址等)查询转发表,得到与该目的地址信息对应的出接口,而这个出接口就对应一个接口板和一个逻辑通道,该接口板就是第一数据对应的接口板,该逻辑通道就是第一数据对应的逻辑通道。
在一个例子中,在确定待发送的第一数据对应的接口板和逻辑通道后,还可以判断该逻辑通道是否具有发送该第一数据的能力。如果是,执行“为该第一数据添加头信息,得到第二数据”等步骤;如果否,不再发送该第一数据,而是在内存中存储第一数据,等到该逻辑通道具有发送该第一数据的能力时,才从内存中读取第一数据,并执行“为该第一数据添加头信息,得到第二数据”等步骤。
在一个例子中,为了判断出逻辑通道是否具有发送第一数据的能力,则可以采用如下方式:获取逻辑通道的剩余资源长度;若该剩余资源长度大于等于第一数据的长度,则确定该逻辑通道具有发送该第一数据的能力;若该剩余资源长度小于第一数据的长度,则确定该逻辑通道不具有发送该第一数据的能力。
进一步的,若该逻辑通道具有发送该第一数据的能力,则还可以将该逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值。
在一个例子中,针对“为第一数据添加头信息,得到第二数据”的过程,可以包括但不限于如下方式:确定该接口板对应的接口板标识(即接口板的唯一标识),并确定该逻辑通道的逻辑通道标识(即逻辑通道的唯一标识)。然后,为该第一数据添加头信息,该头信息可以包括但不限于该接口板标识和该逻辑通道标识,对此不做限制,而添加了头信息的第一数据,就可以称为第二数据。
在一个例子中,针对“将第二数据存储到该逻辑通道对应的缓冲区”的过程,可以包括但不限于如下方式:每个逻辑通道可以对应有一个缓冲区,因此,在得到第二数据之后,就可以将该第二数据存储到该逻辑通道对应的缓冲区。
当然,在实际应用中,多个逻辑通道也可以对应同一个缓冲区,因此,在得到第二数据之后,也可以将该第二数据存储到该逻辑通道对应的缓冲区。
步骤102,从缓冲区中读取第二数据,并从读取的该第二数据的头信息中获取接口板标识和逻辑通道标识,并去除读取的该第二数据的头信息,得到第一数据,并将得到的第一数据发送给该接口板标识对应的接口板。
在一个例子中,在从缓冲区中读取第二数据后,还可以将该缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。
在一个例子中,为了判断逻辑通道是否具有发送该第一数据的能力,则逻辑通道的缓冲区还可以采用窗口机制实现,基于此,则逻辑通道可以对应一个发送窗口,该发送窗口的长度与该逻辑通道对应的缓冲区的长度相同。而且,该发送窗口的参数可以包括但不限于窗口起始位置、窗口结束位置、窗口占用位置;该窗口起始位置与该窗口结束位置之间的长度为该发送窗口的长度;该窗口占用位置与该窗口结束位置之间的长度为该逻辑通道的剩余资源长度。
基于此,上述“将逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值”,可以包括:将该窗口占用位置向该窗口结束位置的方向移动指定长度;此外,上述“将缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和”,可以包括但不限于:将该窗口占用位置向该窗口起始位置的方向移动指定长度;或者,将该窗口起始位置向该窗口占用位置的方向移动指定长度,并将该窗口结束位置向该窗口起始位置的移动方向移动指定长度。其中,上述指定长度可以为所述第一数据的长度。
在一个例子中,在从缓冲区中读取第二数据之后,还可以获取该第二数据在该缓冲区中的第一位置,并根据该第一位置确定出该窗口起始位置在该发送窗口中的第二位置;然后,还可以将该窗口起始位置移动到该发送窗口中的第二位置,并可以根据该窗口起始位置的移动长度移动该窗口结束位置。
在一个例子中,针对“从该第二数据的头信息中获取接口板标识和逻辑通道标识,并去除该第二数据的头信息”的过程,由于第二数据的头信息中包括接口板标识和逻辑通道标识,因此,可以从第二数据的头信息中获取接口板标识和逻辑通道标识,并可以去除该第二数据的头信息,从而得到第一数据。
在一个例子中,针对“将第一数据发送给该接口板标识对应的接口板”的过程,可以包括:获取该接口板通过该逻辑通道发送第一数据时使用的第一速率,根据第一速率确定向该接口板发送第一数据时使用的第二速率;基于第二速率将第一数据发送给该接口板标识对应的接口板;该第二速率小于第一速率。
在一个例子中,针对“根据第一速率确定向该接口板发送第一数据时使用的第二速率”的过程,可以包括但不限于如下方式:根据特征数据确定该接口板的转发方式,并通过转发方式对第一数据进行处理,得到速率为所述第一速率的第三数据;在得到所述第一速率的第三数据的过程中,确定进行处理的第一数据的速率,并将确定的速率确定为所述第二速率。
在一个例子中,在“根据特征数据确定该接口板的转发方式”之前,还可以包括以下步骤:可以根据该逻辑通道标识查询预先配置的基本信息表,得到与该逻辑通道标识对应的特征类型标识,然后,可以获取与该特征类型标识对应的特征数据。该基本信息表用于记录逻辑通道标识与特征类型标识的对应关系。
基于上述技术方案,本申请实施例中,多个逻辑通道可以共享同一个主控板的处理能力,且可以将数据存储到各逻辑通道对应的缓冲区,并可以通过逻辑通道发送缓冲区中的数据,可以解决主控板与接口板速率不匹配的问题,避免接口板的丢包问题,满足QOS(Quality Of Service,服务质量)需求。
以下结合具体的应用场景,对上述方案进行详细说明。参见图2所示,为本应用场景的组网示意图,图2中以主控板210、接口板231、接口板232为例进行说明,在实际应用中,接口板的数量可以更多。在图2中,第一限速装置212是主控板210中新增加的单元,且第二限速装置220也是新增加的单元。
第二限速装置220可以部署在主控板内,每个主控板部署一个第二限速装置220;或者,第二限速装置220也可以部署在接口板内,每个接口板部署一个第二限速装置220;或者,第二限速装置220也可以单独部署,而不是部署在主控板或者接口板内,图2中以单独部署一个第二限速装置220为例进行说明。
其中,第一限速装置212是主控板210中新增加的单元,可以是一个硬件装置,对此类型不做限制。若第二限速装置220是主控板210或者接口板中新增加的单元,则第二限速装置220可以是一个硬件装置,若第二限速装置220单独部署,则第二限速装置220可以是独立的单板,对此类型不做限制。
主控板210可以通过以太接口、PCIE,SPI4等方式与第二限速装置220连接,且第二限速装置220可以通过以太接口、PCIE,SPI4等方式与接口板231/接口板232连接。在图2中,主控板210与第二限速装置220是以太接口连接,而以太控制器213用于实现以太接口连接。此外,接口板231/接口板232可以通过E1接口、T1接口、异步串口、同步串口、AM接口等方式与其它设备连接。
主控板210与第二限速装置220的连接方式,与第二限速装置220与接口板231/接口板232的连接方式可以相同,主控板210与第二限速装置220的最大数据传输速率,与第二限速装置220与接口板231/接口板232的最大数据传输速率相同,均大于接口板231/接口板232与其它设备的最大数据传输速率。
参见图2所示,在主控板210中,处理器211(CPU)可以通过总线与第一限速装置212连接,第一限速装置212可以通过总线与以太控制器213连接。
参见图2所示,主控板210还可以创建逻辑通道,该逻辑通道是数据的传输通道,例如,当数据的走向是:CPU、第一限速装置212、以太控制器213、第二限速装置220、接口板231/接口板232上的出接口时,则逻辑通道可以是针对“CPU、第一限速装置212、以太控制器213、第二限速装置220、接口板231/接口板232上的出接口”的一个逻辑通道,即逻辑通道会经过上述各器件。
在图2中,虽然逻辑通道标注在接口板上,但是,并不表示逻辑通道位于该接口板,只是该逻辑通道的出接口位于该接口板。逻辑通道的出接口可以是E1接口、T1接口、异步串口、同步串口、AM接口等,对此不做限制。
其中,逻辑通道的出接口可以是逻辑接口,也可以是物理接口。不同逻辑通道可以占用不同物理接口,不同逻辑通道也可以共用相同物理接口,一个逻辑通道也可以占用多个物理接口。例如,逻辑通道241占用物理接口1和物理接口2,逻辑通道242占用物理接口3,逻辑通道243和逻辑通道244共用物理接口4,即,逻辑通道241的数据传输速率是物理接口1和物理接口2的数据传输速率之和,逻辑通道242的数据传输速率是物理接口3的数据传输速率,逻辑通道243和逻辑通道244的数据传输速率之和是物理接口4的数据传输速率。
主控板210在创建逻辑通道的过程中,还可以为每个逻辑通道分配缓冲区,并建立逻辑通道与缓冲区的对应关系。参见图2所示,逻辑通道241对应缓冲区251,逻辑通道242对应缓冲区252,逻辑通道243对应缓冲区253,逻辑通道244对应缓冲区254。针对需要通过该逻辑通道241发送的数据,会先缓存到缓冲区251,然后从缓冲区251中读取数据,并最终通过该逻辑通道241发送该数据。针对需要通过该逻辑通道242发送的数据,会先缓存到缓冲区252,然后从缓冲区252中读取数据,并最终通过该逻辑通道242发送该数据。以此类推。
在创建逻辑通道的过程中,主控板210可以根据需要创建多个逻辑通道,对此逻辑通道的数量不做限制,逻辑通道可以是针对“CPU、第一限速装置212、以太控制器213、第二限速装置220、接口板231/接口板232上的出接口”的一个逻辑通道,对此不做限制,只要逻辑通道能够对应一个出接口(位于接口板)即可,而通过逻辑通道发送数据的过程,就是通过该出接口发送数据的过程。
在逻辑通道创建完成后,主控板210可以为逻辑通道分配缓冲区,并为逻辑通道配置一个发送窗口,该缓冲区的长度与逻辑通道对应出接口的数据传输速率相关,且该发送窗口的长度与该逻辑通道对应的缓冲区的长度相同。例如,当出接口的数据传输速率为56Kbits/s时,则缓冲区和发送窗口的长度均为56K。
第一限速装置212可以包括基本信息表,其内容可以包括但不限于:接口板标识、逻辑通道标识、接口类型、窗口位置信息等。每个逻辑通道对应一个基本信息表,该基本信息表的内容可以参见图3A或者图3B所示,图3A为初始时刻的基本信息表的示例,而图3B为某时刻的基本信息表的示例。
其中,DownPort可以为接口板标识,即主控板上与接口板连接的下行端口的标识,其是主控板的下行端口号,该下行端口号在系统中统一编号,根据此下行端口号,主控板可以知道通过哪个下行端口将数据发送给接口板。
ChID为逻辑通道标识,即本逻辑通道的唯一标识。例如,逻辑通道标识可以由接口板所在槽位号(SlotID)、端口号(PortID)、子通道号(SubChanID)拼接而成。槽位号占最高4位,可以支持16个槽位;端口号占中间6位,可以支持64个端口;子通道号占最后12位,最多支持4096个子通道。当然,槽位号、端口号、子通道号拼接成的逻辑通道标识只是一个示例,对此不做限制。
WanType为接口类型,是逻辑通道对应接口的类型,如POS、CE1、CPOS、AsySer(异步串口)、E1接口、T1接口、AM接口等,对此接口类型不做限制。
窗口位置信息可以包括WinSize、LeftEdge、RightEdge、TxEdge。LeftEdge为窗口的左边缘,也可以称为窗口起始位置。RightEdge为窗口的右边缘,也可以称为窗口结束位置。WinSize为发送窗口的长度,如128K字节(即0x20000),此值表明允许发送的最大长度,WinSize与逻辑通道对应的缓冲区的长度相同,LeftEdge与RightEdge之间的长度就是WinSize。TxEdge为当前发送数据的边缘,也可以称为窗口占用位置,下一次发送数据时,从此处开始累加,例如,假设LeftEdge为0,第一个数据的长度为64,发送第一个数据后,TxEdge为64;假设第二个数据的长度为304,发送第二个数据后,TxEdge为368(64+304),以此类推;当TxEdge位于LeftEdge和RightEdge之间时,表明逻辑通道具有发送数据的能力,当TxEdge超过RightEdge时,表明逻辑通道不具有发送数据的能力。
第二限速装置220可以包括基本信息表,其内容可以包括但不限于:接口板标识、逻辑通道标识、接口类型、窗口位置信息、特征类型标识等,且每个逻辑通道对应一个基本信息表。第二限速装置220的基本信息表与第一限速装置212的基本信息表类似,不同之处在于:第二限速装置220的基本信息表多个一个特征类型标识,该特征类型标识可以为FeatureID,用于索引特征表,与特征表的FeatureID对应,对于该基本信息表的其它内容,在此不再赘述。
在上述应用场景下,本申请实施例中提出的数据传输方法,可以包括:
步骤a、第一限速装置212在接收到待发送的第一数据后,确定该第一数据对应的接口板和逻辑通道。具体的,可以通过第一数据的目的地址信息(如目的IP地址和/或目的MAC地址等)查询转发表,得到与该目的地址信息对应的出接口,而这个出接口就对应一个接口板和一个逻辑通道,该接口板就是第一数据对应的接口板,该逻辑通道就是第一数据对应的逻辑通道。当然,接口板和逻辑通道的信息也可以是处理器211通知的,对此确定方式不做限制。
步骤b、第一限速装置212判断该逻辑通道是否具有发送第一数据的能力,如果是,则执行步骤c;如果否,则不再发送第一数据,而是在内存中存储第一数据,等到该逻辑通道具有发送第一数据的能力时,再执行步骤c。
在发送数据时,第一限速装置212可以根据基本信息表中的窗口位置信息,第一数据的长度,判断逻辑通道是否具有发送第一数据的能力。例如,当TxEdge向右移动第一数据的长度后,TxEdge仍然位于LeftEdge和RightEdge之间时,表明逻辑通道具有发送第一数据的能力;当TxEdge向右移动第一数据的长度后,TxEdge超过RightEdge时,表明逻辑通道不具有发送第一数据的能力。
进一步的,在逻辑通道具有发送第一数据的能力时,第一限速装置212还可以根据第一数据的长度和TxEdge的当前位置,调整TxEdge的位置。
如图3C所示,在初始化时,LeftEdge和TxEdge均为0。如图3D所示,当发送了10K字节的数据后,TxEdge变为10K。如图3E所示,当发送了20K字节的数据后,TxEdge变为20K。当接收到数据完成消息后,若数据完成消息表明第二限速装置220已经从缓冲区中读取12K的数据,则向右滑动LeftEdge,如滑动12K,向右滑动RightEdge,如滑动12K,滑动后的示意图如图3F所示。
参见图4A所示,为数据完成消息的示意图,当接收到数据完成消息后,若数据完成消息中的TxEdge位于窗口的LeftEdge与窗口的TxEdge之间,则根据数据完成消息中的TxEdge滑动窗口,例如,将窗口中的LeftEdge向右移动至数据完成消息中的TxEdge处,并将窗口中的RightEdge相应向右滑动,滑动后的LeftEdge与RightEdge的长度是WinSize。若数据完成消息中的TxEdge没有位于窗口的LeftEdge与窗口的TxEdge之间,则丢弃数据完成消息,不再滑动窗口。
在实际应用中,若第一限速装置212向第二限速装置220发送数据时,有数据发生丢失,和/或,第二限速装置220向第一限速装置212发送数据完成消息时,有数据完成消息发生丢失,则:只要在后续过程中,有数据成功发送,且有数据完成消息成功发送,窗口就可以正确滑动,不会导致发送资源的丢失,避免丢包导致发送停止。例如,由于第N个数据的窗口占用位置隐含了第N-1个数据的长度信息,当第N-1个数据丢失时,若接收到针对第N个数据的数据完成消息,则根据该数据完成消息中的TxEdge滑动窗口时,不仅回收了第N个数据的发送资源,同时,也回收了第N-1个数据的发送资源;因此,即使数据发生丢失,和/或,数据完成消息发生丢失,也可以正确的回收资源。
步骤c、第一限速装置212为第一数据添加头信息,得到第二数据,将第二数据发送以太控制器213,以太控制器213将第二数据发送给第二限速装置220。
具体的,如果逻辑通道具有发送第一数据的能力,则第一限速装置212可以为第一数据添加头信息,得到修改后的数据,这个数据就是第二数据。如图4B所示,为修改后的第二数据的示意图。然后,可以将修改后的第二数据发送给以太控制器213,由以太控制器213将第二数据发送给第二限速装置220。
第一限速装置212在为第一数据添加头信息的过程中,该头信息可以包括但不限于如下内容:接口板标识、逻辑通道标识、接口类型、报文类型、窗口发送边缘、有效载荷长度。其中,窗口占用位置包括:针对第一个数据包的窗口占用位置,可以为当前发送数据的数据包长度;针对第二个数据包的窗口占用位置,可以为第一个数据包的窗口占用位置累加第二个发送数据的数据包长度;针对第三个数据包的窗口占用位置,可以为第一个数据包的窗口占用位置累加第二个发送数据的数据包长度、第三个发送数据的数据包长度;以此类推。
第一限速装置212将第二数据发送以太控制器213之后,还可以更新逻辑通道对应的窗口信息,例如,根据第一数据的长度,将TxEdge向右移动该长度。
步骤d、第二限速装置220在接收到第二数据后,从第二数据的头信息中解析出逻辑通道标识,并将该第二数据缓存到该逻辑通道标识对应的缓冲区。
例如,假设第二限速装置220从第二数据的头信息中解析出的逻辑通道标识为逻辑通道241,则可以将第二数据缓存到逻辑通道241对应的缓冲区251中。
步骤e、在需要发送第二数据时,第二限速装置220从逻辑通道对应的缓冲区中读取第二数据,从第二数据的头信息获取接口板标识和逻辑通道标识,去除第二数据的头信息,得到第一数据,并将第一数据发送给该接口板标识对应的接口板。此外,还可以通知该接口板通过该逻辑通道标识对应的逻辑通道发送第一数据,以使该接口板通过该逻辑通道标识对应的逻辑通道发送第一数据。
例如,第二限速装置220可以从缓冲区251读取第二数据,并从该第二数据的头信息获取接口板231和逻辑通道241,然后,去除该第二数据的头信息,得到一数据,将该第一数据发送给接口板231,并通知接口板231通过逻辑通道241发送第一数据,且接口板231可以通过逻辑通道241发送该第一数据。
其中,在将第一数据发送给接口板后,为了使接口板能够通过逻辑通道发送第一数据,则还需要将逻辑通道的标识通知给接口板,对此通知机制不做限制。例如,第二限速装置220可以将逻辑通道标识直接发送给接口板,以使接口板通过该逻辑通道标识对应的逻辑通道发送第一数据。或者,第二限速装置220可以通过逻辑通道标识对应的逻辑通道,将第一数据发送给接口板,接口板通过该逻辑通道接收到第一数据后,就可以通过该逻辑通道发送第一数据。
第二限速装置220在将第一数据发送给接口板的过程中,可以先获取该接口板通过该逻辑通道发送第一数据时使用的第一速率,根据第一速率确定向该接口板发送第一数据时使用的第二速率,基于第二速率将第一数据发送给该接口板。进一步的,在“根据第一速率确定向该接口板发送第一数据时使用的第二速率”的过程中,第二限速装置220可以根据特征数据确定接口板的转发方式,并通过所述转发方式对第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程中,可以确定进行处理的第一数据的速率,并将确定的速率确定为第二速率。该第二速率小于第一速率。
其中,第二限速装置220还可以存储特征表,该特征表用于记录数据流特征,该数据流特征可以包括特征类型标识(FeatureID)和特征数据。其中,该特征类型标识用于表示本类特征,可以根据特征类型标识查询到特征数据。
此外,该特征数据可以包括但不限于以下内容之一或者任意组合:通道速率(Speed),如56Kbits/s、64Kbits/s等。帧间隔(IFG),如帧间隔之间插入的填充字符数量,该帧间隔是可以根据经验进行配置的。BlockLen,即向物理层芯片发送数据的块大小。PreTxLen,即向物理层芯片发送数据的提前量。
第二限速装置220可以基于第二数据的头信息的逻辑通道标识,查询基本信息表,得到与该逻辑通道标识对应的特征类型标识,然后,可以通过该特征类型标识查询特征表,得到与该特征类型标识对应的特征数据。在此基础上,第二限速装置220可以基于上述特征数据确定接口板的转发方式。
其中,转发方式是接口板对外发送数据时使用的转发方式,不同协议对应的转发方式可以不同或者相同,这个转发方式与协议类型有关。例如,针对HDLC(High-level DataLink Control,高级数据链路控制协议),由于HDLC数据帧之间由标志序列分隔,二进制为01111110,在一串数据比特中,可能产生和标志字段相同的比特组合,为了防止这种情况产生,保证对数据的透明传输,则转发方式可以是:采用比特填充技术,在连续5个“1”后面插入一个“0”,保证数据的透明传输。当然,转发方式也可以是其它情况,对此转发方式不做限制。
在得到接口板的转发方式后,第二限速装置220可以根据该转发方式进行模拟发送,具体的,通过转发方式对第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程中,可以确定进行处理的第一数据的速率,并将确定的速率确定为第二速率。其中,第一速率是接口板实际发送数据的速率,第二速率是第二限速装置220实际发送数据的速率。此外,第二限速装置220根据该转发方式进行模拟发送的过程,是实时进行的。
其中,第二限速装置220采用模拟发送的原因是:假设接口板通过逻辑通道发送数据时使用的第一速率为56Kbits/s,则:若向接口板提供数据的速率为56Kbits/s,则接口板在发送数据时,先采用上述转发方式对数据进行处理,如采用比特填充技术在数据中添加额外的信息,这样,接口板最终发送的数据会大于56Kbits/s,如60Kbits/s,也就是说,接口板发送的数据发生溢出,接口板无法发出60Kbits/s的数据,只能发出56Kbits/s的数据,造成部分数据丢失。
针对上述发现,第二限速装置220先获取接口板通过逻辑通道发送数据时的第一速率,如56Kbits/s。然后,从缓冲区中读取数据,并通过上述转发方式对数据进行处理,如采用比特填充技术在数据中添加信息。在处理过程中,统计产生56Kbits/s的数据时,从缓冲区中读取的数据速率,这个数据速率是第二速率,如52Kbits/s,因此第二限速装置220向接口板提供数据的速率为52Kbits/s。
综上所述,向接口板提供数据的速率为52Kbits/s,而不是56Kbits/s,接口板在发送数据时,先采用上述转发方式对数据进行处理,如采用比特填充技术在数据中添加信息,这样,接口板最终发送的数据是56Kbits/s,数据不会溢出,即发出56Kbits/s的数据,不会造成数据丢失,提高接口板的效率,提高数据传输质量,实现QOS应用,避免数据丢失导致的语音失真,图像不清晰等问题。
其中,针对“获取接口板通过逻辑通道发送数据时使用的第一速率”的过程,可以从特征数据中获取到该第一速率,如特征数据中的通道速率(Speed)。
其中,针对“根据特征数据确定接口板的转发方式,并通过该转发方式对数据进行处理”的过程,可以包括但不限于如下方式:若特征数据中包括接口类型(如在特征表中记录接口类型),则可以基于特征数据确定接口板的转发方式,并通过该转发方式对数据进行处理;若特征数据中不包括接口类型(如在特征表中没有记录接口类型),则可以基于特征数据、接口类型(从数据的头信息中获得)确定接口板的转发方式,并通过该转发方式对数据进行处理。例如,可以采用帧间隔(IFG)、BlockLen、PreTxLen、接口类型等参数确定接口板的转发方式,并通过该转发方式对数据进行处理,对此过程不做限制。
步骤f、第二限速装置220从逻辑通道对应的缓冲区中读取第二数据后,还可以向第一限速装置212发送数据完成消息,该数据完成消息可以携带第一数据的长度(即将第二数据去除头信息后的第一数据的长度),且该数据完成消息还可以携带上述头信息(如接口板标识、逻辑通道标识、接口类型、报文类型、窗口发送边缘、有效载荷长度等),该头信息与第二数据的头信息相同。
其中,数据完成消息的头信息中的窗口发送边缘,也就是上述TxEdge,基于这个TxEdge,可以表明已经从缓冲区中读取到该TxEdge的数据。
步骤g、第一限速装置212在接收到数据完成消息后,将该逻辑通道标识对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。例如,将窗口占用位置向窗口起始位置的方向移动指定长度;或者,将窗口起始位置向窗口占用位置的方向移动指定长度,并将窗口结束位置向窗口起始位置的移动方向移动指定长度。其中,上述指定长度为第一数据的长度。
或者,还可以根据窗口发送边缘(即第二数据在缓冲区中的第一位置)确定出窗口起始位置在发送窗口中的第二位置,将窗口起始位置移动到发送窗口中的第二位置,并根据该窗口起始位置的移动长度移动该窗口结束位置。
基于上述技术方案,本申请实施例中,多个逻辑通道可以共享同一个主控板的处理能力,且可以将数据存储到各逻辑通道对应的缓冲区,并通过逻辑通道发送缓冲区中的数据,可以解决主控板与接口板速率不匹配的问题,避免接口板的丢包问题,满足QOS需求。而且,可以实现接口板的精确限速,提高主控板的性能。例如,逻辑通道241的数据传输速率是56Kbits/s,逻辑通道242的数据传输速率是56Kbits/s,逻辑通道243的数据传输速率是56Kbits/s,逻辑通道244的数据传输速率是56Kbits/s,那么,以太控制器213的数据传输速率就可以是234Kbits/s,而不是某个逻辑通道对应的56Kbits/s。第二限速装置220可以将56Kbits/s的数据存储到缓冲区251,将56Kbits/s的数据存储到缓冲区252,将56Kbits/s的数据存储到缓冲区253,将56Kbits/s的数据存储到缓冲区254。在数据发送过程中,第二限速装置220可以将56Kbits/s的数据发送给逻辑通道241,以使逻辑通道241发送56Kbits/s的数据,将56Kbits/s的数据发送给逻辑通道242,以使逻辑通道242发送56Kbits/s的数据,将56Kbits/s的数据发送给逻辑通道243,以使逻辑通道243发送56Kbits/s的数据,将56Kbits/s的数据发送给逻辑通道244,以使逻辑通道244发送56Kbits/s的数据。
基于与上述方法同样的申请构思,本申请实施例中还提出一种数据传输装置,可以应用于网络设备,如图5所示,为该装置的结构图,该装置可以包括:
确定模块501,用于确定待发送的第一数据对应的接口板和逻辑通道;
处理模块502,用于当所述逻辑通道具有发送所述第一数据的能力时,则为所述第一数据添加头信息,得到第二数据;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
存储模块503,用于将所述第二数据存储到所述逻辑通道对应的缓冲区;
读取模块504,用于从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据;
发送模块505,用于将得到的第一数据发送给接口板标识对应的接口板。
所述确定模块501,还用于在确定待发送的第一数据对应的接口板和逻辑通道后,获取所述逻辑通道的剩余资源长度;若所述剩余资源长度大于等于第一数据的长度,确定所述逻辑通道具有发送所述第一数据的能力;
所述处理模块502,还用于当所述逻辑通道具有发送所述第一数据的能力时,将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值;在读取模块从缓冲区中读取第二数据后,将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。
所述逻辑通道对应一个发送窗口,所述发送窗口的长度与所述逻辑通道对应的缓冲区的长度相同;其中,所述发送窗口的参数包括窗口起始位置、窗口结束位置、窗口占用位置;所述窗口占用位置与窗口结束位置之间的长度为所述逻辑通道的剩余资源长度;所述处理模块502,具体用于在将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值的过程中,将所述窗口占用位置向所述窗口结束位置的方向移动指定长度;
在将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和的过程中,将所述窗口占用位置向窗口起始位置的方向移动指定长度;或者,将所述窗口起始位置向窗口占用位置的方向移动指定长度,并将窗口结束位置向所述窗口起始位置的移动方向移动所述指定长度;
其中,所述指定长度为所述第一数据的长度。
所述发送模块505,具体用于在将得到的第一数据发送给所述接口板标识对应的接口板的过程中,获取所述接口板通过所述逻辑通道发送第一数据时使用的第一速率;根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率;基于所述第二速率将得到的第一数据发送给所述接口板标识对应的接口板;其中,所述第二速率小于所述第一速率。
在一个例子中,所述发送模块505,具体用于在根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率的过程中,根据特征数据确定所述接口板的转发方式,通过所述转发方式对所述第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程,确定进行处理的第一数据的速率,将确定的速率确定为第二速率。
本申请实施例中提供的网络设备,从硬件层面而言,其硬件架构示意图具体可以参见图6所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的数据传输操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请实施例中提供的网络设备,所述网络设备还包括:
第一限速装置,用于确定待发送的第一数据对应的接口板和逻辑通道;若所述逻辑通道具有发送所述第一数据的能力,则为所述第一数据添加头信息,得到第二数据,并将所述第二数据发送给第二限速装置;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
第二限速装置,用于在接收到第二数据后,从所述第二数据的头信息中获取逻辑通道标识,并将所述第二数据存储到所述逻辑通道标识对应的缓冲区;
从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据,并将得到的第一数据发送给所述接口板标识对应的接口板。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种数据传输方法,其特征在于,所述方法包括:
确定待发送的第一数据对应的接口板和逻辑通道;若所述逻辑通道具有发送所述第一数据的能力,则为所述第一数据添加头信息,得到第二数据,并将所述第二数据存储到所述逻辑通道对应的缓冲区;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据,并将得到的第一数据发送给所述接口板标识对应的接口板;
其中,预先创建多个逻辑通道,且为每个逻辑通道分配缓冲区。
2.根据权利要求1所述的方法,其特征在于,
所述确定待发送的第一数据对应的接口板和逻辑通道之后,还包括:
获取所述逻辑通道的剩余资源长度;若所述剩余资源长度大于等于第一数据的长度,则确定所述逻辑通道具有发送所述第一数据的能力;
若所述逻辑通道具有发送所述第一数据的能力,则将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值;
所述从缓冲区中读取第二数据之后,还包括:将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。
3.根据权利要求2所述的方法,其特征在于,所述逻辑通道对应一个发送窗口,所述发送窗口的长度与所述逻辑通道对应的缓冲区的长度相同;其中,所述发送窗口的参数包括窗口起始位置、窗口结束位置、窗口占用位置;所述窗口占用位置与窗口结束位置之间的长度为所述逻辑通道的剩余资源长度;
将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值,包括:将窗口占用位置向窗口结束位置的方向移动指定长度;
将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和,包括:将窗口占用位置向窗口起始位置的方向移动指定长度;或者,将窗口起始位置向窗口占用位置的方向移动指定长度,并将窗口结束位置向所述窗口起始位置的移动方向移动所述指定长度;
其中,所述指定长度为所述第一数据的长度。
4.根据权利要求1所述的方法,其特征在于,
所述将得到的第一数据发送给所述接口板标识对应的接口板的过程,包括:
获取所述接口板通过所述逻辑通道发送第一数据时使用的第一速率;
根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率;
基于第二速率将得到的第一数据发送给所述接口板标识对应的接口板;
其中,所述第二速率小于所述第一速率。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率的过程,具体包括:
根据特征数据确定所述接口板的转发方式,通过所述转发方式对所述第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程,确定进行处理的第一数据的速率,将确定的速率确定为第二速率。
6.一种数据传输装置,其特征在于,所述装置包括:
确定模块,用于确定待发送的第一数据对应的接口板和逻辑通道;
处理模块,用于当所述逻辑通道具有发送所述第一数据的能力时,则为所述第一数据添加头信息,得到第二数据;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
存储模块,用于将所述第二数据存储到所述逻辑通道对应的缓冲区;
读取模块,用于从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据;
发送模块,用于将得到的第一数据发送给所述接口板标识对应的接口板;
其中,预先创建多个逻辑通道,且为每个逻辑通道分配缓冲区。
7.根据权利要求6所述的装置,其特征在于,
所述确定模块,还用于在确定待发送的第一数据对应的接口板和逻辑通道后,获取所述逻辑通道的剩余资源长度;若所述剩余资源长度大于等于第一数据的长度,确定所述逻辑通道具有发送所述第一数据的能力;
所述处理模块,还用于当所述逻辑通道具有发送所述第一数据的能力时,将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值;在读取模块从缓冲区中读取第二数据后,将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和。
8.根据权利要求7所述的装置,其特征在于,所述逻辑通道对应一个发送窗口,所述发送窗口的长度与所述逻辑通道对应的缓冲区的长度相同;其中,所述发送窗口的参数包括窗口起始位置、窗口结束位置、窗口占用位置;所述窗口占用位置与窗口结束位置之间的长度为所述逻辑通道的剩余资源长度;
所述处理模块,具体用于在将所述逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的差值的过程中,将所述窗口占用位置向所述窗口结束位置的方向移动指定长度;
在将所述缓冲区对应的逻辑通道的剩余资源长度更新为当前的剩余资源长度与第一数据的长度的和的过程中,将所述窗口占用位置向窗口起始位置的方向移动指定长度;或者,将所述窗口起始位置向窗口占用位置的方向移动指定长度,并将窗口结束位置向所述窗口起始位置的移动方向移动所述指定长度;
其中,所述指定长度为所述第一数据的长度。
9.根据权利要求6所述的装置,其特征在于,
所述发送模块,具体用于在将得到的第一数据发送给所述接口板标识对应的接口板的过程中,获取所述接口板通过所述逻辑通道发送第一数据时使用的第一速率;根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率;基于所述第二速率将得到的第一数据发送给所述接口板标识对应的接口板;
其中,所述第二速率小于所述第一速率。
10.根据权利要求9所述的装置,其特征在于,所述发送模块,具体用于在根据所述第一速率确定向所述接口板发送第一数据时使用的第二速率的过程中,根据特征数据确定所述接口板的转发方式,通过所述转发方式对所述第一数据进行处理,得到速率为第一速率的第三数据;在得到第一速率的第三数据的过程,确定进行处理的第一数据的速率,将确定的速率确定为第二速率。
11.一种网络设备,其特征在于,所述网络设备包括:
第一限速装置,用于确定待发送的第一数据对应的接口板和逻辑通道;若所述逻辑通道具有发送所述第一数据的能力,则为所述第一数据添加头信息,得到第二数据,并将所述第二数据发送给第二限速装置;其中,所述头信息包括所述接口板的接口板标识和所述逻辑通道的逻辑通道标识;
第二限速装置,用于在接收到第二数据后,从所述第二数据的头信息中获取逻辑通道标识,并将所述第二数据存储到所述逻辑通道标识对应的缓冲区;
从所述缓冲区中读取第二数据,并从读取的第二数据的头信息中获取接口板标识和逻辑通道标识,去除读取的第二数据的头信息,得到第一数据,并将得到的第一数据发送给所述接口板标识对应的接口板;
其中,预先创建多个逻辑通道,且为每个逻辑通道分配缓冲区。
CN201710889139.XA 2017-09-27 2017-09-27 一种数据传输方法、装置和网络设备 Active CN108737296B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201710889139.XA CN108737296B (zh) 2017-09-27 2017-09-27 一种数据传输方法、装置和网络设备
JP2020517587A JP6978596B2 (ja) 2017-09-27 2018-09-21 データ伝送
PCT/CN2018/106875 WO2019062656A1 (zh) 2017-09-27 2018-09-21 数据传输
US16/648,212 US11252111B2 (en) 2017-09-27 2018-09-21 Data transmission
EP18863120.4A EP3675439B1 (en) 2017-09-27 2018-09-21 Data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710889139.XA CN108737296B (zh) 2017-09-27 2017-09-27 一种数据传输方法、装置和网络设备

Publications (2)

Publication Number Publication Date
CN108737296A CN108737296A (zh) 2018-11-02
CN108737296B true CN108737296B (zh) 2020-12-04

Family

ID=63940172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710889139.XA Active CN108737296B (zh) 2017-09-27 2017-09-27 一种数据传输方法、装置和网络设备

Country Status (5)

Country Link
US (1) US11252111B2 (zh)
EP (1) EP3675439B1 (zh)
JP (1) JP6978596B2 (zh)
CN (1) CN108737296B (zh)
WO (1) WO2019062656A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3089851B1 (en) 2013-12-31 2019-02-06 Saint-Gobain Abrasives, Inc. Abrasive article including shaped abrasive particles
CN111506670B (zh) * 2019-01-31 2023-07-18 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
CN109639386B (zh) * 2019-02-18 2020-12-29 新华三技术有限公司 一种报文下发方法及转发设备
CN111835649B (zh) * 2019-04-15 2023-11-07 深信服科技股份有限公司 一种数据发送方法、装置及相关组件
CN112462664B (zh) * 2020-11-30 2022-03-18 广州仪速安电子科技有限公司 一种仪器接口数据监测系统
CN113507431B (zh) * 2021-05-17 2024-02-09 新华三信息安全技术有限公司 一种报文管理方法、装置、设备及机器可读存储介质
CN114124854B (zh) * 2021-11-29 2024-02-09 天融信雄安网络安全技术有限公司 报文处理方法、装置、电子设备及可读存储介质
CN114500393B (zh) * 2021-12-31 2024-03-15 伟乐视讯科技股份有限公司 一种mac一对多个phy模块的通信方法及通信设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716076A (zh) * 2013-12-25 2014-04-09 华为技术有限公司 一种数据传输方法和设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473793B1 (en) 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
JP3592041B2 (ja) * 1997-07-30 2004-11-24 沖電気工業株式会社 セル交換装置
CN1260915C (zh) * 2002-11-19 2006-06-21 华为技术有限公司 一种城域网传输设备的流量控制方法
TWI506997B (zh) * 2005-04-29 2015-11-01 Interdigital Tech Corp 多工增強上鏈頻道資料的無線傳輸/接收單元及方法
JP4793491B2 (ja) * 2007-03-20 2011-10-12 富士通株式会社 パケット中継装置、パケット中継装置における廃棄パケットの転送方法、およびそのプログラム
US8316409B2 (en) * 2007-10-11 2012-11-20 James Strothmann Simultaneous access to media in a media delivery system
CN101217472B (zh) 2007-12-29 2010-09-29 福建星网锐捷网络有限公司 模块化交换机报文路由方法
CN102143072B (zh) 2011-03-21 2013-12-04 北京华为数字技术有限公司 一种进行流控配置的方法和网络设备
US8781086B2 (en) * 2012-06-26 2014-07-15 Adc Dsl Systems, Inc. System and method for circuit emulation
CN102780639B (zh) * 2012-08-16 2015-03-18 迈普通信技术股份有限公司 一种路由器线卡及数据处理方法
JP5883743B2 (ja) * 2012-08-20 2016-03-15 株式会社日立製作所 パケット通信網における通信途絶時間短縮方法
CN103546386A (zh) 2013-10-24 2014-01-29 迈普通信技术股份有限公司 路由器中数据报文发送的流控方法及系统
US9473394B1 (en) * 2014-01-10 2016-10-18 Juniper Networks, Inc. Proactive flow table for virtual networks
JP6287451B2 (ja) * 2014-03-26 2018-03-07 富士通株式会社 データ受信装置、データ受信装置の制御方法及びデータ送信装置とデータ受信装置とを有するデータ送受信システム
US9258255B2 (en) * 2014-04-11 2016-02-09 Cisco Technology, Inc. Hierarchical programming of dual-stack switches in a network environment
CN104410502B (zh) * 2014-10-28 2017-11-10 新华三技术有限公司 网络设备及用于网络设备的接口板上电初始化方法
CN105991471B (zh) * 2015-02-16 2019-08-09 新华三技术有限公司 网络设备的流控方法和流控装置以及网络设备
CN105162702B (zh) * 2015-06-30 2018-11-27 新华三技术有限公司 一种ac引流方法及装置
CN106713183B (zh) * 2015-10-30 2020-03-17 新华三技术有限公司 网络设备的接口板以及该网络设备和报文转发方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716076A (zh) * 2013-12-25 2014-04-09 华为技术有限公司 一种数据传输方法和设备

Also Published As

Publication number Publication date
EP3675439B1 (en) 2022-09-21
JP2020535739A (ja) 2020-12-03
JP6978596B2 (ja) 2021-12-08
US20200267099A1 (en) 2020-08-20
WO2019062656A1 (zh) 2019-04-04
EP3675439A1 (en) 2020-07-01
EP3675439A4 (en) 2020-08-19
CN108737296A (zh) 2018-11-02
US11252111B2 (en) 2022-02-15

Similar Documents

Publication Publication Date Title
CN108737296B (zh) 一种数据传输方法、装置和网络设备
WO2019128467A1 (zh) 基于灵活以太网FlexE传输业务流的方法和装置
KR101364924B1 (ko) 무선 통신을 위한 그룹 리소스 할당
CN111327391B (zh) 一种时分复用方法及装置、系统、存储介质
EP3672167B1 (en) Packet forwarding method and device
KR20120113744A (ko) 시간 스탬핑 및 중앙 제어기를 사용한 복수의 어댑터들에 의한 데이터 프레임들의 분산 처리
CN102957628A (zh) 报文聚合方法、装置和接入设备
CN110312283B (zh) 一种信息处理方法及装置
CN113157465B (zh) 基于指针链表的消息发送方法及装置
JP6808104B2 (ja) 通信装置、通信方法及び通信プログラム
JP2017147662A (ja) 中継装置
CN109587082B (zh) 一种基于Linux操作系统的报文异步转发系统及方法
CN114124844A (zh) 一种数据处理方法及系统
CN115955447B (zh) 一种数据传输方法、交换机及交换机系统
KR100454930B1 (ko) 부호분할다중접속통신시스템의물리채널별다중화장치및방법
CN104038441A (zh) 一种数据传输方法及系统
CN109726144B (zh) 一种数据报文的处理方法和装置
CN112838992A (zh) 报文调度方法及网络设备
CN117155874A (zh) 数据包发送方法、转发节点、发送端及存储介质
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备
CN109308180B (zh) 缓存拥塞的处理方法及处理装置
CN114401072A (zh) 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及系统
US9480070B1 (en) Bearer data power boosting in a wireless communication system
CN116112456B (zh) 一种基于bap协议的数据缓存方法、装置、设备及介质
CN114205299A (zh) 一种报文控制方法及节点设备

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
GR01 Patent grant
GR01 Patent grant