一种业务报文发送的方法、网络设备和系统与流程

文档序号:17817468发布日期:2019-06-05 21:56阅读:143来源:国知局
一种业务报文发送的方法、网络设备和系统与流程

本发明涉及通信领域,尤其涉及一种业务报文发送的方法、网络设备和系统。



背景技术:

传输控制协议tcp(transmissioncontrolprotocol,tcp)是一种面向连接的、可靠的传输层通信协议。在使用tcp传输业务报文的场景,当网络设备中出现从高速接口接收报文,并从低速接口向外发送报文时,或者多个用户接入设备的流量汇聚到同一个网络设备时,网络设备就可能会出现丢包的情况,导致tcp承载的业务的需求(如:吞吐率)得不到满足,严重影响用户体验,特别在网络设备传输视频业务时,会导致视频业务中断等现象。

现有技术中,为解决此类问题,一般通过适当增加网络设备的缓存(buffer)来避免丢包。但这种方式会使得业务流量在缓存中排队时间增长,导致业务流量传输的时延增大,难以保证业务的传输需求,此外,当网络设备上突发流量很多时,也还是会出现一定程度的丢包。



技术实现要素:

本申请提供了一种业务报文发送的方法、网络设备和系统,基于业务的优先级来获得tcp窗口,从而能够灵活的控制发送端发送的业务报文的大小,实现在满足业务报文传输需求的同时,减少业务报文的丢包。

第一方面,本发明实施例提供了一种业务报文发送的方法,该方法包括:第一网络设备接收第二网络设备发送的tcp报文,该tcp报文包含业务标识;第一网络设备根据业务标识确定业务标识对应的业务的优先级。第一网络设备根据业务的优先级获得tcp窗口;第一网络设备向第二网络设备发送第一tcpack报文,第一tcpack报文包含该tcp窗口,tcp窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。

采用上述方法,第一网络设备根据tcp报文中的业务标识获得业务的优先级,然后根据业务的优先级来获得tcp窗口。由于第一网络设备的获得的tcp窗口是基于业务优先级来确定的,因此能够满足不同优先级业务的不同传输需求,从而能够灵活的控制发送端发送报文的大小。举例来说,对于低优先级业务来说,tcp窗口可以选择的小一些,对于高优先级的业务来说,tcp窗口可以选择的大一些,这样即可满足不同业务的需求,还能够充分利用网络资源,减少业务报文的丢包。

在一种可能的设计中,第一网络设备向第三网络设备发送该tcp报文,第一网络设备接收第三网络设备发送的第二tcpack报文,第一网络设备用该tcp窗口更新所述第二tcpack报文中的tcp窗口,生成第一tcpack报文。在这种设计中,第一网络设备作为tcp业务报文传输路径的中间设备,主动拦截tcp报文,并根据业务的优先级计算tcp窗口,并将tcp窗口替换业务报文接收端发送的tcpack报文中的tcp窗口,从而能够灵活控制发送端发送的业务报文的大小。

在一种可能的设计中,在第一网络设备确定业务的优先级为第一优先级时,获得业务的业务需求信息,并根据业务需求信息计算tcp窗口。第一优先级对应的业务为高优先级业务,该业务的优先级为第一优先级则说明该业务为高优先级业务。

在一种可能的设计中,在第一网络设备确定业务的优先级为第一优先级时,第一网络设备将所述业务标识向控制器发送,并接收控制器根据业务的业务需求信息计算的tcp窗口。

在一种可能的设计中,业务需求信息包括吞吐率,吞吐率用于标识第一网络设备单位时间内需要传输的对应业务的流量,第一网络设备根据吞吐率和第一网络设备的缓存中被占用缓存的大小计算tcp窗口。

采用上述方式,第一网络设备根据业务需求信息计算tcp窗口,这样能够准确的保障业务的传输需求,对于不同业务计算得到不同的tcp窗口,从而能够灵活控制发送端发送的业务报文的大小,在带宽资源一定的情况下,能够灵活的调整不同业务的带宽占用,减少丢包。另外,当第一网络设备为tcp业务报文传输路径的中间设备,根据第一网络设备的缓存的被占用情况来计算tcp窗口,能够为被转发的业务提供更精确的业务传输保障。

在一种可能的设计中,利用如下公式计算tcp窗口:

其中,

throughput为该业务需求信息中包含的吞吐率;

b为第一网络设备的缓存的大小,包含被占用缓存的大小和未被占用缓存的大小;

currentb为第一网络设备缓存中被占用的缓存的大小;

当所述第一网络设备为所述业务报文的接收端时,c为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,c为所述第一网络设备发送所述业务报文的出接口的发送速率;

window为需要计算的该tcp窗口。

采用上述方式,第一网络设备利用上述公式能够计算得到一个tcp窗口的范围,这个范围内的tcp窗口都是能够满足该业务的吞吐率的要求的,并且可以灵活调整tcp窗口。例如,当第一网络设备的缓存占用率超过一个特定阈值,例如:80%,可以选择tcp窗口为上述公式计算的范围内的较小值,如果第一网络设备的缓存占用率低于一个特定阈值,例如40%,可以选择tcp窗口为上述公式计算的范围内的较大值,这样能够灵活的调整tcp窗口,满足业务传输需求的同时,避免第一网络设备的缓存被过多占用,减少业务报文的丢包。

在一种可能的设计中,第一网络设备利用如下公式计算所述tcp窗口:

其中,

throughput为该吞吐率;

b为第一网络设备的缓存的大小;

currentb为第一网络设备缓存中被占用的缓存的大小;

当所述第一网络设备为所述业务报文的接收端时,c为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,c为所述第一网络设备发送所述业务报文的出接口的发送速率;

window为需要计算的tcp窗口;

当所述第一网络设备为所述业务报文的接收端时,δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,δt为所述第一网络设备发送业务报文的出接口的发送时延。

