# US 11,122,469 B2 · Peer to peer ad hoc network with bandwidth bonding, seamless mobility, and flow-based routing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,122,469 B2
- Document ID: US11122469B2
- Status: Granted
- Kind: B2
- Application number: 16/538,582
- Filed: 2019-08-12
- Published: 2019-11-28
- Granted: 2021-09-14
- Earliest claimed: 2016-01-26
- Assignees: Antel Inc.
- Applicants: Albert Lee
- Inventors: Albert Lee
- Web page: https://patentgrep.com/patent/US11122469B2

## CPC

- G06Q 30/0261: {based on user location}
- H04B 7/14: Relay systems
- H04L 45/122: by minimising distances, e.g. by selecting a route with minimum of number of hops
- H04L 45/38: {Flow based routing}
- H04L 45/745: Address table lookup; Address filtering
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 69/22: Parsing or analysis of headers
- H04L 69/324: in the data link layer [OSI layer 2], e.g. HDLC
- H04L 69/325: in the network layer [OSI layer 3], e.g. X.25 (H04L69/16 takes precedence)
- H04W 28/0289: {Congestion control (load shedding arrangements in network planning H04W16/08; performing reselection for handling the traffic H04W36/22; wireless traffic scheduling H04W72/12)}
- H04W 28/10: Flow control {between communication endpoints}
- H04W 36/035: {in self-organising networks}
- H04W 40/22: using selective relaying for reaching a BTS [Base Transceiver Station] or an access point
- H04W 40/24: Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W 40/36: due to handover
- H04W 72/04: Wireless resource allocation
- H04L 45/24: Multipath
- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 61/2514: between local and global IP addresses
- H04L 61/256: NAT traversal
- H04W 84/18: Self-organising networks, e.g. ad-hoc networks or sensor networks
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04B: TRANSMISSION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

An electronic data communication network includes source terminal nodes connected to the network; moving c-nodes; and one or more destination terminal nodes connected to the network. The source terminal nodes send IP packets over the c-nodes to the destination terminal nodes to accomplish arbitrary communications between arbitrary groups of the source terminal nodes to arbitrary groups of the destination terminal nodes. The moving node comprises a mobile communication device. The moving node comprises a starting node that sends the data, a relay node that relays the data, and an ending node that receives data. A virtual circuit is formed along a path comprising the relay nodes for data communication. The virtual circuit is identified by the path. Routing of data from the starting node to the ending node is performed with P2P routing algorithm.

## Claims

### Claim 1

An electronic data communication network comprising:
one or more source terminal nodes connected to the network;
a plurality of moving c-nodes; and
one or more destination terminal nodes connected to the network;
wherein said source terminal nodes send IP packets over the plurality of c-nodes to said destination terminal nodes to accomplish arbitrary communications between arbitrary groups of said source terminal nodes to arbitrary groups of said destination terminal nodes;
wherein the moving node comprises a mobile communication device;
wherein the moving node comprises a starting node that sends the data, a relay node that relays the data, and an ending node that receives data;
wherein a virtual circuit is formed along a path comprising the relay nodes for data communication; wherein the virtual circuit is identified by the path; wherein routing of data from the starting node to the ending node is performed with P2P routing algorithm;
wherein the virtual circuit operates at layer 2 as a service to layer 3, wherein data frame is identified a virtual circuit ID at layer 2, wherein the moving node looks up the virtual circuit ID, retrieves a identifier of a next channel to transmit the frame from a virtual circuit routing table using the virtual circuit ID, whereby a processing delay is comprised of the virtual circuit ID lookup time and the time to retrieve the next channel identifier;
wherein each of the IP packets is an ordinary IP packet or a c-packet, wherein the c-packet is an IP packet including an MTEG header, wherein the MTEG header contains a tetrad field and a CID field, wherein the tetrad field contains at least a source IP address, a source transport layer port number, a destination IP address and a destination transport layer port number, in an ordered format.

### Claim 2 (depends on 1)

The system of claim 1, wherein the MTEG header of the c-packet resides anywhere in the packet.

### Claim 3 (depends on 2)

The system of claim 2, wherein each of the c-nodes performs the operations of:
receiving an input packet, wherein the input packet is an ordinary IP packet or a c-packet;
producing a plurality of output packets, wherein each of the output packets is an ordinary IP packet or a c-packet; and
forwarding the output packets to their respective destinations as ordinary IP packets.

### Claim 4 (depends on 3)

The system of claim 3, wherein each of the c-nodes is coupled with a status table, wherein each entry of the status table includes a tetrad list and a CID, wherein the tetrad list is a list of tetrads in an ordered format.

### Claim 5 (depends on 4)

The system of claim 4, wherein each of the c-nodes is coupled with a routing function unit, wherein in the operation of producing the output packets from the input packet, the routing function unit uses contents of the status table coupled with the c-node and the MTEG header of the input packet to produce the output packets.

