Patent 8677398
Derivative works
Defensive disclosure: derivative variations of each claim designed to render future incremental improvements obvious or non-novel.
Active provider: Google · gemini-2.5-pro
Derivative works
Defensive disclosure: derivative variations of each claim designed to render future incremental improvements obvious or non-novel.
Defensive Disclosure and Prior Art Generation
RE: U.S. Patent 8,677,398
Publication Date: April 30, 2026
Author: Senior Patent Strategist and Research Engineer
Abstract: This document discloses a series of methods, systems, and applications that build upon, vary, or invert the core concepts described in U.S. Patent 8,677,398. The purpose of this disclosure is to place in the public domain a range of foreseeable modifications and applications of the technology, thereby establishing prior art against future patent claims on these or similar concepts. The disclosures herein cover alternative components and protocols, operation in extreme environments, novel cross-domain applications, integration with emerging technologies like AI and blockchain, and privacy-centric or resource-constrained operational modes.
Section 1: Component and Protocol Substitution
The core mechanism of associating devices via a shared public IP address can be achieved with numerous alternative network identifiers and protocols, each with distinct advantages in different network topologies.
1.1. Association via IPv6 Prefix Delegation
- Enabling Description: In an IPv6-native environment, a single household is often assigned a stable network prefix (e.g., a /56 or /64 subnet) by an ISP via DHCPv6 Prefix Delegation (PD). All devices within the local network will subsequently derive their unique global IPv6 addresses from this shared prefix. A central server can associate devices by observing that their IPv6 addresses share the same delegated prefix, even if the full addresses are different. This method is more stable than NAT-based IPv4 association, as the prefix is typically long-lived. The server would ingest device identifiers and their full IPv6 addresses, apply a bitmask for the delegated prefix length, and use the resulting common prefix as the key for association.
- Diagram:
sequenceDiagram participant DeviceA as Device A (Mobile) participant DeviceB as Device B (STB) participant Router participant ISP participant AdServer as Association Server DeviceA->>Router: DHCPv6 Solicit Router->>ISP: DHCPv6 PD Request ISP-->>Router: Assigns Prefix (e.g., 2001:db8:1234::/56) Router-->>DeviceA: Assigns IPv6 (2001:db8:1234:0:..:A) DeviceB->>Router: DHCPv6 Solicit Router-->>DeviceB: Assigns IPv6 (2001:db8:1234:0:..:B) DeviceA->>+AdServer: Report (ID_A, 2001:db8:1234:0:..:A) AdServer->>AdServer: Store: Prefix(2001:db8:1234::/56) -> ID_A DeviceB->>+AdServer: Report (ID_B, 2001:db8:1234:0:..:B) AdServer->>AdServer: Match Prefix! Associate ID_A and ID_B deactivate AdServer
1.2. Association via Network BSSID and SSID
- Enabling Description: Mobile and stationary devices on a Wi-Fi network are aware of the Basic Service Set Identifier (BSSID), which is the MAC address of the wireless access point, and the Service Set Identifier (SSID), which is the network name. A client-side agent on each device can report the BSSID and/or a hash of the SSID to a central server along with the device's unique identifier. The server can then associate devices that report the same BSSID within a given time window. This method is independent of the public IP address and can distinguish between different access points within the same location (e.g., "Guest" vs. "Home" networks).
- Diagram:
flowchart TD subgraph DeviceA A1[Client Agent] A2[Wi-Fi Radio] end subgraph DeviceB B1[Client Agent] B2[Wi-Fi Radio] end subgraph "Wi-Fi AP" C1["SSID: MyHome_WiFi"] C2["BSSID: 0A:1B:2C:3D:4E:5F"] end subgraph AssociationServer D1{Association Logic} D2[Database] end A2 -- Scans --> C1 & C2 B2 -- Scans --> C1 & C2 A1 -- "ID_A, BSSID" --> D1 B1 -- "ID_B, BSSID" --> D1 D1 -- "BSSIDs match" --> D2[Link ID_A & ID_B]
1.3. Association via mDNS/Bonjour Service Discovery
- Enabling Description: Devices on a local network can discover each other using zero-configuration protocols like multicast DNS (mDNS). A client-side agent on a first device (e.g., a phone) could broadcast a specific mDNS service type (e.g.,
_my-app-association._tcp.local). An agent on a second device (e.g., a smart TV) on the same network would listen for this service type. Upon discovery, the two devices establish a direct peer-to-peer connection and exchange unique identifiers. One of the devices then reports the now-linked pair of identifiers to the central server, which finalizes the association. This method is decentralized and confirms direct LAN-level connectivity. - Diagram:
sequenceDiagram participant Phone as Device A (Phone) participant TV as Device B (TV) participant Server as Central Server Phone->>Multicast: mDNS Announce _my-app._tcp TV->>Multicast: mDNS Listen for _my-app._tcp TV-->>Phone: Discovered! Phone->>TV: Exchange Identifiers (ID_A, ID_B) TV-->>Phone: Acknowledge Phone->>Server: Report Association (ID_A, ID_B) Server->>Server: Store Association
Section 2: Operational Parameter Expansion
The core concept is adapted to operate under extreme network conditions and at massive industrial scales.
2.1. High-Latency/Asynchronous Network Association (Maritime/Satellite)
- Enabling Description: For devices connected via high-latency satellite or VSAT links, real-time IP address matching is unreliable. In this system, each device maintains a local, time-stamped log of its public IP address history. When a device establishes a stable connection, it uploads its identifier and this historical IP log to a central server. The server's logic processor does not look for a real-time match but instead searches for overlapping IP address tenures between the logs of different devices. An association is created if two devices held the same IP address for a significant, overlapping period (e.g., >1 hour) within the last 24-48 hours. Actions triggered by activity are then queued for delivery until the target device next polls the server.
- Diagram:
graph TD subgraph "Device A (On Ship)" A1[IP Logger] --> A2(Log: [IP1, T1-T5]) A3[Batch Uploader] end subgraph "Device B (On Ship)" B1[IP Logger] --> B2(Log: [IP1, T2-T6]) B3[Batch Uploader] end subgraph "Central Server (Onshore)" C1[Data Ingest] C2{Time-Series IP Analysis} C3[Association DB] end A3 -- Sporadic Connection --> C1 B3 -- Sporadic Connection --> C1 C1 --> C2 C2 -- "Overlap detected for IP1 at T2-T5" --> C3 C3 --> C2 style C2 fill:#f9f,stroke:#333,stroke-width:2px
2.2. Carrier-Grade NAT (CGNAT) Level Association
- Enabling Description: In many mobile and some fixed-line networks, multiple households share a single public IP address via Carrier-Grade NAT. To disambiguate households behind a CGNAT, this system leverages additional network parameters available to the carrier. The association server ingests not only the public IP but also the source port range and a timestamp from the network's BNG (Broadband Network Gateway) or GGSN. The carrier's network elements assign specific port ranges to each subscriber's session. The server associates devices if they originate from the same public IP and their source ports fall within the same allocated range for a given session, thereby correctly identifying a single household even behind a shared public IP.
- Diagram:
classDiagram CGNAT_Router { +public_ip: IPAddress +assignPortRange(session) } Session { <<Entity>> session_id subscriber_id assigned_port_range } Device { <<Entity>> device_id source_ip source_port } AssociationServer { +correlate(device_a, device_b) } CGNAT_Router "1" -- "N" Session Session "1" -- "N" Device AssociationServer ..> Device : analyzes AssociationServer ..> Session : correlates with
---
### **Section 3: Cross-Domain Applications**
The core mechanism is applied to non-advertising use cases in distinct industrial sectors.
#### **3.1. Industrial IoT: Context-Aware Machine Control**
* **Enabling Description:** A factory floor maintenance technician uses a ruggedized tablet (Device A) to diagnose a specific CNC machine (Device B). Both the tablet and the machine's control unit are connected to the same industrial Wi-Fi network and thus share a public IP address through the factory's gateway. When the technician uses an app on the tablet to look up the service manual for "CNC Model XYZ", the app notifies a central factory management server. The server, having already associated the tablet with the CNC machine via their shared IP, sends a command via the OPC UA protocol to the machine's PLC. The command places the machine into a safe, diagnostic mode and illuminates the specific component referenced in the manual, guiding the technician.
* **Diagram:**
```mermaid
sequenceDiagram
participant Tablet as Technician Tablet (A)
participant CNC_PLC as CNC Machine PLC (B)
participant FactoryServer as Factory Mgmt Server
Tablet->>+FactoryServer: Report (Tablet_ID, Public_IP)
CNC_PLC->>+FactoryServer: Report (CNC_ID, Public_IP)
FactoryServer->>FactoryServer: Associate Tablet_ID & CNC_ID
deactivate FactoryServer
Tablet->>FactoryServer: Event: "Viewed Schematic for Part P42"
FactoryServer->>CNC_PLC: Command: EnterDiagnosticMode(Target=P42)
CNC_PLC-->>FactoryServer: Acknowledged
CNC_PLC->>CNC_PLC: Illuminate LED on Part P42
```
#### **3.2. Healthcare: Synchronized Clinical Workflows**
* **Enabling Description:** A nurse's workstation-on-wheels (WOW) computer (Device A) and a patient's in-room smart infusion pump (Device B) are connected to the same secured hospital Wi-Fi network segment, sharing an IP address visible to the internal hospital services network. When the nurse authenticates and accesses a patient's Electronic Health Record (EHR) on the WOW, the EHR system sends an event to a Clinical Workflow Orchestrator server. This server recognizes the WOW's IP address matches the one recently reported by the patient's infusion pump. Based on this association, it pushes context-specific information to the pump's display, such as "Awaiting dosage confirmation for Jane Doe," and pre-loads the prescribed medication and dosage parameters, requiring only the nurse's final confirmation on the pump itself to begin infusion.
* **Diagram:**
```mermaid
flowchart LR
subgraph Hospital Network (Same IP Subnet)
A[Nurse WOW - Device A]
B[Infusion Pump - Device B]
end
C[Clinical Orchestrator Server]
D[EHR System]
A -- "Accesses Patient X Record" --> D
D -- "Event: RecordAccessed(Patient X, WOW_ID)" --> C
B -- "Heartbeat(Pump_ID, IP_Address)" --> C
A -- "Heartbeat(WOW_ID, IP_Address)" --> C
C -- "1. IP Match => Associate(WOW, Pump)" --> C
C -- "2. Push Context to Pump B" --> B
B -- "Display: 'Confirm Dosage for Patient X'" --> B
```
#### **3.3. Automotive: Seamless In-Car Experience Handoff**
* **Enabling Description:** A vehicle's Telematics Control Unit (TCU) provides an in-car Wi-Fi hotspot, acting as a router. A passenger's smartphone (Device A) connects to this hotspot. The car's head unit/infotainment system (Device B) is also on this local network. Both devices communicate to the OEM's cloud services via the TCU's LTE connection, thus sharing the same public IP address. When the passenger uses a music streaming app on their phone, the app notifies the streaming service's backend. The backend informs the OEM cloud service. The OEM service, seeing the phone and the head unit share an IP, sends a message to the head unit, which then displays "Now Playing" information on its screen and offers playback controls, synchronizing the in-car experience without requiring Bluetooth pairing.
* **Diagram:**
```mermaid
graph TD
subgraph Vehicle
A(Passenger Phone) -- Wi-Fi --> R{In-Car Hotspot (TCU)};
B(Head Unit) -- Wi-Fi --> R;
R -- LTE --> Internet;
end
subgraph CloudServices
OEM[OEM Cloud]
Music[Music Service]
end
A -- "Activity: Play Song X" --> Music;
R -- "Source IP: 198.51.100.5" --> Internet;
B -- "Heartbeat from HeadUnit_ID @ 198.51.100.5" --> OEM;
Music -- "Notify Playback(User_Y, Song_X) from 198.51.100.5" --> OEM;
OEM -- "Match IP: Associate HeadUnit & User_Y" --> OEM;
OEM -- "Command: Display(Song_X)" --> B;
```
---
### **Section 4: Integration with Emerging Technologies**
#### **4.1. AI-Driven Probabilistic Association**
* **Enabling Description:** This system uses a machine learning model (e.g., a Gradient Boosting classifier) to determine the probability that two devices belong to the same household, even when their IP addresses do not match. The model is trained on a dataset of confirmed device pairs. Features for the model include: the first 3 octets of the IP address (IP subnet), the Autonomous System Number (ASN) of the ISP, device User-Agent strings (to identify device type), temporal access patterns (e.g., co-activity during evening hours), and previously associated IP addresses. When new device activity is reported, the server computes a feature vector and the model outputs a probability score. If the score exceeds a configurable threshold (e.g., 95%), the devices are associated, allowing for targeting across a user's mobile (cellular IP) and home (Wi-Fi IP) sessions.
* **Diagram:**
```mermaid
flowchart TD
A[Device A Activity<br>IP: 203.0.113.10<br>Time: 19:05<br>UA: Mobile] --> F1[Feature Extractor];
B[Device B Activity<br>IP: 198.51.100.50<br>Time: 19:08<br>UA: SmartTV] --> F1;
F1 --> FV{{Feature Vector<br>/24 Subnets<br>ASNs<br>Time Delta<br>UA Types}};
FV --> M{ML Model};
M -- "Prob(Match) = 0.98" --> D{Threshold > 0.95?};
D -- Yes --> R[Associate Devices];
D -- No --> E[Do Not Associate];
```
#### **4.2. Blockchain-Managed Consent and Micro-payments**
* **Enabling Description:** A decentralized application (dApp) is used by the user to manage consent for cross-device targeting. The user's preferences are stored in a smart contract on a public blockchain (e.g., Ethereum). When the association server identifies a potential device pairing, it first queries the smart contract to verify that the user has opted-in. The user's activity on the first device triggers a transaction to the smart contract. A second transaction is logged when a targeted action is delivered to the second device. This creates an immutable, user-auditable trail. Furthermore, the advertiser can pre-load the smart contract with cryptocurrency, which is then automatically distributed as a micro-payment to the user's wallet each time a targeted action is successfully delivered and viewed, creating a transparent value exchange.
* **Diagram:**
```mermaid
sequenceDiagram
participant User
participant DeviceA
participant DeviceB
participant Server
participant Blockchain
User->>Blockchain: Deploy ConsentContract(opt_in=true)
DeviceA->>Server: Activity from IP_1
DeviceB->>Server: Activity from IP_1
Server->>Server: Potential Match Found
Server->>Blockchain: Query: ConsentContract.isOptIn()?
Blockchain-->>Server: Response: true
Server->>DeviceB: Send Targeted Action
Server->>Blockchain: Log Tx: ActionSent(DeviceA, DeviceB)
DeviceB->>Server: Action Viewed
Server->>Blockchain: Execute Tx: TransferMicroPayment(to_user_wallet)
```
---
### **Section 5: The "Inverse" and Safe-Failure Modes**
#### **5.1. Graceful Degradation to Privacy-Preserving Mode**
* **Enabling Description:** The system is designed to operate in a "Limited Functionality" mode to respect user privacy or operate under certain legal jurisdictions (e.g., GDPR). In this mode, the server does not store full IP addresses. Instead, it uses a cryptographic one-way hash function (e.g., SHA-256) with a rotating daily salt on the IP address. The server associates devices only if their hashed IPs match. Furthermore, it only stores hashes of user activity categories (e.g., "sports enthusiast") rather than specific URLs visited. When a device checks in, its IP is hashed and compared to the stored activity hashes. If a match is found, a generic, category-based action is triggered on the associated device. The salt is discarded daily, breaking all associations and preventing long-term profiling.
* **Diagram:**
```mermaid
stateDiagram-v2
[*] --> Full_Functionality
Full_Functionality: Store Full IP<br>Store Specific User Activity<br>Precise Targeting
Full_Functionality --> Limited_Privacy_Mode: User Opt-Out or Regulation Trigger
Limited_Privacy_Mode: H = sha256(IP + daily_salt)<br>Store Hashed IP<br>Store Activity Category
Limited_Privacy_Mode --> Full_Functionality: User Opt-In
Limited_Privacy_Mode --> [*]: Session End / Salt Rotation
state Fork1 <<fork>>
Limited_Privacy_Mode --> Fork1
Fork1 --> Hash_IP
Fork1 --> Categorize_Activity
state Join1 <<join>>
Hash_IP --> Join1
Categorize_Activity --> Join1
Join1 --> Store_Anonymized_Data
Store_Anonymized_Data --> Match_And_Trigger
```
---
### **Section 6: Combination with Open-Source Standards**
#### **6.1. Combination with the Matter Standard for Smart Homes**
* **Enabling Description:** A user's smartphone (Device A) and a Matter-enabled smart display (Device B) are commissioned onto the same home Wi-Fi and Thread network, making them part of the same Matter "fabric". A cloud service, which has been granted access to the fabric, observes an HTTP request from the smartphone originating from a specific public IP address. The service's backend notes that the user was searching for vacuum cleaner reviews. Independently, the smart display checks in with the same cloud service from the same public IP. Recognizing the shared IP and fabric co-membership, the service uses the Matter application layer protocol to send a targeted message not as a generic ad, but as a contextual "card" to the smart display's UI, showing a "card" with pricing for the reviewed vacuum cleaner at a local store.
* **Diagram:**
```mermaid
erDiagram
USER }o--|| SMARTPHONE : uses
USER }o--|| SMART_DISPLAY : owns
SMARTPHONE ||--o{ "MATTER FABRIC" : belongs
SMART_DISPLAY ||--o{ "MATTER FABRIC" : belongs
"MATTER FABRIC" ||--|{ WIFI_NETWORK : runs_on
SMARTPHONE {
string DeviceID
string ActivityData
}
SMART_DISPLAY {
string DeviceID
}
CLOUD_SERVICE {
string AssociationLogic
string MatterAPI_Endpoint
}
SMARTPHONE o..o CLOUD_SERVICE : "reports activity via IP"
SMART_DISPLAY o..o CLOUD_SERVICE : "reports presence via IP"
CLOUD_SERVICE o..o SMART_DISPLAY : "sends contextual card via Matter API"
```
#### **6.2. Combination with OpenID Connect (OIDC) for Authenticated Experiences**
* **Enabling Description:** A user logs into a news website on their laptop (Device A) using a third-party OIDC identity provider (e.g., "Sign in with AcmeID"). The OIDC provider's server records the successful authentication event, the client_id of the news website, and the source IP address. Later, the user opens a Connected TV (CTV) app (Device B) and uses the OIDC "device flow" to log in with the same AcmeID. The CTV app also reports its public IP. The OIDC provider's backend service joins these two events on the user's identity and sees the shared IP address, creating a strong association. Based on the user reading financial news on Device A, the OIDC service can pass an additional `audience_segment: 'finance'` claim in the ID Token it issues to the CTV app, allowing the app to personalize its home screen with a "Stock Market Today" widget.
* **Diagram:**
```mermaid
sequenceDiagram
actor User
participant Laptop as Laptop (Device A)
participant OIDC as OIDC Provider
participant CTV as CTV App (Device B)
User->>Laptop: Clicks "Sign in with AcmeID"
Laptop->>OIDC: AuthN Request
OIDC-->>Laptop: Returns Auth Code
Laptop->>OIDC: Token Request (from IP_1)
OIDC->>OIDC: Log: User_X, IP_1, Client_News
User->>CTV: Chooses "Sign in with AcmeID"
CTV->>OIDC: Device AuthZ Request (from IP_1)
OIDC->>OIDC: Join on User_X and IP_1
OIDC->>OIDC: Infer context ('finance')
OIDC-->>CTV: ID Token with claim "audience_segment: 'finance'"
CTV->>CTV: Personalize UI based on claim
```
#### **6.3. Combination with MQTT for IoT Messaging**
* **Enabling Description:** An array of environmental sensors (e.g., temperature, humidity; Devices A) in a smart greenhouse all publish their data to a public MQTT broker under topics like `greenhouse/z1/temp`. A central climate control system (Device B) subscribes to a command topic `greenhouse/z1/control`. A cloud-based analytics service subscribes to all `greenhouse/z1/#` topics. The service notices that all sensor telemetry and the controller's connection originate from the same static IP address of the greenhouse. When the analytics service processes the data stream from the temperature sensor and detects an anomaly (e.g., a sudden spike), it immediately publishes a command message to the `greenhouse/z1/control` topic (e.g., `{"actuator": "vent", "state": "open"}`), directly triggering an action on the co-located control system without needing to know its specific internal IP address.
* **Diagram:**
```mermaid
graph TD
subgraph Greenhouse LAN (Shared Public IP)
A[Temp Sensor] -- pub: /z1/temp --> B((MQTT Broker));
C[Humidity Sensor] -- pub: /z1/humidity --> B;
D[Control System] -- sub: /z1/control --> B;
end
E[Cloud Analytics] -- sub: /z1/# --> B;
E -- "Analyzes data stream" --> F{Anomaly Detected?};
F -- Yes --> G[Publish Command];
G -- pub: /z1/control --> B;
```
Generated 4/30/2026, 8:55:18 PM