采用上述方式,第一网络设备在计算tcp窗口时,还利用了第一网络设备发送业务报文的出接口的发送时延,或为第一网络设备处理被占用的缓存中业务报文的处理时延,这样计算tcp窗口的范围更加精确。特别的,在第一网络设备发送业务报文的出接口的发送时延较大,或第一网络设备处理被占用的缓存中业务报文的处理时延较大时,计算得到的tcp窗口的范围会更精确,这样能够更准确的满足用户业务的需求。

在一种可能的实现中,利用上述公式计算的tcp窗口还满足如公式:window<b-currentb。由于第一网络设备在计算tcp窗口时,第一网络设备的剩余缓存为b-currentb,所以第一网络设备最多也只能存储剩余缓存大小的报文,利用这个公式作为计算tcp窗口的一个补充,可以一定程度的较少业务报文的丢包。

在一种可能的实现中,第一网络设备将业务标识发送到存储有所述业务标识和所述业务需求信息的对应关系的控制器。控制器根据业务标识和该对应关系获得业务需求信息,并将业务需求信息向第一网络设备发送,第一网络设备接收控制器发送的业务需求信息。

在一种可能的实现中,第一网络设备直接存储有业务标识和业务需求信息的对应关系;第一网络设备利用业务标识从该对应关系中获得所述业务需求信息。

在一种可能的实现中,在第一网络设备确定业务的优先级为第一优先级时,并且第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,获得业务的业务需求信息,并根据业务需求信息计算tcp窗口。

采用上述方式,第一网络设备在第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,才根据业务需求信息计算tcp窗口,从而避免频繁计算tcp窗口导致对网络资源的过多占用。

在一种可能的实现中,第一网络设备根据业务的优先级获得tcp窗口包括:

在第一网络设备确定业务的优先级为第二优先级业务时,并且确定第一网络设备的缓存中被占用的缓存大于或等于第二阈值时,tcp窗口取值为0,或者设置tcp窗口为一个较小值。其中,该较小值的取值只要能够保证该业务不会中断即可。其中,第二优先级低于第一优先级,第二优先级对应的业务为低优先级业务。

采用上述方式,第一网络设备在确定业务为低优先级业务,并且第一网络设备被占用缓存达到第二阈值时,tcp窗口取值为0,或一个较小值,这样能够通过适当抑制低优先级的业务报文的发送,来减少丢包,进一步可以给高优先级业务的传输预留更多的资源。

在一种可能的实现中,在第一网络设备确定业务的优先级为第一优先级,并且第一网络设备的缓存中被占用的缓存大于或等于第二阈值时,第一网络设备将所述业务标识向控制器发送,第一网络设备接收控制器根据业务的业务需求信息计算的tcp窗口。由于控制器对网络中的设备进行集中控制,控制器存储业务的需求信息,因此,由控制器来为被管理的网络设备计算tcp窗口方式更加灵活。

在一种可能的实现中,该方法还包括:第一网络设备接收控制器发送的流表,流表用于指导第一网络设备将第一tcpack报文向第二网络设备发送;第一网络设备将tcp窗口添加到流表中,第一网络设备向第二网络设备发送第一tcpack报文时,第一网络设备从流表中获得tcp窗口,并将tcp窗口添加到第一tcpack报文中。将tcp窗口添加的到流表中,在发送第一tcpack报文时,可以直接从流表中获得tcp窗口,第一tcpack报文转发效率更高。

在一种可能的实现中,该方法还包括:第一网络设备接收第二网络设备发送的业务报文,业务报文的净荷(payload)部分的大小为tcp窗口,或者整个业务报文的大小为tcp窗口。

在一种可能的实现中,tcp报文为tcp同步(syn)报文或tcp业务报文,该tcp业务报文承载了用户的业务报文。

在一种可能的实现中,第一网络设备从第二网络设备接收tcp业务报文的接口的速率为第一速率,第一网络设备向第三网络设备发送tcp业务报文的接口的速率为第二速率,第一速率大于第二速率。

第二方面,本发明实施例提供了一种业务报文发送的方法,该方法包括:控制器接收第一网络设备发送的业务标识;控制器根据业务标识确定业务标识对应的业务的优先级;控制器根据业务的优先级计算tcp窗口,并将tcp窗口向第一网络设备发送,触发第一网络设备将tcp窗口发送到第二网络设备,该tcp窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。

采用上述方式,控制器根据业务的优先级计算tcp窗口,由于基于业务优先级计算tcp窗口,因此能够满足不同优先级业务的不同需求,从而能够灵活的控制发送端发送报文的大小,有利于减少业务报文的丢包。

在一种可能的实现中,在控制器确定业务的优先级为第一优先级时,根据业务标识获得业务对应的业务需求信息,控制器根据业务需求信息计算tcp窗口。

在一种可能的实现中,业务需求信息包括吞吐率,吞吐率用于标识第一网络设备单位时间内需要传输的对应业务的流量,控制器根据业务需求信息计算tcp窗口包括:

根据吞吐率和第一网络设备的缓存中被占用缓存的大小计算tcp窗口。

在一种可能的实现中,控制器利用如下公式计算tcp窗口:

其中,

throughput为该业务需求信息中包含的吞吐率;

b为第一网络设备的缓存的大小,包含被占用缓存的大小和未被占用缓存的大小;

currentb为第一网络设备缓存中被占用的缓存的大小;

当所述第一网络设备为所述业务报文的接收端时,c为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,c为所述第一网络设备发送所述业务报文的出接口的发送速率;

window为需要计算的该tcp窗口。

在一种可能的设计中,控制器利用如下公式计算所述tcp窗口:

其中,

throughput为所述吞吐率;

b为第一网络设备的缓存的大小;

currentb为第一网络设备缓存中被占用的缓存的大小;

当所述第一网络设备为所述业务报文的接收端时,c为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,c为所述第一网络设备发送所述业务报文的出接口的发送速率;

window为需要计算的所述tcp窗口;

当所述第一网络设备为所述业务报文的接收端时,δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,δt为所述第一网络设备发送业务报文的出接口的发送时延。

在一种可能的实现中,该tcp窗口还满足如下公式:

window<b-currentb。

第三方面,本发明实施例提供了一种业务报文发送的网络设备,执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。