### Claim 6 (depends on 5)

The system of claim 5, wherein at least one of the c-nodes performs the operation of: when the input packet is an ordinary input IP packet, inserting an MTEG header into the input packet to thereby produce a c-packet as the output packet.

### Claim 7 (depends on 6)

The system of claim 6, wherein at least one of the c-nodes performs the operation of: when the input packet is a c-packet, removing an MTEG header from the input c-packet to produce an ordinary IP packet as the output packet.

### Claim 8 (depends on 7)

The system of claim 7, wherein at least one of the c-nodes performs the operations of:
when the input packet is a c-packet, determining a new MTEG header by the routing function unit; and
swapping the MTEG header of the input c-packet with the new MTEG header;
to thereby produce a modified c-packet as the output packet.

### Claim 9 (depends on 8)

The system of claim 8, wherein at least one of the c-nodes performs the operations of:
when the input packet is a c-packet, duplicating a plurality of copies of the input c-packet, wherein the number of the copies is determined by the routing function unit; and
determining a new tetrad for each copy of the input c-packet by the routing function unit; and
modifying each copy of the input c-packet with the respectively determined new tetrad in the MTEG header, to thereby produce a plurality of modified c-packets as the output packets.

### Claim 10 (depends on 9)

The system of claim 9, wherein at least one of the c-nodes performs the operation of:
when the input packet is a c-packet, receiving a sequence of input c-packets, wherein the number of the input c-packets is determined by the routing function unit;
determining a new tetrad for each of the input c-packets by the routing function unit; and
modifying each of the input c-packets with the respectively determined new tetrad in the MTEG header, to thereby produce modified c-packets as output packets.

### Claim 11 (depends on 10)

The system of claim 10, wherein the routing function unit guarantees that the c-packets related with a first source-destination terminal pair include a CID associated with the source-destination terminal pair, wherein the CID is different from CDs of c-packets related with other active and distinct source-destination pairs at each of the c-nodes during an active communication life of the first source-destination terminal pair.

### Claim 12 (depends on 11)

The system of claim 11, wherein the CID associated with the first source-destination terminal pair remains unchanged during the active communication life of the first sources-destination terminal pair.

### Claim 13 (depends on 11)

The system of claim 11, wherein the status table is updated in response to an update signal from at least one of the source terminal, the destination terminal and another c-node.

### Claim 14 (depends on 11)

The system of claim 11, wherein the CID and the tetrad are recursively defined and stored in a vectored format.

### Claim 15 (depends on 1)

The system of claim 1, wherein the virtual circuit routing determines optimal routing between two given terminals in the network and sets virtual circuit along the path going through the nodes, Ni, Ni+1, - - - , Nj between the two given terminals.

### Claim 16 (depends on 15)

The system of claim 15, wherein Max-Min Flow Control Protocol(MFCP) finds the fair allocations of the bottleneck bandwidth (BBij) among competing sources, given the minimum of available bandwidths(AVi) for all the nodes i along the Virtual Circuit (VCij) and setting it as optimal flow rate for each traffic with the explicit knowledge of the link capacities.

### Claim 17 (depends on 16)

The system of claim 16, wherein MFCP uses PERC(Proactive Explicit Rate Control Algorithm) with the objective of max-min fair-rate allocation with two criteria:
transmission rates to be maximized and fairness among all the users, wherein PERC algorithms proactively schedule flows to be sent at certain explicit rates to control congestion, wherein PERC algorithms take as input the set of flows and the network link speeds and topology when the network speed or round-trip delay is higher than a predetermined value, wherein the flow is defined as a set of packets that departure from the same source and arrive at the same and propagation element in the network as a link.

### Claim 18 (depends on 17)

The system of claim 17, wherein when each of the flows crosses a subset of the links, PERC algorithms find a rate allocation for each flow that is fair, for some notion of fairness, and use link capacity efficiently to calculate the explicit rates and communicate these rates back to the nodes that send the flows before the flows even start to avoid congestion, wherein PERC algorithms schedule rates for flows or departure times for packets within the known constraints of the network link speeds and topology.

### Claim 19 (depends on 18)

The system of claim 18, wherein PERC algorithms distribute the rate calculation amongst the different links and source terminal or destination terminals, wherein whenever a flow arrives or departs, the nodes and source terminal or destination terminals exchange short messages, running a distributed algorithm to explicitly allocate a rate to each flow, including ongoing flows, to fit within the capacity constraint of the links, wherein the source terminal then sends flows at the allocated rate.

### Claim 20 (depends on 1)

The system of claim 1, wherein in the process of a node as a client establishing a connection to AP/Router to communicate with another node as a client in a different subnet, iStack tag (CID) is represented as a permanent Host ID in the format of HIP or IP tunneling for the connection of Mapping to NAT(Network Address Translation), not only as temporary connection ID which only exist only when connection is alive.

