掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及通信技术领域,尤其涉及一种通信方法及装置。

背景技术

目前,现网IPTV业务是通过DHCP/DHCPv6方式上线的双栈IPoE业务。现网中为提供设备级备份及流量负载分担,通常部署两台宽带接入服务器(英文:Broadband RemoteAccess Server,简称:BRAS)设备。客户端通过二层网络分别接入两台BRAS设备,两台BRAS设备均通过路由器接入网络。在客户端集中上线期间,可能会出现少量客户端的不同协议栈在不同BRAS设备内上线的情况。

上述情况出现的原因可能是:不同BRAS设备当前负载能力的不同,使得同一用户的不同协议栈被不同BRAS设备响应。

BRAS用户奇偶媒体存取控制(英文:Media Access Control,简称:MAC)延迟响应,是一种在多台BRAS设备(BRAS A、BARS B)之间采用对奇偶MAC用户的上线请求进行延迟响应的方式,用于实现用户负载分担及备份。

奇偶位指BRAS设备用于判断用户MAC地址是奇数或是偶数的比特位。该比特位取值为0,表示用户为偶数MAC;取值为1,表示用户为奇数MAC。缺省情况下,BRAS设备选取用户MAC地址的最低比特位(左高右低原则)作为奇偶位。响应延迟时间指BRAS设备在接收到用户上线请求后,对上线请求延迟响应的时间。

在对BRAS设备通过上述配置后,正常情况下,客户端向BRAS设备广播发送上线请求,例如,v4协议栈的上线请求。BRAS A接收到v4协议栈的上线请求后,判断该客户端为奇数MAC且响应不延迟,BRAS A立即响应该上线请求。客户端先接收到BRAS A的响应报文后选择通过BRAS A上线。BRAS B接收到v4协议栈的上线请求后,判断该客户端为奇数MAC且延迟响应,例如,10s,BRAS B等待延迟时间超时后响应该v4协议栈的上线请求。由于客户端后接收到BRAS B的响应报文,则客户端将BRAS B发送的响应报文直接丢弃。客户端再次向BRAS设备发送v6协议栈的上线请求,例如,v6协议栈的上线请求。BRAS A接收到v6协议栈的上线请求后,判断该客户端为奇数MAC且响应不延迟,BRAS A立即响应该上线请求。客户端先接收到BRAS A的响应报文后选择通过BRAS A上线。BRAS B接收到v6协议栈的上线请求后,判断该客户端为奇数MAC且延迟响应,例如,10s,BRAS B等待延迟时间超时后响应该v6协议栈的上线请求。由于客户端后接收到BRAS B的响应报文,则客户端将BRAS B发送的响应报文直接丢弃。

但是,尽管在多台BRAS设备内配置BRAS用户奇偶MAC延迟响应,在一定程度上可以缓解客户端的不同协议栈在不同BRAS设备内上线的情况。然而,在各BRAS设备当前负载较大、繁忙时,仍会出现客户端的不同协议栈在不同BRAS设备内上线的情况。例如,客户端的v4协议栈在BRAS A上线后发送v6协议栈的上线请求。此时,BRAS A接收到v6协议栈的上线请求后,由于当前负载较大、繁忙,则BRAS A将延时处理(也即按序处理,v6协议栈的上线请求之前队列内已存储多个其他请求)该v6协议栈的上线请求,例如,延时20s。而BRAS B也接收到v6协议栈的上线请求,由于该客户端为奇数MAC,则BRAS B等待延迟时间超时后响应该v6协议栈的上线请求,BRAS B将在10s后处理。客户端的v6协议栈将在BRAS B上线。如此,导致客户端的不同协议栈在不同BRAS设备内上线的情况。

发明内容

有鉴于此,本申请提供了一种通信方法及装置,用以解决现有客户端的不同协议栈在不同BRAS设备内上线的问题。

第一方面,本申请提供了一种通信方法,所述方法应用于客户端,所述客户端内已配置第一协议栈以及第二协议栈,所述方法包括:

发送用于使所述第一协议栈上线的第一报文;

若接收到BRAS设备针对所述第一报文发送的第二报文且所述第二报文指示上线成功,则在所述第一协议栈内记录所述客户端接入的所述BRAS设备的接口的MAC地址;

发送用于使所述第二协议栈上线的第三报文;