第四方面,本发明实施例提供了一种业务报文发送的控制器,执行第二方面或第二方面的任意一种可能的实现方式中的方法。具体地,该控制器包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元。

第五方面,提供了一种网络设备,该网络设备包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面或第一方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。

第六方面,提供了一种控制器,该控制器包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第二方面或第二方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。

第七方面,提供了一种网络设备,该网络设备包括:主控板和接口板。主控板包括:第一处理器和第二存储器。接口板包括:第二处理器、第二存储器和接口卡。第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码执行如下操作:接收第二网络设备发送的tcp报文,tcp报文包含业务标识,并将业务标识向主控板发送。

第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:接收接口板发送的业务标识,并根据业务标识获得业务标识对应的业务的优先级;根据业务的优先级获得tcp窗口。

第二处理器还用于调用第二存储器中的程序代码执行如下操作:向第二网络设备发送tcpack报文,tcpack报文包含tcp窗口。

在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-processcommunication,ipc)控制通道。

第八方面,提供了一种业务报文发送的系统,该系统包含前述方面提供的第一网络设备和第二网络设备,该第二网络设备用于向第一网络设备发送tcp报文,该tcp报文包含业务标识;接收第一网络设备发送的tcpack报文,并根据该tcpack报文中的tcp窗口计算向第一网络设备发送的业务报文的大小。

第九方面,提供了一种计算机存储介质,用于储存为上述网络设备或控制器所用的计算机软件指令,其包括用于执行上述方面所设计的程序。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中使用的附图作简单地介绍。显而易见地,下面附图只是本发明的一些实施例的附图,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得同样能实现本发明的其他技术方案和附图。

图1为本发明实施例提供的一种应用场景示意图;

图2为本发明实施例提供的一种设备之间tcp建立连接及发送报文的方法;

图3a为本发明实施例提供的一种业务报文发送的方法流程示意图;

图3b为本发明实施例提供的一种获得业务的优先级的方法流程示意图;

图3c为本发明实施例提供的一种根据业务优先级获得tcp窗口方法的流程示意图;

图3d为本发明实施例提供的一种业务报文发送的方法流程示意图;

图4为本发明实施例提供的一种业务报文发送的方法流程示意图;

图5为本发明实施例提供的一种第一网络设备的结构示意图;

图6为本发明实施例提供的一种第一网络设备的结构示意图;

图7为本发明实施例提供的一种第一网络设备的结构示意图;

图8为本发明实施例提供的一种第一网络设备的结构示意图;

图9为本发明实施例提供的一种控制器的结构示意图;

图10为本发明实施例提供的一种控制器的结构示意图;

图11为本发明实施例提供的一种控制器的结构示意图;

图12为本发明实施例提供的一种业务报文发送的系统示意图。

具体实施方式

下面结合附图,对本发明的实施例进行描述。

图1示出了本发明实施例的一种可能的应用场景。在该应用场景中,设备101和设备102为用户设备,例如:手机或个人电脑等;设备103和设备104为用户接入设备,例如:光线路终端(opticallineterminal,olt)或光网络单元(opticalnetworkunit,onu)等;设备105为网络中的转发设备,例如:路由器或交换机等;设备106为网络中的服务器,例如内容分发网络(contentdeliverynetwork,cdn)服务器等。接口1和接口2为设备105的两个物理接口。在接口1的速率比接口2的速率高的情况下,例如:接口1的速率为3000兆比特每秒(mbit/s),接口2的速率为1000mbit/s,如果单位时间内设备101向服务器106发送大量业务流量时,业务流量可以顺利通过接口1到达设备105,但由于接口2的速率低于接口1的速率,会导致业务流量积压在设备105上,当设备105的缓存全部被占用时,则可能出现业务流量丢包的问题。在另一种情况下,如果单位时间内多个设备101和/或多个102设备向设备106发送业务流量,也可能会出现业务流量积压在设备105上,当设备105的缓存全部被占用时,则可能出现业务流量丢包的问题。

本发明实施例提供一种业务报文发送的方法及基于这个方法的网络设备和系统。该方法通过利用业务优先级来获得tcp窗口,从而能够灵活的控制发送端发送的业务报文的大小,能够实现在满足业务报文传输需求的同时,减少业务报文的丢包。其中,方法、网络设备和系统是基于同一发明构思的,由于方法、网络设备和系统解决问题的原理相似,因此,网络设备与方法的实施可以相互参见,系统与方法的实施也可以相互参见,重复之处不再赘述。

结合图1所示的应用场景,参阅图2,本发明实施例提供了一种设备之间通过tcp传输业务报文时,tcp建立连接及发送报文的方法,其中图2中的发送端可以为图1中的设备101和设备102,接收端可以为图1中的设备106。该方法包括:

s201,业务报文发送端向业务报文接收端发送第一syn报文,该第一syn报文中包含同步(syn)字段,并且syn字段取值为1。在该syn字段取值为1时,表明发送端请求和接收端建立tcp连接。该第一syn报文还包含第一序列号(sequencenumber,sn),该第一sn取值可以为随机值。

s202,接收端接收到第一syn报文后,会向发送端发送第一tcpack报文,第一tcpack报文包含响应数(acknumber)字段,acknumber取值为第一sn加1。接收端还会向发送端发送第二syn报文,第二syn报文包含第二sn,第二sn取值也可以是随机值。接收端可以将第一tcpack报文和第二syn报文放到一个报文中发送给发送端,或者,接收端可以将第一tcpack报文和第二syn报文分别向发送端发送。

s203,接收端接收发送的第一tcpack报文和第二syn报文,在确定第一tcpack报文中包含的acknumber为第一sn加1后,向接收端发送第二tcpack报文,第二tcpack报文中包含的acknumber取值为第二sn加1。在接收端判断第二tcpack报文中的acknumber为第二sn加1时,完成发送端和接收端之间的tcp连接建立。

s204,发送端向接收端发送业务报文。

s205,接收端接收到发送端发送的业务报文后,会向发送端发送第三tcpack报文,该第三tcpack报文用于指示发送端给业务报文已经正确收到。