### Claim 21 (depends on 20)

The system of claim 20, wherein HIP adds a host identity layer between the network and transport layers, whereby permanent and location identities are bound to nodes.

### Claim 22 (depends on 1)

The electronic data communication network of claim 1, further comprising a plurality of stationary nodes;
wherein the stationary node further comprises a plurality of commercial units, wherein merchant of the commercial unit is notified with information for moving nodes approaching to the commercial unit, wherein the merchant provides time and location dependent advertisements to users of the moving nodes, wherein the advertisements are filtered by the users of the moving nodes.

### Claim 23 (depends on 22)

The electronic data communication network of claim 22, wherein the positions of moving nodes relative to the stationary nodes form a map for the moving nodes, wherein the merchants are provided user's preference together with the position of the user within the map.

### Claim 24 (depends on 1)

The electronic data communication network of claim 1, wherein the relay node is chosen utilizing broadcast so that the distance between a transmitting node and a receiving node is increased up to a threshold value that provides minimum effective bandwidth, whereby the number of hops between two end points is minimized.

### Claim 25 (depends on 1)

The electronic data communication network of claim 1, wherein a routing table comprises records, wherein the record comprises VCID, node_status field, and next_channel ID, wherein the node keeps track of the location by the subzone ID and the number of virtual circuits for which the node carries traffic.

### Claim 26 (depends on 25)

The electronic data communication network of claim 25, wherein the P2P routing algorithm performs updating the current subzone position for each node, detection of a node in a virtual circuit has left the network, selection of a new node in the virtual circuit that has change in its nodes, determination of the channel number for each node in each virtual circuit, updating the routing table according to the changes in the nodes, and setting up and tearing down virtual circuit, whereby moving of the vehicles relative to the roads is reflected.

### Claim 27 (depends on 26)

The electronic data communication network of claim 26, wherein the GPS coordinate of a subzone is mapped to the IP address of a node in the subzone, whereby the IP address of the node approximately reflects the GPS coordinates of the node, wherein each node maintains a table of active IP addresses in the subzone in which it is located, wherein the table is updated using a distributed hash table algorithm, whereby IP address conflicts are avoided.

### Claim 28 (depends on 1)

The electronic data communication network of claim 1, wherein the predetermined path for the vehicles comprise a relative topology in which all moving nodes moving on the same road have approximately zero relative velocity, wherein the subset of all moving nodes on the same road form a relative topology that does not change in time, wherein packets from and to the nodes inside a subset of the relative topology are restricted to restricted to be routed through the nodes in the subset of moving nodes and bordering nodes, whereby the routing in the network is decomposed into routings associated with individual relative topologies.

### Claim 29 (depends on 28)

The electronic data communication network of claim 28, wherein routing is performed so that the packet flows from the Internet to moving nodes are in the anti-parallel direction of the traffic flow, and the packet flows from the moving nodes to the Internet are in the parallel direction of the traffic flow, whereby need for forced handovers is reduced.

### Claim 30 (depends on 1)

The electronic data communication network of claim 1, wherein all moving nodes on the same road are organized into disjoint subsets, wherein each disjoint subset is assigned a discrete color, wherein packets are forwarded from one colored subset to the next colored subset.

### Claim 31 (depends on 1)

The electronic data communication network of claim 1, wherein data frames are reserved in blocks, wherein each block is assigned a block ID, wherein a number of relay moving nodes are specified as backup relay node, wherein if timeout occurs, then backup relay node making the detection retransmits the block, wherein the block ID is unique in all the transmissions from a source moving node to a destination stationary node.

### Claim 32 (depends on 1)

The electronic data communication network of claim 1, wherein a control plane maintains topology tables and IP address tables to enable moving nodes and stationary nodes to find each other in terms of IP addresses; assigns channels; and calculates potential trajectory of each moving node to start an anticipative handover.

### Claim 33 (depends on 1)

The electronic data communication network of claim 1, wherein packets are transmitted within the same TCP connection using multiple bandwidths whereby bandwidth bonding increases throughput.

### Claim 34 (depends on 1)

The electronic data communication network of claim 1, wherein the user of the vehicle communication device is provided with a stationary communication device that is adapted to be used at a fixed location, is included as part of the network, and is authenticated for the same user.

### Claim 35 (depends on 1)

The electronic data communication network of claim 1, wherein the routing algorithm updates the current subzone position for each node, detects a node in the virtual circuit, which has left the electronic data communication network, selects a new node in the virtual circuit that has change in its nodes, determines the channel number for each node in each virtual circuit, updates the routing table according to the changes in the virtual circuit nodes, and sets up or tears down the virtual circuit.