若接收到所述BRAS设备针对所述第三报文发送的第四报文,则判断所述第四报文包括的源MAC地址是否与本地记录的所述BRAS设备的接口的MAC地址相同;

若相同,则向所述BRAS设备发送用于所述第二协议栈上线的第五报文。

第二方面,本申请提供了一种通信装置,所述装置应用于客户端,所述客户端内已配置第一协议栈以及第二协议栈,所述装置包括:发送单元、接收单元、记录单元以及判断单元;

所述发送单元,用于发送用于使所述第一协议栈上线的第一报文;

所述记录单元,用于若所述接收单元接收到BRAS设备针对所述第一报文发送的第二报文且所述第二报文指示上线成功,则在所述第一协议栈内记录所述客户端接入的所述BRAS设备的接口的MAC地址;

所述发送单元还用于,发送用于使所述第二协议栈上线的第三报文;

判断单元,用于若所述接收单元接收到所述BRAS设备针对所述第三报文发送的第四报文,则判断所述第四报文包括的源MAC地址是否与本地记录的所述BRAS设备的接口的MAC地址相同;

所述发送单元还用于,若相同,则向所述BRAS设备发送用于所述第二协议栈上线的第五报文。

第三方面,本申请提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本申请第一方面所提供的方法。

因此,应用本申请提供的通信方法及装置,客户端发送用于使第一协议栈上线的第一报文;若接收到BRAS设备针对第一报文发送的第二报文且第二报文指示上线成功,则客户端在第一协议栈内记录客户端接入的BRAS设备的接口的MAC地址;客户端发送用于使第二协议栈上线的第三报文;若接收到BRAS设备针对第三报文发送的第四报文,则客户端判断第四报文包括的源MAC地址是否与本地记录的BRAS设备的接口的MAC地址相同;若相同,则客户端向BRAS设备发送用于第二协议栈上线的第五报文。

如此,解决了在多台BRAS设备内配置BRAS用户奇偶MAC延迟响应的组网中,由于BRAS设备当前负载较大、繁忙时,导致客户端的不同协议栈在不同BRAS设备内上线的问题。同时,本申请提供的通信方法及装置不在BRAS设备内增加处理流程,也不增加报文交互流程,对于BRAS设备的上线性能无影响。

附图说明

图1为本申请实施例提供的通信方法的流程图;

图2为本申请实施例提供的客户端上线组网示意图;

图3为本申请实施例提供的通信装置结构图;

图4为本申请实施例提供的网络设备硬件结构体。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面对本申请实施例提供的通信方法进行详细地说明。参见图1,图1为本申请实施例提供的通信方法的流程图。该方法应用于客户端,本申请实施例提供的通信方法可包括如下所示步骤。

步骤110、发送用于使所述第一协议栈上线的第一报文;

具体地,客户端内已配置第一协议栈以及第二协议栈,也即是客户端为一个双栈客户端。客户端欲访问网络之前,需通过BRAS设备对客户端进行认证、分配IP地址的过程。

客户端发起某一协议栈的上线流程。客户端生成第一报文,该第一报文可具体用于使第一协议栈上线。客户端以广播或者组播方式发送第一报文。

其中,第一协议栈可具体为v4协议栈,或者,第一协议栈可具体为v6协议栈;第二协议栈可具体为v6协议栈,或者,第二协议栈可具体为v4协议栈。

若第一协议栈为v4协议栈,则第一报文可具体为DHCP discover报文;若第二协议栈为v6协议栈,则第一报文可具体为DHCPv6 solicit报文。

在本申请实施例中,DHCP discover报文、DHCPv6 solicit报文与现有DHCP协议中规定的DHCP discover报文、DHCPv6 solicit报文相同,在此不再复述。

多个BRAS设备接收到DHCP discover报文或者DHCPv6 solicit报文后,可按照现有DHCP协议中规定的模式进行处理,在此进行简要说明。

在一个例子中,客户端为DHCPv4客户端。每个BRAS设备接收到DHCP discover报文后,根据IP地址分配的优先次序选出一个IP地址,与其他网络配置参数一起通过DHCPoffer报文发送至客户端。若存在多个BRAS设备向客户端发送DHCP offer报文,则客户端只接受第一个收到的DHCP offer报文,比如,BRAS A发送的DHCP offer报文。然后,客户端再次以广播方式发送DHCP request报文,DHCP request报文中包含BRAS A在DHCP offer报文中分配的IP地址。每个BRAS设备接收到DHCP request报文后,仅BRAS A进行如下操作:若确认将该IP地址分配给客户端,则BRAS A生成并向客户端发送DHCP ack报文;否则,BRAS A生成并向客户端发送DHCP nak报文,以表明该IP地址不能分配给客户端。客户端接收到BRASA发送的DHCP ack报文后,再次以广播的方式发送免费ARP报文,以探测是否存在其他客户端使用该IP地址。若在规定的时间内未接收到响应ARP报文,且客户端上不存在与该地址同网段的其他地址时,客户端使用该IP地址。否则,客户端启动重新申请IP地址流程。

在另一个例子中,客户端为DHCPv6客户端。每个BRAS设备接收到DHCPv6solicit报文后,根据IPv6地址分配的优先次序选出一个IPv6地址/前缀,与其他网络配置参数一起通过DHCPv6 advertise报文发送至客户端。若存在多个BRAS设备向客户端发送DHCPv6advertise报文,则客户端根据报文接收的先后顺序、BRAS设备优先级等,选择其中一个BRAS设备发送的DHCPv6 advertise报文,比如,BRAS A发送的DHCPv6 advertise报文。然后,客户端向BRAS A发送DHCPv6request报文,DHCPv6 request报文中包含BRAS A在DHCPv6advertise报文中分配的IPv6地址/前缀。BRAS A接收到DHCPv6 request报文后,若确认将该IPv6地址/前缀分配给客户端,则BRAS A生成并向客户端发送DHCPv6 reply报文。

在本申请实施例中,BRAS设备为客户端确认分配对应的IP地址,则表明客户端对应的协议栈上线成功。例如,客户端接收到BRAS设备发送的DHCP ack报文或者DHCPv6reply报文后,确认对应的协议栈上线成功。

步骤120、若接收到BRAS设备针对所述第一报文发送的第二报文且所述第二报文指示上线成功,则在所述第一协议栈内记录所述客户端接入的所述BRAS设备的接口的MAC地址;

具体地,根据步骤110的描述,客户端接收到BRAS设备针对第一报文发送的第二报文且第二报文指示上线成功,则客户端在第一协议栈内记录客户端接入的BRAS设备的接口的MAC地址。

可选地,第一协议栈内包括vx_目的MAC字段,该字段可用于存储客户端接入的BRAS设备的接口的MAC地址。v表示版本(Version),x表示某一个具体协议栈,例如,v4_目的MAC字段表示v4协议栈下的目的MAC地址;v6_目的MAC字段表示v4协议栈下的目的MAC地址。

本申请实施例中,客户端从第二报文内获取源MAC地址,该源MAC地址指示的接口即为客户端接入的BRAS设备的接口。客户端将该源MAC地址记录在第一协议栈包括的vx_目的MAC字段内。

例如,若第一协议栈为v4协议栈,则第二报文具体为DHCP ack报文,vx_目的MAC字段具体为v4_目的MAC字段;若第一协议栈为v6协议栈,则第二报文具体为DHCPv6 reply报文,vx_目的MAC字段具体为v6_目的MAC字段。

可选地,第一协议栈内还包括上线成功标志位,该上线成功标志位用于记录协议栈是否上线成功。客户端接收到第二报文后,确认第二报文指示上线成功,则客户端将第一协议栈内包括的上线成功标志位配置为1。

可以理解的是,客户端未接收到第二报文之前,第一协议栈内上线成功标志位配置为0。

步骤130、发送用于使所述第二协议栈上线的第三报文;

具体地,根据步骤120的描述,第一协议栈上线成功后,客户端可发起第二协议栈的上线流程。客户端生成第三报文,该第三报文可具体用于使第二协议栈上线。客户端以广播或者组播方式再次发送第三报文。

在本申请实施例中,根据协议栈的不同,第三报文可具体为DHCP discover报文或者DHCPv6 Solicit报文。若第二协议栈为v4协议栈,则客户端以广播方式发送DHCPdiscover报文;若第二协议栈为v6协议栈,则客户端以组播方式发送DHCPv6 Solicit报文。

可以理解的是,在前述步骤110中,以详细说明BRAS设备接收到第三报文后的处理过程,在此不再复述。在本申请实施例中,BRAS设备接收到第三报文后,在确定自身可为客户端提供IP地址以及其他网络配置参数,或者IPv6地址/前缀以及其他网络配置参数,则BRAS生成并向客户端发送第四报文。第四报文可具体为DHCP offer报文或者DHCPv6advertise报文。

步骤140、若接收到所述BRAS设备针对所述第三报文发送的第四报文,则判断所述第四报文包括的源MAC地址是否与本地记录的所述BRAS设备的接口的MAC地址相同;

具体地,根据步骤130的描述,客户端接收到BRAS设备针对第三报文发送的第四报文后,从第四报文中获取源MAC地址。同时,客户端还从第一协议栈内vx_目的MAC字段内获取记录的BRAS设备的接口的MAC地址。

客户端比较源MAC地址是否与本地记录的BRAS设备的接口的MAC地址相同。若源MAC地址与本地记录的BRAS设备的接口的MAC地址相同,则客户端执行步骤150。

可选地,若源MAC地址与本地记录的BRAS设备的接口的MAC地址不同,则客户端丢弃第四报文,第二协议栈上线流程终止。客户端可在预设时间(例如,30s)后,再次发起第二协议栈上线流程。

步骤150、若相同,则向所述BRAS设备发送用于所述第二协议栈上线的第五报文。

具体地,根据步骤140的描述,若源MAC地址与本地记录的BRAS设备的接口的MAC地址相同,则客户端继续第二协议栈上线流程。即,客户端生成并发送第五报文,该第五报文可具体用于使第二协议栈继续执行上线流程。

在本申请实施例中,根据协议栈的不同,第五报文可具体为DHCP request报文或者DHCPv6 request报文。若第二协议栈为v4协议栈,则客户端以单播方式向该BRAS设备发送DHCP request报文;若第二协议栈为v6协议栈,则客户端以单播方式向该BRAS设备发送DHCPv6 request报文。该BRAS设备发送的第四报文包括的源MAC地址与本地记录的BRAS设备的接口的MAC地址相同。

可以理解的是,在前述步骤110中,以详细说明BRAS设备接收到第五报文后的处理过程,在此不再复述。在本申请实施例中,BRAS设备接收到第五报文后,在确定自身可为客户端提供IP地址以及其他网络配置参数,或者IPv6地址/前缀以及其他网络配置参数,则BRAS设备生成并向客户端发送第六报文。第六报文可具体为DHCP ack报文或者DHCPv6reply报文。

可选地,客户端接收到BRAS设备针对第五报文发送的第六报文且第六报文指示上线成功,则客户端在第二协议栈内记录客户端接入的BRAS设备的接口的MAC地址。

可选地,第二协议栈内包括vx_目的MAC字段,该字段可用于存储客户端接入的BRAS设备的接口的MAC地址。

本申请实施例中,客户端从第六报文内获取源MAC地址,该源MAC地址指示的接口即为客户端接入的BRAS设备的接口。客户端将该源MAC地址记录在第二协议栈包括的vx_目的MAC字段内。

例如,若第二协议栈为v4协议栈,则第六报文具体为DHCP ack报文,vx_目的MAC字段具体为v4_目的MAC字段;若第二协议栈为v6协议栈,则第六报文具体为DHCPv6 reply报文,vx_目的MAC字段具体为v6_目的MAC字段。

可选地,第二协议栈内还包括上线成功标志位,该上线成功标志位用于记录协议栈是否上线成功。客户端接收到第六报文后,确认第六报文指示上线成功,则客户端将第二协议栈内包括的上线成功标志位配置为1。

可以理解的是,客户端未接收到第六报文之前,第二协议栈内上线成功标志位配置为0。

可选地,第一协议栈内vx_目的MAC字段内记录的BRAS设备的接口的MAC地址应与第二协议栈内vx_目的MAC字段内记录的BRAS设备的接口的MAC地址相同。

需要说明的是,本申请实施例中的BRAS设备均不配置主业务类型。

因此,应用本申请提供的通信方法,客户端发送用于使第一协议栈上线的第一报文;若接收到BRAS设备针对第一报文发送的第二报文且第二报文指示上线成功,则客户端在第一协议栈内记录客户端接入的BRAS设备的接口的MAC地址;客户端发送用于使第二协议栈上线的第三报文;若接收到BRAS设备针对第三报文发送的第四报文,则客户端判断第四报文包括的源MAC地址是否与本地记录的BRAS设备的接口的MAC地址相同;若相同,则客户端发送用于第二协议栈上线的第五报文。

如此,解决了在多台BRAS设备内配置BRAS用户奇偶MAC延迟响应的组网中,由于BRAS设备当前负载较大、繁忙时,导致客户端的不同协议栈在不同BRAS设备内上线的问题。同时,本申请提供的通信方法及装置不在BRAS设备内增加处理流程,也不增加报文交互流程,对于BRAS设备的上线性能无影响。

下面对本申请实施例提供的通信方法进行详细地说明。参见图2,图2为本申请实施例提供的客户端上线组网示意图。在图2中,组网内包括客户端以及多个BRAS设备。客户端内已配置v4协议栈以及v6协议栈。每个BRAS设备内均配置DHCP、DHCPv6服务器可为客户端分配IP地址、IPv6地址。

客户端欲访问网络之前,需通过BRAS设备对客户端进行认证、分配IP地址的过程。下面以客户端先发起v4协议栈上线流程后发起v6协议栈上线流程为例进行说明。

客户端发起v4协议栈的上线流程。客户端生成DHCP discover报文,并以广播方式向组网内的多个BRAS设备(BRAS A、BRAS B)发送DHCP discover报文。每个BRAS设备接收到DHCP discover报文后,根据IP地址分配的优先次序选出一个IP地址,与其他网络配置参数一起通过DHCP offer报文发送至客户端。

若存在多个BRAS设备向客户端发送DHCP offer报文,则客户端只接受第一个收到的DHCP offer报文,比如,BRAS A发送的DHCP offer报文。然后,客户端再次以广播方式发送DHCP request报文,DHCP request报文中包含BRAS A在DHCP offer报文中分配的IP地址。每个BRAS设备接收到DHCP request报文后,仅BRAS A进行如下操作:若确认将该IP地址分配给客户端,则BRAS A生成并向客户端发送DHCP ack报文。

客户端接收到DHCP ack报文后,确定v4协议栈上线成功。客户端将v4协议栈内的上线成功标志位配置为1。同时,客户端从DHCP ack报文中获取源MAC地址,将该源MAC地址记录在v4_目的MAC字段内。该源MAC地址指示的接口即为客户端接入的BRAS A的接口。

V4协议栈上线成功后,客户端可发起v6协议栈的上线流程。客户端生成DHCPv6solicit报文。客户端以组播方式向组网中同一链路范围内的所有BRAS设备(BRAS A、BRASB)发送DHCPv6 solicit报文。每个BRAS设备接收到DHCPv6 solicit报文后,根据IPv6地址分配的优先次序选出一个IPv6地址/前缀,与其他网络配置参数一起通过DHCPv6advertise报文发送至客户端。

客户端接收到DHCPv6 advertise报文后,从DHCPv6 advertise报文中获取源MAC地址。同时,客户端从v4协议栈内v4_目的MAC字段内获取记录的BRAS A的接口的MAC地址。

客户端比较源MAC地址是否与本地记录的BRAS A的接口的MAC地址相同。若源MAC地址与本地记录的BRAS A的接口的MAC地址不同,则客户端丢弃DHCPv6 advertise报文。例如,BRAS B发送的DHCPv6 advertise报文包括的源MAC地址为BRAS B的接口的MAC地址,该MAC地址与本地记录的BRAS A的接口的MAC地址不同,则客户端丢弃BRAS B发送的DHCPv6advertise报文。

若源MAC地址与本地记录的BRAS设备的接口的MAC地址相同,则客户端继续v6协议栈上线流程。例如,BRAS A发送的DHCPv6 advertise报文包括的源MAC地址为BRAS A的接口的MAC地址,该MAC地址与本地记录的BRAS A的接口的MAC地址相同,则客户端继续v6协议栈上线流程。

即,客户端生成并向BRAS A发送DHCPv6 request报文。BRAS A接收到DHCPv6request报文后,在确定自身可为客户端提供IPv6地址/前缀以及其他网络配置参数,则BRAS A生成并向客户端发送DHCPv6 reply报文。

