# US 12,224,936 B2 · Stateless protocol translation

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

- Number: US 12,224,936 B2
- Document ID: US12224936B2
- Status: Granted
- Kind: B2
- Application number: 18/341,907
- Filed: 2023-06-27
- Published: 2024-01-18
- Granted: 2025-02-11
- Earliest claimed: 2012-03-12
- Assignees: Comcast Cable Communications, LLC
- Applicants: Comcast Cable Communications, LLC
- Inventors: John Jason Brzozowski; Joseph Pryszlak
- Web page: https://patentgrep.com/patent/US12224936B2

## CPC

- H04L 61/251: between different IP versions
- H04L 45/741: Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
- H04L 45/745: Address table lookup; Address filtering
- H04L 49/3009: {Header conversion, routing tables or routing tags}
- H04L 61/2557: Translation policies or rules
- H04L 61/2575: using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
- H04L 61/4511: using domain name system [DNS]
- H04L 69/08: Protocols for interworking; Protocol conversion
- H04L 61/5076: Update or notification mechanisms, e.g. DynDNS
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Some aspects of the methods and systems presented relate to performing stateless address translation between IPv4 capable devices to IPv6 capable networks and devices. Stateless address translation may form a new IPv6 addresses by combining the IPv4 address of a device with an IPv6 prefix address assigned to the translator. The translation may also combine the IPv4 destination address and UDP port information with the new IPv6 address. Existing Domain Name Systems (DNSs) may be leveraged for resolving the IPv4 and IPv6 addresses across different networks.

## Claims

### Claim 1

A non-transitory computer-readable storage medium storing instructions that, when executed, configure a computing device to:
receive, from a network, a first packet comprising a first source address, a first destination address, and a data payload, wherein the first source address and the first destination address are formatted according to a first address format;
generate, based on the first destination address, a second destination address formatted according to a second address format different from the first address format;
generate, based on the first destination address and further based on the first packet being a reply packet, a second source address formatted according to the second address format; and
generate a second packet comprising the second source address, the second destination address, and the data payload.

### Claim 2 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the first address format is an Internet Protocol version 6 (IPv6) address format and the second address format is an Internet Protocol version 4 (IPv4) address format.

### Claim 3 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the instructions, when executed, configure the computing device to generate the second packet by:
concatenating at least one port number to the second source address and to the second destination address to obtain a header; and
concatenating the data payload to the header to obtain the second packet.

### Claim 4 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the first packet comprises a first header, and wherein the instructions, when executed, configure the computing device to generate the second packet by:
extracting, from the first header, a destination port and a source port; and
concatenating, to the second destination address and the second source address, the destination port and the source port to obtain a second header.

### Claim 5 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the instructions, when executed, further configure the computing device to:
send the second packet to the network.

### Claim 6 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the instructions, when executed, further configure the computing device to:
determine, based on a predetermined portion of the first destination address comprising all non-zero values, that the first packet is the reply packet.

### Claim 7 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the instructions, when executed, configure the computing device to generate the second source address by concatenating second lowest 32 bits of the first destination address to lowest 32 bits of the first destination address.

### Claim 8

A non-transitory computer-readable storage medium storing instructions that, when executed, configure a computing device to:
receive, from a network, a first packet comprising a first source address and a first destination address, wherein the first source address and the first destination address are formatted according to a first address format;
generate, based on the first destination address, a second destination address formatted according to a second address format different from the first address format;
perform a domain name system (DNS) lookup of the first source address to obtain a second source address formatted according to the second address format; and
generate a second packet by concatenating the second source address and the second destination address.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the first address format is an Internet Protocol version 6 (IPv6) address format and the second address format is an Internet Protocol version 4 (IPv4) address format.

### Claim 10 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the instructions, when executed, configure the computing device to generate the second packet further by:
concatenating at least one port number to the second source address and to the second destination address to obtain a header; and
concatenating a data payload of the first packet to the header to obtain the second packet.