图3a本发明实施例提供了一种业务报文发送的方法,参阅图3a所示,该方法包括:

s301,第一网络设备接收第二网络设备发送的tcp报文,tcp报文包含业务标识。

在一个示例中,第一网络设备为图2所示方法中的接收端,第二网络设备为图2所示方法中的发送端。

在一个示例中,该tcp报文可以为tcp建立连接过程中第二网络设备向第一网络设备发送的syn报文,例如图1中的s201中的第一syn报文。

在一个示例中,该tcp报文可以为第二网络设备在与第一网络设备建立tcp连接之后,向第一网络设备发送的tcp业务报文,例如,图1中的s204中的业务报文。该tcp业务报文承载了具体的一个业务。

在一个示例中,该业务标识用来标识一种业务,具体的,该业务标识可以为流标签(flowlabel,fl)或业务标签。

在一个示例中,如果第二网络设备上只运行一种业务,则业务标识包括目的互联网协议(internetprotocol,ip)地址;如果第二网络设备上同时运行多种业务,为了区分不同的业务,业务标识包括目的ip地址和目的端口号(port),或者业务标识包括目的ip地址、目的端口号、源ip地址和源端口号。

s302,第一网络设备根据业务标识确定业务标识对应的业务的优先级。

在一个示例中,第一网络设备为业务报文的目的地址对应的设备,即:第一网络设备为业务报文的接收端,例如,第一网络设备为图1中的设备106,或者,第一网络设备为业务报文传输路径上的一个中间设备,例如,第一网络设备为图1中的设备105。当第一网络设备为业务报文的接收端时,第一网络设备获取业务标识可以通过以下三种方式:

第一种方式,从第二网络设备向第一网络设备发送的用于建立tcp连接的tcpsyn报文中获取业务标识,例如,从图2中的s201部分的第一syn报文中获取业务标识。

第二种方式,从第二网络设备向第一网络设备发送的用于建立tcp连接的tcpack报文中获取业务标识,例如,从图2中的s203部分的第二tcpack报文中获取业务标识。

第三种方式,从第二网络设备向第一网络设备发送的业务报文中获取业务标识,例如,从图2中的s204部分的业务报文中获取业务标识。

在一个示例中,第一网络设备已经预先存储了业务标识和业务优先级的对应关系,在第一网络设备接收到该tcp报文后,可以直接利用业务标识和业务优先级的对应关系,获得业务标识对应的业务的优先级。

第一网络设备根据业务标识获得业务标识对应的业务的优先级的其他的实现方式可以参考下述图3b所示实施例中的具体描述。可以理解,图3b仅仅是示例性的给出一种实现方式,本申请并不对如何根据业务标识获取业务的优先级的方式做任何限定,也不对本领域技术人员在阅读本申请内容的基础上可以想到的其它方式进行赘述。

s303,第一网络设备根据业务的优先级获得tcp窗口。本发明实施例中,tcp窗口具体指tcp窗口的大小或tcp窗口的值。

第一网络设备如何根据业务的优先级获得tcp窗口可以参考下述图3c所示实施例中的具体描述。可以理解,图3c仅仅是示例性的给出一种实现方式,本申请并不对如何获取tcp窗口方式限定,也不对本领域技术人员在阅读本申请内容的基础上可以想到的其它方式进行赘述。

s304,第一网络设备向第二网络设备发送第一tcpack报文,第一tcpack报文包含tcp窗口。

基于图3a所示的方法,本发明实施例提供了一种业务报文发送方法,参阅图3b所示,具体提供了一种第一网络设备如何根据业务标识获取tcp窗口的实施方式,该方法包括:

s301,第一网络设备接收第二网络设备发送的tcp报文,tcp报文包含业务标识。

s3021,在第一网络设备接收到该tcp报文后,将该tcp报文中的业务标识向控制器发送。

控制器存储有业务标识和业务优先级的对应关系。可选地,第一网络设备可以先获得该tcp报文中的业务标识,然后将业务标识向控制器发送。或者,第一网络设备也可以直接将该tcp报文复制一份向控制器发送,控制器根据该tcp报文获得业务标识。

s3022,控制器在获得到业务标识后,根据业务标识和业务优先级的对应关系,获得该业务标识所对应的业务的优先级,然后将业务的优先级发送到第一网络设备。

s3023,第一网络设备接收控制器发送的该业务标识所对应的业务的优先级。

在本发明实施例中,控制器对网络中的网络设备控制或管理。控制器可以为网络管理设备或者为软件定义网络(software-definednetworking,sdn)架构下的控制器。本发明实施例中的网络设备可以分别为路由器或交换机,或者为sdn网络架构下的转发器。

s303,第一网络设备根据业务的优先级获得tcp窗口。

s304,第一网络设备向第二网络设备发送第一tcpack报文,第一tcpack报文包含tcp窗口。

在一个示例中,第一网络设备接收控制器发送的流表,流表用于指导第一网络设备将第一tcpack报文向第二网络设备发送。第一网络设备保存控制器下发的流表,第一网络设备将获得的tcp窗口添加到流表中。在第一网络设备需要向第二网络设备发送该tcp窗口时,第一网络设备先从该第一网络设备保存的含有该tcp窗口的流表中获得该tcp窗口,然后将该tcp窗口添加到第一tcpack报文中,并将第一tcpack报文向所述第二网络设备发送。

图3c为本发明实施例提供的一种根据业务优先级获得tcp窗口的方法,该方法可以应用于图3a或图3b所示实施例中的步骤s303中。参阅图3c所示,该方法包括:

s3031,计算设备判断业务的优先级的大小,即判断业务的优先级是高优先级还是低优先级。可选地,计算设备为本发明实施例中的第一网络设备或控制器。

s3032,当计算设备确定业务的优先级为第一优先级时,计算tcp窗口。其中,第一优先级对应的业务为高优先级业务。

在一个示例中,在步骤s3032中,计算设备为第一网络设备。当第一网络设备确定业务的优先级为第一优先级时,获取该业务的业务需求信息,并根据所述业务需求信息计算该tcp窗口。