客户端接收到DHCPv6 reply报文后,确定v6协议栈上线成功。客户端将v6协议栈内的上线成功标志位配置为1。同时,客户端从DHCPv6 reply报文中获取源MAC地址,将该源MAC地址记录在v6_目的MAC字段内。该源MAC地址指示的接口即为客户端接入的BRAS A的接口。

下面以客户端先发起v6协议栈上线流程后发起v4协议栈上线流程为例进行说明。

客户端发起v6协议栈的上线流程。客户端生成DHCPv6 solicit报文,并以组播方式向组网中同一链路范围内的所有BRAS设备(BRAS A、BRAS B)发送DHCPv6solicit报文。每个BRAS设备接收到DHCPv6 solicit报文后,根据IP地址分配的优先次序选出一个IPv6地址/前缀,与其他网络配置参数一起通过DHCPv6 advertise报文发送至客户端。

若存在多个BRAS设备向客户端发送DHCPv6 advertise报文,则客户端根据报文接收的先后顺序、BRAS设备优先级等,选择其中一个BRAS设备发送的DHCPv6 advertise报文,比如,BRAS A发送的DHCPv6 advertise报文。然后,客户端向BRAS A发送DHCPv6 request报文,DHCPv6 request报文中包含BRAS A在DHCPv6 advertise报文中分配的IPv6地址/前缀。BRAS A接收到DHCPv6 request报文后,若确认将该IPv6地址/前缀分配给客户端,则BRAS A生成并向客户端发送DHCPv6 reply报文。

客户端接收到DHCPv6 reply报文后,确定v6协议栈上线成功。客户端将v6协议栈内的上线成功标志位配置为1。同时,客户端从DHCPv6 reply报文中获取源MAC地址,将该源MAC地址记录在v6_目的MAC字段内。该源MAC地址指示的接口即为客户端接入的BRAS A的接口。

v6协议栈上线成功后,客户端可发起v4协议栈的上线流程。客户端生成DHCPdiscover报文。客户端以广播方式向组网内的多个BRAS设备(BRAS A、BRAS B)发送DHCPdiscover报文。每个BRAS设备接收到DHCP discover报文后,根据IP地址分配的优先次序选出一个IP地址,与其他网络配置参数一起通过DHCP offer报文发送至客户端

客户端接收到DHCP offer报文后,从DHCP offer报文中获取源MAC地址。同时,客户端从v6协议栈内v6_目的MAC字段内获取记录的BRAS A的接口的MAC地址。

客户端比较源MAC地址是否与本地记录的BRAS A的接口的MAC地址相同。若源MAC地址与本地记录的BRAS A的接口的MAC地址不同,则客户端丢弃DHCP offer报文。例如,BRAS B发送的DHCP offer报文包括的源MAC地址为BRAS B的接口的MAC地址,该MAC地址与本地记录的BRAS A的接口的MAC地址不同,则客户端丢弃BRAS B发送的DHCP offer报文。

若源MAC地址与本地记录的BRAS设备的接口的MAC地址相同,则客户端继续v4协议栈上线流程。例如,BRAS A发送的DHCP offer报文包括的源MAC地址为BRAS A的接口的MAC地址,该MAC地址与本地记录的BRAS A的接口的MAC地址相同,则客户端继续v4协议栈上线流程。

即,客户端生成并向BRAS A发送DHCP request报文。BRAS A接收到DHCP request报文后,在确认将该IP分配给客户端,则BRAS A生成并向客户端发送DHCP ack报文。

客户端接收到DHCP ack报文后,确定v4协议栈上线成功。客户端将v4协议栈内的上线成功标志位配置为1。同时,客户端从DHCP ack报文中获取源MAC地址,将该源MAC地址记录在v4_目的MAC字段内。该源MAC地址指示的接口即为客户端接入的BRAS A的接口。

基于同一发明构思,本申请实施例还提供了通信方法对应的通信装置。参见图3,图3为本申请实施例提供的通信装置,所述装置应用于客户端,所述客户端内已配置第一协议栈以及第二协议栈,所述装置包括:发送单元310、接收单元320、记录单元330以及判断单元340;

所述发送单元310,用于发送用于使所述第一协议栈上线的第一报文;

所述记录单元330,用于若所述接收单元320接收到BRAS设备针对所述第一报文发送的第二报文且所述第二报文指示上线成功,则在所述第一协议栈内记录所述客户端接入的所述BRAS设备的接口的MAC地址;

