Handling address conflicts in extended service sets
By having the STA send its proposed MAC address to the AP during the four-way handshake process in the IEEE 802.11 wireless network and coordinate with the WLC for verification, the conflict problem caused by the STA randomly generating MAC addresses is resolved, ensuring that each STA uses a unique address within the ESS, thereby improving network performance and management efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- CISCO TECHNOLOGY INC
- Filing Date
- 2024-11-08
- Publication Date
- 2026-06-05
Smart Images

Figure CN122162357A_ABST
Abstract
Description
[0001] Cross-references to related applications This application claims the benefit of U.S. Provisional Patent Application No. 63 / 597,817, filed November 10, 2023, which is incorporated herein by reference in its entirety. Technical Field
[0002] The embodiments presented in this disclosure generally relate to wireless communications. More specifically, the embodiments disclosed herein relate to handling Media Access Control (MAC) address conflicts within an Extended Service Set (ESS). Background Technology
[0003] In IEEE 802.11 wireless networks, access points (APs) use the MAC addresses of stations (STAs) to manage network access and facilitate communication. Because each STA has a unique MAC address within the network, data packets can be correctly routed to different STAs, avoiding collisions and ensuring smooth operation. To enhance privacy and security, several solutions for MAC address rotation and randomization have been proposed, particularly in the IEEE 802.11bh standard. One such solution is Identifiable Random MAC (IRM), which allows STAs to freely decide the next MAC address they will use in their next association and simply report it to the connected AP. However, this approach introduces the risk of MAC address collisions. Since each STA selects a new MAC address without coordination, there is no mechanism to prevent clients from selecting a MAC address already used (or stored for use) by another client within the same ESS. Attached Figure Description
[0004] To gain a more detailed understanding of the features described above, reference can be made to the embodiments for a more specific description, which have been briefly summarized above, some of which are illustrated in the accompanying drawings. However, it should be noted that the drawings illustrate only typical embodiments and should not be considered limiting; other equally effective embodiments are also within the scope of consideration.
[0005] Figure 1 Example ESS supporting MAC address coordination is depicted according to some embodiments of this disclosure.
[0006] Figure 2 Example message sequences for resolving MAC address conflicts are depicted between STA, AP, and WLC according to some embodiments of this disclosure.
[0007] Figure 3 Example methods are described, according to some embodiments of the present disclosure, for an AP to verify the status of a received MAC address and coordinate with an STA to avoid conflicts.
[0008] Figure 4 An example method is described, according to some embodiments of the present disclosure, for an STA to propose a MAC address and submit that address to its connected AP for verification.
[0009] Figure 5 This is a flowchart depicting an example method for MAC address coordination according to some embodiments of the present disclosure.
[0010] Figure 6 Example network devices supporting MAC address coordination according to some embodiments of this disclosure are depicted.
[0011] Figure 7 An example client device supporting MAC address coordination is depicted according to some embodiments of this disclosure.
[0012] For ease of understanding, the same reference numerals are used where possible to designate common elements in the figures. It is contemplated that elements disclosed in one embodiment may be advantageously used in other embodiments without specific reference. Detailed Implementation
[0013] Overview One embodiment of this disclosure provides a method comprising: selecting a first identifiable random media access control (MAC) (IRM) address by a wireless station; transmitting the IRM address in an IRM information element by the wireless station during the execution of a handshake protocol between the wireless station and an access point (AP); receiving a message from the AP indicating whether the selected IRM address has been allocated to another wireless station; in response to the message from the AP indicating that the selected IRM address has been allocated to another wireless station, selecting a second IRM address different from the first IRM address by the wireless station, and transmitting a first radio action frame to the AP after the execution of the handshake protocol, wherein the radio action frame includes the second IRM address; and using the second IRM address by the wireless station in subsequent associations with the wireless AP or any other AP in the same extended service set (ESS) of the wireless AP.
[0014] Other embodiments of this disclosure provide a non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform operations according to one or more of the methods described above, and a wireless station including at least one memory element for storing data, and at least one processor for executing instructions associated with the data, wherein executing the instructions causes the wireless station to perform operations according to one or more of the methods described above.
[0015] Example Implementation Conflicts (e.g., when two devices in the same ESS use the same MAC address) become more likely to occur in networks with a large number of clients because IRM addresses are randomly generated by clients and reported to the AP without prior coordination. When such conflicts occur, communication clashes can arise because the AP cannot effectively distinguish between devices sharing the same MAC address. Data packets destined for one device may be misrouted to another or even lost, leading to degraded network performance and unreliable connections. Furthermore, MAC address conflicts further complicate network management because neither the AP nor the central network management system can accurately track or manage its associated devices.
[0016] To address this issue, this disclosure introduces a technique for coordinating MAC addresses to ensure that each address used in the network is unique. In one embodiment, a STA may send its next MAC address, intended for use, to its associated AP during a four-way handshake process (e.g., in one of the handshake messages sent from the STA to the AP). Upon receiving the proposed MAC address, the AP may communicate with the Wireless LAN Controller (WLC) to check the database within the ESS range and verify whether the proposed MAC address is already in use or stored for use by another STA. If the address is available, the AP may assign it to the STA and update the database via the WLC to reflect the new assignment. In some embodiments, the WLC may synchronize the database with the new assignment on all APs within the ESS. If the address is already in use by another STA, the AP may notify the STA of a conflict, and the STA may choose a different address and resubmit it to the AP in an action frame after the four-way handshake is complete. The disclosed process ensures that the MAC address proposed by each STA is verified as unique within the ESS, thereby avoiding potential communication conflicts and simplifying network management.
[0017] Figure 1 An example ESS 100 supporting MAC address coordination is depicted according to some embodiments of the present disclosure.
[0018] As shown in the figure, the example ESS 100 includes three Basic Service Sets (BSS): BSS 1 (160-1), BSS 2 (160-2), and BSS 3 (160-3). Each BSS 160 includes an AP 105 and its associated STA 110. For example, BSS 1 includes AP 105-1 and STA 110-1, STA 110-2, and STA 110-3. BSS 2 includes AP 105-2 and STA 110-4, and BSS 3 includes AP 105-3, STA 110-5, and STA 110-6. The three BSS 160s are connected together via a Distributed System (DS) 150, which includes a switch 115, a router 120, and a WLC 125. Through the DS 150, each STA 110 connects to a wired network 130 and can receive data from and / or transmit data to the network. In some embodiments, the wired network 130 may be a local area network (LAN) (e.g., an enterprise network) or a wide area network (WAN) (e.g., the Internet).
[0019] ESS 100 operates as a single network with a Common Service Set Identifier (SSID), which STA 110 identifies and connects to. Each BSS 160 operates on a specific channel and is identified by a unique Basic Service Set Identifier (BSSID), which is typically the MAC address of AP 105.
[0020] In some embodiments, the example ESS architecture 100 can be applied to large building, campus, or enterprise environments. When users move within these environments (e.g., ESS 100), their devices (e.g., STA 110) can roam across different BSS 160s within the same ESS 100 while maintaining their network connectivity. For example, STA 110-3, located in the overlapping area of BSS 1 (160-1) and BSS 2 (160-2), can deassociate from AP 105-1 and reassociate with AP 105-2 as it moves closer to AP 105-2. Roaming on BSS 160 can provide continuous connectivity and an uninterrupted user experience.
[0021] Each STA 110 can generate a MAC address (e.g., following an IRM protocol) to uniquely identify itself within the network. The STA's MAC address can be used for several purposes, such as being included in an authentication request to initiate communication or in an association request to establish a connection with AP 105. To ensure the MAC address is unique within the current ESS 100, in some embodiments, after associating with an AP (e.g., 105-1), the STA (e.g., 110-1) can send its next MAC address, which it intends to use, to the AP for verification. In some embodiments, the next MAC address can refer to the address the STA intends to use in the next association process. For example, when a STA roams from one BSS (e.g., BSS 1 (160-1)) to another BSS (e.g., BSS 2 (160-2)), it needs to deassociate from the current AP (e.g., 105-1) and reassociate with the new AP (e.g., 105-2). The next MAC address can be included in the authentication and association requests to the new AP.
[0022] In some embodiments, the proposed next MAC address may be encapsulated within an IRM Information Element (IRM-IE) and sent as part of one of the handshake messages from the STA to the AP during the four-way handshake process. As used herein, IRM-IE may refer to a data structure specifically designed for MAC address verification. IRM-IE may include one or more fields, such as the proposed next IRM address, the current IRM address, the verification status (e.g., conflict or identified), and a timestamp or random number to prevent replay attacks. In some embodiments, IRM-IE may include an additional field specifying the validity period (or lease time) of the proposed next MAC address. This field may contain a timestamp indicating the exact expiration time, or define the duration (e.g., in seconds) for which the next MAC address is retained after allocation. When the validity period has elapsed, the MAC address may be released back into the pool of available addresses and may be reassigned to another STA.
[0023] Upon receiving the proposed MAC address, the AP (e.g., 105-1) can share the address with the WLC 125. In some embodiments, the WLC 125 can connect to an ESS-wide database that includes information on all active MAC addresses within the ESS 100. By checking the ESS-wide database, the WLC 125 can determine whether the proposed MAC address has already been used and return the result to the AP (e.g., 105-1). In some embodiments, protocols such as Inter-Access Point Protocol (IAPP) / IEEE 802.1f can be used to facilitate communication between the AP 105 and the WLC 125.
[0024] If the address is free, the AP (e.g., 105-1) can notify the STA (e.g., 110-1) of the allocation status and update the ESS range database (via WLC 125) to reflect the new allocation. In some embodiments, the "identified" state can be encapsulated in an IRM-IE and sent to the STA in a handshake message. If the address is in use, the AP can send a message to the STA to notify it of a conflict, for example, by encapsulating a "conflict" state in an IRM-IE or other action frame and sending it to the STA. After the 4-way handshake is complete, the STA (e.g., 110-1) can send a newly proposed MAC address to the AP (e.g., 105-1) for verification. In some embodiments, the newly proposed MAC address can be included in an IRM-IE and sent to the AP in an action frame. The verification process can be repeated until a unique MAC address is assigned to the STA. Each STA 110 within the current ESS 100 can use this method to determine a unique MAC address for the next association. By doing so, MAC address conflicts between STAs can be effectively avoided.
[0025] In some embodiments, STA 110 may be a conventional device with a fixed or pre-assigned MAC address. In this configuration, the STA can perform an initial verification with WLC 125 before the first association to check the validity of the fixed MAC address currently within ESS 100. Once verification is successful, the STA can continue to use the address in subsequent associations without submitting a new proposed MAC address during the 4-way handshake process. However, during the first association, the fixed MAC address may already be in use by another device within the ESS. To address this issue, in some embodiments, WLC 125 may instruct the STA to delay its association attempt and then retry after a specified period of time. In some embodiments, as an alternative to delayed association, the WLC may assign a new MAC address to the STA and establish a translation entry linking the new MAC to the original fixed MAC. This method ensures continuous service to the STA without the risk of waiting for an address to become available. The newly assigned MAC address can then be recorded in the ESS-wide database to update network records and prevent future conflicts.
[0026] Figure 2 Example sequences 200 for resolving MAC address conflicts are depicted between STA, AP, and WLC according to some embodiments of the present disclosure.
[0027] As shown in the figure, STA 210 initiates the discovery phase (step 220) by sending an authentication request to AP 205. In some embodiments, STA 210 may correspond to Figure 1 The STA 110 depicted in the image, and AP 205 can correspond to... Figure 1 The AP 105 is depicted in the diagram. An authentication request is used to initiate the process of establishing a secure connection with the AP 205. In some embodiments, the authentication request may include the current MAC address of the STA 210, which the AP 205 can use to verify the identity of the STA 210.
[0028] Upon receiving the request, AP 205 verifies the identity of STA 210 and responds with an authentication response indicating whether the STA is authorized or denied (step 225). Once STA 210 is authorized, it sends an association request to AP 205 (step 230). In this request, the STA may indicate its intention to join the BSS and establish a data link. In some embodiments, the association request may include the STA's current MAC address, supported data rates, and other capabilities. AP 205 analyzes this information and, if it grants the request, generates an association ID to manage the connection with STA 210. AP 205 then includes the association ID and other relevant information in the association response and sends it back to STA 210 (step 235).
[0029] After successful authentication and association, a network connection is established between AP 205 and STA 210. Subsequently, a WAP 24-way handshake process is initiated. The main purpose of the 4-way handshake is to establish a secure encryption key that both STA 210 and AP 205 will use to protect data transmission. In this disclosure, the next MAC address that the STA intends to use can be included in one of the handshake messages to verify its uniqueness. As shown, AP 205 sends an M1 message to the STA (step 240). In some embodiments, the M1 message may include the AP's annonce, which is a random number generated by AP 205. STA 210 responds by sending an M2 message to AP 205 (step 245), which includes information for generating a pairwise temporary key (PTK), such as the STA's annonce and message integrity code (MIC). Furthermore, one of the handshake messages also includes a proposed MAC address (e.g., IRM) that the STA intends to use in future associations. In some embodiments, the proposed MAC address may be encapsulated in an IRM-IE.
[0030] In one example, after receiving a handshake message from the STA including the proposed new IRM, the AP forwards the proposed MAC address to WLC 215 for verification (step 250). In some embodiments, the MAC address may be included in an IAPP message and sent to WLC 215. WLC 215 checks the ESS-wide database to determine whether the proposed IRM address is already in use by another STA within the ESS.
[0031] In some embodiments, the ESS-wide database may include information about all active MAC addresses currently in use within the ESS. If a proposed address matches an active MAC address, it is indicated that the proposed address is in use, and the WLC marks it as conflicted. If no match is found, it is indicated that the proposed address is not in use, and the WLC marks it as available. In some embodiments, each active MAC address within the ESS-wide database may be associated with a specific validity period (also referred to as a lease time in some embodiments). As used herein, a validity period indicates that the allocation of an address to a particular STA is only valid for that period of time. When the time has elapsed, the MAC address becomes idle and can be used by another STA. In this configuration, a proposed MAC address may be determined to be idle when there is no match in the database or the validity period associated with a matching address has expired.
[0032] After verification, WLC 215 sends a response back to the AP, indicating the status of the proposed MAC address (e.g., "identified" or "conflict") (step 255). In some embodiments, the response may be an IAPP message or a similar protocol message. The AP 205 then uses this information to continue the handshake process.
[0033] Upon receiving a response from WLC 215, AP 205 sends an M3 message (step 260) to STA 210, providing the group key for multicast / broadcast traffic and the verification result of the proposed MAC address. Subsequently, STA 210 sends an M4 message (step 265) to AP 205, confirming receipt of the GTK and verification status.
[0034] As shown in the figure, when no conflict occurs, AP 205 can send a message to WLC 215 after receiving the M4 message (step 270). In some embodiments, the response can confirm the proposed MAC address allocation to STA 210 and instruct WLC 215 to update the database of the ESS range accordingly. In some embodiments, the database update can include synchronizing the new allocation among all APs within the ESS to prevent future conflicts.
[0035] If a conflict is detected, the process proceeds to the post-handshake phase to resolve the conflict. As shown, AP 205 sends a message to STA 210, notifying the STA of a conflict (step 275). In response, STA 210 sends a newly proposed MAC address to AP 205 for verification (step 280). In some embodiments, the newly proposed MAC address may be encapsulated in an IRM-IE and sent in an action frame. After receiving the newly proposed address, the AP communicates with WLC 215, which checks the ESS-range database to verify whether the newly proposed address has already been used and returns the result to AP 205. The AP can then forward the status of the newly proposed MAC address back to the STA (step 285), indicating whether the new address has been recognized or whether another conflict has occurred. The process of resubmitting the proposed MAC address can be repeated until a unique MAC address is verified and assigned to STA 210. This iterative process ensures that the next MAC address the STA intends to use is unique within the network, thereby preventing any potential data transmission conflicts and network management issues.
[0036] In some embodiments, an alternative decentralized approach can be used instead of relying on a central ESS-wide database and forwarding each proposed MAC address to WLC 215 for verification. In this configuration, AP 205 can maintain a local database containing all MAC addresses currently in use or stored for use within the ESS. During the four-way handshake process, after receiving a handshake message including the proposed MAC address, AP 205 can check its local database to determine if the address is currently in use on the network. The AP can include the verification result in a message sent back to STA 210. After successfully verifying the allocation of a unique MAC address, the AP can send a synchronization request (step 270) to the WLC, requesting the WLC to notify other APs within the ESS of the new MAC address allocation. Synchronization ensures consistency across the ESS and avoids potential future conflicts.
[0037] However, in a distributed system where each AP maintains its own local database of MAC addresses used for its activities, synchronizing this information across the network can be delayed. If STAs in different BSSs independently select the same address and simultaneously submit these addresses to their respective APs for verification, each AP may rely on its own database to discover that the address is available. As a result, two APs may approve the use of the same MAC address without realizing that another AP has simultaneously approved it, leading to address conflicts. To resolve this problem and avoid conflicts, a conflict resolution mechanism can be implemented. For example, after an AP approves a proposed MAC address, it can receive a synchronization update from the WLC indicating that another AP within the same ESS has simultaneously approved the same address. To resolve the conflict, the AP can send a message (such as an action frame) to the STA that initially proposed the MAC address. This message can notify the STA of the conflict and the state change, prompting the STA to resubmit a new MAC address for verification.
[0038] Figure 3 An example method 300 is described, according to some embodiments of the present disclosure, for an AP to verify the status of a received MAC address and coordinate with an STA to avoid conflicts. In some embodiments, method 300 may be performed by one or more APs, such as... Figure 1 The AP 105 depicted in the text, and Figure 2 The AP 205 is depicted in the image. In some embodiments, method 300 may be performed by one or more other network devices having the capabilities required for dynamic network management, such as... Figure 1 The WLC 125, router 120, and network switch 115 are depicted in the image.
[0039] Method 300 begins at box 305, where AP (e.g., Figure 1 105-1) from its associated STA (e.g., Figure 1 (110-1) Receives the proposed MAC address. In some embodiments, this address may be generated in accordance with the IRM protocol and intended for use in the next association session. In some embodiments, the proposed MAC address may be encapsulated in an IRM-IE and sent in the handshake message during the 4-way handshake process.
[0040] At box 310, the AP forwards the proposed MAC address to the WLC (e.g., Figure 1 (125), the WLC manages the network to which the AP belongs (e.g., Figure 1(ESS 100). In some embodiments, the WLC can connect to a central database that maintains records of MAC addresses used by all activities within the ESS. Upon receiving an address, the WLC can check the database to verify whether the address is already in use. In some embodiments, if the address matches an existing record in the database, it can be determined that the address is in use. If no match is found, the address can be considered idle (or unused).
[0041] In some embodiments, the address used by each activity in the database may be associated with a validity period (also referred to as lease time in some embodiments). The validity period refers to the time during which an address is reserved for use by a specific STA. In some embodiments, when a STA sends a MAC address for verification, it may include an additional field within the IRM-IE specifying the requested validity period. Once allocated, the address and its associated validity period can be stored in the database. When the validity period expires, the address is considered released and can be reused by another STA. In this configuration, a proposed MAC address from a STA may be determined to be free when there is no direct match in the database, or when a matching address is identified but its associated validity period has expired.
[0042] At box 315, the AP receives the authentication result from the WLC. In some embodiments, communication between the AP and the WLC (e.g., the AP forwarding the proposed MAC address or the WLC sharing the authentication result) can use IAPP or other suitable protocols to ensure secure and reliable data transmission.
[0043] If the result indicates that the proposed address is freely available (no conflict detected or the validity period of the matching address has expired), method 300 proceeds to box 330, where the AP notifies the STA of the positive result. In some embodiments, this information may be transmitted to the STA during the 4-way handshake, indicating the "identified" status of the proposed MAC address. After confirmation, at box 335, the AP notifies the WLC of the new allocation, requesting the WLC to update the central database to ensure that all APs within the ESS are informed of the new MAC address.
[0044] If the result indicates that the proposed address is already in use (a conflict was detected and the validity period of the matching address has not yet expired), method 300 moves to box 320, where the AP notifies the STA by sending a "conflict" status message to the STA. At box 325, after the handshake process, the AP receives a newly proposed address from the STA for re-authentication. Method 300 returns to box 310, where the AP forwards the new address to the WLC for another round of authentication. This loop can continue until a unique MAC address is assigned to the STA, allowing the STA to continue operating within the ESS without causing a MAC address conflict.
[0045] Figure 4 An example method 400 is described, according to some embodiments of the present disclosure, whereby a STA proposes a MAC address and submits that address to its connected AP for verification. In some embodiments, method 400 may be performed by one or more STAs, such as... Figure 1 The STA 110 depicted in the text, and Figure 2 The STA 210 depicted in the text.
[0046] At box 405, STA (e.g., Figure 1 (110-1) Generates the MAC address it intends to use in the next association process. In some embodiments, the address can be generated using the IRM protocol, which involves creating a MAC address by combining a predefined portion of the MAC address format with a randomly generated value. This operation hides the device's hardware-based (permanent) MAC address in the generated MAC address, thereby improving network privacy and security.
[0047] At box 410, the STA sends the generated MAC address to its currently associated AP (e.g., Figure 1 (105-1). In some embodiments, the address may be encapsulated in an IRM-IE and sent in one of the handshake messages sent to the AP during the 4-way handshake process. After receiving the MAC address, the AP can communicate with the WLC (e.g., Figure 1 (125) Communicate to check the ESS-wide database and verify that the proposed MAC address is already in use within the ESS.
[0048] At box 415, the STA receives the verification result from the AP regarding the submitted MAC address. If the address is in use, the result may include a "conflict" status, indicating that the MAC address has been assigned to another device within the network. If the address is not in use, the result may include an "identified" status, indicating that the MAC address has been acknowledged and assigned to the STA.
[0049] At box 420, the STA processes the verification result to determine the next step. If a "conflict" status is received, method 400 proceeds to box 420, where the STA receives a message from the AP indicating a MAC address conflict. At box 425, the STA generates a new MAC address using the IRM protocol. Method 400 then returns to box 420, where, after the handshake process is complete, the new MAC address is sent to the associated AP for another round of verification. This process can be repeated until a unique MAC address is generated and assigned to the STA.
[0050] If an "identified" status is received, method 400 moves to box 445, where the STA sends an acknowledgment to the AP confirming successful reception and acceptance of the MAC address allocation. In some embodiments, the STA may include the acknowledgment in the M4 message sent to the AP.
[0051] Figure 5 This is a flowchart depicting an example method 500 for MAC address coordination according to some embodiments of the present disclosure.
[0052] At box 505, the wireless station (e.g., Figure 1 110-1) Select the first identifiable random media access control (MAC) (IRM) address.
[0053] At box 510, the wireless station connects to the wireless station and the AP (e.g., Figure 1 During the execution of the handshake protocol between 105-1), the IRM address is sent in the IRM information element.
[0054] At box 515, the wireless station receives a message from the AP indicating whether the selected first IRM address has been assigned to another wireless station.
[0055] At box 520, in response to a message from the AP indicating that the selected first IRM address is assigned to another wireless station, the wireless station selects a second IRM address different from the first IRM address and transmits a first wireless action frame to the AP after the handshake protocol is executed, wherein the wireless action frame includes the second IRM address.
[0056] At box 525, the wireless station uses a second IRM address in subsequent associations with the wireless AP or any other AP in the same Extended Service Set (ESS) of the wireless AP.
[0057] In some embodiments, the wireless station may further receive a second wireless action frame from the AP, wherein the second wireless action frame indicates the identification or conflict of a second IRM address.
[0058] In some embodiments, when the second wireless action frame indicates the identification of the second IRM address, the second wireless action frame may also include an indication of the effective time period of the second IRM address.
[0059] In some embodiments, the handshake protocol may be an authentication protocol.
[0060] In some embodiments, an AP (e.g., 105-1 of 1) may send a second IRM address to any other AP (e.g., 105-2 or 105-3 of 1) in the same ESS (e.g., 100 of 1).
[0061] Figure 6An example network device 600 supporting MAC address coordination is depicted according to some embodiments of the present disclosure. In some embodiments, the example network device 600 may correspond to... Figure 1 The AP 105 depicted in the image, or Figure 2 The AP 205 is depicted in the figure. In some embodiments, the example network device 600 may correspond to... Figure 1 The WLC 125 depicted in the image, or Figure 2 WLC215 as depicted in the text.
[0062] As shown in the figure, the example network device 600 includes a processor 605, a memory 610, a storage device 615, one or more transceivers 620, one or more I / O interfaces 670, and one or more network interfaces 625. In some embodiments, I / O devices 640 are connected via I / O interfaces(one or more) 670. Furthermore, via network interfaces 625, the network device 600 can be communicatively coupled to one or more other devices and components (e.g., via a network, which may include the Internet, a local area network, etc.). Each component is communicatively coupled via one or more buses 630. In some embodiments, one or more antennas 635 may be coupled to transceivers 620 for transmitting and receiving wireless signals.
[0063] Processor 605 typically represents a single central processing unit (CPU) and / or graphics processing unit (GPU), multiple CPUs and / or GPUs, a microcontroller, an application-specific integrated circuit (ASIC), or a programmable logic device (PLD). Processor 605 processes information received via transceiver 620, I / O interface 670, and network interface 625. Processor 605 retrieves and executes programming instructions stored in memory 610, and stores and retrieves application data residing in storage device 615.
[0064] Storage device 615 can be any combination of disk drives, flash-based storage devices, etc., and can include fixed and / or removable storage devices, such as fixed disk drives, removable storage cards, caches, optical storage, network-attached storage (NAS), or storage area networks (SANs). Storage device 615 can store various types of data used for the efficient operation of the system.
[0065] Memory 610 may include random access memory (RAM) and read-only memory (ROM). Memory 610 may store processor-executable software code containing instructions that, when executed by processor 605, enable network device 600 to perform the various functions described herein for wireless communication. In the illustrated example, memory 610 includes three software components: MAC management component 645, database synchronization component 650, network monitoring component 655, and communication component 660. MAC management component 645 is configured to handle the reception, verification, and allocation of proposed MAC addresses from STAs. For example, in some embodiments, MAC management component 645 may receive a proposed MAC address from an associated STA and communicate with the WLC controlling the current ESS to verify that the address is conflict-free. After determining that the address is free, MAC management component 645 may retain the address, confirm its allocation to the STA, and update any necessary records to reflect the new allocation. Database synchronization component 650 is configured to maintain a record of currently used MAC addresses within the network device. When network device 600 is a WLC (Web Application Chain), database synchronization component 650 can update and maintain the ESS-wide database to ensure data consistency across ESSs. Network monitoring component 655 monitors the status and performance of network device 600, for example, by analyzing traffic patterns and usage to optimize performance and respond to potential security threats or operational inefficiencies. Communication component 660 is designed to facilitate communication between network device 600 and other entities within the network. In some embodiments, communication component 660 can handle protocol-specific communication (such as IAPP) to ensure reliable and secure data transmission across the network.
[0066] Although described as discrete components for clarity of concept, in some embodiments, the operation of the described components (and other components not shown) can be combined or distributed across any number of components. Furthermore, although described as software residing in memory 610, in some aspects, the operation of the described components (and other components not shown) can be implemented using hardware, software, or a combination of hardware and software.
[0067] Figure 7 An example client device 700 supporting MAC address coordination is depicted according to some embodiments of the present disclosure. In some embodiments, the example client device 700 may correspond to... Figure 1 The STA 110 depicted in the text, or Figure 2 The STA210 depicted in the text.
[0068] As shown in the figure, the example client device 700 includes a processor 705, a memory 710, a storage device 715, one or more transceivers 720, one or more I / O interfaces 770, and one or more network interfaces 725. In some embodiments, I / O devices 740 are connected via I / O interfaces(one or more) 770. Furthermore, via network interfaces 725, the client device 700 can be communicatively coupled to one or more other devices and components (e.g., via a network, which may include the Internet, a local area network, etc.). Each component is communicatively coupled via one or more buses 730. In some embodiments, one or more antennas 735 may be coupled to transceivers 720 for transmitting and receiving wireless signals.
[0069] Processor 705 typically represents a single central processing unit (CPU) and / or graphics processing unit (GPU), multiple CPUs and / or GPUs, a microcontroller, an application-specific integrated circuit (ASIC), or a programmable logic device (PLD). Processor 705 processes information received via transceiver 720, I / O interface 770, and network interface 725. Processor 705 retrieves and executes programming instructions stored in memory 710, and stores and retrieves application data residing in storage device 715.
[0070] Storage device 715 can be any combination of disk drives, flash-based storage devices, etc., and can include fixed and / or removable storage devices, such as fixed disk drives, removable memory cards, caches, optical storage, network-attached storage (NAS), or storage area networks (SANs). Storage device 715 can store various types of data used for the efficient operation of the system.
[0071] Memory 710 may include random access memory (RAM) and read-only memory (ROM). Memory 710 may store processor-executable software code containing instructions that, when executed by processor 705, enable client device 700 to perform the various functions described herein for wireless communication. In the illustrated example, memory 710 includes three software components: MAC management component 745, roaming management component 750, and communication component 760. MAC management component 745 is configured to generate MAC addresses (e.g., conforming to IRM protocols) and send them to the associated AP for verification. The generated MAC address is intended for use in the next association session. Once the verification result is received from the AP, MAC management component 745 analyzes the data and takes appropriate action. For example, if a conflict is detected, component 745 may generate a new MAC address and resubmit it to the AP. If no conflict is detected, component 745 may send an acknowledgment to the associated AP confirming the MAC address allocation. Roaming management component 750 manages the roaming process of the device to maintain continuous network connectivity when moving across different APs within the same ESS. The roaming management component 750 works closely with the MAC management component 745 to ensure that the roaming process uses a valid and recognized MAC address within the network. The communication component 760 is configured to handle data transmission between the client device 700 and other entities within the network, such as access points (APs), routers, and switches. For example, in some embodiments, during a four-way handshake, the communication component 760 may include the generated MAC address in an M2 message and extract the MAC address verification result from an M3 message received from the AP. In some embodiments, after the four-way handshake is complete, the communication component 760 may send a new MAC address using an action frame.
[0072] Although described as discrete components for clarity of concept, in some embodiments, the operation of the described components (and other components not shown) can be combined or distributed across any number of components. Furthermore, although described as software residing in memory 710, in some aspects, the operation of the described components (and other components not shown) can be implemented using hardware, software, or a combination of hardware and software.
[0073] Various embodiments have been referenced in this disclosure. However, the scope of this disclosure is not limited to the embodiments specifically described. Rather, any combination of features and elements described (whether or not they relate to different embodiments) is contemplated for implementing and practicing the embodiments contemplated. Furthermore, when elements of an embodiment are described in the form of "at least one of A and B" or "at least one of A or B," it will be understood that embodiments including element A, embodiments including element B, and embodiments including elements A and B are all considered. Moreover, while some embodiments disclosed herein may have advantages over other possible solutions or prior art, whether a given embodiment achieves a particular advantage is not a limitation of the scope of this disclosure. Therefore, the aspects, features, embodiments, and advantages disclosed herein are merely illustrative and should not be considered elements or limitations of the appended claims unless expressly stated in the claims. Similarly, references to "the invention" should not be construed as a generalization of any inventive subject matter disclosed herein and should not be considered elements or limitations of the appended claims unless expressly stated in the claims.
[0074] As those skilled in the art will understand, the embodiments disclosed herein may be embodied as systems, methods, or computer program products. Therefore, embodiments may take the form of entirely hardware embodiments, entirely software embodiments (including firmware, resident software, microcode, etc.), or embodiments combining software and hardware aspects, which may generally be referred to herein as “circuit,” “module,” or “system.” Furthermore, embodiments may take the form of computer program products embodied in one or more computer-readable media, on which computer-readable program code is contained.
[0075] Program code embodied on a computer-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, fiber optic cable, RF, or any suitable combination thereof.
[0076] Computer program code used to perform the operations of embodiments of this disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet through an Internet service provider).
[0077] Aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments set forth in this disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions (which execute via the processor of the computer or other programmable data processing apparatus) create means for implementing the functions / actions specified in the flowcharts and / or block diagrams.
[0078] These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus or other device to operate in a particular manner, such that the instructions stored in the computer-readable medium produce an article of writing including instructions that implement the functions / actions specified in the flowcharts and / or block diagrams.
[0079] Computer program instructions may also be loaded onto a computer, other programmable data processing apparatus or other equipment to cause a series of operational steps to be performed on the computer, other programmable apparatus or other equipment, thereby producing a computer-implemented process, such that the instructions that execute on the computer, other programmable data processing apparatus or other equipment provide a process for implementing the functions / actions specified in the flowchart and / or block diagram.
[0080] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in a flowchart or block diagram may represent a module, segment, or code portion, which includes one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in a block may occur in a different order than indicated in the figures. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block illustrated in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action, or by a combination of dedicated hardware and computer instructions.
[0081] In view of the foregoing, the scope of this disclosure is defined by the appended claims.
[0082] Example Terms Implementation examples are described in the following numbered clauses: Clause 1: A method comprising: establishing a network connection between an access point (AP) within an extended service set (ESS) and a client device using a first media access control (MAC) address; receiving a second MAC address from the client device by the AP, wherein the second MAC address includes an address that the client device intends to use in a next association process; verifying, by checking a database, whether the second MAC address is used within the ESS; assigning the second MAC address to the client device by the AP after determining that the second MAC address is not used within the ESS; and updating the database by the AP based on the assignment of the second MAC address.
[0083] Clause 2: The method according to Clause 1 further includes: the AP receiving a third MAC address from the client device, wherein the third MAC address includes an address that the client device intends to use in the next association process; and after determining that the third MAC address is used within the ESS, the AP sending a conflict notification to the client device.
[0084] Clause 3: The method according to Clause 2 further includes: the AP sending a message requesting a new MAC address to the client device; the AP receiving a fourth MAC address from the client device; and the AP verifying whether the fourth MAC address is used within the ESS.
[0085] Clause 4: The method according to Clause 1, wherein the second MAC address is encapsulated in an Identifiable Random MAC Information Element (IRM-IE) and received during the four-way handshake process with the client device.
[0086] Clause 5: The method according to Clause 1, wherein updating the database based on the allocation of the second MAC address includes sending a notification to the Wireless LAN Controller (WLC) within the ESS, indicating the allocation of the second MAC address, wherein, upon receiving the notification, the WLC synchronizes the database among other APs within the ESS.
[0087] Clause 6: The method according to Clause 1, wherein the database includes a plurality of allocated MAC addresses within the ESS, and each of the plurality of allocated MAC addresses is associated with a corresponding validity period.
[0088] Clause 7: The method according to Clause 6, wherein determining that the second MAC address is not used within the ESS includes determining that the validity period associated with the second MAC address has expired.
[0089] Clause 8: An access point (AP) within an Extended Service Set (ESS) includes: one or more computer processors; and one or more memories, collectively containing one or more programs that, when executed by the one or more computer processors, perform any of the operations pursuant to Clauses 1-7.
[0090] Clause 9: One or more non-transitory computer-readable media, in any combination, containing computer program code that, when executed by a computer system, performs the operations pursuant to any one of Clauses 1-7.
Claims
1. A method in a wireless network, the wireless network comprising at least one wireless station and at least one access point (AP), the method comprising: The wireless station selects the first identifiable random media access control (MAC) (IRM) address; The first IRM address is sent in the IRM information element during the execution of the handshake protocol between the wireless station and the AP; The wireless station receives a message from the AP indicating whether the selected first IRM address has been allocated to another wireless station. In response to the message from the AP indicating that the selected first IRM address is assigned to another wireless station for use: The wireless station selects a second IRM address that is different from the first IRM address; and After the handshake protocol is executed, the wireless station transmits a first wireless action frame to the AP, wherein the wireless action frame includes the second IRM address; as well as The second IRM address is used by the wireless station in subsequent associations with the wireless AP or any other AP in the same Extended Service Set (ESS) of the wireless AP.
2. The method according to claim 1, further comprising: The wireless station receives a second wireless action frame from the AP, wherein the second wireless action frame indicates the identification or conflict of the second IRM address.
3. The method according to claim 2, wherein, When the second wireless action frame indicates the identification of the second IRM address, the second wireless action frame also includes an indication of the valid time period of the second IRM address.
4. The method according to any one of claims 1 to 3, wherein, The handshake protocol is an authentication protocol.
5. The method according to any one of claims 1 to 4, wherein, The AP sends the second IRM address to any other AP in the same ESS.
6. A wireless station, comprising: At least one memory element for storing data; as well as At least one processor is configured to execute instructions associated with the data, wherein executing the instructions causes the wireless station to perform an operation, the operation including: Select the first identifiable random media access control (MAC) (IRM) address; The IRM address is sent in the IRM information element during the execution of the handshake protocol between the wireless station and the access point (AP); Receive a message from the AP indicating whether the selected first IRM address has been allocated to another wireless station; In response to the message from the AP indicating that the selected first IRM address is assigned to another wireless station for use: Select a second IRM address that is different from the first IRM address; and After the handshake protocol is executed, a first wireless action frame is transmitted to the AP, wherein the wireless action frame includes the second IRM address; and The second IRM address is used in subsequent associations with the wireless AP or any other AP in the same Extended Service Set (ESS) of the wireless AP.
7. The wireless station according to claim 6, wherein, The operation also includes: The wireless station receives a second wireless action frame from the AP, wherein the second wireless action frame indicates the identification or conflict of the second IRM address.
8. The wireless station according to claim 7, wherein, When the second wireless action frame indicates the identification of the second IRM address, the second wireless action frame also includes an indication of the valid time period of the second IRM address.
9. The wireless station according to any one of claims 6 to 8, wherein, The handshake protocol is an authentication protocol.
10. The wireless station according to any one of claims 6 to 9, wherein, The AP sends the second IRM address to any other AP in the same ESS.
11. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform operations, the operations including: Select the first identifiable random media access control (MAC) (IRM) address; The IRM address is sent in the IRM information element during the execution of the handshake protocol between the wireless station and the access point (AP); Receive a message from the AP indicating whether the selected first IRM address has been allocated to another wireless station; In response to the message from the AP indicating that the selected first IRM address is assigned to another wireless station for use: Select a second IRM address that is different from the first IRM address; and After the handshake protocol is executed, a first wireless action frame is transmitted to the AP, wherein the wireless action frame includes the second IRM address; as well as The second IRM address is used in subsequent associations with the wireless AP or any other AP in the same Extended Service Set (ESS) of the wireless AP.
12. The computer-readable storage medium according to claim 11, wherein, The operation also includes: The wireless station receives a second wireless action frame from the AP, wherein the second wireless action frame indicates the identification or conflict of the second IRM address.
13. The computer-readable storage medium according to claim 12, wherein, When the second wireless action frame indicates the identification of the second IRM address, the second wireless action frame also includes an indication of the valid time period of the second IRM address.
14. The computer-readable storage medium according to any one of claims 11 to 13, wherein, The handshake protocol is an authentication protocol.
15. The computer-readable storage medium according to any one of claims 11 to 14, wherein, The AP sends the second IRM address to any other AP in the same ESS.
16. A computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform the operation of the method according to any one of claims 1 to 5.