在一个示例中,当该计算设备为第一网络设备时,该第一网络设备获得该业务的业务需求信息可以通过以下两种方式:

第一种方式,第一网络设备将业务标识向控制器发送,控制器存储有业务标识和业务需求信息的对应关系。在控制接收到业务标识后,根据业务标识确定对应的业务需求信息,然后将业务需求信息向第一网络设备发送。其中,第一网络设备可以将tcp报文复制一份,然后将复制的tcp报文向控制器发送,控制器根据复制的tcp报文获得业务标识。或者,第一网络设备先从该tcp报文中解析得到的业务标识,然后将该业务标识向控制器发送。

第二种方式,第一网络设备预先存储有业务标识和业务需求信息的对应关系,在第一网络设备确定业务的优先级为高优先级后,从该对应关系中获得业务需求信息。

在一个示例中,当第一网络设备确定业务的优先级为第一优先级,并且所述第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,第一网络设备才去获得该业务的业务需求信息,并根据所述业务需求信息计算tcp窗口。在本发明实施例中,缓存的大小也可以理解为缓存的值。第一阈值为预先设定的一个值,例如,第一网络设备的缓存的大小为100兆,第一阈值可以取值为70兆,当第一网络设备的缓存中被占用的缓存大于或等于70兆时,获得该业务的业务需求信息。采用上述方式,第一网络设备在确定第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,才根据业务需求信息计算tcp窗口,从而避免频繁计算tcp窗口导致对网络资源的过多占用。

具体如何根据所述业务需求信息计算该tcp窗口请参考以下详细描述。

s3033,当计算设备确定业务的优先级为第二优先级时,获得第一网设备的缓存中被占用的缓存的大小。第一优先级大于第二优先级,第二优先级对应的业务为低优先级业务。

s3034,计算设备判断第一网络设备的缓存中被占用的缓存是否大于或等于第二阈值。可选地,第一网络设备的缓存是指第一网络设备总的缓存。

s3035,当计算设备确定第一网络设备的缓存中被占用的缓存大于或等于第二阈值时,设置tcp窗口为0,或者设置tcp窗口为一个较小值。其中,该较小值的取值需要能够保证该业务不会中断,例如:该较小值可以取值10k或100k等。第二阈值为预先设定的一个值,例如,第一网络设备的缓存的大小为100兆,第二阈值可以取值为80兆,当第一网络设备的缓存中被占用的缓存大于或等于80兆时,设置tcp窗口为0,或者设置tcp窗口为一个较小值。第一阈值和第二阈值的取值可以相同也可以不同。

在一个示例中,当计算设备确定第一网络设备的缓存中被占用的缓存小于第二阈值时,tcp窗口取值为默认值,例如:tcp窗口可以取值为最近一次计算获得tcp窗口,或特定值。

在一个示例中,在步骤s3032中,计算设备为第一网络设备,在另外的示例中,该计算设备也可以为控制器。在控制器为计算设备的实施方式下,当第一网络设备判断业务的优先级为第一优先级时,第一网络设备向控制器发送通告消息,由控制器计算tcp窗口。控制器根据存储的业务标识和业务需求信息的对应关系,确定对应业务标识的业务需求,并根据该业务需求信息计算tcp窗口。具体控制器计算tcp窗口过程可以参考下述图4所示的实施例。

在一个示例中,业务需求信息包含吞吐率,该吞吐率用于标识第一网络设备在单位时间内需要传输的对应该业务标识的业务的流量,计算设备根据该吞吐率和第一网络设备的缓存中被占用缓存的大小计算tcp窗口。计算设备通过以下两种方式计算tcp窗口:

第一种方式,计算设备利用如下公式计算该tcp窗口:

其中,

throughput为该吞吐率;

b为第一网络设备的缓存的大小,该缓存包含第一网络设备被占用的缓存和未被占用的缓存;

currentb为第一网络设备缓存中被占用的缓存的大小;

当所述第一网络设备为所述业务报文的接收端时,c为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,c为所述第一网络设备发送所述业务报文的出接口的发送速率;

window为需要计算的tcp窗口。

计算设备利用上述公式能够计算得到一个tcp窗口的范围,这个范围内的tcp窗口都是能够满足该业务的吞吐率的要求的,并且可以灵活调整tcp窗口。例如,当第一网络设备的缓存占用率超过一个特定阈值,例如:80%,可以选择tcp窗口为上述公式计算的范围内的较小值,例如最小值,如果第一网络设备的缓存占用率低于一个特定阈值,例如40%,可以选择tcp窗口为上述公式计算的范围内的较大值,例如最大值,这样能够灵活的调整tcp窗口,满足用户业务需求的同时,避免第一网络设备的缓存被过多占用,减少业务报文的丢包。

第二种方式,计算设备利用如下公式计算该tcp窗口:

其中,

throughput为该吞吐率;

b为第一网络设备的缓存的大小;

currentb为所述第一网络设备缓存中被占用的缓存的大小;

当所述第一网络设备为所述业务报文的接收端时,c为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,c为所述第一网络设备发送所述业务报文的出接口的发送速率;

window为需要计算的该tcp窗口;

当所述第一网络设备为所述业务报文的接收端时,例如,第一网络设备为图1中的设备106,第二网络设备可以为图1中的设备101或设备102,δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延;当所述第一网络设备为所述业务报文传输路径上的中间设备时,例如,第一网络设备为图1中的设备105,第二网络设备可以为图1中的设备101或设备102,δt为所述第一网络设备发送业务报文的出接口的发送时延。

计算设备在计算tcp窗口时,还利用了第一网络设备发送业务报文的出接口的发送时延,或第一网络设备处理被占用的缓存中业务报文的处理时延,这样计算tcp窗口的范围更加精确。特别的,在第一网络设备发送业务报文的出接口的发送时延较大,或第一网络设备处理被占用的缓存中业务报文的处理时延较大时,计算得到的tcp窗口的范围会更精确,这样能够更准确的满足用户业务的需求。

在一个示例中,在计算设备利用上述两种方式计算tcp窗口时,该tcp窗口的取值还满足以下公式:

