METHOD AND DEVICE FOR ENABLING END-TO-END QOS LOW LATENCY PRIORITIZATION FOR NAT-ENABLED NETWORKS
Patent Information
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- ARRIS ENTERPRISES LLC
- Filing Date
- 2022-07-29
- Publication Date
- 2026-06-12
AI Technical Summary
Existing network address translation (NAT) systems in broadband networks fail to provide effective quality of service (QoS) to individual devices behind the gateway, as they obfuscate IP addresses, making it difficult for broadband network gateways (BNGs) or DOCSIS CMTS devices to differentiate and assign QoS to local devices, and constant updates are not scalable.
A network gateway device with enhanced NAT capabilities that divides TCP/UDP port ranges into specific categories for different QoS levels, allowing BNG/CMTS to identify and prioritize traffic flows for devices within the home network, ensuring QoS without continuous signaling across the network.
Enables scalable and efficient QoS prioritization for devices within the home network by identifying and treating traffic flows with special needs, such as low latency or high bandwidth, without requiring extensive continuous QoS signaling across the broadband network.
Smart Images

Figure MX435056B0
Abstract
Description
METHOD AND DEVICE FOR ENABLING END-TO-END QoS LOW-LATENCY PRIORITIZATION FOR NAT-ENABLED NETWORKS Field This description generally refers to a network gateway method and device that has network address translation (“NAT”) capabilities, and more particularly to a network gateway device that provides end-to-end low-latency quality of service (“QoS”) prioritization. Background Cable service providers, also called multiple system operators (MSOs), typically deliver digital and analog broadcast television signals, as well as broadband data services, to their customers. These broadband data services generally include internet access using the Cable Data Service Interface Specification (DOCSIS) protocol. To deliver television and data services, an MSO typically uses a cable modem termination system (CMTS) for data services and a quadrature amplitude modulation (QAM) multiplexer for broadcast television, narrowband, and video-on-demand (VoD) traffic signals.These devices can be located in one or more hubs, which are typically connected to the headend via a network according to a network protocol, such as Ethernet or SONET, as it is known in the industry. These devices generally have multiple outputs for downstream signals, as well as multiple inputs for upstream signals, which are sent to or received from consumer homes, bars, and other commercial establishments. Currently, NAT is used to address the exhaustion of Internet Protocol version 4 (IPv4) addresses and to minimize the number of exposed IP addresses within a network. In the case of Internet Service Providers (ISPs), broadband gateways assign local IP addresses from a pre-configured IP subnet to local devices. These assigned IP addresses are different from the external wide area network (WAN) IP address that the ISP uses for the broadband gateway itself, which is typically provided using the ISP's Dynamic Host Configuration Protocol (DHCP) system.Traffic from local devices going to the Internet is transformed using Network Address Translation (NAPT or NAT), whereby their assigned IP addresses are replaced with the gateway's WAN IP address, and the Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) port numbers are replaced with available NAT mappings. For a source (SRC), the NAT function retains this SRC_IP+SRC_port to WAN_IP+NEW_SRC_port mapping, and when the broadband gateway receives traffic sent to WAN_IP+NEW_SRC_port, it can replace it with the recorded NAT mapping and forward the traffic to the local device. The use of NAT generally means that the IP address of local devices is "obfuscated" and extremely difficult to resolve without NAT mapping information. As a result, when Broadband Network Gateways (BNGs) or DOCSIS CMTS devices connect broadband gateways to the internet, all they see are the gateways' so-called WAN IP addresses, which can effectively only provide QoS to the gateway itself, and not to the individual devices behind it. There are ways to dynamically signal the BNG / CMTS function, but given the ephemeral nature of TCP and UDP traffic flows, constantly updating the BNG / CMTS with five times the amount of information for a flow is not scalable. Consequently, there is a need for a way to enable simpler configuration of the BNG / CMTS classification and QoS system to assign QoS to IP devices behind the broadband gateway in a scalable manner. Compendium As described herein, it is a network and a method for connecting devices on a local area network (LAN) to the Internet through a Network Address Translation (NAT)-enabled gateway and a server. The gateway includes an Internet address to allow the gateway to be addressed by the server and the LAN. A plurality of ports on the gateway allows the gateway to receive and transmit data to and from the server and the LAN. A processor divides the gateway ports into at least a first range of port numbers and a second range of port numbers. Classified traffic identified as suitable for a higher level of QoS is assigned to the first range of port numbers, and classified traffic identified as suitable for a lower level of QoS is assigned to the second range of port numbers.The gateway provides devices on the LAN with a level of QoS depending on the port numbers assigned to them. The gateway's ports can be further divided into a third range of port numbers to provide an additional level of QoS. It's important to note that the number N of port number ranges is not limited to two or three, but can be almost any number N that is substantially greater than two (for example, dozens or even hundreds). ML / t / ZUZZ / U í 411 Z The enhanced NAT process described herein provides a NAT-enabled network with the ability to identify devices or traffic flows from devices within the home network that require special QoS treatment, such as low latency or high bandwidth. The NAT-enabled network divides or defines TCP and UDP port ranges associated with a WANJP address that can be used for local high-priority purposes. The enhanced NAT process can also ensure that a local broadband gateway, in combination with a BNG / CMTS, can deliver this enhanced QoS without requiring significant non-scalable QoS signaling across the broadband network. Brief description of the figures Figure 1 is an illustration of a normal NAT process for translating the network addresses of a plurality of home network devices A, B, C, D, E, and F that have LocalJP addresses, and also illustrates a WAN JP address and its associated port numbers; Figure 2 is an illustration of an enhanced NAT process for translating the network addresses of a plurality of home network devices A, B, C, D, E, and F that have LocalJP addresses, and also illustrates a WANJP address and its associated port numbers; Figure 3 is an illustration of a network using the enhanced NAT process of Figure 2; Figure 4 is a flowchart of how a gateway provides at least a minimum of two different levels of QoS to home network devices, but the number of QoS levels can be substantially greater than the minimum of two (e.g., dozens or even hundreds); Figure 5 is a diagram of how the NAT process interacts with a server, a gateway, and a home network device, and illustrates how a minimum of at least two levels of QoS can be provided to the home network device; and Figure 6 illustrates a representative computer system 600 in which the modalities of the present description, or parts thereof, can be implemented as computer-readable code. Detailed description of the modalities and illustrative methods Referring now to Figure 1, the figure illustrates a typical NAT process for a plurality of devices A, B, C, D, E, and F, each with a LocalJP address and a WANJP address and its associated port number 101. The WANJP address is typically associated with port numbers ranging from 0 to 65535. The plurality of local devices A, B, C, D, E, and F are assigned a local IP address. The WANJP address and port number 101, as well as the LocalJP addresses for devices A, B, C, D, E, and F, are preferably configured to comply with TCP. Essentially, within a home network, NAT operates by routing all TCP and UDP traffic from local devices, such as A, B, C, D, E, and F, to ML / t / ZUZZ / U í 411 Z TCP and UDP port numbers assigned to the address WANJP 101. The assignment of these ports is arbitrary. With reference to Figure 2, the figure illustrates an enhanced NAT 200 process involving a plurality of devices A, B, C, D, E, and F, each with LocalJP addresses and a WANJP address and its associated port number 201. The enhanced NAT 200 process modifies the arbitrary allocation of the standard NAT 100 process so that defined TCP and UDP port ranges associated with the WANJP address 201 can be used for local high-priority purposes, and these defined ranges are reported to a BNG / CMTS. From a BNG / CMTS perspective, the TCP / UDP port space is divided into ranges that can, in turn, be assigned explicit QoS assignments. In Figure 2, the port space is preferably divided into at least a first range from 0 to 16,384 and a second range from 16,385 to 65,535. If desired, the second range can be further divided. With reference now to Figure 3, the figure illustrates a network 300 that uses the enhanced NAT process 200 of Figure 2. The network 300 connects to the Internet cloud 301 through a commercial-grade network address translation (CGNAT) device 302 that transmits and receives data to and from a cable modem termination system (CMTS) 303. A QoS engine 309 and a classifier 310 are included within the CMTS 303, which transmits and receives data to and from a gateway 304. The gateway 304 includes an IP cable modem address 305, a WANJP address 306, the enhanced NAT process 200 of Figure 2, and a DHCP server 307. In Figure 3, the DHCP server 307 is able to communicate with a home network 308 that includes devices A, B, C, D, E, and F that have localJP addresses; A=10.0.0.11, B=10.0.0.12, O=10.0.0.13, D=10.0.0.14, E=10.0.0.15, and F=10.0.0.17, for example. It is worth noting that CMTS 303 has information about the WANJP address 306 and the CMJP address 305 of gateway 304, but no information about home network 308. It is also worth noting that QoS engine 309 and classifier 310 include information related to the Media Access Control (“MAC”) address of gateway 304; a primary QoS, such as Pri_SF=1 Mbps; a secondary QoS, such as Sec_SF=40 Mbps; and can classify the WANJP address 306 of gateway 304. To expose the QoS of devices on home network 308 to CMTS 303, the classifiers are added to the Sec_SF information, based on the TCP / UDP port range 0-16k.To provide additional service to the 308 home network, it may also be convenient to divide the TCP / UDP NAT port space using the 0-16k range for specific addresses on the 308 home network, and using the 16k to 64k range for all other IP addresses. The allocation of traffic on the local home network (308 ports) to TCP / UDP NAT port ranges can be based on various traffic classifiers if necessary. For example, a simple option is ML / t / ZUZZ / U í 4 11 Z assign an explicit IP address to use the reserved TCP / UDP port range, thus ensuring that all traffic for a specific device on the home network receives differentiated QoS. Another approach could be to use specific DSCP flags in packets to use the reserved TCP / UDP port range. Multiple TCP / UDP port ranges could also be identified to allow the BNG / CMTS 303 to support multiple levels of QoS. Regarding the ability to classify traffic to identify whether a device or protocol requires higher QoS, this is preferably achieved through a user interface exposed to a user who can choose priorities for different devices, services, etc. Alternatively, it could be offered through service provider policies, e.g., ensuring that World of Warcraft games receive high QoS. Referring now to Figure 4, a flowchart illustrates how gateway 304 provides different levels of QoS to a home network device on Home Network 308. The initial stage 401 starts the process, and in stage 402, the gateway 304 port numbers are divided into at least the first and second ranges, as shown in Figure 2. In stage 403, classified traffic from CMTS 303 is identified as suitable for a higher or lower QoS level, which can be further divided into third, fourth, etc., and / or sub-ranges, depending on the implementation. In stage 404, it is determined whether a particular device requires a higher QoS level. In stage 405, if the traffic to the device is suitable for a higher level of QoS, then the device is assigned to the first range of port numbers, and in stage 406, the device is provided with a higher level of QoS.If, in stage 404, it is determined that the traffic to the device is not suitable for a higher QoS level, then in stage 409, the device is assigned to the second port number range, and in stage 410, the device is provided with a lower QoS level. Periodically, in stage 407, it is determined whether a device needs a higher QoS level. If the device still needs a higher QoS level, then it remains assigned to the first port number range. If it is determined that the device no longer needs a higher QoS level, then in stage 408, it is determined whether the device should be switched to a lower QoS level and, if so, it is assigned to a port number in the second port number range. The process continues until the final stage, 411. Referring again to Figure 2, it can be seen that the enhanced NAT process 200 allocates ports 0-16K for IP addresses assigned to a high priority or a higher QoS level. All other IP addresses are assigned to the remaining 16K-64K port spaces. Exposing the 0-16K port space for classification allows sharing the tacit knowledge of the home network 308 with the CMT 303. Additional home traffic classification could be used to assign traffic to the reserved TCP / UDP port range. Multiple TCP / UDP port ranges can be defined in the NAT wanjp to enable multiple different QoS levels. Referring now to Figure 5, there is a diagram illustrating how the enhanced NAT process 200 interacts with the CMTS 303, the gateway 304, and the home network device A, which is part of the home network 308, to provide higher levels of QoS to the home network devices. In the specific example illustrated in Figure 5, the following actions are performed: • Device A communicates with the gateway port {S,443} using the device A port {A,sport}. • Traffic from device A is translated using enhanced NAT process 200 on gateway 304 or B (wanjp) from {A,sport} to {B,nport}. • Then, CMTS 303 or S(server) receive and respond to the traffic. • CMTS 303 or S(server) transmits downstream traffic to {B,nport} of gateway 304 or B (wanjp). • Gateway deNAT traffic 304 or B (wanjp) sends it from {S,443} to {A,sport}. • If the choice of {nport} is limited to a range as explained above, then it is possible to expose this limit to the CMTS 303 QoS engine 309. • Using a DS classifier can assign traffic using the DPORT range to a specific priority or DS service flow. • The DS classifier can ignore IR, but it would be better to dynamically add wanjp (B) as DS DSTIP. • The selection of home classifiers (IP only, service type, DSCP, other) can be used to select the NPORT range to be used, which can be an extension of existing Wi-Fi. A key advantage of the 300 network that has the enhanced NAT process 200 is the ability to identify devices or traffic flows from devices within the home network 308 that need special QoS treatment, such as low latency, or high bandwidth, and be able to ensure that the local broadband gateway, in combination with the BNG / CMTS 303, can deliver this without the need for significant non-scalable QoS signaling across the broadband network. Computer system architecture Figure 6 illustrates a representative computer system 600 in which the methods described herein, or parts thereof, may be implemented as computer-readable code. For example, the gateway 304 and CMTS 303 of Figure 3 may be implemented in whole or in part by a computer system 600 using hardware, software, firmware, non-transient computer-readable media having instructions stored thereon, or a combination thereof, and may be implemented on one or more computer systems or other processing systems. The hardware, software, or any combination thereof may incorporate modules and components used to implement the methods and steps described herein. If programmable logic is used, this logic can be executed on a commercially available processing platform configured by executable software code to become a special-purpose computer or device (e.g., programmable logic array, application-specific integrated circuit, etc.). A person skilled in the art may appreciate that the methods described can be implemented with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframes, linked or clustered computers with distributed functions, and miniature or ubiquitous computers, which can be incorporated into virtually any device. For example, at least a processor and memory can be used to implement the methods described above. A processing unit or device, as described herein, may be a single processor, multiple processors, or combinations thereof. Processing devices may have one or more processor “cores.” The terms “computer program medium,” “computer-readable nontransient medium,” and “computer-usable medium,” as described herein, are generally used to refer to tangible media such as a removable storage unit 618, a removable storage unit 622, and a hard disk installed in the hard disk drive 612. Several embodiments of the present description are described in terms of this representative computer system 600. After reading this description, it will be evident to a person skilled in the relevant art how to implement the present description using other computer systems and / or computer architectures. Although the operations can be described as a sequential process, in fact, some of the operations can be performed in parallel, simultaneously, and / or in a distributed environment, with program code stored locally or remotely for access by single- or multi-processor machines. Furthermore, in some embodiments, the order of operations can be rearranged without departing from the spirit of the subject matter described. The 604 processor device can be a special-purpose or general-purpose processor device specifically configured to perform the functions described herein. The 604 processor device can be connected to a 606 communications infrastructure, such as a bus, message queue, network, multi-core message-passing scheme, etc. The network can be any network suitable for performing the functions as described herein and can include a local area network (“LAN”), a wide area network (“WAN”), a wireless network (by ML / (for example, “Wi-Fi”), a mobile communication network, a satellite network, the Internet, fiber optics, coaxial cable, infrared, radio frequency (“RF”), or any combination thereof. Other suitable network types and configurations will be obvious to those skilled in the relevant art. The computer system 600 may also include main memory 608 (for example, random access memory, read-only memory, etc.), and may also include secondary memory 610. Secondary memory 610 may include the hard disk drive 612 and a removable storage device 614, such as a floppy disk drive, a magnetic tape drive, an optical disk drive, flash memory, etc. Removable storage unit 614 can read from and / or write to removable storage unit 618 in a known manner. Removable storage unit 618 may include a removable storage medium that can be read from and written to by removable storage unit 614. For example, if removable storage unit 614 is a floppy disk drive or a universal serial bus port, removable storage unit 618 may be a floppy disk or a portable flash drive, respectively. In one configuration, removable storage unit 618 may be a computer-readable, non-transient recording medium. In some embodiments, secondary memory 610 may include alternative means to allow computer programs or other instructions to be loaded into the computer system 600, for example, a removable storage unit 622 and an interface 620. Examples of such means may include a program cartridge and cartridge interface (for example, as found in video game systems), a removable memory chip (for example, EEPROM, PROM, etc.) and an associated connector, and other removable storage units 622 and interfaces 620, as will be evident to those skilled in the relevant art. Data stored in the computer system 600 (for example, in main memory 608 and / or secondary memory 610) can be stored on any suitable computer-readable media, such as optical storage (for example, a compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (for example, a hard drive). The data can be configured in any suitable database configuration, such as a relational database, a Structured Query Language (SQL) database, a distributed database, an object database, etc. Suitable configurations and storage types will be obvious to those skilled in the relevant art. The 600 computer system may also include a 524 communications interface. The 624 communications interface can be configured to allow software and data to be transferred between the 600 computer system and external devices. Illustrative 624 communications interfaces may include a modem, a network interface (for example, an Ethernet card), ML / t / ZUZZ / U í 411 Z a communications port, a PCMCIA slot and card, etc. The software and data transferred through the communications interface 624 can be in the form of signals, which can be electronic, electromagnetic, optical, or other signals that will be evident to those skilled in the relevant technology. The signals can travel through a communications path 626, which can be configured to carry the signals and can be implemented using wire, cable, fiber optics, a telephone line, a cellular telephone link, a radio frequency link, etc. The computer system 600 may also include a display interface 602. The display interface 602 may be configured to allow data to be transferred between the computer system 600 and an external display 630. The display interfaces 602 may include a high-definition multimedia interface (HDMI), digital visual interface (DVI), video graphics array (VGA), etc. The display 630 may be any type of display suitable for showing the data transmitted through the display interface 602 of the computer system 600, including a cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED) display, capacitive touchscreen, thin-film transistor (TFT) display, etc.The computer program medium and the usable computer medium may refer to memories, such as main memory 608 and secondary memory 610, which may be memory semiconductors (e.g., DRAM, etc.). These computer program products may be a means of providing software to the computer system 600. Computer programs (e.g., computer control logic) may be stored in main memory 608 and / or secondary memory 610. Computer programs may also be received through the communications interface 624. Such computer programs, when executed, may allow the computer system 600 to implement the methods described herein. In particular, the computer programs, when executed, may allow the processing device 604 to implement the methods illustrated in Figures 2-6, as described herein.Therefore, such computer sayings may represent controllers of the computer system 600. When the present description is implemented by means of software, the software may be stored in a computer program product and loaded into the computer system 600 by means of the removable storage unit 614, the interface 620 and the hard disk drive 612, or the communications interface 624. The 604 processing device may comprise one or more modules or engines configured to perform the functions of the 600 computer system. Each of the modules or engines may be implemented using hardware and, in some cases, may also use software. ML / such as that corresponding to the program code and / or programs stored in main memory 608 or secondary memory 610. In such cases, the program code may be compiled by the processing device 604 (for example, by a compilation module or engine) before execution by the computer system hardware 600. For example, the program code may be source code written in a programming language that is translated into a lower-level language, such as assembly language or machine code, for execution by the processing device 604 and / or any additional hardware component of the computer system 600.The compilation process may include the use of lexical analysis, preprocessing, parsing, semantic analysis, syntax-directed translation, code generation, code optimization, and any other technique that may be suitable for translating the program code into a lower-level language suitable for controlling the computer system 600 to perform the functions described herein. It will be evident to those skilled in the relevant art that such processes result in the computer system 600 being a specially configured computer system programmed solely to perform the functions described above. The techniques consistent with the present description provide, among other features, systems and methods for a network with NAT capabilities that enhance low-latency QoS prioritization. Although various illustrative examples of the system and method described above have been presented, they are intended for illustrative purposes only and are not intended as limitations. They are not exhaustive and do not restrict the description to the precise form described. Modifications and variations are possible based on the above or may be acquired through practical application of the description without departing from its breadth or scope.
Claims
NOVELTY OF THE INVENTION Having described the present invention as above, it is considered novel and, therefore, the content contained in the following is claimed as property: CLAIMS 1.A method for providing different levels of quality of service (“QoS”) to devices on a local area network (“LAN”) that connects to the Internet through a server and a network address translation (“NAT”) enabled gateway having an IR address and ports, comprising: dividing the ports on the gateway into a number of ranges N, where N is a minimum of two, such that there is at least a first range of port numbers and a second range of port numbers; assigning classified traffic identified as suitable for a higher level of QoS to the first range of port numbers; assigning classified traffic identified as suitable for a lower level of QoS to the second range of port numbers; and providing devices on the LAN with a level of QoS depending on the port numbers to which they are assigned.
2. A method according to claim 1, wherein the ports on the gateway are divided into the number of ranges N, wherein N is substantially greater than two, and the number of ranges N of port numbers provide additional levels of QoS.
3. A method according to claim 1, wherein the highest level of QoS is a low latency function.
4. A method according to claim 1, wherein the highest level of QoS is a function of higher bandwidth.
5. A method according to claim 1, wherein the allocation of traffic to ports includes specific DSCP markers found in packets received at the NAT-enabled gateway.
6. A method according to claim 1, wherein the ports are transmission control protocol (“TCP”) ports.
7. A method according to claim 1, wherein the ports are user datagram protocol (“UDP”) ports.
8. A Network Address Translation (“NAT”)-enabled gateway for connecting devices on a local area network (“LAN”) to the Internet through a server, comprising: an Internet address to enable the gateway to be addressed by the server and the LAN; a plurality of ports on the gateway to enable the gateway to receive and transmit data to and from the server and the LAN; a processor for partitioning the gateway ports into several ranges N, wherein N is a minimum of two, such that there is at least a first range of port numbers and a second range of port numbers; assigning classified traffic identified as suitable for a higher level of QoS to the first range of port numbers; and assigning classified traffic identified as suitable for a lower level of QoS to the second range of port numbers.and provide devices on the LAN with a QoS level depending on the port numbers to which they are assigned.
9. A NAT-enabled gateway device according to claim 8, wherein the processor divides the ports in the gateway into the number of ranges N, wherein N is substantially greater than two, and the number of ranges N of port numbers provide additional levels of QoS.
10. A NAT-enabled gateway device according to claim 8, further comprising a DHCP server.
11. A NAT-enabled gateway device according to claim 8, wherein the Internet address is a wide area network (“WAN”) IP address.
12. A NAT-enabled gateway device according to claim 11, further comprising a cable modem IP address.
13. A NAT-enabled gateway device according to claim 12, which connects to the Internet via a cable modem termination system (“CMTS”).
14. A NAT-enabled gateway device according to claim 13, which connects to the Internet via a commercial-grade network address translation system (“CGNAT”).
15. A NAT-enabled gateway device according to claim 8, wherein the ports on the gateway are divided into the number of ranges N, wherein N is substantially greater than two, and the number of ranges N of port numbers provide additional levels of QoS.
16. A NAT-enabled gateway device according to claim 8, wherein the highest QoS level is a function of low latency or higher bandwidth.
17. A NAT-enabled gateway device according to claim 8, wherein the port-to-traffic mapping includes specific Differentiated Services Code Point (“DSCP”) markers found in packets received at the NAT-enabled gateway.
18. A NAT-enabled gateway device according to claim 8, wherein the ports are Transmission Control Protocol (“TCP”) ports.
19. A NAT-enabled gateway device according to claim 8, wherein the ports are User Datagram Protocol (“UDP”) ports.
20. A NAT-enabled gateway device according to claim 13, wherein the gateway is a BNG.