BR112015017876B1 - Método de partilha de carga e dispositivo de partilha de carga - Google Patents

Método de partilha de carga e dispositivo de partilha de carga Download PDF

Info

Publication number
BR112015017876B1
BR112015017876B1 BR112015017876-6A BR112015017876A BR112015017876B1 BR 112015017876 B1 BR112015017876 B1 BR 112015017876B1 BR 112015017876 A BR112015017876 A BR 112015017876A BR 112015017876 B1 BR112015017876 B1 BR 112015017876B1
Authority
BR
Brazil
Prior art keywords
public network
cpus
user
user devices
address
Prior art date
Application number
BR112015017876-6A
Other languages
English (en)
Other versions
BR112015017876A2 (pt
Inventor
Feng Wang
Guixiang Chen
Original Assignee
Zte Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zte Corporation filed Critical Zte Corporation
Publication of BR112015017876A2 publication Critical patent/BR112015017876A2/pt
Publication of BR112015017876B1 publication Critical patent/BR112015017876B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2061
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2532Clique of NAT servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

MÉTODO DE PARTILHA DE CARGA E DISPOSITIVO DE PARTILHA DE CARGA. É providenciado um método de partilha de carga, incluindo que endereços de rede pública sejam configurados sob a forma de grupos de endereços; após o tráfego transmitido por dispositivos de usuário ser recebido, os dispositivos de usuário sejam agrupados de acordo com os modelos de tráfego transmitidos pelos dispositivos de usuário; as CPU aloquem os endereços de rede pública aos dispositivos de usuário e traduzam endereços de rede privada dos dispositivos de usuário para os endereços de rede pública, em que cada um dos grupos de endereços inclui vários blocos de endereços, cada um dos vários blocos de endereços corresponde a uma CPU, cada grupo de usuário inclui vários blocos de usuários, e cada um dos vários blocos de usuários corresponde a uma CPU. Também é providenciado um dispositivo de partilha de carga. Assim, pode ser evitada a partilha desigual de recursos de endereços de rede pública entre várias CPUs e cargas de dispositivos de usuário, desta forma não só melhorando a velocidade de processamento das CPUs para a tradução de endereços como também obtendo um excelente efeito de partilha de carga.

Description

CAMPO TÉCNICO
[001] A presente revelação se relaciona com uma tecnologia de partilha de carga em comunicação em rede e particularmente a um método e dispositivo de partilha de carga.
ANTECEDENTES
[002] Tradução de Endereços de Rede (NAT), que é uma tecnologia de tradução para traduzir um endereço privado para um endereço de Protocolo de Internet (IP) legal, tem sido amplamente aplicada em vários tipos de métodos de acesso de Internet e vários tipos de redes. NAT permite a vários computadores de redes privadas partilhar uma ligação de Internet, resolvendo assim bem o problema da escassez de recursos de endereços IP públicos.
[003] Um dispositivo NAT de Grande Porte (CGN), que é um dispositivo usado em uma operadora, melhora a transição suave da versão 4 de Protocolo de Internet (IPv4) para a versão 6 de Protocolo de Internet (IPv6) e promove um processo de evolução ao integrar vários mecanismos de evolução incluindo tunelamento e NAT. Formas de tradução de CGN incluem: tradução de um endereço IPv4 de rede privada para um endereço IPv4 de rede pública, tradução de um endereço IPv4 de rede privada para um endereço IPv6 e tradução de endereço IPv6 para um endereço IPv4 de rede pública e assim por diante. Uma unidade de processamento independente é maioritariamente aplicada para melhorar o desempenho CGN. A unidade de processamento pode ser uma unidade de processamento de núcleo simples ou uma unidade de processamento multinúcleo. Atualmente, a unidade de processamento multinúcleo aplica uma forma de partilha de carga de forma a otimizar o desempenho da uma Unidade de Processamento Central (CPU) da unidade de processamento multinúcleo.
[004] A partilha de carga inclui partilha de carga de recursos de endereços de rede pública e partilha de carga de dispositivos de usuário. Os recursos dos endereços de rede pública podem ser endereçados por hashing para diferentes CPUs por meio de um método HASH de forma a ser implementado um efeito de partilha de carga equilibrada para alocação dos recursos dos endereços de rede pública e dispositivos de usuário. Contudo, é necessário um desempenho relativamente elevado para uma unidade de encaminhamento e uma unidade de processamento de CGN se for realizado endereçamento por hashing por um único recurso de endereço de rede pública. Se o endereçamento por hashing for realizado por um bloco de endereços de rede pública fixo, há uma diferença de desempenho relativamente grande de tradução de endereços de CGN por causa de números diferentes de unidades de processamento de CGN e diferentes números de CPUs incluídos em cada unidade de processamento, e há um problema de fraca partilha de carga.
SUMÁRIO
[005] Tendo isto em conta, um propósito principal das formas de realização da presente revelação é providenciar um método e dispositivo de partilha de carga de forma a resolver o problema de partilha de carga desigual de NAT em várias CPUs.
[006] Uma solução técnica de uma forma de realização da presente revelação é implementada da seguinte forma para alcançar o propósito.
[007] Uma forma de realização da presente revelação providencia um método de partilha de carga. O método inclui que: endereços de rede pública sejam configurados sob a forma de grupos de endereços; após o tráfego transmitido por dispositivos de usuário ser recebido, os dispositivos de usuário sejam agrupados de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário; as Unidade de Processamento Central (CPU) aloquem os endereços de rede pública aos dispositivos de usuário e traduzam endereços de rede privada dos dispositivos de usuário para os endereços de rede pública, em que cada um dos grupos de endereços inclui vários blocos de endereços, cada um dos vários blocos de endereços corresponde a uma CPU, cada grupo de usuário inclui vários blocos de usuário, e cada um dos vários blocos de usuário corresponde a uma CPU;
[008] Na solução, o método pode ainda incluir que: uma tabela de marcador de partilha de carga de recursos de endereços de rede pública seja gerada de acordo com ligações de dados de recursos de endereços de rede correspondendo aos grupos de endereços; uma tabela de marcador de partilha de carga de recursos de endereços de rede pública seja gerada de acordo com ligações de dados de usuário correspondendo a grupos de usuário, em que as ligações de dados de recursos de endereços são geradas de acordo com os grupos de endereços e as ligações de dados de usuário são geradas de acordo com os grupos de usuário; informação de controle de partilha de carga gerada de acordo com a tabela de marcador de partilha de carga de recursos de endereços de rede pública e a tabela de marcador de partilha de carga de dispositivo de usuário seja transmitida às CPUs; correspondentemente, a operação pela qual as CPUs alocam os endereços de rede pública para os dispositivos de usuário e traduzem endereços de rede privada dos dispositivos de usuário para os endereços de rede pública possa incluir que: as CPUs aloquem, de acordo com a informação de controle de partilha de carga recebida, os endereços de rede pública para os dispositivos de usuário, e traduzam os endereços de rede privada dos dispositivos de usuário para os endereços de rede pública.
[009] Na solução, cada uma das CPUs pode corresponder a substancialmente o mesmo número de endereços de rede pública em cada um dos grupos de endereços e um método de implementação específico pode incluir que: um número de endereços de rede pública seja alocado a cada uma das CPUs, em que o número dos endereços de rede pública alocados é o produto da multiplicação de um valor de número inteiro, que é adquirido dividindo o número total de endereços de rede pública de um grupo de endereços atual pelo quadrado do número de CPUs, pelo número de CPUs; se ainda restarem endereços de rede pública, um número de endereços de rede pública seja alocado a cada uma das CPUs, em que o número dos endereços de rede pública alocados é um valor de número inteiro adquirido dividindo os restantes endereços de rede pública pelo número de CPUs; se ainda restarem endereços de rede pública, os restantes endereços de rede pública em cada um dos grupos de endereços seja transmitido como um todo de forma a fazer cada uma das CPUs corresponder a substancialmente o mesmo número de endereços de rede pública.
[010] Na solução, as CPUs podem partilhar substancialmente o mesmo número de dispositivos de usuário e um método de implementação específico pode incluir que: um número de dispositivos de usuário seja alocado a cada uma das CPUs, em que o número dos dispositivos de usuário alocados é o produto da multiplicação de um valor de número inteiro, que é adquirido dividindo o número total de dispositivos de usuário de um grupo de usuário atual pelo quadrado do número de CPUs, pelo número de CPUs; se ainda restarem dispositivos de usuário, um número de dispositivos de usuário seja alocado a cada uma das CPUs, em que o número dos dispositivos de usuário alocados é um valor de número inteiro adquirido dividindo os restantes dispositivos de usuário pelo número de CPUs; se ainda restarem dispositivos de usuário, os restantes dispositivos de usuário em cada um dos grupos de usuário sejam transmitidos como um todo de forma a alocar substancialmente o mesmo número de dispositivos de usuário a cada uma das CPUs.
[011] Na solução, cada um dos grupos de endereços pode corresponder a uma ligação de dados de recursos de endereços de rede pública, o número de nodos da ligação de dados de recursos de endereços de rede pública pode ser o número de CPUs, cada um dos nodos pode corresponder a uma CPU, e cada um dos nodos pode incluir uma marca de bloco e uma marca de extremidade.
[012] Na solução, cada grupo de usuário pode corresponder a uma ligação de dados de usuário, o número de nodos da ligação de dados de usuário pode ser o número de CPUs, cada um dos nodos pode corresponder a uma CPU, e cada um dos nodos pode incluir uma marca de bloco e uma marca de extremidade.
[013] Uma forma de realização da presente revelação providencia ainda um dispositivo de partilha de carga. Um dispositivo de partilha de carga inclui um módulo de configuração de partilha de carga, um módulo de controle de partilha de carga e CPUs, em que o módulo de configuração de partilha de carga é configurado para configurar endereços de rede pública sob a forma de grupos de endereços, e para agrupar dispositivos de usuário de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário; em que cada um dos grupos de endereços inclui vários blocos de endereços, cada um dos vários blocos de endereços corresponde a uma CPU, cada grupo de usuário inclui vários blocos de usuário, e cada um dos vários blocos de usuários corresponde a uma CPU. o módulo de controle de partilha de carga é configurado para transmitir informação de controle de partilha de carga às CPUs; e as CPUs são configuradas para alocar os endereços de rede pública para os dispositivos de usuário de acordo com a informação de controle de partilha de carga recebida, e traduzir endereços de rede privada dos dispositivos de usuário para os endereços de rede pública.
[014] Na solução, o módulo de controle de partilha de carga pode ser configurado para gerar, de acordo com ligações de dados de recursos de endereços de rede pública, uma tabela de marcador de partilha de carga de recursos de endereços de rede pública; e para gerar, de acordo com ligações de dados de usuário, uma tabela de marcador de partilha de carga de dispositivo de usuário, e entregar às CPUs a informação de controle de partilha de carga gerada de acordo com a tabela de marcador de partilha de carga de recursos de endereços de rede pública e a tabela de marcador de partilha de carga de dispositivo de usuário.
[015] Na solução, cada um dos grupos de endereços pode corresponder a uma ligação de dados de recursos de endereços de rede pública, o número de nodos da ligação de dados de recursos de endereços de rede pública pode ser o número de CPUs, cada um dos nodos pode corresponder a uma CPU, e cada um dos nodos pode incluir uma marca de bloco e uma marca de extremidade; cada grupo de usuários pode corresponder a uma ligação de dados de usuário, o número de nodos da ligação de dados de usuário pode ser o número de CPUs, cada um dos nodos pode corresponder a uma CPU, e cada um dos nodos pode incluir uma marca de bloco e uma marca de extremidade.
[016] Na solução, o módulo de configuração de partilha de carga e o módulo de controle de partilha de carga podem ser configurados em um dispositivo CGN.
[017] De acordo com um método e dispositivo de partilha de carga providenciados pelas formas de realização da presente revelação, endereços de rede pública são configurados sob a forma de grupos de endereços de forma que CPUs correspondam substancialmente ao mesmo número de endereços de rede pública em cada um dos grupos de endereços; após o tráfego transmitido por dispositivos de usuário ser recebido, os dispositivos de usuário são agrupados de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário de forma que as CPUs partilhem substancialmente o mesmo número de dispositivos de usuário; as CPU alocam os endereços de rede pública aos dispositivos de usuário e traduzem endereços de rede privada dos dispositivos de usuário para os endereços de rede pública,resolvendo assim o problema de partilha de carga desigual de recursos de endereços de rede pública em diferentes CPUs e cargas de dispositivos de usuário, ao mesmo tempo que se reduz a influência causada pela adição e deleção de alguns recursos de endereços de rede pública e dispositivos de usuário no desempenho geral de CGN. As soluções técnicas providenciadas pelas formas de realização da presente revelação são capazes de não só de melhorar a velocidade de processamento das CPUs para tradução de endereços, como também de implementar um efeito de cargas equilibradas em diferentes CPUs. BREVE DESCRIÇÃO DOS DESENHOS A Fig. 1 é um diagrama esquemático de um processo de implementação de um método de partilha de carga de acordo com uma forma de realização da presente revelação; A Fig. 2 é um diagrama estrutural de uma ligação de dados de recursos de endereços de rede pública de acordo com uma forma de realização da presente revelação; A Fig. 3 é um diagrama esquemático de uma ligação de dados de usuário de acordo com uma forma de realização da presente revelação; A Fig. 4 é um diagrama estrutural de componentes de um dispositivo de partilha de carga de acordo com uma forma de realização da presente revelação; e a Fig. 5 é um diagrama esquemático de partilha de carga de CGN de acordo com uma forma de realização da presente revelação.
DESCRIÇÃO DETALHADA
[018] A presente revelação será de seguida explicada em maior detalhe em combinação com os desenhos e formas de realização específicas anexos.
[019] A Fig. 1 é um diagrama esquemático de um processo de implementação de um método de partilha de carga de acordo com uma forma de realização da presente revelação. Tal como ilustrado na Fig. 1, o método inclui os seguintes passos.
[020] O Passo 101 inclui que endereços de rede pública sejam configurados sob a forma de grupos de endereços; em que cada um dos grupos de endereços inclui vários blocos de endereços e cada um dos blocos de endereços corresponde a uma CPU.
[021] Vários grupos de endereços são definidos na forma de realização da presente revelação. O número de grupos de endereços pode ser determinado de acordo com um requisito prático. Cada um dos grupos de endereços inclui vários endereços de rede pública. Cada um dos grupos de endereços pode incluir o mesmo número de endereços de rede pública, e pode também incluir diferentes números de endereços de rede pública, e cada um dos grupos de endereços inclui endereços de rede pública correspondendo a cada uma das CPUs. Cada uma das CPUs corresponde substancialmente ao mesmo número de endereços de rede pública em cada um dos grupos de endereços. Por exemplo, há três grupos de endereços que são respectivamente grupo de endereços A, grupo de endereços B e grupo de endereços C, duas CPUs que são respectivamente CPU1 e CPU2, e doze endereços de rede pública. Aqui, o número de endereços de rede pública incluído respectivamente no grupo de endereços A, grupo de endereços B e grupo de endereços C pode ser configurado de forma flexível. Por outras palavras, o grupo de endereços A, grupo de endereços B e grupo de endereços C pode incluir um número diferente de endereços de rede pública. Por exemplo, o grupo de endereços A inclui oito endereços de rede pública, o grupo de endereços B inclui três endereços de rede pública e o grupo de endereços C inclui um endereço de rede pública. Idealmente, o grupo de endereços A, grupo de endereços B e grupo de endereços C incluem respectivamente quatro endereços de rede pública, e em cada um dos grupos de endereços dois endereços de rede pública correspondem a CPU1 e dois endereços de rede pública correspondem a CPU2.
[022] O Passo 102 inclui que após o tráfego transmitido por dispositivos de usuário ser recebido, os dispositivos de usuário sejam agrupados de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário. As CPUs alocam os endereços de rede pública para os dispositivos de usuário, e traduzem endereços de rede privada dos dispositivos de usuário para os endereços de rede pública, em que cada grupo de usuário inclui vários blocos de usuário e cada um dos vários blocos de usuário corresponde a uma CPU. Os modelos de tráfego podem ser modelos de tráfego aplicados em uma tecnologia de transmissão existente.
[023] Aqui, quando os dispositivos de usuário são agrupados, as CPUs são feitas para partilhar substancialmente o mais possível o mesmo número de dispositivos de usuário de forma a assegurar cargas equilibradas das CPUs. Os endereços de rede pública alocados pelas CPUs para os dispositivos de usuários são dos endereços de rede pública correspondendo às CPUs nos grupos de endereços.
[024] Especificamente, as CPUs alocam os endereços de rede pública para os dispositivos de usuários de acordo com a informação de controle de partilha de carga, em que a informação de controle de partilha de carga inclui uma tabela de marcador de partilha de carga de recursos de endereços de rede pública gerada de acordo com ligações de dados de recursos de endereços de rede pública e uma tabela de marcador de partilha de carga de dispositivo de usuário gerada de acordo com ligações de dados de usuário. Aqui, as ligações de dados de recursos de endereços de rede pública referem-se a estruturas de tabela de ligações para registrar as condições de endereços de rede pública alocados às CPUs nos grupos de endereços. As ligações de dados de usuário referem-se a estruturas de tabela de ligações incluindo condições de carga dos dispositivos de usuário.
[025] Em aplicação prática, a operação pela qual os endereços de rede pública são configurados sob a forma dos grupos de endereços é como mostrada na Fig. 2. Todos os endereços de rede pública pré-configurados são divididos sob a forma de grupos de endereços. Aqui, os grupos de endereços podem incluir o mesmo número total de endereços de rede pública ou podem incluir diferentes números totais de endereços de rede pública. Contudo, cada uma das CPUs corresponde a vários grupos de endereços, e as CPUs devem corresponder substancialmente ao mesmo número de endereços de rede pública em cada um dos grupos de endereços. Especificamente, um método para alcançar substancialmente o mesmo número de endereços de rede pública correspondendo a CPUs para cada um dos grupos de endereços após um grupo de endereços ser selecionado inclui que: endereços de rede pública sejam alocados por uma primeira vez; um número de endereços de rede pública sejam alocados a cada uma das CPUs, em que o número dos endereços de rede pública alocados na primeira vez é o produto do número de CPUs multiplicado por um valor de número inteiro, que é adquirido dividindo o número total de endereços de rede pública de um grupo de endereços atual pelo quadrado do número de CPUs; se ainda restarem endereços de rede pública, endereços de rede pública sejam alocados por uma segunda vez para alocar um número de endereços de rede pública a cada uma das CPUs, em que o número dos endereços de rede pública alocados na segunda vez é um valor de número inteiro adquirido dividindo os restantes endereços de rede pública pelo número de CPUs; se ainda restarem endereços de rede pública, os restantes endereços de rede pública sejam processados separadamente; contudo, no máximo um endereço de rede pública é alocado a cada uma das CPUs durante um processo de alocação, ou seja, zero ou um endereço de rede pública é alocado a cada uma das CPUs durante a terceira alocação dos endereços de rede pública.
[026] A operação em que os restantes endereços de rede pública são processados separadamente inclui que os restantes endereços de rede pública em cada um dos grupos de endereços sejam alocados como um todo de forma que cada uma das CPUs corresponda substancialmente ao mesmo número de endereços de rede pública.
[027] Aqui, os restantes endereços de rede pública são processados como um todo porque uma carga na CPU A é relativamente pesada se houver um endereço de rede pública restante respectivamente no grupo de endereços A, grupo de endereços B e grupo de endereços C e cada um dos grupos de endereços alocar o seu restante um endereço de rede pública à CPU A. Se os restantes endereços de rede pública forem alocados como um todo, o grupo de endereços A pode alocar o restante um endereço de rede pública do grupo de endereços à CPU A, o grupo de endereços B pode alocar o restante um endereço de rede pública do grupo de endereços à CPU B e o grupo de endereços C pode alocar o restante um endereço de rede pública do grupo de endereços à CPU C, alocando assim um número de endereços de rede pública mais equilibrado a cada uma das CPUs.
[028] Como mostrado na Fig. 2, cada um dos grupos de endereços corresponde a uma ligação de dados de recursos de endereços de rede pública. O número de nodos da ligação de dados de recursos de endereços de rede pública é o número de CPUs, e um nodo de cada ligação de dados de recursos de endereços de rede pública corresponde a uma CPU. Cada um dos nodos inclui uma marca de bloco e uma marca de extremidade, em que a marca de bloco é para registrar blocos de endereços e o número de blocos de endereços alocado por uma primeira vez por uma CPU correspondendo ao nodo associado, e para registrar blocos de endereços e o número de blocos de endereços alocado por uma segunda vez pela CPU correspondendo ao nodo associado.
[029] A marca de extremidade é para registrar o número de endereços de rede pública adquirido pela CPU correspondendo ao nodo associado da terceira alocação. Adicionalmente, zero ou um endereço de rede pública é adquirido da terceira alocação, ou seja, a marca de extremidade de cada um dos nodos é 0 ou 1.
[030] Aqui, os grupos de endereços usam os blocos de endereços como unidades, e o tamanho dos blocos de endereços é alterável. O tamanho dos blocos de endereços representa o número de endereços de rede pública incluídos em cada um dos vários blocos de endereços. O tamanho dos blocos de endereços alocados pela primeira vez é diferente do tamanho dos blocos de endereços alocados pela segunda vez, em que a primeira alocação inclui que um número de endereços de rede pública seja alocado a cada uma das CPUs, em que o número de endereços de rede pública alocados é o produto da multiplicação do número de CPUs por um valor de número inteiro que é adquirido dividindo o número total de endereços de rede pública de um grupo de endereços atual pelo quadrado do número de CPUs, em que o tamanho dos blocos de endereços alocados pela primeira vez é o número das CPUs. O número de blocos de endereços incluídos em cada uma das CPUs é um valor de número inteiro adquirido dividindo o número total de endereços de rede pública de um grupo de endereços pelo quadrado do número de CPUs, de forma que cada uma das CPUs contenha o mesmo número de blocos de endereços.
[031] Deve ser aqui referido que o tamanho dos blocos de endereços alocados pela primeira vez está relacionado com várias variáveis incluindo o número de CPUs, o número total de endereços de rede pública nos grupos de endereços e assim por diante. Como tal, o tamanho dos blocos de endereços alocados pela primeira vez pode ser definido como uma função variável. O tamanho dos blocos de endereços alocados pela primeira vez pode ter várias alternativas.
[032] A segunda alocação inclui que se ainda restarem endereços de rede pública após a primeira alocação, um número de endereços de rede pública seja alocado a cada uma das CPUs, em que o número dos endereços de rede pública alocados na segunda alocação é um valor de número inteiro adquirido dividindo o número de endereços de rede pública restantes pelo número de CPUs, em que o número de endereços de rede pública alocados pela segunda vez é um valor de número inteiro adquirido dividindo o número total de endereços de rede pública restantes após a primeira alocação pelo número de CPUs, e cada uma das CPUs inclui um bloco de endereços alocado pela segunda vez.
[033] Se ainda restarem endereços de rede pública após a segunda alocação, os restantes endereços de rede pública são processados separadamente. A operação de processar separadamente os restantes endereços de rede pública inclui que: os restantes endereços de rede pública em cada um dos grupos de endereços sejam alocados como um todo de forma que as CPUs correspondam substancialmente ao mesmo número de endereços de rede pública. No máximo um endereço de rede pública é alocado a cada uma das CPUs durante um processo de alocação, ou seja zero ou um endereço de rede pública é alocado a cada uma das CPUs durante o processo de alocação.
[034] Especificamente, todos os grupos de endereços podem ser mantidos por uma tabela de ligação de dados. Cada um dos nodos da tabela de ligação de dados corresponde a todos os grupos de endereços e corresponde a uma CPU. O número de nodos da tabela de ligação é o número de CPUs, e cada um dos nodos da tabela de ligação inclui um bloco e uma marca, bem como uma extremidade e uma marca.
[035] Aqui, o bloco e a marca de cada um dos nodos da tabela de ligação são para registrar a soma dos números totais dos endereços de rede pública alocados pela primeira vez e pela segunda vez correspondendo às CPUs em cada um dos grupos de endereços. Ou seja, o bloco e a marca de cada um dos nodos da tabela de ligação são para registrar a soma dos produtos da multiplicação dos tamanhos dos blocos de endereços pelo número dos blocos de endereços alocados pela primeira vez às correspondentes CPUs nos grupos de endereços, e são para registrar a soma dos produtos da multiplicação dos tamanhos dos blocos de endereços pelo número dos blocos de endereços alocados pela segunda vez às CPUs correspondentes nos grupos de endereços.
[036] Ã extremidade e marca de cada um dos nodos da tabela de ligação são para registrar a soma das marcas de extremidade correspondendo às CPUs nos grupos de endereços.
[037] A tabela de ligação de dados é configurada para julgar uma CPU na qual um endereço de rede pública vai ser adicionado ou deletado. A adição é realizada preferencialmente em uma CPU correspondendo a um nodo tendo uma pequena extremidade e marca se um endereço de rede pública tiver de ser adicionado, e a deleção é realizada preferencialmente em uma CPU correspondendo a um nodo tendo uma grande extremidade e marca se um endereço de rede pública tiver de ser deletado, assegurando assim o equilíbrio da alocação de endereços de rede pública e cargas das CPUs.
[038] Especificamente, a adição é realizada preferencialmente em uma CPU correspondendo a um nodo tendo uma marca de extremidade de 0 se um endereço de rede pública tiver de ser adicionado, e a deleção é realizada preferencialmente em uma CPU correspondendo a um nodo tendo uma marca de extremidade de 1 se um endereço de rede pública tiver de ser deletado aleatoriamente quando for mantido um grupo de endereço único.
[039] A operação de a adição ser realizada preferencialmente na CPU correspondendo ao nodo tendo uma marca de extremidade de 0 se o endereço de rede pública tiver de ser adicionado, e a deleção ser realizada preferencialmente na CPU correspondendo ao nodo tendo uma marca de extremidade de 1 se o endereço de rede pública tiver de ser deletado aleatoriamente quando o grupo de endereço único é mantido inclui que: se o endereço de rede pública tiver de ser adicionado ao grupo de endereços, os endereços de rede pública que restam após a segunda alocação sejam combinados com o endereço de rede pública adicionado, e os endereços de rede pública combinados são alocados por uma primeira vez e por uma segunda vez; se um endereço de rede pública for deletado do grupos de endereços, é procurado um nodo onde um endereço de rede pública pré-deletado está localizado, e se for verificado que uma marca de extremidade do nodo é 1, e se for 1, o endereço de rede pública é deletado e a marca de extremidade do nodo é atualizada de 1 para 0; se não for 1, é executada uma operação em uma situação que o número de endereços de rede pública deletados do grupo de endereços é maior do que o número de blocos de endereços alocados pela primeira vez.
[040] Se o número dos endereços de rede pública deletado do grupo de endereços for maior do que 1 e menor do que ou igual ao número de blocos de endereços alocado pela primeira vez e se endereços de rede pública pré-deletados estiverem distribuídos em diferentes nodos, e marcas de extremidade dos nodos nos quais os endereços de rede pública pré-deletados forem 1, então os endereços de rede pública pré-deletados são deletados e as marcas de extremidade dos nodos nos quais os endereços de rede pública pré-deletados estão distribuídos são atualizadas de 1 para 0. Se nem todos os endereços de rede pública pré-deletados se encontrarem distribuídos por diferentes nodos ou nem todas as marca de extremidade dos nodos onde os endereços de rede pública pré-deletados estiverem distribuídos forem 1, então é executada uma operação em uma situação que o número dos endereços de rede pública deletados do grupo de endereços é maior do que o número dos blocos de endereços alocados pela primeira vez.
[041] Se o número dos endereços de rede pública deletados do grupo de endereços for maior do que o número dos blocos de endereços alocados pela primeira vez, então os endereços de rede pública são realocados de acordo com uma diferença entre o número total dos endereços de rede pública originais do grupo de endereços e o número dos endereços de rede pública pré-deletados.
[042] Por exemplo, quando apenas um grupo de endereços é configurado e o grupo de endereços correspondem a 97 endereços de rede pública no total, a geração e atualização de uma ligação de dados de recursos de endereços de rede pública será providenciada em baixo respectivamente no caso de haver apenas uma CPU ou de haver duas CPUs, ou seja, CPU A e CPU B.
[043] Quando há apenas uma CPU, há um bloco de endereços com um tamanho de 97 e uma marca de extremidade da ligação de dados de recursos de endereços de rede pública é 0.
[044] Quando há duas CPUs, o tamanho dos blocos de endereços é 2. Desde que as duas CPUs correspondam ao nodo A e nodo B, então o nodo correspondendo à CPU A inclui uma marca de bloco A e uma marca de extremidade A, e a CPU B inclui uma marca de bloco B e uma marca de extremidade B. Quando for realizada alocação por uma primeira vez, o tamanho dos blocos de endereços alocados a cada uma das CPUs é 2 e há 24 blocos de endereços. A alocação é realizada uma segunda vez se restar um endereço. Após todos os endereços de rede pública estarem alocados, os tamanhos dos blocos de endereços da marca de bloco A e da marca de bloco B são 2, há 24 blocos de endereços, a marca de extremidade A é 1 e a marca de extremidade B é 0.
[045] Se um endereço de rede pública estiver deletado de momento e o endereço de rede pública pré-deletado estiver na CPU A, então o endereços de rede pública é deletado e a marca de extremidade A é modificada para 0. Se dois endereços de rede pública estiverem deletados, mas ambos os endereços de rede pública pré-deletados estiverem na CPU A, os endereços de rede pública são realocados, com o tamanho dos novos blocos de endereços sendo 2. O tamanho dos blocos de endereços da CPU A e da CPU B é respectivamente 2, e o número de blocos de endereços da CPU A e da CPU B é respectivamente 23, quando a alocação é realizada pela primeira vez. O tamanho dos blocos de endereços da CPU A e da CPU B é respectivamente 1, o número de endereços é respectivamente 1, a marca de extremidade A é 1 e a marca de extremidade B é 0 quando a alocação é realizada pela segunda vez.
[046] Poderá ser entendido do atrás exposto que os recursos de endereço de rede pública são carregados de uma forma equilibrada em diferentes CPUs e a diferença do número de endereços é 1 no máximo e não é afetada pelo número de unidades de processamento. Aqui, cada unidade de processamento pode incluir um número diferente de CPUs. A geração e atualização de uma ligação de dados de usuário são similares, pelo que não serão aqui descritas de forma repetida.
[047] Em uma aplicação prática, os dispositivos de usuário são agrupados. Como mostrado na Fig. 3, todos os dispositivos de usuário transmitindo tráfego dentro de um certo intervalo de tempo são agrupados de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário. Aqui, o número total de dispositivos de usuário incluído em grupos de usuário pode ser diferente. Contudo, cada uma das CPUs corresponde a vários grupos de usuário, e cada uma das CPUs corresponde substancialmente ao mesmo número de dispositivos de usuário em cada grupo de usuário. Um método para alcançar substancialmente o mesmo número de dispositivos de usuário correspondendo a cada uma das CPUs para cada grupo de usuário após um grupo de usuário ser selecionado inclui que: seja realizada alocação por uma primeira vez, um número de dispositivos de usuário seja alocado a cada uma das CPUs, em que o número dos dispositivos de usuário alocados é o produto da multiplicação do número de CPUs por um valor de número inteiro adquirido dividindo o número total de dispositivos de usuário de um grupo de usuários atual pelo quadrado do número das CPUs; seja realizada alocação por uma segunda vez se ainda restarem dispositivos de usuário para alocar um número de dispositivos de usuário a cada uma das CPUs, em que o número dos dispositivos de usuário alocados na segunda alocação é um valor de número inteiro adquirido dividindo o número de dispositivos de usuário restantes pelo número das CPUs; se ainda restarem dispositivos de usuário, os restantes dispositivos de usuário são processados separadamente. A operação de processar separadamente os restantes dispositivos de usuário inclui que: os restantes dispositivos de usuário em cada grupo de usuários sejam alocados como um todo de forma que as CPUs sejam alocadas com substancialmente o mesmo número de dispositivos de usuário. É alocado no máximo um dispositivo de usuário a cada uma das CPUs durante um processo de alocação. Ou seja, é alocado zero ou um dispositivo de usuário a cada uma das CPUs durante o terceiro processo de alocação.
[048] Aqui, os grupos de usuários são divididos por um certo intervalo de tempo como uma unidade.
[049] A Fig. 3 é um diagrama esquemático de dados de usuário de acordo com uma forma de realização da presente revelação. Como mostrado na Fig. 3, terminais de usuário transmitindo tráfego dentro de um certo intervalo de tempo são divididos em vários grupos de usuário, cada um deles correspondendo a uma ligação de dados de usuário. O número de nodos da ligação de dados de usuário é o número de CPUs. Os nodos da ligação de dados de usuário correspondem às CPUs. Cada um dos nodos inclui uma marca de bloco e uma marca de extremidade, em que a marca de bloco é para registrar blocos de usuário e o número dos blocos de usuário alocado por uma primeira vez por uma CPU correspondendo ao nodo associado, e para registrar blocos de usuário e o número de blocos de usuário alocado por uma segunda vez pela CPU correspondendo ao nodo associado.
[050] A marca de extremidade é para registrar o número de dispositivos de usuário adquirido pela CPU correspondendo ao nodo associado da terceira alocação. Adicionalmente, zero ou um dispositivo de usuário é adquirido da terceira alocação.
[051] Aqui, os grupos de usuário usam os blocos de usuário como unidades, e o tamanho dos blocos de usuário é alterável. O tamanho dos blocos de usuário representa o número de dispositivos de usuário incluídos em cada um dos vários blocos de usuário. O tamanho dos blocos de usuário alocados pela primeira vez é diferente do tamanho dos blocos de usuário alocados pela segunda vez, em que a primeira alocação inclui que um número de dispositivos de usuário seja alocado a cada uma das CPUs, em que o número dos dispositivos de usuário alocados é o produto do número de CPUs multiplicado por um valor de número inteiro adquirido dividindo o número total de dispositivos de usuário de um grupo de usuários atual pelo quadrado do número de CPUs, em que o tamanho dos blocos de usuário alocados pela primeira vez é o número das CPUs. O número de blocos de usuário incluídos em cada uma das CPUs é um valor de número inteiro adquirido dividindo o número total de dispositivos de usuário de um grupo de usuário pelo quadrado do número de CPUs sem resto, de forma que o mesmo número de blocos de usuário seja alocado por cada uma das CPUs.
[052] A segunda alocação inclui que, se ainda restarem dispositivos de usuário após a primeira alocação, um número de dispositivos de usuário seja alocado a cada uma das CPUs, em que o número dos dispositivos de usuário alocados desta vez é um valor de número inteiro adquirido dividindo o número de dispositivos de usuário restantes pelo número de CPUs, em que o número dos dispositivos de usuário alocados pela segunda vez é um valor de número inteiro adquirido dividindo o número de dispositivos de usuário restante após a primeira alocação pelo número de CPUs, e um bloco de usuário é alocado pela segunda vez para cada uma das CPUs.
[053] Se ainda restarem dispositivos de usuário após a segunda alocação, os restantes dispositivos de usuário são processados separadamente. A operação de processar separadamente os restantes dispositivos de usuário inclui que os restantes dispositivos de usuário em cada grupo de usuário sejam alocados como um todo de forma que as CPUs aloquem substancialmente o mesmo número de dispositivos de usuário. No máximo um dispositivo de usuário é alocado a cada uma das CPUs durante um processo de alocação, ou seja, zero ou um dispositivo de usuário é alocado a cada uma das CPUs durante o processo de alocação.
[054] Especificamente, todos os grupos de usuário podem ser mantidos por uma tabela de ligação de dados de grupo de usuário. Cada um dos nodos da tabela de ligação corresponde a todos os grupos de usuário e corresponde a uma CPU. O número de nodos da tabela de ligação é o número de CPUs, e cada um dos nodos da tabela de ligação inclui um bloco e uma marca bem como uma extremidade e uma marca, em que se um dispositivo de usuário tiver de ser adicionado o dispositivo de usuário pré-adicionado é classificado como um novo grupo de usuário usando um certo tempo como unidade. Se um dispositivo de usuário tiver de ser deletado, uma CPU correspondendo a um nodo com uma grande extremidade e marca é deletada preferencialmente.
[055] O bloco e marca de cada um dos nodos da tabela de ligação são para registrar a soma dos números totais dos dispositivos de usuário alocados pela primeira vez e pela segunda vez correspondendo às CPUs em cada grupo de usuário. Ou seja, o bloco e marca de cada uma dos nodos da tabela de ligação são para registrar a soma dos produtos dos tamanhos dos blocos de usuário multiplicados pelo número dos blocos de usuário alocados pela primeira vez pelas correspondentes CPUs nos grupos de endereços, e são para registrar a soma dos produtos dos tamanhos dos blocos de usuário multiplicados pelo número dos blocos de usuário alocados pela segunda vez pelas CPUs correspondentes.
[056] Ã extremidade e marca de cada um dos nodos da tabela de ligação são para registrar a soma das marcas de extremidade correspondendo às CPUs nos grupos de usuário.
[057] A tabela de ligação de dados de grupo de usuário é configurada para julgar uma CPU na qual um dispositivo de usuário deletado. É realizada deleção preferencialmente em uma CPU correspondendo a um nodo com uma grande extremidade e marca se um dispositivo de usuário tiver de ser deletado. Especificamente, a deleção é realizada preferencialmente em uma CPU correspondendo a um nodo com uma marca de extremidade de 1 se um dispositivo de usuário tiver de ser deletado aleatoriamente quando é mantido um grupo de usuário único.
[058] A operação da deleção ser realizada preferencialmente na CPU correspondendo ao nodo com uma marca de extremidade de 1 se o dispositivo de usuário tiver de ser deletado aleatoriamente quando é mantido o grupo de usuário único inclui que: se um dispositivo de usuário for deletado do grupo de usuário, é procurado um nodo onde um dispositivo de usuário pré-deletado está localizado, e se for verificado que uma marca de extremidade do nodo é 1, e se for 1, então o dispositivo de usuário é deletado e a marca de extremidade do nodo é atualizada de 1 para 0; se não for 1, é executada uma operação em uma situação que o número de dispositivos de usuário deletados do grupo de usuário é maior do que o número de blocos de usuário alocados pela primeira vez; se o número dos dispositivos de usuário deletado pelo grupo de usuário for maior do que 1 e menor do que ou igual ao número dos blocos de usuário alocados pela primeira vez e se dispositivos de usuário pré-deletados estiverem distribuídos em diferentes nodos, e marcas de extremidade dos nodos onde os dispositivos de usuário pré-deletados estão distribuídos forem todas 1, então os dispositivos de usuário pré-deletados são deletados e as marcas de extremidade dos nodos onde os dispositivos de usuário pré-deletados estão distribuídos são atualizadas de 1 para 0. Se os dispositivos de usuário pré-deletados não estiverem distribuídos em diferentes nodos ou nem todas as marca de extremidade dos nodos onde os dispositivos de usuário pré-deletados estão distribuídos forem 1, então é executada uma operação em uma situação que o número dos dispositivos de usuário deletados pelo grupo de usuário é maior do que o número dos blocos de usuário alocados pela primeira vez.
[059] Se o número dos dispositivos de usuário deletados do grupo de usuário for maior do que o número dos blocos de usuário alocados pela primeira vez, então os dispositivos de usuário são realocados de acordo com uma diferença entre o número total dos dispositivos de usuário originais do grupo de usuário e o número dos dispositivos de usuário pré-deletados.
[060] Pode ser entendido a partir do atrás exposto que recursos dos dispositivos de usuário são carregados de uma forma equilibrada em diferentes CPUs, e a maior diferença do número dos dispositivos de usuário é 1. A geração e atualização de uma ligação de dados de usuário são similares à geração e atualização da ligação de dados de recursos de endereços de rede pública, e não serão aqui descritas de forma repetida.
[061] A Fig. 4 é um diagrama estrutural de componentes de um dispositivo de partilha de carga de acordo com uma forma de realização da presente revelação. Como mostrado na Fig. 4, o dispositivo inclui um módulo de configuração de partilha de carga 41, um módulo de controle de partilha de carga 42 e CPUs 43, em que o módulo de configuração de partilha de carga 41 é configurado para configurar endereços de rede pública sob a forma de grupos de endereços, e é ainda configurado para agrupar dispositivos de usuário de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário; em que cada um dos grupos de endereços inclui vários blocos de endereços, cada um dos vários blocos de endereços corresponde a uma CPU, cada grupo de usuários inclui vários blocos de usuário, e cada um dos vários blocos de usuários corresponde a uma CPU; e o módulo de controle de partilha de carga 42 é configurado para transmitir informação de controle de partilha de carga às CPUs 43 de forma a controlar as CPUs para partilhar cargas.
[062] O módulo de controle de partilha de carga 42 é especificamente configurado para gerar, de acordo com ligações de dados de recursos de endereços de rede pública, uma tabela de marcador de partilha de carga de recursos de endereços de rede pública; e para gerar, de acordo com ligações de dados de usuário, uma tabela de marcador de partilha de carga de dispositivo de usuário, e para entregar às CPUs 43 a informação de controle de partilha de carga gerada de acordo com a tabela de marcador de partilha de carga de recursos de endereços de rede pública e a tabela de marcador de partilha de carga de dispositivo de usuário.
[063] As CPUs 43 são configuradas para alocar os endereços de rede pública para os dispositivos de usuário de acordo com a informação de controle de partilha de carga recebida, e traduzir endereços de rede privada dos dispositivos de usuário para os endereços de rede pública.
[064] Especificamente, cada um dos grupos de endereços corresponde a uma ligação de dados de recursos de endereços de rede pública, o número de nodos da ligação de dados de recursos de endereços de rede pública é o número de CPUs, cada um dos nodos corresponde a uma CPU, e cada um dos nodos inclui uma marca de bloco e uma marca de extremidade.
[065] Cada grupo de usuário corresponde a uma ligação de dados de usuário, o número de nodos da ligação de dados de usuário é o número de CPUs, cada um dos nodos corresponde a uma CPU, e cada um dos nodos inclui uma marca de bloco e uma marca de extremidade.
[066] Na aplicação prática, o módulo de configuração de partilha de carga 41 e o módulo de controle de partilha de carga 42 podem ser configurados em um dispositivo CGN.
[067] Na aplicação prática, o dispositivo de partilha de carga pode ser configurado no dispositivo CGN. Tanto o módulo de configuração de partilha de carga 41 como o módulo de controle de partilha de carga 42 podem ser implementados por uma CPU, um Processador de Sinal Digital (DSP) ou uma Matriz de Portas de Campo Programáveis (FPGA) do dispositivo CGN.
[068] A Fig. 5 é um diagrama esquemático de partilha de carga de CGN de acordo com uma forma de realização da presente revelação. Na presente forma de realização, o tipo de dispositivo CGN pode ser Ds-lite CGN, NAT44, Bras nat44, NAT64 e assim por diante. Um endereço de rede privada correspondendo a um dispositivo de usuário pode ser IPv4, IPv6 e assim por diante. O dispositivo CGN é uma unidade de processamento multitarefa e cada unidade de processamento inclui várias CPUs.
[069] Como mostrado na Fig. 5, um módulo de configuração de partilha de carga configura endereços de rede pública sob a forma de grupos de endereços, e partilha recursos dos endereços de rede pública entre CPUs de diferentes unidades de processamento no dispositivo CGN, em que o número de grupos de endereços pode ser definido de acordo com um requisito prático. Entretanto, tipos de usuários podem ser adicionalmente configurados. Os tipos de usuários são tipos de endereços de rede privada correspondendo a dispositivos de usuário. Os dispositivos de usuário são também divididos aplicando uma forma de partilha de carga dinâmica, ou seja, os dispositivos de usuário são partilhados entre diferentes CPUs. Um módulo de controle de partilha de carga gera uma tabela de marcador de partilha de carga e transmite informações da tabela de marcador para CPUs correspondentes. Por meio do anterior processamento, cada uma das CPUs partilha um número substancialmente equilibrado de endereços de rede pública, e cada uma das CPUs também processa um número substancialmente equilibrado de dispositivos de usuário.
[070] O que foi exposto acima são somente formas de realização preferenciais da presente revelação que não são usadas para limitar o escopo de proteção da presente revelação. Como tal, qualquer modificação, substituição equivalente, melhoria e assim por diante de acordo com os princípios da presente revelação devem ser incluídos no escopo de proteção da presente revelação.
APLICABILIDADE INDUSTRIAL
[071] Nas formas de realização da presente revelação, endereços de rede pública são configurados sob a forma de grupos de endereços; e após o tráfego transmitido por dispositivos de usuário ser recebido, os dispositivos de usuário são agrupados de acordo com os modelos de tráfego transmitidos pelos dispositivos de usuário; as CPUs alocam os endereços de rede pública aos dispositivos de usuário e traduzem endereços de rede privada dos dispositivos de usuário para os endereços de rede pública, em que cada um dos grupos de endereços inclui vários blocos de endereços, cada um dos vários blocos de endereços corresponde a uma CPU, cada grupo de usuário inclui vários blocos de usuários, e cada um dos vários blocos de usuários corresponde a uma CPU. Desta forma, pode ser evitada a partilha desigual de recursos de endereços de rede pública entre várias CPUs e cargas de dispositivos de usuário, desta forma não só melhorando a velocidade de processamento das CPUs para a tradução de endereços como também obtendo um melhor efeito de partilha de carga.

Claims (9)

1. Método de compartilhamento de carga caracterizado por compreender: configurar endereços de rede pública sob a forma de grupos de endereços de modo que a diferença do número de endereços de rede pública compartilhados por cada uma das Unidades Centrais de Processamento, CPUs, em cada um dos grupos de endereços seja no máximo 1; após receber o tráfego transmitido por dispositivos de usuário, agrupar os dispositivos de usuário de acordo com os modelos de tráfego transmitidos pelos dispositivos de usuário de modo que a diferença do número de dispositivos de usuário compartilhados por cada uma das CPUs seja no máximo 1; e alocar, por CPUs, os endereços de rede pública para os dispositivos de usuário agrupados, e traduzir endereços de rede privada dos dispositivos de usuário para os endereços de rede pública, em que cada um dos grupos de endereços compreende uma pluralidade de blocos de endereços, cada um da pluralidade dos blocos de endereços corresponde a uma CPU diferente, cada grupo de usuários compreende uma pluralidade de blocos de usuário, e cada um da pluralidade de blocos de usuários corresponde a uma CPU diferente; em que a implementação da diferença do número de dispositivos de usuário compartilhados por cada uma das CPUs sendo no máximo 1 compreende: alocar um número de dispositivos de usuário para cada uma das CPUs, em que o número de dispositivos de usuário alocados é um produto da multiplicação de um valor inteiro, que é um número inteiro máximo não mais do que um quociente adquirido pela divisão do número total de dispositivos de usuário de um grupo de usuários atual pelo quadrado do número de CPUs, pelo número das CPUs; se ainda houver dispositivos de usuários remanescentes, alocar um número de dispositivos de usuário para cada uma das CPUS, em que o número de dispositivos de usuário alocados é um valor inteiro adquirido dividindo os dispositivos de usuário remanescentes pelo número de CPUs; se ainda houver dispositivos de usuário remanescentes, alocar os dispositivos de usuário remanescentes em cada grupo de usuários como um todo de modo que a diferença do número de dispositivos de usuário compartilhados por cada uma das CPUs seja no máximo 1.
2. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda: depois de agrupar os dispositivos de usuário de acordo com os modelos de tráfego, gerar, de acordo com links de dados de recursos de endereços de rede pública gerados de acordo com os grupos de endereços, uma tabela de marcador de compartilhamento de carga de recurso de endereço de rede pública, e gerar, de acordo com links de dados de usuário gerados de acordo com grupos de usuários, uma tabela de marcador de compartilhamento de carga de dispositivo de usuário, em que os links de dados de recursos de endereços de rede pública se referem a estruturas de tabela de link para registrar as condições de endereços de rede pública alocados para as CPUs nos grupos de endereços, em que a tabela de marcadores de compartilhamento de carga de recurso de rede pública compreende marcas de bloco que indicam o tamanho dos blocos de endereço e o número dos blocos de endereço e marcas de extremidade indicando o número não alocado remanescente dos endereços de rede pública, e a tabela de marcador de compartilhamento de carga do dispositivo de usuário compreende marcas de bloco indicando o tamanho dos blocos do usuário e o número dos blocos do usuário e marcas de extremidade indicando o número não alocado remanescente de dispositivos de usuário, e a marca de extremidade é 0 ou 1; gerar informações de controle de compartilhamento de carga de acordo com a tabela de marcador de compartilhamento de carga de recursos de endereço de rede pública e a tabela de marcador compartilhamento de carga de dispositivo de usuário; transmitir às CPUs, a informação de controle de compartilhamento de carga; correspondentemente, a operação de alocar, por meio de CPUs, os endereços de rede pública para os dispositivos de usuário, e traduzir endereços de rede privada dos dispositivos de usuário para os endereços de rede pública compreende: alocar, por meio das CPUs, de acordo com a informação de controle de compartilhamento de carga, os endereços de rede pública para os dispositivos de usuário, e traduzir os endereços de rede privada dos dispositivos de usuário para os endereços de rede pública.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a implementação da diferença número de endereços de rede pública compartilhados por cada uma das CPUs em cada um dos grupos de endereços sendo no máximo 1 compreende: alocar um número de endereços de rede pública para cada uma das CPUs, em que o número dos endereços de rede pública alocados é um produto da multiplicação de um valor de número inteiro, que é um número inteiro máximo não mais do que um quociente adquirido dividindo o número total de endereços de rede pública de um grupo de endereços atual pelo quadrado do número de CPUs, pelo número de CPUs; se ainda houver endereços de rede pública remanescentes, alocar um número de endereços de rede pública para cada uma das CPUs, em que o número dos endereços de rede pública alocados é um valor de número inteiro adquirido dividindo os endereços de rede pública remanescentes pelo número de CPUs; se ainda houver endereços de rede pública remanescentes, alocar os endereços de rede pública remanescentes em cada um dos grupos de endereços como um todo de modo a fazer cada uma das CPUs corresponda substancialmente ao mesmo número de endereços de rede pública.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que cada um dos grupos de endereços está associado a uma link de dados de recursos de endereços de rede pública, o número de nodos do link de dados de recursos de endereços de rede pública é o número de CPUs, cada um dos nodos corresponde a uma CPU, e cada um dos nodos compreende uma marca de bloco e uma marca de extremidade.
5. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que cada grupo de usuários está associado a um link de dados de usuário, o número de nodos do link de dados de usuário é o número de CPUs, cada um dos nodos corresponde a uma CPU, e cada um dos nodos compreende uma marca de bloco e uma marca de extremidade, em que o link de dados de usuário se refere a estruturas da tabela de links incluindo as condições de carga dos dispositivos de usuário.
6. Dispositivo de compartilhamento de carga caracterizado pelo fato de que compreende um módulo de configuração de compartilhamento de carga, um módulo de controle de compartilhamento de carga e Unidades de Processamento Central CPU, em que o módulo de configuração de compartilhamento de carga é configurado para configurar endereços de rede pública sob a forma de grupos de endereços de modo que a diferença no número de endereços de rede pública compartilhados por cada uma das CPUs em cada um dos conjuntos de endereços seja de no máximo 1, e para agrupar dispositivos de usuário de acordo com modelos de tráfego transmitidos pelos dispositivos de usuário de forma que a diferença do número de dispositivos de usuário compartilhados por cada uma das CPUs seja no máximo 1; em que cada um dos grupos de endereços compreende uma pluralidade de blocos de endereços, cada um da pluralidade de blocos de endereços corresponde a uma CPU diferente, cada grupo de usuários compreende uma pluralidade de blocos de usuário, e cada um da pluralidade blocos de usuários corresponde a uma CPU diferente; o módulo de controle de compartilhamento de carga é configurado para transmitir informação de controle de compartilhamento de carga às CPUs; e as CPUs são configuradas para alocar os endereços de rede pública para os dispositivos de usuário agrupados de acordo com a informação de controle de compartilhamento de carga, e traduzir endereços de rede privada dos dispositivos de usuário para os endereços de rede pública; em que o módulo de configuração de compartilhamento de carga é configurado ainda para: alocar um número de dispositivos de usuário para cada uma das CPUs, em que o número de dispositivos de usuário alocados é um produto da multiplicação de um valor inteiro, que é um número inteiro máximo não mais do que o quociente adquirido pela divisão do número total de dispositivos de usuário de um grupo de usuários atual pelo quadrado do número de CPUs, pelo número de CPUs; se ainda houver dispositivos de usuário remanescentes, alocar um número de dispositivos de usuário para cada uma das CPUs, em que o número de dispositivos de usuário alocados é um valor inteiro adquirido dividindo os dispositivos de usuário remanescentes pelo número de CPUs; se ainda houver dispositivos de usuário remanescentes, alocar os dispositivos de usuário remanescentes em cada grupo de usuários como um todo, de modo que a diferença do número de dispositivos de usuário compartilhados por cada uma das CPUs seja no máximo 1.
7. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato que o módulo de controle de compartilhamento de carga é configurado: após agrupar os dispositivos de usuário de acordo com os modelos de tráfego, gerar, de acordo com links de dados de recursos de endereços de rede pública, uma tabela de marcador de compartilhamento de carga de recursos de endereços de rede pública, e para gerar, de acordo com links de dados de usuário gerados de acordo com os grupos de usuários, uma tabela de marcador de partilha de carga de dispositivo de usuário; gerar informações de controle de compartilhamento de carga de acordo com a tabela de marcadores de compartilhamento de carga de recursos de endereços de rede pública e a tabela de marcadores de compartilhamento de carga de dispositivo de usuário; e e entregar às CPUs, a informação de controle de compartilhamento de carga; em que os links de dados de recursos de endereços de rede pública se referem a estruturas de tabela de link para registrar as condições de endereços de rede pública alocados para as CPUs nos grupos de endereços, em que a tabela de marcadores de compartilhamento de carga de recurso de rede pública compreende marcas de bloco que indicam o tamanho dos blocos de endereço e o número dos blocos de endereço e marcas de extremidade indicando o número não alocado remanescente dos endereços de rede pública, e a tabela de marcador de compartilhamento de carga do dispositivo de usuário compreende marcas de bloco indicando o tamanho dos blocos do usuário e o número dos blocos do usuário e marcas de extremidade indicando o número não alocado remanescente de dispositivos de usuário, e a marca de extremidade é 0 ou 1.
8. Dispositivo, de acordo a reivindicação 6 ou 7, caracterizado pelo fato de que cada um dos grupos de endereços está associado a um link de dados de recursos de endereços de rede pública, o número de nodos do link de dados de recursos de endereços de rede pública é o número de CPUs, cada um dos nodos corresponde a uma CPU, e cada um dos nodos compreende uma marca de bloco e uma marca de extremidade; cada grupo de usuários corresponde a um link de dados de usuário, o número de nodos da ligação de dados de usuário é o número de CPUs, cada um dos nodos corresponde a uma CPU, e cada um dos nodos compreende uma marca de bloco e uma marca de extremidade, em que o link de dados de usuário se refere às estruturas da tabela de links incluindo as condições de carregamento de dispositivos de usuário.
9. Dispositivo, de acordo com a reivindicação 6 ou 7, caracterizado pelo fato de que o módulo de configuração de compartilhamento de carga e o módulo de controle de compartilhamento de carga estarem configurados em um dispositivo de Tradução de Endereço de Rede de Qualidade de Grande Porte, CGN.
BR112015017876-6A 2013-01-28 2013-09-16 Método de partilha de carga e dispositivo de partilha de carga BR112015017876B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310032141.7A CN103117947B (zh) 2013-01-28 2013-01-28 一种负载分担方法及装置
CN201310032141.7 2013-01-28
PCT/CN2013/083587 WO2014114097A1 (zh) 2013-01-28 2013-09-16 一种负载分担方法及装置

Publications (2)

Publication Number Publication Date
BR112015017876A2 BR112015017876A2 (pt) 2017-07-11
BR112015017876B1 true BR112015017876B1 (pt) 2022-09-27

Family

ID=48416225

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015017876-6A BR112015017876B1 (pt) 2013-01-28 2013-09-16 Método de partilha de carga e dispositivo de partilha de carga

Country Status (7)

Country Link
US (1) US9332067B2 (pt)
EP (1) EP2942914B1 (pt)
CN (1) CN103117947B (pt)
AU (1) AU2013375618B2 (pt)
BR (1) BR112015017876B1 (pt)
RU (1) RU2613528C2 (pt)
WO (1) WO2014114097A1 (pt)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103117947B (zh) * 2013-01-28 2016-06-29 中兴通讯股份有限公司 一种负载分担方法及装置
CN104426794B (zh) * 2013-08-23 2018-06-26 华为技术有限公司 一种报文转发方法及装置
WO2016036289A1 (en) * 2014-09-02 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) Method and system for handling a traffic flow between local service clouds
CN105791448B (zh) * 2014-12-18 2019-10-25 华为技术有限公司 一种地址分配方法、cgn设备及cgn双主系统
CN108259632B (zh) * 2017-05-24 2020-02-11 新华三技术有限公司 一种cgn实现方法及装置
CN109067667B (zh) * 2018-07-13 2022-03-18 哈尔滨工程大学 一种基于报文分类的动态负载均衡方法
CN109218219A (zh) * 2018-10-15 2019-01-15 迈普通信技术股份有限公司 一种负载均衡方法、装置、网络设备及存储介质
CN109639580B (zh) * 2019-02-03 2021-05-14 新华三信息安全技术有限公司 一种报文转发方法及装置
CN109787914B (zh) * 2019-03-28 2022-07-01 新华三技术有限公司 负载分担方法、装置及网络设备
CN110086727B (zh) * 2019-04-30 2022-07-01 新华三技术有限公司 一种cgn板间负载分担方法及装置
CN113472676A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 一种网络接入控制方法、sdf、cp、up以及网络系统
CN112104565B (zh) * 2020-09-15 2024-03-29 东软集团股份有限公司 一种实现报文转发的方法、系统及设备
CN115766652A (zh) * 2021-09-01 2023-03-07 华为技术有限公司 网络地址转换的方法和装置
CN116192806A (zh) * 2023-01-13 2023-05-30 北京信而泰科技股份有限公司 一种基于测试仪的ip分配方法、系统、终端及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6888836B1 (en) * 1999-05-26 2005-05-03 Hewlett-Packard Development Company, L.P. Method for allocating web sites on a web hosting cluster
US7127504B2 (en) * 2002-11-21 2006-10-24 Sun Microsystems, Inc. System and method of applying power laws in optimizing network traffic
CN100365591C (zh) * 2003-06-08 2008-01-30 华为技术有限公司 基于客户端的网络地址分配方法
RU2387002C2 (ru) * 2003-06-30 2010-04-20 Майкрософт Корпорейшн Выравнивание сетевой нагрузки с помощью управления соединением
US7430614B2 (en) * 2003-10-31 2008-09-30 Redback Networks, Inc. Use of IP address blocks with default interfaces in a router
KR20060115876A (ko) 2003-11-18 2006-11-10 에어 브로드밴드 커뮤니케이션스, 인코포레이티드 모바일 환경에서의 dhcp 풀 공유 매커니즘
KR100929914B1 (ko) * 2007-12-18 2009-12-04 한국전자통신연구원 애드 혹 네트워크를 위한 동적 주소 할당 방법
CN101227398B (zh) * 2008-01-31 2010-08-18 中兴通讯股份有限公司 网络地址转换的自动调整应用的系统及方法
US20100223466A1 (en) * 2009-02-27 2010-09-02 Third Iris Corp Shared scalable server to control confidental event traffic among recordation terminals, analysis engines, and a storage farm coupled via a public network
US20110235788A1 (en) * 2010-03-01 2011-09-29 Mary Jesse Method and system for efficient use of address resources within an automated communications system
US8560658B2 (en) 2010-03-23 2013-10-15 Juniper Networks, Inc. Managing distributed address pools within network devices
US8289968B1 (en) * 2010-10-27 2012-10-16 Juniper Networks, Inc. Distributed network address translation in computer networks
US8429257B2 (en) * 2011-03-03 2013-04-23 Verizon Patent And Licensing Inc. Optimizing use of internet protocol addresses
CN102694873B (zh) * 2011-03-22 2016-02-10 中兴通讯股份有限公司 一种地址池分配系统及方法
CN102158569A (zh) * 2011-06-02 2011-08-17 杭州华三通信技术有限公司 一种基于地址转换的数据传输方法及其设备
US9137198B2 (en) * 2011-10-21 2015-09-15 Hewlett-Packard Development Company, L.P. Centralized configuration with dynamic distributed address management
CN102594933B (zh) 2011-12-20 2015-04-08 华为技术有限公司 一种公网地址分配的方法、装置及系统
CN102821165B (zh) * 2012-04-13 2016-08-03 中兴通讯股份有限公司 Ip地址转换方法及装置
CN103117947B (zh) 2013-01-28 2016-06-29 中兴通讯股份有限公司 一种负载分担方法及装置