window<b-currentb。

由于第一网络设备在计算tcp窗口时,第一网络设备的剩余缓存为b-currentb,所以第一网络设备最多也只能存储剩余缓存大小的报文,利用这个公式作为计算tcp窗口的一个补充,可以一定程度的减少业务报文的丢包。

在一个示例中,基于图3a所示的业务报文发送的方法,本发明实施例还提供的一种业务报文发送的方法,图3d为该方法的流程示意图,参阅图3d所示,该方法包括:

s301,第一网络设备接收第二网络设备发送的tcp报文,tcp报文包含业务标识。

s302,第一网络设备根据业务标识获得业务标识对应的业务的优先级。

s303,第一网络设备根据业务的优先级获得tcp窗口。

s3034,第一网络设备向第三网络设备发送所述tcp报文。

s3035,第一网络设备接收第三网络设备发送的第二tcpack报文。

s3036,第一网络设备用步骤s303中获得的tcp窗口更新第二tcpack报文中的tcp窗口,生成第一tcpack报文。

s304,发送该第一tcpack报文。

在本发明实施例中,上述步骤s301、s302、s303以及s304与图3a中步骤s301、s302、s303以及s304相同,详细内容请阅图3a所示实施例,此处不再一一赘述。

在本实施例中,第二网络设备为业务报文的发送端,第一网络设备为业务报文传输路径上的一个中间设备,第三网络设备为业务报文的接收端。举例来说,第一网络设备为图1中的设备105,第二网络设备为图1中的设备101或设备102,第三网络设备为图1中的设备106。第一网络设备作为传输路径上的中间设备,主动拦截tcp报文,并根据业务的优先级计算tcp窗口,并将tcp窗口替换业务报文接收端发送的tcpack报文中的tcp窗口,从而能够灵活控制发送端发送的业务报文的大小。另外,在使用图3c所示的公式计算tcp窗口时,第一网络设备根据第一网络设备的缓存的被占用情况及业务需求信息来计算tcp窗口,能够为被转发的业务提供更精确的业务传输保障。

在一个示例中,步骤s302和s303可以在步骤s3032之前或之后执行,本发明实施例不做具体限制。

在一个示例中,第一网络设备获取业务标识可以通过以下四种方式:

第一种方式,从第二网络设备向第三网络设备发送的用于建立tcp连接的tcpsyn报文中获取业务标识,例如,从图2中的s201部分的第一syn报文中获取业务标识。

第二种方式,从第三网络设备向第一网络设备发送的用于建立tcp连接的tcpsyn报文或tcpack报文中获取业务标识,例如,从图2所示方法中s202部分的第一ack报文或第二syn报文中获取业务标识。

第三种方式,从第二网络设备向第三网络设备发送的用于建立tcp连接的tcpack报文中获取业务标识,例如,从图2中的s203部分的第二tcpack报文中获取业务标识。

第四种方式,从第二网络设备向第三网络设备发送的业务报文中获取获取业务标识,例如,从图2中的s204部分的业务报文中获取业务标识。

在一个示例中,第一网络设备从高速接口接收报文,并从低速接口发送报文,例如,第一网络设备从第二网络设备接收tcp业务报文的接口的速率为第一速率,第一网络设备向第三网络设备发送tcp业务报文的接口的速率为第二速率,第一速率大于第二速率。

在一个示例中,在图3a、图3b或图3d所示的方法中步骤s304之后还可以包括:

第一网络设备接收第二网络设备发送的对应该业务标识业务报文。该业务报文的净荷(payload)部分大小为步骤s303中获得的tcp窗口,或者,该业务报文的整个报文的大小为步骤s303中获得的tcp窗口。

在一个示例中,当第一网络设备作为业务报文的传输路径上的中间设备时,第一网络设备还将从第二网络设备接收的业务报文向业务报文的接收端发送,例如,第一网络设备为图1中的设备105,第二网络设备可以为图1中的设备101或设备102,在第一网络设备从第二网络设备接收到业务报文后,还会将业务报文向图1中的设备106发送。

结合图1所示的应用场景,本发明实施例还提供了一种业务报文发送方法,参阅图4所示,该方法包括:

s401,第一网络设备接收第二网络设备发送的tcp报文,tcp报文包含业务标识。具体实现方式参考上述图3a、3b以及3d中的步骤s301,此处不再赘述。

s402,在第一网络设备接收到该tcp报文后,将该tcp报文中的业务标识向控制器发送,相应地,控制器接收该业务标识。可选地,第一网络设备可以先获得该tcp报文中的业务标识,然后将业务标识向控制器发送。或者,第一网络设备也可以直接将该tcp报文复制一份向控制器发送,控制器根据该tcp报文获得业务标识。具体可以参考上述图3b中的步骤s3021。

s403,控制器在获得到业务标识后,根据业务标识和业务优先级的对应关系,确定该业务标识所对应的业务的优先级。具体根据业务标识确定业务标识对应的业务的优先级可以参考上述图3a中的步骤s302,或图3b中步骤s3022,此处不再赘述。

s404,控制器根据业务的优先级计算tcp窗口。具体根据业务优先级计算tcp窗口的计算方式可以参见上述图3c所示的方法,此处不再赘述。

s405,控制器向第一网络设备发送tcp窗口,相应地,第一网络设备接收该tcp窗口。

s406,第一网络设备生成第一tcpack报文,该第一tcpack报文包含该tcp窗口。

s407,第一网络设备向第二网络设备发送第一tcpack报文,该tcp窗口用于所述第二网络设备计算向所述第一网络设备发送的业务报文的大小。

在一个示例中,第一网络设备为业务报文的接收端,第二网络设备为业务报文的发送端。例如,第一网络设备为图1中的设备106,第二网络设备可以为图1中的设备101或设备102。

在一个示例中,图4所示方法还包括:第一网络设备向第三网络设备发送该tcp报文,并接收第三网络设备发送的第二tcpack报文。第一网络设备用步骤s404中计算得到的tcp窗口更新第二tcpack报文中的tcp窗口,生成步骤s406中的第一tcpack报文。在该示例中,第一网络设备为业务报文转发路径上的中间设备,第二网络设备为业务报文的发送端,第三网络设备为业务报文的接收端。第一网络设备可以为图1中的设备105,第二网络设备可以为图1中的设备101或设备102,第三网络设备为图1中的设备106。