所述发送单元310还用于,发送用于使所述第二协议栈上线的第三报文;

判断单元340,用于若所述接收单元320接收到所述BRAS设备针对所述第三报文发送的第四报文,则判断所述第四报文包括的源MAC地址是否与本地记录的所述BRAS设备的接口的MAC地址相同;

所述发送单元310还用于,若相同,则向所述BRAS设备发送用于所述第二协议栈上线的第五报文。

可选地,所述记录单元330还用于,若接收单元320接收到所述BRAS设备针对所述第五报文发送的第六报文且所述第六报文指示上线成功,则在所述第二协议栈内记录所述客户端接入的所述BRAS设备的接口的MAC地址。

可选地,所述记录单元330具体用于,在所述第一协议栈包括的vx_目的MAC字段内存储所述BRAS设备的接口的MAC地址;

所述记录单元330具体用于,在所述第二协议栈包括的vx_目的MAC字段内存储所述BRAS设备的接口的MAC地址。

可选地,所述第一协议栈、所述第二协议栈分别包括上线成功标志位;所述装置还包括:

配置单元(图中未示出),用于在所述接收单元320接收到所述第二报文或者所述第六报文之前,将所述第一协议栈、所述第二协议栈分别包括的所述上线成功标志位均配置为0;

在所述接收单元320接收到所述第二报文或者所述第六报文之后,将所述第一协议栈、所述第二协议栈分别包括的所述上线成功标志位均配置为1。

可选地,所述装置还包括:丢弃单元(图中未示出),用于若不同,则丢弃所述第四报文。

因此,应用本申请提供的通信装置,客户端向接入的BRAS设备发送用于使第一协议栈上线的第一报文;若接收到BRAS设备针对第一报文发送的第二报文且第二报文指示上线成功,则客户端在第一协议栈内记录客户端接入的BRAS设备的接口的MAC地址;客户端向BRAS设备发送用于使第二协议栈上线的第三报文;若接收到BRAS设备针对第三报文发送的第四报文,则客户端判断第四报文包括的源MAC地址是否与本地记录的BRAS设备的接口的MAC地址相同;若相同,则客户端向BRAS设备发送用于第二协议栈上线的第五报文。

如此,解决了在多台BRAS设备内配置BRAS用户奇偶MAC延迟响应的组网中,由于BRAS设备当前负载较大、繁忙时,导致客户端的不同协议栈在不同BRAS设备内上线的问题。同时,本申请提供的通信方法及装置不在BRAS设备内增加处理流程,也不增加报文交互流程,对于BRAS设备的上线性能无影响。

基于同一发明构思,本申请实施例还提供了一种网络设备,如图4所示,包括处理器410、收发器420和机器可读存储介质430,机器可读存储介质430存储有能够被处理器410执行的机器可执行指令,处理器410被机器可执行指令促使执行本申请实施例所提供的通信方法。前述图3所示的通信装置,可采用如图4所示的网络设备硬件结构实现。

上述计算机可读存储介质430可以包括随机存取存储器(英文:Random AccessMemory,简称:RAM),也可以包括非易失性存储器(英文:Non-volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,计算机可读存储介质430还可以是至少一个位于远离前述处理器410的存储装置。

上述处理器410可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例中,处理器410通过读取机器可读存储介质430中存储的机器可执行指令,被机器可执行指令促使能够实现处理器410自身以及调用收发器420执行前述本申请实施例描述的通信方法。

另外,本申请实施例提供了一种机器可读存储介质430,机器可读存储介质430存储有机器可执行指令,在被处理器410调用和执行时,机器可执行指令促使处理器410自身以及调用收发器420执行前述本申请实施例描述的通信方法。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

对于通信装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

相关技术
  • 通信控制装置、通信控制方法和终端装置
  • 无线通信装置、通信系统、无线通信方法以及记录介质
  • 远程通信方法、远程通信系统和自主移动装置
  • 通信方法及通信装置
  • 通信方法和通信装置
  • 通信装置、通信方法、通信控制装置、无线通信装置、通信控制方法、和无线通信方法
  • 通信装置、通信方法、通信控制装置、无线通信装置、通信控制方法、和无线通信方法
技术分类

06120116513189