本发明涉及数据网络,具体而言,涉及一种防丢包方法及相关装置。
背景技术:
1、网络交换机机架由多块线卡以及网片组成,每块线卡以及网片上有交换芯片,用于交换数据报文。任何一个线卡的面板端口进来的数据报文可以通过本线卡转发,即从本线卡的任何一个端口出去,数据报文也可以通过线卡->网片->线卡的方式转发。
2、由于线卡以及网片的面板端口的传输速率固定,因此,任意线卡或网片的接收带宽大于发送带宽时,会发生buffer(缓存)溢出,进而出现丢包情况。
3、目前的防丢包技术主要是针对线卡出现突发拥塞而提出的,而当线卡以及网片的面板端口传输速率相同时,突发拥塞则会发生在网片上,导致网片的缓存溢出,出现丢包。
技术实现思路
1、为了克服现有技术的,本发明实施例提供了一种防丢包方法及相关装置。
2、本发明实施例的技术方案可以这样实现:
3、第一方面,本发明实施例提供一种防丢包方法,应用于网络交换机机架中的网片的交换芯片,所述网络交换机机架还包括线卡,所述线卡的交换芯片与所述网片的交换芯片通信连接,所述方法包括:
4、生成携带有所述网片的端口的buffer拥塞等级的流控帧;
5、将所述流控帧发送给所述线卡的交换芯片,以使所述线卡的交换芯片根据所述网片的端口的buffer拥塞等级,调整向所述网片的端口发送数据报文的速率,避免所述网卡的端口因拥塞出现丢包。
6、可选地,在所述生成携带有所述网片的端口的buffer拥塞等级的流控帧之前,所述方法还包括获取所述网片的端口的buffer拥塞等级的步骤,其包括:
7、获取针对所述网片的端口的报文计数值,其中,所述报文计数值的变化表征所述网片的端口转入或转出数据报文;
8、根据所述报文计数值,确定所述网片的端口的buffer拥塞等级。
9、可选地,所述根据所述报文计数值,确定所述网片的端口的buffer拥塞等级的步骤包括:
10、若所述报文计数值小于第一预设值、且所述网片的端口处于轻度拥塞状态,则确定所述网片的端口的buffer拥塞等级为第一预设等级;
11、若所述报文计数值小于第二预设值、且所述网片的端口处于中度拥塞状态,则确定所述网片的端口的buffer拥塞等级为第二预设等级;
12、若所述报文计数值小于第三预设值、且所述网片的端口处于重度拥塞状态,则确定所述网片的端口的buffer拥塞等级为第三预设等级。
13、可选地,所述根据所述报文计数值,确定所述网片的端口的buffer拥塞等级的步骤还包括:
14、若所述报文计数值大于第二预设值、且所述网片的端口处于不拥塞状态,则确定所述网片的端口的buffer拥塞等级为第二预设等级;
15、若所述报文计数值大于第三预设值、且所述网片的端口处于轻度拥塞状态,则确定所述网片的端口的buffer拥塞等级为第三预设等级;
16、若所述报文计数值大于第四预设值、且所述网片的端口处于中度拥塞状态,则确定所述网片的端口的buffer拥塞等级为第四预设等级。
17、第二方面,本发明实施例提供一种防丢包方法,应用于网络交换机机架中的线卡的交换芯片,所述网络交换机机架还包括网片,所述网片的交换芯片与所述线卡的交换芯片通信连接,所述方法包括:
18、接收所述网片的交换芯片发送的流控帧,所述流控帧携带有所述网片的端口的buffer拥塞等级;
19、根据所述网片的端口的buffer拥塞等级,调整向所述网片的端口发送数据报文的速率,以避免所述网卡的端口因拥塞出现丢包。
20、可选地,所述根据所述网片的端口的buffer拥塞等级,调整向所述网片的端口发送数据报文的速率的步骤包括:
21、若所述网片的端口的buffer拥塞等级为第一预设等级,则将向所述网片的端口发送数据报文的速率提高至预设最大速率;
22、若所述网片的端口的buffer拥塞等级为第二预设等级,则将向所述网片的端口发送数据报文的速率按照第一预设降幅进行降低;
23、若所述网片的端口的buffer拥塞等级为第三预设等级,则将向所述网片的端口发送数据报文的速率按照第二预设降幅进行降低,其中,所述第二预设降幅大于所述第一预设降幅;
24、若所述网片的端口的buffer拥塞等级为第四预设等级,则将向所述网片的端口发送数据报文的速率降低至预设最小速率。
25、可选地,所述方法还包括:
26、在将向所述网片的端口发送数据报文的速率降低后,控制所述线卡的计数器开始计数;
27、若检测到所述计数器的值大于预设阈值,则将向所述网片的端口发送数据报文的速率在预设时间范围内逐步提高至所述预设最大速率。
28、第三方面,本发明实施例提供一种防丢包装置,应用于网络交换机机架中的网片的交换芯片,所述网络交换机机架还包括线卡,所述线卡的交换芯片与所述网片的交换芯片通信连接,所述装置包括:
29、生成模块,用于生成携带有所述网片的端口的buffer拥塞等级的流控帧;
30、发送模块,用于将所述流控帧发送给所述线卡的交换芯片,以使所述线卡的交换芯片根据所述网片的端口的buffer拥塞等级,调整向所述网片的端口发送数据报文的速率,避免所述网卡的端口因拥塞出现丢包。
31、第四方面,本发明实施例提供一种防丢包装置,应用于网络交换机机架中的线卡的交换芯片,所述网络交换机机架还包括网片,所述网片的交换芯片与所述线卡的交换芯片通信连接,所述装置包括:
32、接收模块,用于接收所述网片的交换芯片发送的流控帧,所述流控帧携带有所述网片的端口的buffer拥塞等级;
33、调整模块,用于根据所述网片的端口的buffer拥塞等级,调整向所述网片的端口发送数据报文的速率,以避免所述网卡的端口因拥塞出现丢包。
34、第五方面,本发明实施例提供一种交换芯片,所述交换芯片存在逻辑器件,所述逻辑器件烧录有计算机程序,所述计算机程序被执行时实现如第一方面所述的防丢包方法。
35、第六方面,本发明实施例提供一种交换芯片,所述交换芯片存在逻辑器件,所述逻辑器件烧录有计算机程序,所述计算机程序被执行时实现如第二方面所述的防丢包方法。
36、第七方面,本发明实施例提供一种网络交换机机架,所述网络交换机机架包括多个网片和多个线卡,每个所述网片上均存在如第五方面所述的交换芯片,每个所述线卡上均存在如第六方面所述的交换芯片。
37、第三方面,本发明实施例提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的防丢包方法或如第二方面所述的防丢包方法。
38、相较于现有技术,本发明实施例提供的应用于网络交换机机架中的网片的交换芯片的防丢包方法,首先,生成携带有网片的端口的buffer拥塞等级的流控帧;然后,将流控帧发送给线卡的交换芯片,以使线卡的交换芯片根据网片的端口的buffer拥塞等级,调整向网片的端口发送数据报文的速率。由于本发明实施例例通过向线卡的交换芯片发送携带有网片的端口的buffer拥塞等级的流控帧,使线卡的交换芯片根据网片的端口的buffer拥塞等级,调整向网片的端口发送数据报文的速率,从而避免网卡的端口因拥塞出现丢包。