在本发明实施例中,控制器根据业务的优先级计算tcp窗口,由于基于业务优先级计算tcp窗口,因此能够满足不同优先级业务的不同传输需求,从而能够灵活的控制发送端发送报文的大小,有利于减少业务报文的丢包。

图5示出了上述实施例中所涉及的第一网络设备的一种可能的结构示意图,该第一网络设备500可以实现图3a、3b、3c、3d或图4所示的实施例中的第一网络设备的功能。参阅图5,该第一网络设备500包括:接收单元501,确定单元502,处理单元503和发送单元504。这些单元可以执行上述方法实施例中第一网络设备的相应功能。接收单元501,用于支持第一网络设备500执行图3a中的过程s301,图3b中的过程s301和s3023,图3d中的过程s301和s3035,和/或图4中的过程s401和s405;确定单元502,用于支持第一网络设备500执行图3a中的过程s302,和/或图3d中的过程s302;发送单元504,用于支持第一网络设备500执行图3a中的过程s304,图3b中的过程s3021和s304,图3d中的过程s3034和s304,和/或图4中的过程s402和s407。处理单元503用于支持第一网络设备500执行图3a中的过程s303,图3b中的过程s303,图3c中的过程s3031、s3032、s3033、s3034和s3035,图3d中的过程s303和s3036,图4中的过程s406,和/或本文所描述的技术中第一网络设备执行的其它过程。例如,接收单元501,用于执行上述方法实施例中第一网络设备执行的各种信息接收;确定单元502,用于执行上述方法实施例中第一网络设备执行的确定动作;发送单元504,用于执行上述方法实施例中第一网络设备执行的各种信息发送;处理单元503,用于执行上述方法实施例中第一网络设备除了信息收发和确定动作之外的其他处理。举例来说,接收单元501,用于接收第二网络设备发送的tcp报文,tcp报文包含业务标识;确定单元502,用于根据业务标识确定业务标识对应的业务的优先级;处理单元503,用于根据业务的优先级获得tcp窗口;发送单元504,用于向第二网络设备发送第一tcpack报文,所述第一tcpack报文包含所述tcp窗口,所述tcp窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。具体执行过程请参考上述图3a、3b、3c、3d或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

在采用集成的单元的情况下,图6示出了上述实施例中所涉及的第一网络设备的另一种可能的结构示意图,该第一网络设备600同样可以实现3a、3b、3c、3d或图4所示的实施例中的第一网络设备的功能。第一网络设备600包括:存储单元601、处理单元602和通信单元603。通信单元603用于支持第一网络设备600与其他网络实体的通信,例如与图3b、图3d或图4中示出的第三网络设备或控制器之间的通信,举例来说,通信单元603用于支持第一网络设备600执行图3a中的过程s301和s304,图3b中的过程s301、s3021、s3023和s304,图3d中的过程s301、s3034、s3035和s304,和/或图4中的过程s401、s402、s405和s407。处理单元602用于对第一网络设备600的动作进行控制管理,例如,处理单元602用于支持第一网络设备600执行图3a中的过程s302和s303,图3b中的过程s303,图3c中的过程s3031、s3032、s3033、s3034和s3035,图3d中的过程s302、s303和s3036,图4中的过程s406,和/或本文所描述的技术中第一网络设备执行的其它过程。存储单元601,用于存储第一网络设备600的程序代码和数据。具体执行过程请参考上述图3a、3b、3c、3d或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

其中,处理单元602可以是处理器,例如可以是中央处理器(centralprocessingunit,cpu)、通用处理器,数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元603可以是收发器,存储单元601可以是存储器。

当处理单元602为处理器,通信单元603为收发器,存储单元601为存储器时,本发明实施例所涉及的第一网络设备可以为图7所示的第一网络设备700。

参阅图7所示,该第一网络设备700包括:处理器702、收发器703、存储器701以及总线704。其中,处理器702、收发器703以及存储器701通过总线704相互连接;总线704可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该第一网络设备700可以实现图3a、3b、3c、3d或图4所示的实施例中的第一网络设备的功能。处理器702和收发器703可以执行上述方法示例中第一网络设备的相应功能。收发器703用于支持第一网络设备700执行图3a中的过程s301和s304,图3b中的过程s301、s3021、s3023和s304,图3d中的过程s301、s3034、s3035和s304,和/或图4中的过程s401、s402、s405和s407。处理器702用于支持第一网络设备700执行图3a中的过程s302和s303,图3b中的过程s303,图3c中的过程s3031、s3032、s3033、s3034和s3035,图3d中的过程s302、s303和s3036,图4中的过程s406,和/或本文所描述的技术中第一网络设备执行的其它过程。存储器701,用于存储第一网络设备700的程序代码和数据。具体执行过程请参考上述图3a、3b、3d或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

参阅图8所示,本发明实施例提供了另一种第一网络设备800。第一网络设备800可以为路由器或交换器或有转发功能的网络设备,网络设备800能够实现前述方法实施例中的第一网络设备的功能。所述第一网络设备800包括:主控板801和接口板802。主控板801包括:处理器803和存储器804。接口板802包括:处理器805、存储器806和接口卡807。主控板801和接口板802耦合。

这些硬件可以执行上述方法示例中的相应功能,例如,存储器806可以用于存储接口板802的程序代码,处理器805用于调用存储器806中的程序代码触发接口卡807执行上述方法实施例中第一网络设备执行的各种信息接收和发送,例如,处理器805调用存储器806中的程序代码触发接口卡807支持第一网络设备800执行图3a中的过程s301和s304,图3b中的过程s301、s3021、s3023和s304,图3d中的过程s301、s3034、s3035和s304,和/或图4中的过程s401、s402、s405和s407。处理器805,还用于将业务标识向主控板801发送。存储器804可以用于存储主控板801的程序代码,处理器803用于调用存储器804中的程序代码执行上述方法实施例中第一网络设备除了信息收发之外的其他处理。例如,处理器803用于支持第一网络设备800执行图3a中的过程s302和s303,图3b中的过程s303,图3c中的过程s3031、s3032、s3033、s3034和s3035,图3d中的过程s302、s303和s3036,图4中的过程s406,和/或本文所描述的技术中第一网络设备执行的其它过程。存储器804用于存储主控板801的程序代码和数据。具体执行过程请参考上述图3a、3b、3c、3d或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

