CN116208582A - 一种地址检测方法及装置 - Google Patents
一种地址检测方法及装置 Download PDFInfo
- Publication number
- CN116208582A CN116208582A CN202111447275.6A CN202111447275A CN116208582A CN 116208582 A CN116208582 A CN 116208582A CN 202111447275 A CN202111447275 A CN 202111447275A CN 116208582 A CN116208582 A CN 116208582A
- Authority
- CN
- China
- Prior art keywords
- address
- information table
- state
- message
- access control
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/58—Caching of addresses or names
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种地址检测方法及相关装置。其中,该方法包括:接收来自第一设备的第一互联网协议(internetprotocol,IP)地址,所述第一IP地址为所述第一设备的待检测IP地址;确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的媒体接入控制层;根据所述第一信息表确定第二信息表;检测所述第二信息表中是否存在与所述第一IP地址相同的第二IP地址,所述第一IP地址对应的第一媒体接入控制地址与所述第二IP地址对应的第二媒体接入控制地址不同。通过本申请提供的技术方案,可以提升地址冲突检测的准确性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种地址检测方法及相关装置。
背景技术
通信系统中,为了避免出现两个用户设备具有相同的互联网协议第六版(internetprotocolversion 6,IPv6)地址,在用户设备使用一个IPv6地址前,需通过邻居发现(neighbordiscovery,ND)协议中的冲突地址检测(duplicate address detection,DAD)过程来检测和判定其地址在同一链路(link)上是否存在冲突,以保证该地址的唯一性。
多个用户设备加入同一链路中,各用户设备不能通过接入节点(accessnode,AN)互通,所有的消息都是通过宽带网络网关(broadbandnetworkgateway,BNG)来接收和发送。因此在这个组网场景中,可以在BNG上建立DAD代理(Proxy)。DAD Proxy协助完成水平分割条件下不同用户设备上IPv6节点所需的DAD过程。
BNG不仅可以支持DAD Proxy,还可以建立和维护所代理的用户设备的绑定表(binding table)和邻居缓存(neighbor cache)。其中,绑定表中保存的是设备的IPv6地址和该IPv6地址对应的媒体接入控制(media access control,MAC)地址,邻居缓存中保存的是一个或多个与BNG在同一个网络的MAC层的设备的IPv6地址及其相关联的MAC地址。当用户设备向BNG发送待检测IPv6地址的DAD请求时,BNG可以查询绑定表中是否有与待检测IPv6地址相同的地址,若有,且MAC地址不同,再查询邻居缓存中是否存在与该待检测IPv6地址相同的地址,若有,则向用户设备公告地址冲突。
然而,当绑定表和/或邻居缓存丢失,地址冲突检测失败。因此,如何提升IPv6地址冲突检测的准确性是亟待解决的问题。
发明内容
本申请实施例提供了一种地址检测方法及装置,可以提升地址冲突检测的准确性。
第一方面,本申请提供了一种地址检测方法,该方法可以应用于第一装置,也可以应用于第一装置中的模块(例如,芯片),下面以应用于第一装置为例进行描述。该方法可以包括:接收来自第一设备的第一互联网协议(internetprotocol,IP)地址,所述第一IP地址为所述第一设备的待检测IP地址;确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的MAC层;根据所述第一信息表确定第二信息表;检测所述第二信息表中是否存在与所述第一IP地址相同的第二IP地址,所述第一IP地址对应的第一媒体接入控制地址与所述第二IP地址对应的第二媒体接入控制地址不同。
本申请提供的方案中,BNG不仅可以支持DAD Proxy,还可以建立和维护所代理的设备的绑定表(例如第二信息表)和邻居缓存(例如第一信息表)。其中,绑定表中保存的是请求地址检测的设备的IP(例如IPv6)地址,邻居缓存中保存的是一个或多个与第一装置在同一个网络的MAC层的设备的IP地址。当设备向BNG发送待检测IP地址的DAD请求时,BNG可以查询绑定表中是否有与待检测IP地址相同的地址且IP对应的MAC地址不同,再查询邻居缓存中是否存在与该待检测IP地址相同的地址且IP地址对应表项的状态为可达状态,若有,则向设备公告地址冲突。但在IP DAD Proxy网元重启、绑定表超规格等异常场景下,会导致用于DAD检测的绑定表和邻居缓存中的至少一个异常,不同于现有技术,绑定表和邻居缓存中的至少一个异常会导致地址冲突检测不准确。本申请实施例的技术方案,可以在绑定表和邻居缓存中的至少一个异常的情况下,通过邻居缓存更新绑定表,例如,当IP DADProxy网元重启,绑定表不存在时,可以创建一个新的绑定表,将由业务触发更新的邻居缓存中的IP地址信息保存至该新建的绑定表中。这样,当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存这两个表检测待检测IP地址是否冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述根据所述第一信息表确定第二信息表,包括:根据所述第一信息表更新所述第二信息表。
在本申请实施例中,在绑定表和邻居缓存两张表中的至少一个异常而导致地址冲突检测不准确的情况下,通过邻居缓存更新绑定表,从而可以实现当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存这两个表检测待检测IP地址是否冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述根据所述第一信息表确定第二信息表,包括:创建所述第二信息表,创建的所述第二信息表包括所述第一信息表中的所述一个或多个设备的IP地址。
在本申请提供的方案中,在绑定表不存在的情况下,第一装置可以先创建一个新的绑定表,再根据邻居缓存更新创建的绑定表,从而实现地址检测,提升地址冲突检测的准确性。
在一种可能的实现方式中,所述确定第一信息表,包括:接收来自第二设备的第一邻居请求(neighborsolicitation,NS)报文,所述第一NS报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
在本申请提供的方案中,在邻居缓存存在、绑定表不存在的情况下,第二设备向第一装置发送业务数据时,需要先获取第一装置的MAC地址,即向第一装置发送用于请求第一装置的MAC地址的请求消息。具体的,第二设备可以向第一装置发送包括第二IP地址的NS报文,从而第一装置确定第二设备是与自己同一个网络的MAC层的设备,并将接收到的第二IP地址更新保存至邻居缓存。具体的,若邻居缓存中没有第二IP地址,则将第二IP地址保存至邻居缓存中的表项,且表项的状态为可达状态;若邻居缓存中已经存在第二IP地址,则将第二IP地址对应的表项的状态变更为可达状态。这样,第一装置就可以确定到邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存来检测待检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述确定第一信息表,包括:向第二设备发送第二NS报文;接收来自所述第二设备的第二(neighboradvertisement,NA)报文,所述第二NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
在本申请提供的方案中,在邻居缓存存在、绑定表不存在的情况下,第一装置向第二设备发送业务数据时,需要先获取第二设备的MAC地址,即向第二设备发送用于请求第二设备的MAC地址的请求消息。具体的,第一装置可以向第二设备发送NS报文并接收来自第二设备的包括第二IP地址的NA报文,从而第一装置确定第二设备是与自己同一个网络的MAC层的设备,并将接收到的第二IP地址更新保存至邻居缓存。具体的,若邻居缓存中没有第二IP地址,则将第二IP地址保存至邻居缓存中的表项,且表项的状态为可达状态;若邻居缓存中已经存在第二IP地址,则将第二IP地址对应的表项的状态变更为可达状态。这样,第一装置就可以确定到邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存来检测待检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述确定第一信息表,包括:根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,所述第三NS报文的目标地址为所述第一IP地址,所述多个设备属于同一链路,所述多个设备包括第二设备;接收来自所述第二设备的第三NA报文,所述第三NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址,所述第二IP地址与所述第一IP地址相同;根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表。其中,向多个设备发送第三NS报文的具体实现可以通过组播的形式实现,本申请并不限定。该方法也可以适用于其他方面的描述,后续不再赘述。
在本申请提供的方案中,在绑定表存在、邻居缓存不存在或邻居缓存中表项的状态为非可达状态的情况下,由于第一信息表中保存的是与第一装置在同一个网络的MAC层的设备的IP地址,因此,确定第一信息表时,第一装置可以确定与其同一链路的所有设备中哪些设备是与自己在同一个网络的MAC层的设备。当第一装置设备收到第一设备的第一IP地址时,向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息。当有某个设备发送响应消息时,可以确定该设备与第一装置在同一个网络的MAC层,且该设备的IP地址对应的表项为可达状态,也可以理解为,可以确定该设备的IP地址可用。则可以根据发送响应消息的设备的IP地址确定邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存中检测待检检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,包括:在第一信息表不存在的情况下,创建第一信息表,所述第一信息表包括所述第二IP地址和所述第二媒体接入控制地址,所述第一信息表的状态为可达状态。
在本申请提供的方案中,在绑定表存在、邻居缓存不存在的情况下,由于第一信息表中保存的是与第一装置在同一个网络的MAC层的设备的IP地址,因此,确定第一信息表时,第一装置可以确定向与其同一链路的所有设备中哪些设备是与自己在同一个网络的MAC层的设备。当第一装置收到第一设备的第一IP地址时,向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息。当有某个设备发送响应消息时,可以确定该设备与第一装置在同一个网络的MAC层,且该设备的IP地址对应的表项为可达状态,也可以理解为,可以确定该设备的IP地址可用。在邻居缓存不存在的情况下,创建一个新的状态为未完成状态的邻居缓存。将该设备的IP地址保存至新创建的邻居缓存中,且将邻居缓存中IP地址对应的表项状态变更为可达状态。这样,第一装置就确定了邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存中检测待检检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,包括:在所述第一信息表中第一表项的状态为非可达状态的情况下,将所述第一表项的状态变更为可达状态,所述第一表项包括所述第二IP地址和所述第二媒体接入控制地址。
在本申请提供的方案中,在绑定表存在、邻居缓存中表项的状态为非可达状态的情况下,由于第一信息表中保存的是与第一装置在同一个网络的MAC层的设备的IP地址,因此,确定第一信息表时,第一装置可以确定向与其同一链路的所有设备中哪些设备是与自己在同一个网络的MAC层的设备。当第一装置收到第一设备的第一IP地址时,向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息。当有某个设备发送响应消息时,可以确定该设备与第一装置在同一个网络的MAC层,且该设备的IP地址对应的表项为可达状态,也可以理解为,可以确定该设备的IP地址可用。在邻居缓存中表项的状态为非可达状态的情况下,使用该设备的IP地址更新邻居缓存中保存的该IP地址,将此IP地址对应的表项的状态变更为可达状态。这样,第一装置就确定了邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存中检测待检检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述根据所述第一设备的第一IP地址,向多个设备发送第三NS报文包括:当接收到来自所述第一设备的地址检测请求时,向所述多个设备发送所述第三NS报文,所述地址检测请求包括所述第一IP地址。
在本申请提供的方案中,当第一装置接收到设备的地址检测请求时,立刻向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息。不同于现有技术,需要5s(秒)才能检测出IP地址是否可用,而实际上大多第一装置默认的地址检测周期都是1s,在实际IP地址检测结果出来的时候,IP地址已经被确认为可用且生效,造成业务故障。本申请实施例中当收到设备的待检测IP地址时,立即向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息,不仅可以减少地址检测周期,在较短的时间内完成地址检测,提升IP地址冲突检测的时效性,而且可以在绑定表和邻居缓存中的至少一个异常的情况下,通过邻居缓存更新绑定表,提升IP地址冲突检测的准确性。
在一种可能的实现方式中,所述方法还包括:在所述第二信息表中存在所述第二IP地址的情况下,确定所述第一信息表中所述第二IP地址对应的表项的状态是否为可达状态。
在本申请提供的方案中,当第一装置确定绑定表中存在与有检测的IP地址相同的IP地址时,再根据邻居缓存中与检测的IP地址相同的地址对应的表项是否可达状态,确定检测的IP地址是否可用。
在一种可能的实现方式中,所述方法还包括:在所述第一信息表中所述第二IP地址对应的表项的状态为可达状态的情况下,向所述第一设备发送地址检测响应消息,所述地址检测响应消息用于指示所述第一IP地址不可用。
在本申请提供的方案中,当第一装置确定绑定表中存在与检测的IP地址相同的地址,且邻居缓存中与检测的IP地址相同的地址对应的表项的状态为可达状态时,确定检测的IP地址不可用,向发送待检测IP地址的设备发送地址检测响应消息,用于指示设备,该IP地址不可用。
在一种可能的实现方式中,所述方法还包括:在所述第一信息表中所述第二IP地址对应的表项的状态为不可达状态的情况下,确定所述第一IP地址可用。
在本申请提供的方案中,当第一装置确定绑定表中存在与检测的IP地址相同的地址,且邻居缓存中与检测的IP地址相同的地址的状态为不可达状态时,确定检测的IP地址可用,不需要向第一设备发送地址检测响应消息,第一设备在预定时间内没有收到响应消息,则自动默认检测的IP地址可用,后续可以使用该IP地址进行业务传输。
第二方面,本申请提供了一种地址检测方法,该方法可以应用于第二设备,也可以应用于第二设备中的模块(例如,芯片),下面以应用于第二设备为例进行描述。该方法可以包括:接收来自第一装置的第三NS报文,所述第三NS报文的目标地址为第一IP地址,所述第一IP地址为第一设备的待检测IP地址;在第二IP地址与所述第一IP地址相同的情况下,向第一装置发送第三NA报文,所述第三NA报文包括所述第二IP地址和第二媒体接入控制地址,所述第二IP地址为第二设备的IP地址。
在本申请提供的方案中,第一设备的待检测IP地址是第一IP地址,第二设备的IP地址是第二IP地址,第一IP地址与第二IP地址相同。在绑定表存在、邻居缓存不存在或邻居缓存中表项的状态为非可达状态的情况下,由于第一信息表中保存的是与第一装置在同一个网络的MAC层的设备的IP地址,因此,确定第一信息表时,第一装置可以确定向与其同一链路的所有设备中哪些设备是与自己在同一个网络的MAC层的设备。当第一装置设备收到第一设备的第一IP地址时,向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息。由于第二设备是与第一装置在同一个网络的MAC层的设备,当收到来自第一装置的请求消息后,可以向第一装置发送包括第二IP地址和第二MAC地址的响应消息,以使第一装置可以根据第二IP地址确定邻居缓存,从而实现根据邻居缓存确定绑定表。当第一设备发起IP地址检测时,就可以根据绑定表和邻居缓存中检测待检检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述方法还包括:向所述第一装置发送第一NS报文,所述第一NS报文包括所述第二IP地址和所述第二媒体接入控制地址。
在本申请提供的方案中,在邻居缓存存在、绑定表不存在的情况下,第二设备向第一装置发送业务数据时,需要先获取第一装置的MAC地址,即向第一装置发送用于请求第一装置的MAC地址的请求消息。具体的,第二设备可以向第一装置发送包括第二IP地址的NS报文,从而第一装置确定第二设备是与自己在同一个网络的MAC层的设备,并将接收到的第二IP地址更新保存至邻居缓存。具体的,若邻居缓存中没有第二IP地址,则将第二IP地址保存至邻居缓存中的表项,且表项的状态为可达状态;若邻居缓存中已经存在第二IP地址,则将第二IP地址对应的表项的状态变更为可达状态。这样,第一装置就可以确定到邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存来检测待检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
在一种可能的实现方式中,所述方法还包括:接收来自所述第一装置的第二NS报文;向所述第一装置发送第二NA报文,所述第二NA报文包括所述第二IP地址和所述第二媒体接入控制地址。
在本申请提供的方案中,在邻居缓存存在、绑定表不存在的情况下,第一装置向第二设备发送业务数据时,需要先获取第二设备的MAC地址,即向第二设备发送用于请求第二设备的MAC地址的请求消息。具体的,第一装置可以向第二设备发送NS报文并接收来自第二设备的包括第二IP地址的NA报文,从而第一装置确定第二设备是与自己在同一个网络的MAC层的设备,并将接收到的第二IP地址更新保存至邻居缓存。具体的,若邻居缓存中没有第二IP地址,则将第二IP地址保存至邻居缓存中的表项,且表项的状态为可达状态;若邻居缓存中已经存在第二IP地址,则将第二IP地址对应的表项的状态变更为可达状态。这样,第一装置就可以确定到邻居缓存,从而实现根据邻居缓存确定绑定表。当有设备发起IP地址检测时,就可以根据绑定表和邻居缓存来检测待检测的IP地址是否真实冲突,从而可以提升地址冲突检测的准确性。
第三方面,本申请提供了一种地址检测方法,该方法可以应用于第一装置,也可以应用于第一装置中的模块(例如,芯片),下面以应用于第一装置为例进行描述。该方法可以包括:
确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的MAC层;
根据所述第一信息表确定第二信息表。
在绑定表和邻居缓存两张表都存在的情况下,第一装置可以通过邻居缓存更新绑定表,从而可以实现当有设备发起IP地址检测时,可以根据邻居缓存和基于邻居缓存更新后的绑定表这两个表检测待检测IP地址是否冲突,从而可以提升地址冲突检测的准确性。
可以理解,三方面的具体内容与第一方面的内容对应,第三方面相应特征以及达到的有益效果可以参考第一方面的描述,为避免重复,此处适当省略详细描述。
第四方面,本申请实施例提供一种通信装置。
有益效果可以参见第一方面的描述,此处不再赘述。所述通信装置具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,所述通信装置包括:
接收单元,用于接收来自第一设备的第一IP地址,所述第一IP地址为所述第一设备的待检测IP地址;
确定单元,用于确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的MAC层;
所述确定单元,还用于根据所述第一信息表确定第二信息表;
检测单元,用于检测所述第二信息表中是否存在与所述第一IP地址相同的第二IP地址,所述第一IP地址对应的第一媒体接入控制地址与所述第二媒体接入控制地址不同。
在一种可能的实现方式中,所述确定单元根据所述第一信息表确定第二信息表,具体用于:
根据所述第一信息表更新所述第二信息表。
在一种可能的实现方式中,所述确定单元根据所述第一信息表确定第二信息表,具体用于:
创建所述第二信息表,创建的所述第二信息表包括所述第一信息表中的所述一个或多个设备的IP地址。
在一种可能的实现方式中,所述确定单元确定第一信息表,具体用于:
接收来自第二设备的第一NS报文,所述第一NS报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
在一种可能的实现方式中,所述确定单元确定第一信息表,具体用于:
向第二设备发送第二NS报文;
接收来自所述第二设备的第二NA报文,所述第二NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
在一种可能的实现方式中,所述确定单元确定第一信息表,具体用于:
根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,所述第三NS报文的目标地址为所述第一IP地址,所述多个设备属于同一链路,所述多个设备包括第二设备;
接收来自所述第二设备的第三NA报文,所述第三NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址,所述第二IP地址与所述第一IP地址相同;
根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表。
在一种可能的实现方式中,所述确定单元根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,具体用于:
在第一信息表不存在的情况下,创建第一信息表,所述第一信息表包括所述第二IP地址和所述第二媒体接入控制地址,所述第一信息表的状态为可达状态。
在一种可能的实现方式中,所述确定单元根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,具体用于:
在所述第一信息表中第一表项的状态为非可达状态的情况下,将所述第一表项的状态变更为可达状态,所述第一表项包括所述第二IP地址和所述第二媒体接入控制地址。
在一种可能的实现方式中,所述确定单元根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,具体用于:
当接收到来自所述第一设备的地址检测请求时,向所述多个设备发送所述第三NS报文,所述地址检测请求包括所述第一IP地址。
在一种可能的实现方式中,所述确定单元,还用于:
在所述第二信息表中存在所述第二IP地址的情况下,确定所述第一信息表中所述第二IP地址对应的表项的状态是否为可达状态。
在一种可能的实现方式中,所述装置还包括:
发送单元,用于在所述第一信息表中所述第二IP地址对应的表项的状态为可达状态的情况下,向所述第一设备发送地址检测响应消息,所述地址检测响应消息用于指示所述第一IP地址不可用。
第五方面,本申请实施例提供一种通信装置。
有益效果可以参见第二方面的描述,此处不再赘述。所述通信装置具有实现上述第二方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,所述通信装置包括:
接收单元,用于接收来自第一装置的第三NS报文,所述第三NS报文的目标地址为第一IP地址,所述第一IP地址为第一设备的待检测IP地址;
发送单元,用于在第二IP地址与所述第一IP地址相同的情况下,向第一装置发送第三邻居公告NA报文,所述第三NA报文包括所述第二IP地址和第二媒体接入控制地址,所述第二IP地址为第二设备的IP地址。
在一种可能的实现方式中,所述发送单元,还用于:
向所述第一装置发送第一NS报文,所述第一NS报文包括所述第二IP地址和所述第二媒体接入控制地址。
在一种可能的实现方式中,所述接收单元,还用于:
接收来自所述第一装置的第二NS报文;
所述发送单元,还用于:
向所述第一装置发送第二NA报文,所述第二NA报文包括所述第二IP地址和所述第二媒体接入控制地址。
第六方面,提供了一种通信装置,该通信装置可以为第一装置,也可以为第一装置中的模块(例如,芯片)。该装置可以包括处理器、存储器、输入接口和输出接口,所述输入接口用于接收来自所述通信装置之外的其它通信装置的信息,所述输出接口用于向所述通信装置之外的其它通信装置输出信息,所述处理器调用所述存储器中存储的计算机程序执行第一方面或第一方面的任一实施方式提供的地址检测方法。
第七方面,提供了一种通信装置,该通信装置可以为第二设备,也可以为第二设备中的模块(例如,芯片)。该装置可以包括处理器、存储器、输入接口和输出接口,所述输入接口用于接收来自所述通信装置之外的其它通信装置的信息,所述输出接口用于向所述通信装置之外的其它通信装置输出信息,所述处理器调用所述存储器中存储的计算机程序执行第二方面或第二方面的任一实施方式提供的地址检测方法。
第八方面,本申请提供了一种通信系统,该通信系统包括至少一个第一设备、至少一个第二设备和至少一个第一装置,当至少一个前述的第一设备、至少一个前述的第二设备和至少一个前述的第一装置在该通信系统中运行时,用于执行上述第一方面或第二方面所述的任一种地址检测方法。
第九方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,当该计算机程序或计算机指令运行时,使得上述第一方面及其任一种可能的实现或者第二方面及其任一种可能的实现中所述方法被执行。
第十方面,本申请提供了一种包括可执行指令的计算机程序产品,当所述计算机程序产品在用户设备上运行时,使得上述第一方面及其任一种可能的实现或者第二方面及其任一种可能的实现中所述方法被执行。
第十一方面,本申请提供了芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面及其任一种可能的实现或者第二方面及其任一种可能的实现中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是一种ND协议中的DAD机制的示意图;
图2是本申请实施例提供的一种IPv6协议栈的结构示意图;
图3是一种水平分割组网的模型示意图;
图4是一种DAD方法的流程示意图;
图5是本申请实施例提供的一种系统架构示意图;
图6是本申请实施例提供的一种地址检测方法的流程示意图;
图7是本申请实施例提供的一种地址检测方法的流程示意图;
图8是本申请实施例提供的一种地址检测方法的流程示意图;
图9是本申请实施例提供的一种通信装置的结构示意图;
图10是本申请实施例提供的一种通信装置的结构示意图;
图11是本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行清楚、详细地描述。
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
下面先给出本申请实施例可能出现的技术术语的定义:
(1)冲突地址检测(duplicate address detection,DAD)
IPv6节点(Node)在其接口的任意IPv6地址生效之前,均需通过邻居发现(neighbordiscovery,ND)协议中的DAD过程来检测和判定其地址在同一链路(link)上是否存在重复的冲突。请参阅图1,图1是一种ND协议中的DAD机制的示意图。如图1所示,一个链路中可以包括用户端设备(customerpremiseequipment,CPE)1、CPE2、CPE3和路由器。其中,CPE1在任意接口尝试使用任意IPv6地址之前,先向同一链路的CPE2和CPE3分别发送地址检测消息。若CPE2使用相同的IPv6地址,即来自CPE1的地址检测消息中的目的地址与自身的IPv6地址一样,也即该CPE2与CPE1的地址冲突,则CPE2向CPE1发送响应消息,CPE1收到来自CPE2的响应消息,可以确定该IPv6地址将不能使用。CPE1可以自主或者被用户配置新的IPv6地址,并重新执行该DAD过程。当CPE1没有(或不再)收到同一链路其他节点反馈的响应消息,则确定IPv6地址可用。
(2)DADProxy
请参阅图2,图2是本申请实施例提供的一种IPv6协议栈的结构示意图。如图2所示,IPv6协议栈可以包括应用层、传输层、IP层和以太链路层。传输层又可以称为层4(layer4,L4),IP层又可以称为层3(layer3,L3),以太链路层又可以称为层2(layer 2,L2),该以太链路层又可以称为媒体接入控制层,简称MAC层。其中,DAD Proxy可以是IPv6协议栈中L3的一个功能模块。
在带宽论坛(broadbandforum,BBF)定义的接入网架构中,由于水平分割(splithorizon)的影响,不同线路的用户设备处于信息隔离的需要,不能相互通信。因此,当多个用户线路加入同一链路,同一链路也可以理解为同一虚拟局域网(virtuallocalareanetwork,VLAN)中,作为IPv6节点的用户CPE(或用户主机)将无法收到来自其他线路的IPv6节点发出的地址检测消息,或在检测到IPv6地址冲突后无法反馈响应消息,从而导致了ND协议中DAD机制的失效。请参阅图3,图3是一种水平分割组网的模型示意图,CPE是终端接入设备,接入节点(accessnode,AN)是L2设备,宽带网络网关(broadbandnetworkgateway,BNG)是第一跳路由器设备,BNG与网络连接。在水平分割组网中,CPE1、CPE2和CPE3是不能通过AN互通的,所有的消息都是通过BNG来接收和发送。由于水平分割组网中多个CPE之间不能L2互通,多个CPE之间无法直接交互消息,因此无法通过DAD机制检测出地址冲突。因此,在这个组网场景中,在BNG上建立DADProxy,通过DADProxy来协助完成同一链路中不同用户线路上IPv6节点所需的DAD过程。
(3)绑定表(Binding Table)
如图3所示,BNG不仅可以支持DAD Proxy,还可以建立和维护所代理的用户设备的绑定表。绑定表中有多个表项,每个表项保存的是某个CPE的IP地址以及该IP地址对应的MAC地址。例如,CPE1向BNG发送地址检测请求,该地址检测请求中携带有CPE1的待检测的IP地址(如第一IP地址)和CPE1的MAC地址(如MAC1),则BNG可以在绑定表中创建一个表项,并将第一IP地址与MAC1保存至该表项中。
(4)邻居缓存(neighborcache)
如图3所示,BNG不仅可以支持DAD Proxy,还可以建立和维护所代理的用户设备的邻居缓存。邻居缓存中有多个表项,每个表项保存的是与BNG在同一个网络的MAC层的用户设备的IP地址和MAC地址。例如,CPE2是与BNG在同一个网络的MAC层的设备,邻居缓存中的一个表项保存有CPE2的IP地址(如第二IP地址)和MAC地址(如MAC2),且该表项的状态为可达状态。需要说明的是,本申请实施例中的邻居缓存也可以理解是互联网协议第四版(internetprotocolversion 4,IPv4)组网的地址解析协议(addressresolutionprotocol,ARP)表项。
(5)IPv6地址的状态
IPv6地址的状态分为初始状态(tetative)、冲突状态(duplicate)、可用状态(OK)。
初始状态:设备获取IPv6地址时,该IPv6地址的状态是初始状态,设备可以向BNG发送该IPv6地址,请求BNG对该IPv6地址检测。
冲突状态:BNG对设备发送的初始状态的IPv6地址进行地址检测,若检测到该IPv6地址不可用,那么可以向设备发送该IPv6地址不可用的响应消息,设备将该IPv6地址的状态由初始状态更改为冲突状态。
可用状态:BNG对设备发送的初始状态的IPv6地址进行地址检测,若检测到该IPv6地址可用,那么可以不向设备发送响应消息,设备在预设时间内没有接收到来自BNG的响应消息,将该IPv6地址的状态由初始状态更改为可用状态。
(6)邻居缓存(neighborcache)中表项的状态
邻居缓存中表项的状态包括:不确定状态(Incomplete)、可达状态(Reachable)、陈旧状态(Stale)、延迟状态(Delay)和探测状态(Probe)。
不确定状态:地址解析正在进行中,而邻居的链路层地址尚未确定,这表示CPE已发送了目标地址为被请求地址检测的节点的地址的NS报文,但是尚未收到相应的NA报文。
可达状态:在一段时间间隔内BNG收到了关联的ND缓存条目的可达性确认,那么该ND缓存条目为可达状态。这个确认可能是在邻居请求之后CPE收到了邻居公告,或者上层协议成功地使用了ND缓存条目。可达状态可以维持30秒。
陈旧状态:时间间隔已过,之后才收到可到达性的后续确认。
延迟状态:尽管时间间隔已过期,但仍有上层设备将数据包发送到缓存项的地址。在定义的时间间隔后,将发送邻居请求,并且将ND缓存条目更改为探测状态。
探测状态:发生在发送邻居请求(可能是重新发送)直到收到响应消息时。
(7)DAD Proxy技术
请参阅图4,图4是一种DAD方法的流程示意图。如图4所示,该DAD方法包括以下步骤。
步骤S401:CPE1获取待检测第一IPv6地址。
其中,待检测第一IPv6地址可以是用户配置的,或者是系统自动配置给CPE1的,或者是CPE1随机生成的。该第一IPv6地址为CPE1可使用的IPv6地址。
例如,该第一IPv6地址可以表示为1::1。
步骤S402:CPE1向BNG发送地址检测消息。
地址检测消息中携带有待检测第一IPv6地址。当CPE1获取到待检测第一IPv6地址时,CPE1对待检测第一IPv6地址执行DAD。具体的,CPE1向BNG发送用于DAD的NS报文,NS报文包括NS报文的源地址、NS报文的目标地址和CPE1的MAC1。例如,该NS报文的源地址可以表示为::,NS报文的目标地址为该第一IPv6地址。
步骤S403:BNG判断绑定表中是否存在与第一IPv6地址相同的地址。
BNG可以使用第一IPv6地址1::1与该第一IPv6地址对应的MAC地址MAC1更新绑定表(Binding Table)。即若BNG查找绑定表中没有与第一IPv6地址相同的地址,则将第一IPv6地址与其对应的MAC地址MAC1添加至绑定表中,并确定CPE1可以使用第一IPv6地址,不再向CPE1发送响应消息。若BNG查找绑定表中有与第一IPv6地址相同的地址(如第二IPv6地址),则BNG确定MAC1与第二IPv6地址关联绑定的MAC地址是否相同,若相同,则BNG确定CPE1可以使用第一IPv6地址,若不相同,再确定邻居缓存(neighborcache)中第一IPv6地址对应的表项的状态是否为可达状态,若为非可达状态,BNG确定CPE1可以使用第一IPv6地址,不再向CPE1发送响应消息,设备在预设时间内没有收到来自BNG的响应消息,则确定第一IPv6地址可用。可选的,BNG向CPE1发送用于指示第一IPv6地址可用的响应消息;若为可达状态,BNG执行步骤S404。
步骤S404:BNG向CPE1发送用于指示第一IPv6地址不可用的响应消息。
BNG确定CPE1不能使用第一IPv6地址,向CPE1发送响应消息,响应消息用于指示CPE1不能使用第一IPv6地址。具体的,BNG向CPE1回复NA报文,NA报文中的源地址为1::1,目标地址为1::1。
通过上述方法,BNG使用绑定表记录设备的待检测IPv6地址与其对应的MAC地址,以及使用邻居缓存记录可达状态的IPv6地址,通过绑定表和邻居缓存来判断待检测的IPv6地址是否真实冲突。由于BNG上建立了绑定表和邻居缓存,承担起检测同一链路上CPE发出的NS消息和反馈地址冲突存在时的NA消息的任务,因此,同一链路中各IPv6节点的DAD机制得以有效建立。
然而,当绑定表不存在,邻居缓存存在,当有设备发送IPv6地址检测请求时,由于缺少绑定表,BNG是对请求不作任何处理。这样会造成设备的地址检测不准确,从而导致通信异常。
当邻居缓存不存在的情况下,BNG是创建STALE状态的邻居缓存,然后做可达性探测。具体的,开启DAD Proxy的BNG收到过CPE1的地址检测请求,但是没有CPE向BNG发送业务数据,则那么邻居缓存也无法获取。在邻居缓存不存在的情况下,需要新的邻居缓存,邻居缓存中保存CPE1的第一IPv6地址与MAC1,且第一IPv6地址与MAC1对应的表项的状态为STALE状态,然后按照状态依次切换:STALE→DELAY(状态持续一段时间)→PROBE,举例来说,该一段时间为5秒(second,s),也就是说,5s后BNG才能探测出该地址是否存在冲突,该方法的时延高,降低了通信效率。此外,举例来说,实际上大多数设备为了使IPv6地址能够尽快使用,默认的地址检测周期是1s,由于在1s内没有收到响应消息,则设备默认该IPv6地址不存在冲突,可以使用。但是在实际IPv6地址检测结果获取到的时候,IP v6地址已经被确认为可用且生效。该方法会造成业务故障。
在绑定表不存在,邻居缓存不存在的情况下,BNG仅创建绑定表,不做其他处理。当有设备发送IPv6地址检测请求时,由于缺少邻居缓存,设备的地址检测不准确,从而导致通信异常。
基于上述,为了更好地理解本申请提出的一种地址冲突检测方法,下面先对本申请实施例应用的系统架构进行描述。
本申请所示的方法可以应用于IPv6传输组网的系统架构,本申请所示的方法也可以适用于基站IPv6背板共传输的场景,例如,备板通过面板传输,面板支持DAD Proxy。
请参阅图5,图5是本申请实施例提供的一种系统架构示意图。如图5所示,该系统架构可以包括第一装置501、交换机502、第一设备503和第二设备504。其中,第一设备503和第二设备504通过交换机502与第一装置501通信,第一设备503和第二设备504通过第一装置501实现L3互通。第一装置501支持DAD Proxy,实现第一设备503和第二设备504之间IPv6地址冲突检测。
其中,第一装置501支持IPv6的网元节点,具备IPv6转发能力,支持DAD Proxy实现第一设备503和第二设备504之间IPv6地址冲突检测。第一装置501可以是宽带网络网关BNG,例如路由器等,也可以是其他具备IPv6转发能力的网元或者网络设备,本申请对第一装置501具体的设备类型不作限定。
其中,网络设备可以是用于发射或接收信号的实体,可以是用于与终端设备通信的设备,例如可以是基站、云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器、或者该网络设备可以为中继站、接入点、车载设备、可穿戴设备等,本申请实施例对网络设备的类型不作限定。网络设备可以是无线网络中的设备,例如将终端接入到无线网络的无线接入网(radio access network,RAN)节点。目前,一些RAN节点的举例为:基站、下一代基站gNB、发送接收点(transmission reception point,TRP)、演进型节点B(evolved Node B,eNB)、家庭基站、基带单元(baseband unit,BBU),或WiFi系统中的接入点(access point,AP)等。在一种网络结构中,网络设备可以包括集中单元(centralizedunit,CU)节点、或分布单元(distributed unit,DU)节点、或包括CU节点和DU节点的RAN设备。
第一设备503和第二设备504,本申请实施例中的设备可以是一种用于接收或发射信号的能够使用IPv6通信的设备,例如,可以是CPE、用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。终端还可以是蜂窝电话、无绳电话、会话启动协议(session initiationprotocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有通信功能的手持设备、计算设备或连接到调制解调器的其它处理设备、车载设备、可穿戴设备,本申请实施例对此并不限定。
在本申请实施例中,第一装置501、交换机502、第一设备503和第二设备504属于同一链路,其中,第一设备503可以向第一装置501发送地址检测请求,地址检测请求中包括第一IP地址,第一IP地址是第一设备503的待检测IP地址。第一装置501收到来自第一设备503的地址检测请求,可以确定第一信息表,再根据第一信息表确定第二信息表,检测第二信息表中是否存在与第一IP地址相同的第二IP地址,且第一IP地址对应的MAC地址与第二IP地址对应的MAC地址不同。
需要说明的是,图5所示的系统架构中所包含的设备的数量和类型仅仅是一种举例,本申请实施例并不限制于此。例如,还可以包括更多的或者更少的与第一装置进行通信的设备,为简明描述,不在附图中一一描述。
结合上述的系统架构,下面对本申请实施例提供的一种地址检测方法进行描述。请参阅图6,图6是本申请实施例提供的一种地址检测方法的流程示意图。如图6所示,该地址检测方法可以包括步骤S601-步骤S604。需要说明的是,本申请对步骤S601~步骤S604的执行顺序不作限定。
步骤S601:第一设备向第一装置发送第一IP地址。
相应的,第一装置接收来自第一设备的第一IP地址。
第一设备可以向第一装置发送第一IP地址。可选的,第一IP地址可以是用于第一装置检测的地址,如第一IP地址是第一设备待检测的IP地址。可选的,第一IP地址可以是包含于地址检测请求中地址。例如,第一设备向第一装置发送地址检测请求,该地址检测请求中携带第一IP地址。
当第一设备需要使用第一IP地址前,为保证同一链路该IP地址的唯一性,第一设备需要通过邻居发现协议中的地址检测过程来检测其IP地址在同一链路上是否可用。其中,待检测的IP地址可以是用户配置的,也可以是系统自动配置给第一设备的,还可以是第一设备随机生成的。
具体的,第一设备可以向第一装置发送用于地址检测请求的NS报文,该NS报文包括源地址、目标地址和目的地址。其中,目标地址为待检测的第一IP地址。在本申请实施例中,IP地址可以是IPv6地址。本申请实施例对IP地址的类型不作限定。
步骤S602:第一装置确定第一信息表。
第一信息表用于存储与第一装置在同一个网络的MAC层的设备的IP地址。例如第一信息表可以是邻居缓存(neighborcache)。邻居缓存中有多个表项,每个表项保存的是每个与第一装置在同一个网络的MAC层的设备的IP地址和MAC地址。例如,第一设备是与第一装置在同一个网络的MAC层,邻居缓存中的一个表项保存有第一装置的IP地址(如第一IP地址)和MAC地址(如MAC1),且该表项的状态为可达状态。
第一装置确定第一信息表,具体的:
当使用某个IP地址的设备与第一装置在同一个网络的MAC层时,第一装置可以将该IP地址以及设备的MAC地址一起保存到第一信息表的表项中,且表项的状态为可达状态。由于第一信息表中保存的是与第一装置在同一个网络的MAC层的设备的IP地址,假设第二设备是与第一装置在同一个网络的MAC层的设备,可以根据第二设备确定第一信息表。后续不再赘述。
在第一种可能的实现方式中,在第一装置确定第一信息表之前,第二设备向第一装置发送业务数据时,需要先获取第一装置的MAC地址,即向第一装置发送用于请求第一装置的MAC地址的请求消息。具体的,第二设备可以向第一装置发送第一NS报文,第一NS报文用于请求第一装置的MAC地址。其中,第一NS报文中携带有第二IP地址和第二MAC地址,第二IP地址是第二设备的IP地址,第二MAC地址是第二IP地址对应的MAC地址,也可以理解为第二设备的MAC地址。第一装置接收第一NS报文之后,确定第二IP地址可用。在第一信息表不存在的情况下,可以创建一个新的、状态为未完成状态的第一信息表,将第二IP地址和第二MAC地址一同保存至新创建的第一信息表中,且将第一信息表的状态由未完成状态变更为可达状态。具体的实现方式可以是,第一信息表包括第一表项,将第二IP地址和第二MAC地址一同保存至新创建的第一信息表中的第一表项中,且第一表项的状态为可达状态。在第一信息表存在,但第一信息表中没有保存第二IP地址的情况下,可以将第二IP地址和第二MAC地址一同自动保存至第一信息表中的第一表项,且第一表项的状态为可达状态。在第一信息表存在,且第一信息表中保存有第二IP地址的情况下,则将第一信息表中的第二IP地址对应的表项的状态变更为可达状态。在第一信息表存在、第一信息表中保存有第二IP地址且第二IP地址对应的表项的状态为可达状态的情况下,则第一信息表中的第二IP地址对应的表项的状态不变。
需要说明的是,第一信息表可以包括一个或多个表项,每个表项有对应的状态,例如可达状态、老化状态等。每个表项对应保存一个设备的IP地址和MAC地址,通常IP地址和MAC地址是一同保存在一个表项中的。
在第二种可能的实现方式中,在第一装置确定第一信息表之前,第一装置向第二设备发送业务数据时,需要先获取第二设备的MAC地址,即向第二设备发送用于请求第二设备的MAC地址的请求消息。具体的,第一装置可以向第二设备发送第二NS报文,第二NS报文用于请求第二设备的MAC地址。第二设备接收第二NS报文后,向第一装置发送第二NA报文,其中,第二NA报文中携带有第二IP地址和第二MAC地址,第二IP地址是第二设备的IP地址,第二MAC地址是第二IP地址对应的MAC地址,也可以理解为第二设备的MAC地址。第一装置接收第二NA报文之后,确定第二IP地址可用。在第一信息表不存在的情况下,可以创建一个新的、状态为未完成状态的第一信息表,将第二IP地址和第二MAC地址一同保存至新创建的第一信息表中,且将第一信息表的状态由未完成状态变更为可达状态。具体的实现方式可以是,第一信息表包括第一表项,将第二IP地址和第二MAC地址一同保存至新创建的第一信息表中的第一表项中,且第一表项的状态为可达状态。在第一信息表存在,但第一信息表中没有保存第二IP地址的情况下,可以将第二IP地址和第二MAC地址一同自动保存至第一信息表中的第一表项,且保存第一表项的状态为可达状态。在第一信息表存在,且第一信息表中保存有第二IP地址的情况下,则将第一信息表中的第二IP地址对应的表项的状态变更为可达状态。在第一信息表存在、第一信息表中保存有第二IP地址且第二IP地址对应的表项的状态为可达状态的情况下,则第一信息表中的第二IP地址对应的表项的状态不变。
在第三种可能的实现方式中,在第一装置确定第一信息表之前,当第一装置接收到来自第一设备的第一IP地址时,可以向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息。这里描述的发送可以理解为组播,例如,当第一装置接收到来自第一设备的第一IP地址时,可以向多个设备组播第三NS报文,第三NS报文用于请求与第一装置在同一个网络的MAC层的设备的IP地址。第三NS报文的目标地址为第一IP地址,可以表示为与第一IP地址相同的IP地址对应的设备可以收到第三NS报文。其中,多个设备包括第一设备和第二设备,且多个设备与第一装置属于同一链路。在第二IP地址与第一IP地址相同的情况下,第二设备收到第三NS报文,然后向第一装置发送第三NA报文,第三NA报文中携带有第二IP地址和第二MAC地址,其中,第二IP地址是第二设备的IP地址,第二MAC地址是第二IP地址对应的MAC地址,也可以理解为第二设备的MAC地址。第一装置接收第三NA报文之后,确定第二IP地址可用。在第一信息表不存在的情况下,可以创建一个新的、状态为未完成状态的第一信息表,将第二IP地址和第二MAC地址一同保存至新创建的第一信息表中,且将第一信息表的状态由未完成状态变更为可达状态。具体的实现方式可以是,第一信息表包括第一表项,将第二IP地址和第二MAC地址一同保存至新创建的第一信息表中的第一表项中,且第一表项的状态为可达状态。在第一信息表存在,但第一信息表中没有保存第二IP地址的情况下,可以将第二IP地址和第二MAC地址一同自动保存至第一信息表中的第一表项,且保存第一表项的状态为可达状态。在第一信息表存在,且第一信息表中保存有第二IP地址的情况下,则将第一信息表中的第二IP地址对应的表项的状态变更为可达状态。在第一信息表存在、第一信息表中保存有第二IP地址且第二IP地址对应的表项的状态为可达状态的情况下,则第一信息表中的第二IP地址对应的表项的状态不变。
其中,第一装置与多个设备属于同一链路,多个设备之间需要通过第一装置进行通信,第一设备和第二设备为多个设备中的任意两个设备。第一装置、第一设备、第二设备与多个设备之间的关系,全文在此进行统一说明,后续不加赘述。
步骤S603:第一装置根据第一信息表确定第二信息表。
其中,第二信息表用于存储请求地址检测的设备的IP地址。例如,第二信息表是绑定表(bindingtable)。绑定表中有多个表项,每个表项保存的是某个设备的DAD检测的IP地址以及该IP地址对应的MAC地址。第一设备可以向第一装置发送第一IP地址和第一设备的MAC地址。例如,第一设备向第一装置发送地址检测请求,该地址检测请求中携带有第一设备的待检测的IP地址(如第一IP地址)和第一设备的MAC地址(如MAC1),则第一装置可以在绑定表中创建一个表项,并将待检测的第一IP地址与MAC1保存至该表项中。
第一装置可以根据第一信息表确定第二信息表,可以理解为,第一装置根据第一信息表更新第二信息表。具体的,第一装置可以先确定第一信息表,再确定第二信息表。
第一装置确定第一信息表之后,可以根据第一信息表确定第二信息表,具体的:
在第二信息表不存在的情况下,第一装置可以创建一个新的第二信息表,并将第一信息表中新增加或新更新的IP地址对应的表项自动同步保存至第二信息表中。在第二信息表存在的情况下,将第一信息表中新增加或新更新的IP地址对应的表项自动同步更新至第二信息表中。可以理解,设备与第一装置有业务传输之前,都需要经过地址检测,因此可以通过第一信息表确定第二信息表。
步骤S604:第一装置检测第二信息表中是否存在与第一IP地址相同的第二IP地址。
第一装置接收来自第一设备的第一IP地址后,可以根据绑定表和邻居缓存对第一IP地址进行检测,具体的,确定第二信息表中是否存在第二IP地址,第二IP地址与第一IP地址相同,且第二IP地址对应的第二MAC地址与第一IP地址对应的第一MAC地址不同。
在一种可能的实现方式中,若第二信息表中存在与第一IP地址相同的第二IP地址,且第一MAC地址与第二MAC地址不同,则进一步确定第一信息表中第二IP地址对应的表项的状态是否为可达状态。若第一信息表中的第二IP地址对应的表项的状态为可达状态,则第一装置可以确定第一设备不可以使用第一IP地址。若第一信息表中的第二IP地址对应的表项的状态为不可达状态,可以确定第一IP地址可用。
在一种可能的实现方式中,若第二信息表中存在与第一IP地址相同的第二IP地址,且第一MAC地址与第二MAC地址相同,这种情况是第一设备自己的IP地址和MAC地址保存在第二信息表中,确定第一IP地址是第一设备可用的IP地址。
在一种可能的实现方式中,若第二信息表中不存在与第一IP地址相同的第二IP地址,可以确定第一IP地址可用。
在第一装置确定第一设备不可以使用第一IP地址的情况下,向第一设备发送用于指示第一IP地址不可用的地址检测响应消息。在第一装置确定第一设备可以使用第一IP地址的情况下,第一装置不需要向第一设备发送地址检测响应消息,第一设备在预定时间内没有收到响应消息,则自动默认检测的IP地址可用,后续可以使用该IP地址进行业务传输。可选的,在第一装置确定第一设备可以使用第一IP地址的情况下,第一装置也可以向第一设备发送用于指示第一IP地址可用的地址检测响应消息,例如确认(acknowledge,ACK)消息。
需要说明的是,上述步骤中所述的地址检测,可以理解为,地址冲突检测(DAD)。地址冲突,可以理解为,待检测地址与已有的地址相同或重复,不可重复使用。在此统一说明,后续不再赘述。
本申请实施例提供的方案中,在第一信息表和第二信息表中的至少一个异常的情况下,当有设备发起IP地址检测时,可以通过第一信息表更新第二信息表,就可以实现根据两个表检测待检测IP地址是否冲突,从而可以提升地址冲突检测的准确性。
结合上述图6的实施例,下面对本申请实施例提供的一种地址检测方法进行描述。本实施例可以应用于上述步骤S602中的第一种可能的实现方式。在本实施例中,以第一信息表为邻居缓存,第二信息表为绑定表为例进行说明。其中,本实施例的地址检测方法可以应用于绑定表不存在,邻居缓存存在的场景。请参阅图7,图7是本申请实施例提供的一种地址检测方法的流程示意图。如图7所示,该地址检测方法可以包括步骤S701-步骤S704。
由于第一装置重新启动等因素导致第一装置的数据丢失,例如第一装置创建并维护的绑定表不存在了,邻居缓存还存在。针对这种情况,可以执行以下步骤S701-步骤S704。
步骤S701:第一装置确定邻居缓存。
可以理解,步骤S701可参考上述步骤S602中,第一装置确定第一信息表的第一种可能的实现方式的描述。具体步骤S701的描述可以参照上述步骤S602中的第一种可能的实现方式的描述,为避免重复,在此不加赘述。
在一个实施例中,第一NS报文除了包括第二IP地址和第二MAC地址外,还可以包括源地址,目的地址和目标地址。例如,源地址为1::1,目的地址为根据1::1生成的被请求节点组播IP地址,目标地址为第一装置接口IP地址。
第一装置接收第一NS报文之后,确定第二IP地址可用。由于第一装置重新启动等因素导致第一装置的数据丢失,第一装置创建并维护的邻居缓存还存在,则可以在邻居缓存中没有保存第二IP地址的情况下,将第二IP地址和第二MAC地址保存至邻居缓存的一个表项(例如第一表项)中,且第一表项的状态为可达状态。如果邻居缓存中某个表项保存有第二IP地址,确定该表项中的MAC地址是否是第二MAC地址,如果是,则更新该表项的状态为可达状态,如果不是,将该表项中的MAC地址更新为第二MAC地址,且更新该表项的状态为可达状态。
步骤S702:第一装置根据邻居缓存确定绑定表。
可以理解,步骤S702可参考上述步骤S603的描述。具体步骤S702的描述可以参照上述步骤S603,为避免重复,在此不加赘述。
由于第一装置重新启动等因素导致第一装置的数据丢失,第一装置中的绑定表不存在了,当第一装置确定邻居缓存之后,可以自动同步创建一个新的绑定表,并将邻居缓存中的保存第二IP地址的表项对应的信息自动保存至新创建的绑定表中。例如,邻居缓存中的第一表项中保存第二IP地址和第二MAC地址,且该表项的状态为可达状态,则将该表项的第二IP地址和第二MAC地址自动更新同步至绑定表中,即绑定表中的某一个表项中保存第二IP地址和第二MAC地址。
步骤S703:第一设备向第一装置发送第一IP地址。
可以理解,具体步骤S703的描述可以参照上述步骤S601,为避免重复,在此不加赘述。
步骤S704:第一装置检测绑定表中是否存在与第一IP地址相同的第二IP地址。
可以理解,步骤S704可参考上述步骤S604的描述。具体步骤S704的描述可以参照上述步骤S604,为避免重复,在此不加赘述。
在第一装置确定第一设备不可以使用第一IP地址的情况下,向第一设备发送用于指示第一IP地址不可用的地址检测响应消息。具体的,第一装置向第一设备回复用于地址检测响应的NA报文,该NA报文包括源地址,目的地址和待检测的目标地址。例如,源地址为1::1,目的地址为根据1::1生成的被请求节点组播IP地址,待检测的目标地址为1::1。在第一装置确定第一IP地址可用的情况下,第一装置不需要向第一设备发送地址检测响应消息,第一设备在预定时间内没有收到响应消息,则自动默认检测的IP地址可用,后续可以使用该IP地址进行业务传输。
在本申请实施例中,在第一装置重启、绑定表满规格等因素导致绑定表不存在,邻居缓存存在的场景下,本申请实施例提供的方案,第一装置在确定邻居缓存后,可以创建一个新的绑定表,且将邻居缓存中新增加或更新的信息自动同步至绑定表中。在后续有设备做地址检测请求的时候,就可以根据绑定表和邻居缓存检测IP地址是否可用,在不可用的情况下,回复IP地址不可用的地址检测响应消息。本申请实施例可以提升第一装置重启、绑定表满规格等场景下丢失绑定表所导致的地址冲突检测的准确性。
结合上述图6的实施例,下面对本申请实施例提供的一种地址检测方法进行描述。本实施例可以应用于上述步骤S602中的第二种可能的实现方式以及第三种可能的实现方式。在本实施例中,以第一信息表为邻居缓存,第二信息表为绑定表为例进行说明。其中,本实施例的地址检测方法可以应用于绑定表存在,邻居缓存不存在或邻居缓存中表项的状态为非可达状态的场景。本实施例的地址检测方法也可以应用于绑定表不存在,邻居缓存不存在或邻居缓存中表项的状态为非可达状态的场景。请参阅图8,图8是本申请实施例提供的一种地址检测方法的流程示意图。如图8所示,该地址检测方法可以包括步骤S801-步骤S804。
由于第一装置重新启动等因素导致第一装置的数据丢失,例如第一装置中的绑定表还存在,邻居缓存不存在,或者,第一装置中的绑定表还存在,邻居缓存中表项的状态为非可达状态。针对这种情况,可以执行以下步骤S801-步骤S804。
由于第一装置重新启动等因素导致第一装置的数据丢失,例如第一装置中的绑定表不存在,邻居缓存也不存在,或者,第一装置中的绑定表不存在,邻居缓存中表项的状态为非可达状态。针对这种情况,也可以执行以下步骤步骤S801-步骤S804。
步骤S801:第一设备向第一装置发送第一IP地址。
可以理解,步骤S801可以参考上述步骤S601的描述为避免重复,在此不加赘述。
步骤S802:第一装置确定邻居缓存。
具体的,步骤S802的描述可以参照上述步骤S602中的第二种可能的实现方式以及第三种可能的实现方式的描述,为避免重复,在此不加赘述。
步骤S802(a):第一装置向多个设备(图中以第一设备和第二设备为例)发送第三NS报文。例如,第一装置向多个设备组播该第三NS报文。
在一个实施例中,第三NS报文包括源地址,目的地址和待检测的目标地址。例如,源地址为第一装置接口IP地址,目的地址为根据1::1生成的被请求节点组播IP地址,待检测的目标地址为1::1。
由于第三NS报文的目标地址为第一IP地址,第一设备可以收到第三NS报文。在第二IP地址与第一IP地址相同的情况下,第二设备也可以收到该第三NS报文。由于此时第一IP地址检测未完成,因此第一设备不回复第三NA报文。
步骤S802(b):第二设备向第一装置发送第三NA报文。例如,若第二IP地址为正常使用状态,第二设备向第一装置发送第三NA报文。
在一个实现方式中,该第三NA报文包括源地址,目的地址,待检测的目标地址和第二MAC地址。例如,源地址为1::1,目的地址为第一装置接口IP地址,待检测的目标地址为1::1。第一装置接收来自第二设备的第三NA报文之后,可以将第二IP地址和第二MAC地址保存至新创建的未完成状态的邻居缓存的一个表项(例如第一表项)中,且保存该表项的状态为可达状态,并将邻居缓存的状态变更为可达状态。或者第一装置接收来自第二设备的第三NA报文之后,可以将邻居缓存中第二IP地址对应的表项的状态变更为可达状态。
可选的,如果第一装置没有收到任一设备的第三NA报文,可以表示没有其他设备使用与第一IP地址相同的IP地址,第一装置可以将第一IP地址和第一MAC地址保存至邻居缓存的一个表项中,且保存该表项的状态为可达状态。或者第一装置将邻居缓存中第一IP地址对应的表项的状态变更为可达状态。
步骤S803:第一装置根据邻居缓存确定绑定表。
具体步骤S803的描述可以参照上述步骤S603的描述,为避免重复,在此不加赘述。
在一种情况下,由于第一装置创建并维护的绑定表还存在,第一装置确定邻居缓存之后,将邻居缓存中保存的第二IP地址的表项对应的信息自动保存或更新至绑定表中。
在另一种情况下,由于第一装置创建并维护的绑定表不存在了,则第一装置可以创建一个新的临时状态的绑定表,第一装置确定邻居缓存之后,将邻居缓存中保存的第二IP地址的表项对应的信息自动保存或更新至绑定表中。再将绑定表的状态由临时状态刷新为可用状态。
步骤S804:第一装置检测绑定表中是否存在与第一IP地址相同的第二IP地址。
具体步骤S804的描述可以参照上述步骤S604的描述,为避免重复,在此不加赘述。
在第一装置确定第一设备不可以使用第一IP地址的情况下,向第一设备发送用于指示第一IP地址不可用的地址检测响应消息。具体的,第一装置向第一设备回复用于地址检测响应的NA报文,用于地址检测响应的NA报文包括源地址,目的地址和待检测的目标地址。例如,源地址为1::1,目的地址为根据1::1生成的被请求节点组播IP地址,待检测的目标地址为1::1。在第一装置确定第一IP地址可用的情况下,第一装置不需要向第一设备发送地址检测响应消息,第一设备在预定时间内没有收到响应消息,则自动默认检测的IP地址可用,后续可以使用该IP地址进行业务传输。
本申请实施例,在第一装置重启等因素导致绑定表存在,邻居缓存不存在或邻居缓存中表项的状态为非可达状态的场景下,第一装置在收到第一设备的第一IP地址的时候先确定邻居缓存,具体可以直接向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息,在确定到邻居缓存后,可以将邻居缓存中新增加或更新的信息自动同步至绑定表中。在后续有其它设备做地址检测请求的时候,可以根据绑定表和邻居缓存检测其它设备的IP地址是否可用,在不可用的情况下,回复IP地址不可用的地址检测响应消息。不同于现有技术,举例来说,第一装置在收到第一设备的第一IP地址后,需要5s才能检测出IP地址是否可用,而实际上大多第一装置默认的地址检测周期都是1s,在实际IP地址检测结果出来的时候,IP地址已经被确认为可用且生效,造成业务故障。本申请实施例中当第一装置收到设备的待检测IP地址时,立即向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息,用于确定邻居缓存,以实现后续基于邻居缓存和绑定表对待检测IP地址进行地址检测,不仅可以减少地址检测周期,在较短的时间内完成地址检测,而且可以提升IP地址冲突检测的准确性。
本申请实施例,在第一装置重启等因素导致绑定表不存在,邻居缓存不存在或邻居缓存中表项的状态为非可达状态的场景下,第一装置在收到第一设备的第一IP地址的时候先确定邻居缓存,具体可以直接向与第一装置同一链路的所有设备发送用于请求与第一装置在同一个网络的MAC层的设备的IP地址的请求消息,在确定到邻居缓存后,可以将邻居缓存中新增加或更新的信息自动同步至绑定表中。且将绑定表的状态由临时状态更新为可用状态。在后续有其它设备做地址检测请求的时候,可以根据绑定表和邻居缓存检测其它设备的IP地址是否可用,在不可用的情况下,回复IP地址不可用的地址检测响应消息。不同于现有技术,在绑定表不存在,邻居缓存不存在的情况下,是仅创建绑定表,不做其他处理,当有设备发送待检测IP地址时,由于缺少邻居缓存,会造成设备的地址检测不准确,从而通信异常。本申请提供的方案,不仅创建新的绑定表,第一装置还主动确定邻居缓存,再根据邻居缓存更新绑定表。这样,根据邻居缓存和绑定表进行的地址检测更准确。
需要说明的是,如图7和图8所示的地址检测方法的实施例中,仅以源地址::,待检测的目标地址1::1为例进行说明,源地址和待检测的目标地址还可以是其它的地址,本申请实施例对源地址和待检测的目标地址是多少不作限定。第一设备和第二设备可以是能够使用IPv6通信的设备,例如是可以与CPE、终端设备等,第一装置可以是具备IPv6转发能力的网元或者网络设备,例如BNG、路由器等。
综上,图6描述的地址检测方法,可以细化为图7和图8具体的实现方式。其中,图7描述的实施例可以应用于绑定表不存在,邻居缓存存在的场景,图8描述的实施例可以应用于绑定表存在,邻居缓存不存在或邻居缓存中表项的状态为非可达状态的场景,也可以应用于绑定表不存在,邻居缓存不存在或邻居缓存中表项的状态为非可达状态的场景。需要说明的是,图6描述的地址检测方还可以应用于绑定表存在,邻居缓存存在的场景(如上图4的描述),第一装置根据绑定表和邻居缓存检测设备的待检测IP地址。本申请实施例,第一装置根据绑定表和邻居缓存检测设备的待检测IP地址,即第一装置在判断绑定表中是否存在与第一IP地址相同的地址之前,可以先确定第一信息表,再根据第一信息表确定第二信息表,可以刷新两张表中已有的IP地址的表项的状态,根据刷新后的两张表来检测设备的待检测IP地址,可以提升地址冲突检测的准确性。
另外,实现IP DAD Proxy的第一装置,对于支持第一装置重启、支持给大量第一装置同时做DAD Proxy、对于网络配置没有严格要求的场景等,实施本申请方案,可以降低安全风险,且降低运营成本。
以下针对本申请实施例涉及的虚拟装置实施例进行描述。
请参阅图9,图9是本申请实施例提供的一种通信装置的结构示意图。该装置可以为第一装置,也可以为第一装置中的模块(例如,芯片)。如图9所示,该装置900,至少包括:接收单元901、确定单元902、检测单元903和发送单元904;其中:
接收单元901,用于接收来自第一设备的第一IP地址,所述第一IP地址为所述第一设备的待检测IP地址;
确定单元902,用于确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的MAC层;
所述确定单元902,还用于根据所述第一信息表确定第二信息表;
检测单元903,用于检测所述第二信息表中是否存在与所述第一IP地址相同的第二IP地址,所述第一IP地址对应的第一媒体接入控制地址与所述第二媒体接入控制地址不同。
在一个实施例中,所述确定单元902根据所述第一信息表确定第二信息表,具体用于:
根据所述第一信息表更新所述第二信息表。
在一个实施例中,所述确定单元902根据所述第一信息表确定所述第二信息表,具体用于:
创建所述第二信息表,创建的所述第二信息表包括所述第一信息表中的所述一个或多个设备的IP地址。
在一个实施例中,所述确定单元902确定第一信息表,具体用于:
接收来自第二设备的第一NS报文,所述第一NS报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
在一个实施例中,所述确定单元902确定第一信息表,具体用于:
向第二设备发送第二NS报文;
接收来自所述第二设备的第二NA报文,所述第二NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
在一个实施例中,所述确定单元902确定第一信息表,具体用于:
根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,所述第三NS报文的目标地址为所述第一IP地址,所述多个设备属于同一链路,所述多个设备包括第二设备;
接收来自所述第二设备的第三NA报文,所述第三NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址,所述第二IP地址与所述第一IP地址相同;
根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表。
在一个实施例中,所述确定单元902根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,具体用于:
在第一信息表不存在的情况下,创建第一信息表,所述第一信息表包括所述第二IP地址和所述第二媒体接入控制地址,所述第一信息表的状态为可达状态。
在一个实施例中,所述确定单元902根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,具体用于:
在所述第一信息表中第一表项的状态为非可达状态的情况下,将所述第一表项的状态变更为可达状态,所述第一表项包括所述第二IP地址和所述第二媒体接入控制地址。
在一个实施例中,所述确定单元902根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,具体用于:
当接收到来自所述第一设备的地址检测请求时,向所述多个设备发送所述第三NS报文,所述地址检测请求包括所述第一IP地址。
在一个实施例中,所述确定单元902,还用于:
在所述第二信息表中存在所述第二IP地址的情况下,确定所述第一信息表中所述第二IP地址对应的表项的状态是否为可达状态。
在一个实施例中,该通信装置900还包括:
发送单元904,用于在所述第一信息表中所述第二IP地址对应的表项的状态为可达状态的情况下,向所述第一设备发送地址检测响应消息,所述地址检测响应消息用于指示所述第一IP地址不可用。
有关上述接收单元901、确定单元902、检测单元903和发送单元904更详细的描述可以直接参考上述图6-图8所示的方法实施例中第一装置的相关描述,这里不加赘述。
请参阅图10,图10是本申请实施例提供的一种通信装置的结构示意图。该装置可以为第二设备,也可以为第二设备中的模块(例如,芯片)。如图10所示,该装置1000,至少包括:接收单元1001和发送单元1002;其中:
接收单元1001,用于接收来自第一装置的第三NS报文,所述第三NS报文的目标地址为第一IP地址,所述第一IP地址为第一设备的待检测IP地址;
发送单元1002,用于在第二IP地址与所述第一IP地址相同的情况下,向第一装置发送第三NA报文,所述第三NA报文包括所述第二IP地址和第二媒体接入控制地址,所述第二IP地址为第二设备的IP地址。
在一个实施例中,所述发送单元1002,还用于:
向所述第一装置发送第一NS报文,所述第一NS报文包括所述第二IP地址和所述第二媒体接入控制地址。
在一个实施例中,所述接收单元1001,还用于:
接收来自所述第一装置的第二NS报文;
所述发送单元1002,还用于:
向所述第一装置发送第二NA报文,所述第二NA报文包括所述第二IP地址和所述第二媒体接入控制地址。
有关上述接收单元1001和发送单元1002更详细的描述可以直接参考上述图6-图8所示的方法实施例中第二设备的相关描述,这里不加赘述。
基于上述系统架构,请参阅图11,图11是本申请实施例提供的一种通信装置的结构示意图。如图11所示,该装置1100可以包括一个或多个处理器1101,处理器1101也可以称为处理单元,可以实现一定的控制功能。处理器1101可以是通用处理器或者专用处理器等。例如可以是基带处理器或中央处理器。基带处理器可以用于对通信协议以及通信数据进行处理,中央处理器可以用于对通信装置(如,路由器、路由器芯片,终端、终端芯片等)进行控制,执行软件程序,处理软件程序的数据。
在一种可选的设计中,处理器1101也可以存有指令和/或数据1103,所述指令和/或数据1103可以被所述处理器运行,使得所述装置1100执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器1101中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路,或者是通信接口。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,装置1100可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
可选的,所述装置1100中可以包括一个或多个存储器1102,其上可以存有指令1104,所述指令可在所述处理器上被运行,使得所述装置1100执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。例如,上述方法实施例中所描述的对应关系可以存储在存储器中,或者存储在处理器中。
可选的,所述装置1100还可以包括收发器1105和/或天线1106。所述处理器1101可以称为处理单元,对所述装置1100进行控制。所述收发器1105可以称为收发单元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。
可选的,本申请实施例中的装置1100可以用于执行本申请实施例中图6-图8中描述的方法。
在一个实施例中,该通信装置1100可以为第一装置,也可以为第一装置中的模块(例如,芯片),存储器1102中存储的计算机程序指令被执行时,该处理器1101用于控制确定单元902和检测单元903执行上述实施例中执行的操作,收发器1105用于接收来自该通信装置之外的其它通信装置的信息,收发器1105还用于执行上述实施例中接收单元901和发送单元904执行的操作。上述第一装置或者第一装置内的模块还可以用于执行上述图7-图9方法实施例中第一装置执行的各种方法,不再赘述。
在一个实施例中,该通信装置1100可以为第二设备,也可以为第二设备中的模块(例如,芯片),存储器1102中存储的计算机程序指令被执行时,该收发器1105用于接收来自该通信装置之外的其它通信装置的信息,收发器1105还用于执行上述实施例中接收单元1001和发送单元1002执行的操作。上述第二设备或者第二设备内的模块还可以用于执行上述图6-图8方法实施例中第二设备执行的各种方法,不再赘述。
本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(application specificintegrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxidesemiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
以上实施例描述中的装置可以是网络设备或者终端,但本申请中描述的装置的范围并不限于此,而且装置的结构可以不受图11的限制。装置可以是独立的设备或者可以是较大设备的一部分。例如所述装置可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;
(2)具有一个或多个IC的集合,可选的,该IC集合也可以包括用于存储数据和/或指令的存储部件;
(3)ASIC,例如调制解调器(MSM);
(4)可嵌入在其他设备内的模块;
(5)接收机、终端、智能终端、蜂窝电话、无线设备、手持机、移动单元、车载设备、网络设备、云设备、人工智能设备、机器设备、家居设备、医疗设备、工业设备等等;
(6)其他等等。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可以实现上述方法实施例提供的地址检测方法中与网络设备相关的流程。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可以实现上述方法实施例提供的地址检测方法中与终端设备相关的流程。
本申请实施例还提供了一种计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个地址检测方法中的一个或多个步骤。上述所涉及的设备的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
本申请实施例还提供一种芯片系统,包括至少一个处理器和通信接口,所述通信接口和所述至少一个处理器通过线路互联,所述至少一个处理器用于运行计算机程序或指令,以执行包括上述图6-图8对应的方法实施例中记载的任意一种的部分或全部步骤。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例还公开一种通信系统,该系统包括终端设备和网络设备,具体描述可以参考图6-图8所示的地址检测方法。
应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是硬盘(hard diskdrive,HDD)、固态硬盘(solid-state drive,SSD)、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static rAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous dRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
还应理解,本申请实施例中提及的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块/单元可以根据实际需要进行合并、划分和删减。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (27)
1.一种地址检测方法,由第一装置执行,其特征在于,包括:
接收来自第一设备的第一互联网协议IP地址,所述第一IP地址为所述第一设备的待检测IP地址;
确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的媒体接入控制MAC层;
根据所述第一信息表确定第二信息表;
检测所述第二信息表中是否存在与所述第一IP地址相同的第二IP地址,所述第一IP地址对应的第一媒体接入控制地址与所述第二IP地址对应的第二媒体接入控制地址不同。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一信息表确定第二信息表,包括:
根据所述第一信息表更新所述第二信息表。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一信息表确定第二信息表,包括:
创建所述第二信息表,创建的所述第二信息表包括所述第一信息表中的所述一个或多个设备的IP地址。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述确定第一信息表,包括:
接收来自第二设备的第一邻居请求NS报文,所述第一NS报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述确定第一信息表,包括:
向第二设备发送第二邻居请求NS报文;
接收来自所述第二设备的第二邻居公告NA报文,所述第二NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
6.根据权利要求1或2所述的方法,其特征在于,所述确定第一信息表,包括:
根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,所述第三NS报文的目标地址为所述第一IP地址,所述多个设备属于同一链路,所述多个设备包括第二设备;
接收来自所述第二设备的第三NA报文,所述第三NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址,所述第二IP地址与所述第一IP地址相同;
根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,包括:
在第一信息表不存在的情况下,创建第一信息表,所述第一信息表包括所述第二IP地址和所述第二媒体接入控制地址,所述第一信息表的状态为可达状态。
8.根据权利要求6所述的方法,其特征在于,所述根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,包括:
在所述第一信息表中第一表项的状态为非可达状态的情况下,将所述第一表项的状态变更为可达状态,所述第一表项包括所述第二IP地址和所述第二媒体接入控制地址。
9.根据权利要求6-8任意一项所述的方法,其特征在于,所述根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,包括:
当接收到来自所述第一设备的地址检测请求时,向所述多个设备发送所述第三NS报文,所述地址检测请求包括所述第一IP地址。
10.根据权利要求1-9任意一项所述的方法,其特征在于,所述方法还包括:
在所述第二信息表中存在所述第二IP地址的情况下,确定所述第一信息表中所述第二IP地址对应的表项的状态是否为可达状态。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述第一信息表中所述第二IP地址对应的表项的状态为可达状态的情况下,向所述第一设备发送地址检测响应消息,所述地址检测响应消息用于指示所述第一IP地址不可用。
12.一种通信装置,其特征在于,包括:
接收单元,用于接收来自第一设备的第一互联网协议IP地址,所述第一IP地址为所述第一设备的待检测IP地址;
确定单元,用于确定第一信息表,所述第一信息表中包括一个或多个设备的IP地址,所述一个或多个设备与所述第一装置在同一个网络的媒体接入控制MAC层;
所述确定单元,还用于根据所述第一信息表确定第二信息表;
检测单元,用于检测所述第二信息表中是否存在与所述第一IP地址相同的第二IP地址,所述第一IP地址对应的第一媒体接入控制地址与所述第二媒体接入控制地址不同。
13.根据权利要求12所述的装置,其特征在于,所述确定单元根据所述第一信息表确定第二信息表,具体用于:
根据所述第一信息表更新所述第二信息表。
14.根据权利要求12所述的装置,其特征在于,所述确定单元根据所述第一信息表确定第二信息表,具体用于:
创建所述第二信息表,创建的所述第二信息表包括所述第一信息表中的所述一个或多个设备的IP地址。
15.根据权利要求12-14任意一项所述的装置,其特征在于,所述确定单元确定第一信息表,具体用于:
接收来自第二设备的第一邻居请求NS报文,所述第一NS报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
16.根据权利要求12-14任意一项所述的装置,其特征在于,所述确定单元确定第一信息表,具体用于:
向第二设备发送第二邻居请求NS报文;
接收来自所述第二设备的第二邻居公告NA报文,所述第二NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址;
保存所述第二IP地址和所述第二媒体接入控制地址至所述第一信息表中的第一表项,所述第一表项的状态为可达状态。
17.根据权利要求12或13所述的装置,其特征在于,所述确定单元确定第一信息表,具体用于:
根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,所述第三NS报文的目标地址为所述第一IP地址,所述多个设备属于同一链路,所述多个设备包括第二设备;
接收来自所述第二设备的第三NA报文,所述第三NA报文包括第二IP地址和所述第二媒体接入控制地址,所述第二IP地址为所述第二设备的IP地址,所述第二IP地址与所述第一IP地址相同;
根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表。
18.根据权利要求17所述的装置,其特征在于,所述确定单元根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,具体用于:
在第一信息表不存在的情况下,创建第一信息表,所述第一信息表包括所述第二IP地址和所述第二媒体接入控制地址,所述第一信息表的状态为可达状态。
19.根据权利要求17所述的装置,其特征在于,所述确定单元根据所述第二IP地址和所述第二媒体接入控制地址确定第一信息表,具体用于:
在所述第一信息表中第一表项的状态为非可达状态的情况下,将所述第一表项的状态变更为可达状态,所述第一表项包括所述第二IP地址和所述第二媒体接入控制地址。
20.根据权利要求15-17任意一项所述的装置,其特征在于,所述确定单元根据所述第一设备的第一IP地址,向多个设备发送第三NS报文,具体用于:
当接收到来自所述第一设备的地址检测请求时,向所述多个设备发送所述第三NS报文,所述地址检测请求包括所述第一IP地址。
21.根据权利要求12-20任意一项所述的装置,其特征在于,所述确定单元,还用于:
在所述第二信息表中存在所述第二IP地址的情况下,确定所述第一信息表中所述第二IP地址对应的表项的状态是否为可达状态。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:
发送单元,用于在所述第一信息表中所述第二IP地址对应的表项的状态为可达状态的情况下,向所述第一设备发送地址检测响应消息,所述地址检测响应消息用于指示所述第一IP地址不可用。
23.一种通信装置,其特征在于,包括处理器、存储器、输入接口和输出接口,所述输入接口用于接收来自所述通信装置之外的其它通信装置的信息,所述输出接口用于向所述通信装置之外的其它通信装置输出信息,当所述存储器中存储的存储计算机程序被所述处理器调用时,使得如权利要求1-11任意一项所述的方法被实现。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或计算机指令,当所述计算机程序或计算机指令被处理器执行时,使得如权利要求1-11任意一项所述的方法被实现。
25.一种包含程序指令的计算机程序产品,当所述程序指令在计算机上运行时,使得所述计算机执行如权利要求1-11任意一项所述的方法。
26.一种芯片系统,其特征在于,包括至少一个处理器、存储器和接口电路,所述存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行时,使得如权利要求1-11任意一项所述的方法被实现。
27.一种通信系统,其特征在于,包括如权利要求23所述的装置和第一设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111447275.6A CN116208582A (zh) | 2021-11-30 | 2021-11-30 | 一种地址检测方法及装置 |
PCT/CN2022/125704 WO2023098319A1 (zh) | 2021-11-30 | 2022-10-17 | 一种地址检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111447275.6A CN116208582A (zh) | 2021-11-30 | 2021-11-30 | 一种地址检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116208582A true CN116208582A (zh) | 2023-06-02 |
Family
ID=86513451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111447275.6A Pending CN116208582A (zh) | 2021-11-30 | 2021-11-30 | 一种地址检测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116208582A (zh) |
WO (1) | WO2023098319A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980252A (zh) * | 2005-12-06 | 2007-06-13 | 华为技术有限公司 | 地址冲突检测的实现方法及其地址冲突检测代理装置 |
US8107417B2 (en) * | 2006-08-04 | 2012-01-31 | Samsung Electronics Co., Ltd. | Method and mobile terminal for allocating IP address in wireless network |
CN101764734B (zh) * | 2008-12-25 | 2012-12-19 | 中兴通讯股份有限公司 | IPv6环境下提高邻居发现安全性的方法及宽带接入设备 |
CN107770294B (zh) * | 2016-08-18 | 2021-12-07 | 中兴通讯股份有限公司 | Evpn中ip地址冲突的处理方法及装置 |
CN111629077B (zh) * | 2019-02-28 | 2021-11-19 | 华为技术有限公司 | 处理地址冲突的方法、装置和存储介质 |
CN112118326B (zh) * | 2019-06-20 | 2023-12-12 | 上海诺基亚贝尔股份有限公司 | Mac地址冲突检测方法、设备、装置和计算机可读存储介质 |
CN112152928A (zh) * | 2020-10-16 | 2020-12-29 | 新华三信息安全技术有限公司 | 一种邻居表项学习方法、装置及路由设备 |
-
2021
- 2021-11-30 CN CN202111447275.6A patent/CN116208582A/zh active Pending
-
2022
- 2022-10-17 WO PCT/CN2022/125704 patent/WO2023098319A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023098319A1 (zh) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9781234B2 (en) | Electronic device, network relay device, and non-transitory computer readable storage medium | |
BRPI0822670B1 (pt) | Portal wlan sequenciável | |
CN104468866A (zh) | 一种无线局域网中多网关终端快速漫游方法 | |
CN109218456B (zh) | Mac地址表的老化时间的处理方法及装置 | |
US11283730B2 (en) | Data migration method and apparatus | |
US20190273650A1 (en) | Method and System for Processing NF Component Exception, and Device | |
US10021512B2 (en) | Switching to advertising locator after connection establishment | |
US9781034B2 (en) | Electronic device, network relay device, and non-transitory computer readable storage medium | |
CN103763750B (zh) | 在tdma协议的无线自组网中实现快速分组转发的方法 | |
CN103560961A (zh) | 以太网交换机主机路由表项动态更新方法及交换机 | |
CN111953607B (zh) | 路由更新的方法及装置 | |
WO2006068747A2 (en) | Distributed domain name service | |
CN102984295A (zh) | 一种移动终端及其地址分配方法 | |
CN103560962A (zh) | 以太网交换机主机路由表项自动更新方法及交换机 | |
US20150271086A1 (en) | Reducing Network Traffic By Intercepting Address Resolution Messages | |
US11683275B2 (en) | Device and method for interconnecting two subnetworks | |
WO2018006684A1 (zh) | 报文处理方法、装置及路由器 | |
CN104717640A (zh) | 一种基于定位的无线网络通信的实现方法 | |
WO2023134338A1 (zh) | 一种通信方法及装置 | |
WO2023098319A1 (zh) | 一种地址检测方法及装置 | |
KR20230135092A (ko) | 멀티 링크 어드레스 해결을 위한 통신 장치 및 통신방법 | |
US20130116008A1 (en) | Communication system and method | |
CN102655473A (zh) | 一种通信方法、设备及系统 | |
CN109819058B (zh) | 一种转发业务数据的方法、装置和系统 | |
JP6417720B2 (ja) | 通信装置とネットワークシステムとアドレス解決制御方法とプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |