本申请涉及网络通信,尤其是一种多网卡网络集成装置及网卡通信方法。
背景技术:
1、目前随着服务器的网络功能的发展,会存在服务器向外部提供两张以上的网卡的情况,这多张网卡通过rmii总线与服务器内部的bmc(baseboard management controller,基板管理控制器)连接,并通过分时复用的方式使得不同用户都可以访问bmc。
2、在服务器采用这种多网卡网络集成架构的情况下,bmc为了区分网络流量来自于哪张网卡,也为了避免总线竞争,就需要对多张网卡进行仲裁,由于大部分的网卡未必支持硬件仲裁,因此更常用的做法是采用命令仲裁。命令仲裁的原理是:bmc向需要通信的其中一张网卡发送选通命令、向其他网卡发送关断命令,收到关断命令的各张网卡释放rmii总线,不再往rmii总线上发送数据,而收到选通命令的网卡正常占用rmii总线与bmc通信。
3、理论上通过上述命令仲裁过程可以避免不同网卡之间的总线竞争问题,但是实际上,在网络条件之类的外部因素作用下,当收到选通命令的网卡开始占用rmii总线与bmc通信时,有可能出现其他网卡还没有成功释放rmii总线而仍在向rmii总线发送数据的情况,这会严重干扰到同一个rmii总线上的其他网卡,导致收到选通命令而本该正常占用rmii总线的网卡与bmc之间出现通信丢包的现象,影响通信可靠性。
技术实现思路
1、本申请针对上述问题及技术需求,提出了一种多网卡网络集成装置及网卡通信方法,本申请的技术方案如下:
2、一种多网卡网络集成装置,该多网卡网络集成装置包括基板管理控制器bmc和多张网卡,多张网卡共用rmii总线连接bmc;
3、bmc,用于根据ncsi协议向其中一张目标网卡发送选通命令、向其他各张网卡发送关断命令;
4、当前处于导通状态并接收到关断命令的网卡,用于响应于关断命令从导通状态切换到关断状态;当前处于关断状态并接收到关断命令的网卡,用于响应于关断命令保持关断状态;任意一张网卡,用于将处于关断状态时接收到的网络报文存储各自的本地缓存中;
5、当前处于关断状态并接收到选通命令的目标网卡,用于响应于选通命令从关断状态切换到等待状态,并根据ncsi协议向bmc发送自己本地缓存中的网络报文;
6、bmc,还用于在发送选通命令后未接收到目标网卡回复的响应信息的时长达到最大等待时长时,根据ncsi协议的控制命令重传特性超时重传选通命令;
7、接收到选通命令的目标网卡,还用于在响应于选通命令向bmc发送网络报文后的预定时长内未再次接收到选通命令,从等待状态切换到导通状态并释放自己的本地缓存,并将处于导通状态时接收到网络报文直接根据ncsi协议发送给bmc。
8、一种多网卡网络集成装置的网卡通信方法,该多网卡网络集成装置中的多张网卡共用rmii总线连接bmc,任意一张网卡执行的网卡通信方法包括:
9、在当前处于导通状态且根据ncsi协议接收到bmc发送的关断命令后,响应于关断命令从导通状态切换到关断状态,并将处于关断状态时接收到的网络报文存储在网卡的本地缓存中;
10、在当前处于关断状态且根据ncsi协议接收到bmc发送的关断命令后,响应于关断命令保持关断状态,并将处于关断状态时接收到的网络报文存储在网卡的本地缓存中;
11、在当前处于关断状态且根据ncsi协议接收到bmc发送的选通命令后,从关断状态切换到等待状态并根据ncsi协议向bmc发送本地缓存中的网络报文;在响应于选通命令向bmc发送网络报文后未接收到bmc超时重传的选通命令的时长达到预定时长时,从等待状态切换到导通状态并释放本地缓存,并将处于导通状态时接收到网络报文直接根据ncsi协议发送给bmc;
12、其中,bmc在发送选通命令后未接收到目标网卡回复的响应信息的时长达到最大等待时长时,根据ncsi协议的控制命令重传特性超时重传选通命令。
13、本申请的有益技术效果是:
14、本申请公开了一种多网卡网络集成装置及网卡通信方法,该多网卡网络集成装置在bmc通过rmii总线连接多个网卡并根据ncsi协议通信的硬件架构基础上,网卡在选通命令下首先切换到新增的等待状态且暂缓释放本地缓存,然后利用ncsi协议的控制命令重传特性来检测是否存在由于不同网卡之间的总线竞争而导致的丢包情况,网卡只有在确定正确占用rmii总线与bmc通信的基础上才会正式切换到导通状态释放本地缓存继而直接发送接收到的网络报文,该方法无需增加额外的硬件结构,可以有效降低丢包率并提高网络通信的可靠性。
1.一种多网卡网络集成装置,其特征在于,所述多网卡网络集成装置包括基板管理控制器bmc和多张网卡,多张网卡共用rmii总线连接bmc;
2.根据权利要求1所述的多网卡网络集成装置,其特征在于,
3.根据权利要求2所述的多网卡网络集成装置,其特征在于,
4.根据权利要求3所述的多网卡网络集成装置,其特征在于,
5.根据权利要求4所述的多网卡网络集成装置,其特征在于,
6.根据权利要求1所述的多网卡网络集成装置,其特征在于,所述目标网卡在处于等待状态的过程中持续接收网络报文,将接收到的网络报文直接根据ncsi协议发送给bmc并存储在自己的本地缓存中。
7.一种多网卡网络集成装置的网卡通信方法,其特征在于,多网卡网络集成装置中的多张网卡共用rmii总线连接bmc,任意一张网卡执行的网卡通信方法包括:
8.根据权利要求7所述的网卡通信方法,其特征在于,所述网卡通信方法还包括:
9.根据权利要求8所述的网卡通信方法,其特征在于,所述网卡通信方法还包括:
10.根据权利要求7所述的网卡通信方法,其特征在于,所述网卡在处于等待状态的过程中持续接收网络报文,将接收到的网络报文直接根据ncsi协议发送给bmc并存储在自己的本地缓存中。