在一种可能的实现方式中,主控板801和接口板802之间建立ipc控制通道,主控板801和接口板802之间利用该ipc控制通道进行通信。

图9示出了上述实施例中所涉及的控制器的一种可能的结构示意图,该控制器可以实现图3b、3c或图4所示的实施例中的控制器的功能。参阅图9,该控制器900包括:接收单元901,确定单元902,处理单元903和发送单元904。这些单元可以执行上述方法示例中控制器的相应功能。接收单元901,用于支持控制器900执行图3b中的过程s3021,和/或图4中的过程s402;确定单元902,用于支持控制器900执行图3b中的过程s3022,图4中的过程s403;发送单元904,用于支持控制器900执行图3b中的过程s3023,图4中的过程s405;处理单元903用于支持控制器900执行图3c中的过程s3031、s3032、s3033、s3034和s3035,图4中的过程s404,和/或本文所描述的技术中控制器执行的其它过程。例如,接收单元901,用于执行上述方法实施例中控制器执行的各种信息接收;确定单元902,用于执行上述方法实施例中控制器执行的确定动作;发送单元904,用于执行上述方法实施例中控制器执行的各种信息发送;处理单元903,用于执行上述方法实施例中控制器除了信息收发和确定动作之外的其他处理。举例来说,接收单元901,用于用于接收第一网络设备发送的业务标识;确定单元902,用于根据业务标识确定业务标识对应的业务的优先级;处理单元903,用于根据业务的优先级计算tcp窗口;发送单元904,用于将tcp窗口向第一网络设备发送,以便于第一网络设备将tcp窗口发送到第二网络设备,所述tcp窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。具体执行过程请参考上述图3b、3c或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,接收单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

在采用集成的单元的情况下,图10示出了上述实施例中所涉及的控制器的另一种可能的结构示意图,该控制器1000同样可以实现3b、3c或图4所示的实施例中的控制器的功能。

控制器1000包括:存储单元1001、处理单元1002和通信单元1003。通信单元1003用于支持控制器1000与其他网络实体的通信,例如,用于支持控制器900执行图3b中的过程s3021、s3023,和图4中的过程s402、s405。处理单元1002用于对控制器1000的动作进行控制管理,例如,处理单元1002用于支持控制器1000执行图3b中的过程s3022,图3c中的过程s3031、s3032、s3033、s3034和s3035,图4中的过程s404,和/或本文所描述的技术中控制器执行的其它过程。存储单元1001,用于存储控制器1000的程序代码和数据。具体处理过程请参考上述图3b、3c或图4所示实施例中相应步骤的详细描述,这里不再一一赘述

其中,处理单元1002可以是处理器,例如可以是cpu、通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元1003可以是收发器。存储单元1001可以是存储器。

当处理单元1002为处理器,通信单元1003为收发器,存储单元1001为存储器时,本发明实施例所涉及的控制器可以为图11所示的控制器1100。

参阅图11所示,该控制器1100包括:处理器1102、收发器1103、存储器1101以及总线1104。其中,收发器1103、处理器1102以及存储器1101通过总线1104相互连接;总线1104可以是pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该控制器1100可以实现图3b或图4所示的实施例中的控制器的功能。处理器1102和收发器1103可以执行上述方法示例中控制器的相应功能。收发器1103用于支持第控制器1100执行图3b中的过程s3021、s3023,和/或图4中的过程s402和s405。处理器1102用于支持控制器1100执行图3b中的过程s3022,图3c中的过程s3031、s3032、s3033、s3034和s3035,图4中的过程s404,和/或本文所描述的技术中控制器执行的其它过程。存储器701,用于存储控制器1100的程序代码和数据。具体执行过程请参考上述图3b或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

参阅图12所示,发明实施例提供了另一种业务报文发送的系统1200,该系统1200用于实现前述方法实施例中的业务报文发送的方法。该系统1200包括第一网络设备1201和第二网络设备1202。该第一网络设备1201和第二网络设备1202可以分别实现图3a、3b、3c、3d或图4所示的实施例中的第一网络设备和第二网络设备的功能。例如,第一网络设备1201执行图3a中的过程s301、s302、s302和s304,图3b中的过程s301、s3021、s3022、s3023、s303和s304,图3c中的过程s3031、s3032、s3033、s3034和s3035,图3d中的过程s301、s302、s303、s3034、s3035、s3036和s304,和/或用于本文所描述的技术中第一网络设备执行的其它过程。第二网络设备1202,用于向第一网络设备1201发送tcp报文,该tcp报文包含业务标识,并接收第一网络设备1201发送的第一tcpack报文,该第一tcpack报文包含网络设备1201获得的tcp窗口。

在一个示例中,该系统1200还包括第三网络设备,该第三网络设备用于实现图3d所示的实施例中第三网络设备的功能。例如,接收第一网络设备1201发送的tcp报文,并向第一网络设备1201发送针对该tcp报文的ack报文。

在一个示例中,该系统1200还包括控制器,该控制器用于实现图3b、3c和图4所示实施例中的控制器的功能。例如,接收第一网络设备1201发送的业务标识,根据业务标识获得业务优先级,并计算tcp窗口;向第一网络设备1201发送计算得到的tcp窗口。

本发明实施例还提供了一种存储介质,用于储存前述实施例中所用的软件指令,其包括用于执行前述实施例所示的方法的程序,当其在计算机或设备上执行时,使得所示计算机或设备执行前述方法实施例中的方法。

本发明实施例中提到的第一网络设备中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”和“第三”。

需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的第一网络设备或控制器实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1