Also Published As

Publication number Publication date
CN103117947A (zh) 2013-05-22
EP2942914A4 (en) 2016-03-02
WO2014114097A1 (zh) 2014-07-31
AU2013375618B2 (en) 2016-05-05
BR112015017876A2 (pt) 2017-07-11
EP2942914B1 (en) 2019-01-02
EP2942914A1 (en) 2015-11-11
US20150373094A1 (en) 2015-12-24
AU2013375618A1 (en) 2015-08-13
US9332067B2 (en) 2016-05-03
RU2613528C2 (ru) 2017-03-16
RU2015133461A (ru) 2017-03-06
CN103117947B (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
BR112015017876B1 (pt) Método de partilha de carga e dispositivo de partilha de carga
EP3353997B1 (en) Technologies for offloading data object replication and service function chain management
CN110012125B (zh) 集群网络通信方法、装置、存储介质和设备
CN108924268B (zh) 一种容器云服务系统及pod创建方法、装置
EP3239984B1 (en) Methods and systems for analyzing record and usage in post package repair
US11960430B2 (en) Remote mapping method, apparatus and device for computing resources, and storage medium
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
US11539660B2 (en) Lockless stateful network address translation
DE102022104207A1 (de) Pooling von Netzwerkverarbeitungsressourcen
US9197598B2 (en) MAC address distribution
TW201737669A (zh) 節點管理系統、節點管理方法與電腦可讀取儲存裝置
US9454189B1 (en) Systems and methods for distributing power in a server system
CN108243079A (zh) 一种基于vpc进行网络访问的方法与设备
CN103581324A (zh) 一种云计算资源池系统及其实现方法
DE102020118312A1 (de) Technologien zum verwalten von disaggregierten beschleunigernetzwerken basierend auf remote direct memory access
US10924454B2 (en) Computing device and method for generating a fabric-wide IPV6 address
CN108255597A (zh) 基于物理功能的mac地址分配虚拟功能的mac地址方法
CN110661839A (zh) 用于在负载平衡器中加扰的技术
US20210373767A1 (en) Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks
Ugwuanyi et al. Network virtualization: proof of concept for remote management of multi-tenant infrastructure
US20240069954A1 (en) Computing system and memory sharing method for computing system
US11799785B2 (en) Hardware-based packet flow processing
US20230269201A1 (en) Pooling smart nics for network disaggregation
US20230308354A1 (en) Intelligent controller for smart nics and hardware accelerators

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 12/803 , H04L 29/12

Ipc: H04L 29/12 (2006.01)

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 16/09/2013, OBSERVADAS AS CONDICOES LEGAIS