### Claim 11 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the first packet comprises a first header, and wherein the instructions, when executed, configure the computing device to generate the second packet further by:
extracting, from the first header, a destination port and a source port; and
concatenating, to the second destination address and the second source address, the destination port and the source port to obtain a second header.

### Claim 12 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the instructions, when executed, further configure the computing device to:
send the second packet to the network.

### Claim 13 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the instructions, when executed, configure the computing device to perform the DNS lookup by:
performing a reverse DNS lookup of the first source address to obtain a source domain name; and
performing a forward DNS lookup of the source domain name to obtain the second source address.

### Claim 14 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the instructions, when executed, configure the computing device to perform the DNS lookup based on at least one of:
a determination that the first packet is not a reply packet; or
a determination that a predetermined portion of the first destination address comprises all zero values.

### Claim 15

A system comprising:
a first computing device;
a second computing device; and
a gateway configured to:
receive, from the first computing device, a first packet comprising a first source address, a first destination address, and a data payload, wherein the first source address and the first destination address are formatted according to a first address format;
generate, based on the first destination address, a second destination address formatted according to a second address format different from the first address format;
generate, based on the first destination address and further based on the first packet being a reply packet, a second source address formatted according to the second address format;
generate a second packet comprising the second source address, the second destination address, and the data payload; and
send the second packet to the second computing device.

### Claim 16 (depends on 15)

The system of claim 15, wherein the first address format is an Internet Protocol version 6 (IPv6) address format and the second address format is an Internet Protocol version 4 (IPv4) address format.

### Claim 17 (depends on 15)

The system of claim 15, wherein the gateway is configured to generate the second packet by:
concatenating at least one port number to the second source address and to the second destination address to obtain a header; and
concatenating the data payload to the header to obtain the second packet.

### Claim 18 (depends on 15)

The system of claim 15, wherein the first packet comprises a first header, and wherein the gateway is configured to generate the second packet by:
extracting, from the first header, a destination port and a source port; and
concatenating, to the second destination address and the second source address, the destination port and the source port to obtain a second header.

### Claim 19 (depends on 15)

The system of claim 15, wherein the gateway is further configured to:
determine, based on a predetermined portion of the first destination address comprising all non-zero values, that the first packet is the reply packet.

### Claim 20 (depends on 15)

The system of claim 15, wherein the gateway is configured to generate the second source address by concatenating second lowest 32 bits of the first destination address to lowest 32 bits of the first destination address.

### Claim 21

A system comprising:
a first computing device;
a second computing device; and
a gateway configured to:
receive, from the first computing device, a first packet comprising a first source address and a first destination address, wherein the first source address and the first destination address are formatted according to a first address format;
generate, based on the first destination address, a second destination address formatted according to a second address format different from the first address format;
perform a domain name system (DNS) lookup of the first source address to obtain a second source address formatted according to the second address format;
generate a second packet by concatenating the second source address and the second destination address; and
send the second packet to the second computing device.

### Claim 22 (depends on 21)

The system of claim 21, wherein the first address format is an Internet Protocol version 6 (IPv6) address format and the second address format is an Internet Protocol version 4 (IPv4) address format.

### Claim 23 (depends on 21)

The system of claim 21, wherein the gateway is configured to generate the second packet further by:
concatenating at least one port number to the second source address and to the second destination address to obtain a header; and
concatenating a data payload of the first packet to the header to obtain the second packet.

### Claim 24 (depends on 21)

The system of claim 21, wherein the first packet comprises a first header, and wherein the gateway is configured to generate the second packet further by:
extracting, from the first header, a destination port and a source port; and
concatenating, to the second destination address and the second source address, the destination port and the source port to obtain a second header.

### Claim 25 (depends on 21)

The system of claim 21, wherein the gateway is configured to perform the DNS lookup by:
performing a reverse DNS lookup of the first source address to obtain a source domain name; and
performing a forward DNS lookup of the source domain name to obtain the second source address.

### Claim 26 (depends on 21)

The system of claim 21, wherein the gateway is configured to perform the DNS lookup based on at least one of:
a determination that the first packet is not a reply packet; or
a determination that a predetermined portion of the first destination address comprises all zero values.
