IP Library › Granted Patent US 12,224,936
Granted Patent B2
US 12,224,936 · App. 18/341,907 · Granted Feb 11, 2025

Stateless protocol translation

Inventors: John Jason Brzozowski (Schwenksville, PA); Joseph Pryszlak (Lafayette Hill, PA)
Assignee: Comcast Cable Communications, LLC
H04L45/741H04L45/00H04L45/745H04L49/3009H04L61/251H04L61/2557H04L61/2575H04L61/4511H04L69/08H04L61/5076H04L69/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,224,936
App. No.
18/341,907
Granted
Feb 11, 2025
Kind
B2
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 (78)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

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.

22. 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.

23. 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.

24. 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.

25. 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.

26. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2023
From: BRZOZOWSKI, JOHN JASON; PRYSZLAK, JOSEPH
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 064392/0043 →
Continuity (6)
Continuation 17866180 · Jul 15, 2022
Continuation 16775883 · Jan 29, 2020
Continuation 15589018 · May 8, 2017
Continuation 14641960 · Mar 9, 2015
Continuation 13417676 · Mar 12, 2012
Related Publication 20240022511A1 · Jan 18, 2024
References Cited (35)
US 7583698B2 · Higuchi et al. · 2009 [cited by applicant]
US 7933280B2 · Nagata · 2011 [cited by examiner]
US 8179888B2 · Chen et al. · 2012 [cited by applicant]
US 8266428B2 · Kwon et al. · 2012 [cited by applicant]
US 8484666B2 · Berezansky et al. · 2013 [cited by applicant]
US 8544079B2 · Kivinen et al. · 2013 [cited by applicant]
US 9008093B2 · Brzozowski et al. · 2015 [cited by applicant]
US 9210735B2 · Sarikaya · 2015 [cited by examiner]
US 9680744B2 · Brzozowski et al. · 2017 [cited by applicant]
US 9811849B2 · Bursey · 2017 [cited by applicant]
US 10587512B2 · Brzozowski et al. · 2020 [cited by applicant]
US 11425037B2 · Brzozowski et al. · 2022 [cited by applicant]
US 20030101275A1 · Maciel · 2003 [cited by applicant]
US 20040125813A1 · Tanaka et al. · 2004 [cited by applicant]
US 20040233916A1 · Takeuchi · 2004 [cited by examiner]
US 20040240468A1 · Chin et al. · 2004 [cited by applicant]
US 20050015507A1 · Chin · 2005 [cited by applicant]
US 20060140213A1 · Hwang et al. · 2006 [cited by applicant]
US 20070081512A1 · Takeda et al. · 2007 [cited by applicant]
US 20070201356A1 · Liao et al. · 2007 [cited by applicant]
US 20080304482A1 · Grassi · 2008 [cited by examiner]
US 20100157799A1 · Nice et al. · 2010 [cited by applicant]
US 20110173304A1 · Schlack et al. · 2011 [cited by applicant]
US 20130212240A1 · Thornewell · 2013 [cited by examiner]
US 20130235862A1 · Kahng et al. · 2013 [cited by applicant]
US 20150281069A1 · Brzozowski et al. · 2015 [cited by applicant]
US 20200287827A1 · Brzozowski et al. · 2020 [cited by applicant]
US 20240022511A1 · Brzozowski · 2024 [cited by examiner]
Nordmark, E. “Stateless IP/ICMP Translation Algorithm (SIIT)”, Feb. 2000, RFC 2765. [cited by applicant]
Tsirtsis G. “Network Address Translation—Protocol Translation (NAT-PT)”, Feb. 2000, RFC 2766. [cited by applicant]
Nichols, et al., Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers, RFC 2474, Dec. 1998, 20 pages. [cited by applicant]
Deering, et al., “Internet Protocol, Version 6 (IPv6) Specification”, RFC 2460, Dec. 1998, 39 pages. [cited by applicant]
Braden, “Requirements for Internet Hosts—Communication Layers”, RFC 1122, Oct. 1989, 117 pages. [cited by applicant]
Postel, “User Datagram Protocol”, RFC 768, Aug. 28, 1980, 4 pages. [cited by applicant]
Information Sciences Institute, “Internet Protocol, DARPA Internet Program Protocol Specification”, RFC 791, Sep. 1981, 51 pages. [cited by applicant]