BR112015016386B1 - Sistema hierárquico para alta utilização em redes - Google Patents

Sistema hierárquico para alta utilização em redes Download PDF

Info

Publication number
BR112015016386B1
BR112015016386B1 BR112015016386-6A BR112015016386A BR112015016386B1 BR 112015016386 B1 BR112015016386 B1 BR 112015016386B1 BR 112015016386 A BR112015016386 A BR 112015016386A BR 112015016386 B1 BR112015016386 B1 BR 112015016386B1
Authority
BR
Brazil
Prior art keywords
network
service
controller
data
requests
Prior art date
Application number
BR112015016386-6A
Other languages
English (en)
Other versions
BR112015016386A2 (pt
Inventor
Vijay Gill
Chi-Yao Hong
Srikanth Kandula
Ratul Mahajan
Mohan Manduri
Roger Peter Wattenhofer
Ming Zhang
Original Assignee
Microsoft Technology Licensing, Llc
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 Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112015016386A2 publication Critical patent/BR112015016386A2/pt
Publication of BR112015016386B1 publication Critical patent/BR112015016386B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

SISTEMA, MÉTODO PARA ALOCAR UM SERVIÇO DE REDE E MÉTODO PARA RECONFIGURAR UM REDE. Uma maior utilização de rede é implementada através de reconfiguração de rede dinâmica e alocação de serviços de rede e recursos com base nos dados a serem transferidos e o consumidor transferindo-os. Um sistema hierárquico é utilizado é utilizado por meio de que as solicitações de camadas mais baixas podem ser agregadas antes de serem providas para as camadas mais altas, e as alocações recebidas de camadas mais altas são distribuídas para as camadas mais baixas. Para maximizar a utilização de rede, percursos através da rede são reconfigurados identificando tipos específicos de pacotes que devem ser sinalizados em um modo específico, e então adicionalmente identificando regras de roteamento específicas a serem aplicadas na transmissão de tais pacotes. A reconfiguração de rede é executada em uma base incremental para evitar sobrecarregar um percurso, e uma capacidade pode ser reservada ao longo de um ou mais percursos para impedir tal sobrecarga. Os dados de fundo são agnósticos quanto aos tempos de transmissão específicos e são utilizados para impedir a sobrecarga, devido à reconfiguração.

Description

Antecedentes
[0001] Existe uma miríade de vantagens de ser capaz de transferir dados legíveis por computador entre e dentro de dois ou mais dispositivos de computação. Tipicamente, tais transferências são mais convenientemente executadas através da troca de comunicações através de uma rede de dispositivos de computação. Como tal, a quantidade de dados sendo transferidas através das redes de dispositivos de computação continua a aumentar. Para suportar a transferência de tais quantidades crescentes de dados, os provedores de serviços de rede de computador investem uma substancial quantidade de recursos em hardware de rede de computador. Maximizar a utilização de tal hardware de rede de computador pode, portanto, ser desejável de um ponto de vista de eficiência.
[0002] Infelizmente, os consumidores que geram o tráfego de da dos de rede frequentemente não estão cientes uns dos outros, e simplesmente utilizam uma rede para transferir os seus dados sempre que estes desejam fazê-lo. Frequentemente, tais consumidores buscam transferir grandes volumes de dados através de uma rede de dispositivos de computação durante os mesmos períodos de tempo, por meio disto excessivamente sobrecarregando a rede. Tais transferências sobrepostas podem ocorrer mesmo se um ou mais consumidores puderem ter a opção de retardar as suas transferências para outra hora, já que mecanismos não estão providos pelos quais tais transferências de dados possam ser deslocadas no tempo para um tempo mais conveniente. Consequentemente, não somente pode tal inflexibilidade resultar em períodos de excessiva sobrecarga de rede, esta pode também resultar em outros períodos de tempo durante o qual alguns consumidores estão na maioria ociosos, o que pode resultar em uma subutili- zação da rede. Consequentemente, os provedores de serviços de rede de computador são frequentemente forçados a adquirir um hardware de rede de computador dispendioso para acomodar estas instancias quando múltiplos consumidores de serviços de rede todos buscam transferir grandes volumes de dados durante os mesmos períodos de tempo, sabendo que tal hardware de rede de computador dispendioso provavelmente ficará subutilizado por porções substanciais de sua vida útil.
Sumário
[0003] Em uma modalidade, um controlador centralizado pode re ceber solicitações de consumidores que buscam acessar serviços de rede. Tais solicitações podem indicar se os dados a serem transferidos são insensíveis quanto ao tempo específico quando estes são transferidos. O controlador centralizado pode também receber informações referentes à topologia de rede, estatísticas e falhas. Utilizando tais informações, o controlador centralizado pode atribuir, para um ou mais consumidores, ou classes de consumidores, uma porção predeterminada dos serviços de rede disponíveis, e tais consumidores podem limitar a sua utilização dos serviços de rede para a porção atribuída a estes.
[0004] Em ainda outra modalidade, durante os períodos de subuti- lização de rede, o controlador centralizado pode atribuir maiores porções dos serviços de rede disponíveis para os consumidores cujos dados são insensíveis quanto ao tempo específico quando estes são transferidos. As porções de serviços de rede atribuídas aos consumidores podem ser doadas para consumidores individuais por um ou mais corretores, por meio disto provendo uma estrutura hierárquica para eficientemente manipular uma maior quantidade de consumidores e solicitações.
[0005] Em ainda uma modalidade adicional, objetivos e prioridades de nível de serviço podem ser respeitados com base em pesos ou prioridades que podem ser atribuídos e então utilizados como uma base sobre a qual alocar os serviços de rede disponíveis. Similarmente, na alocação dos serviços de rede, restrições baseadas em tempo específicas, tal como prazo final. Podem ser honradas através de uma mudança de transferências de dados de prioridade mais alta para um tempo posterior.
[0006] Em uma modalidade adicional, o controlador centralizado pode selecionar entre múltiplos percursos através de uma rede de dispositivos de computação pelos quais os consumidores podem transmitir os dados através da rede de computador. Tais percursos podem ser informados por informações de topologia de rede recebidas pelo controlador centralizado, e o controlador centralizado pode dinamicamente reconfigurar tais percursos de acordo com o tipo e quantidade de dados solicitados serem transmitidos através da rede pelos consumidores de tais serviços de rede.
[0007] Em ainda uma modalidade adicional, uma reconfiguração de rede pode ser efetuada pelo controlador centralizado através de mecanismos de identificação de pacote, por meio de que o controlador centralizado pode gerar uma série de regras para identificar e etiquetar pacotes relevantes, e pode também gerar uma série de regras para entrada em uma tabela de fluxo a qual pode informar um ou mais comutadores, ou dispositivos de computação de rede similares, quanto a como tais pacotes devem ser transmitidos através da rede.
[0008] Em ainda uma modalidade adicional, a reconfiguração de rede pode ser executada em uma base incremental para evitar sobrecarregar qualquer percurso ou conexão de rede. Uma capacidade em excesso pode ser reservada para acomodar tal reconfiguração. Alternativamente, a transferência de dados de fundo, os quais podem ser transferidos a qualquer tempo, pode ser definida em favor de outro trá- fego mais crítico de tempo, por meio disto provendo uma capacidade em excesso para reconfiguração de rede incremental.
[0009] Este Sumário está provido para introduzir uma seleção de conceitos em uma forma simplificada que estão adicionalmente abaixo descritos na Descrição detalhada. Este Sumário não pretende exclusivamente identificar as características chave, ou características essenciais do assunto reivindicado, nem pretende ser um utilizado para limitar o escopo do assunto reivindicado.
[0010] Características e vantagens adicionais serão tornadas apa rentes da descrição detalhada seguinte que prossegue com referência aos desenhos acompanhantes. Breve Descrição dos Desenhos
[0011] A descrição detalhada seguinte pode ser melhor compre endida quando tomada em conjunto com os desenhos acompanhantes, nos quais:
[0012] Figura 1 é um diagrama de blocos de uma arquitetura exemplar que provê uma maior utilização de rede;
[0013] Figura 2 é um diagrama de blocos de uma configuração exemplar de serviços de rede para acomodar solicitações e aumentar utilização de rede;
[0014] Figura 3 é um diagrama de blocos de uma reconfiguração de rede incremental exemplar;
[0015] Figura 4 é um fluxograma de um processo de configuração exemplar para prover uma maior utilização de rede; e
[0016] Figura 5 é um diagrama de blocos que ilustra um dispositivo de computação de uso geral exemplar. Descrição Detalhada
[0017] A descrição seguinte refere-se a uma rede controlada por software na qual uma maior utilização de rede é implementada através de reconfiguração de rede dinâmica e alocações de serviço e recursos de rede de acordo com um tipo de dados a serem transferidos e um tipo de consumidor de tais serviços e recursos de rede. Dados interativos críticos para as experiências de usuário em tempo real podem ser transmitidos através da rede em um modo tradicional. Dados elásticos que podem ser insensíveis, mas não agnósticos, a um tempo de transmissão específico podem ser transmitidos de acordo com as alocações de recurso de rede que podem ser concedidas em resposta a solicitações pré-submetidas. Um sistema hierárquico pode ser utilizado por meio de que as solicitações de uma camada mais baixa podem ser agregadas antes de serem providas para uma camada mais alta, e as alocações recebidas de uma camada mais alta podem ser distribuídas para as camadas mais baixas. Para maximizar a utilização de rede, os percursos através da rede podem ser reconfigurados ou redireciona-dos identificando tipos específicos de pacote que devem ser sinalizados em um modo específico, e então adicionalmente identificando regras de roteamento específicas para serem aplicadas na transmissão de tais pacotes através da rede. A reconfiguração de rede pode ser executada em uma base incremental para evitar sobrecarregar um percurso ou conexão, e a capacidade pode ser reservada ao longo de um ou mais percursos ou conexões para impedir tal sobrecarga. Os dados de fundo que podem ser agnósticos para um tempo de transmissão específico podem também ser utilizados para impedir tal sobrecarga, reduzindo a porção de serviços de rede alocados a tais dados de fundo.
[0018] As técnicas aqui descritas fazem referência a tipos especí ficos de serviços de rede e tipos específicos de consumidores de rede. Por exemplo, as descrições abaixo serão primariamente direcionadas para a provisão de largura de banda de rede. Tais referências, no entanto, são estritamente exemplares e são feitas para clareza de descrição e apresentação e para facilidade de compreensão. Realmente, as técnicas aqui descritas são igualmente aplicáveis, sem modificação, para a provisão de outros tipos de serviços de rede tal como, por exemplo, a transferência de dados que atende a requisitos de latência especificados, transferência de dados que atende a requisitos de perda especificados, e outros serviços de rede definíveis similares.
[0019] Apesar de não requerido, aspectos da descrição abaixo se rão providos no contexto geral de instruções executáveis por computador, tal como módulos de programa, sendo executados por um dispositivo de computação. Mais especificamente, aspectos da descrição fará referência a atos e representações simbólicas de operações que são executadas por ou mais dispositivos de computação ou periféricos, a menos que de outro modo indicado. Como tal, será compreendido que tais atos e operações, os quais são às vezes referidos como sendo executados por computador, incluem a manipulação por uma unidade de processamento de sinais elétricos que representam os dados em uma forma estruturada. Esta manipulação transforma os dados ou os mantém em localizações na memória, o que reconfigura ou de outro modo altera a operação do dispositivo de computação ou periféricos em um modo bem conhecido por aqueles versados na técnica. As estruturas de dados onde os dados são mantidos são localizações físicas que têm propriedades específicas definidas pelo formato dos dados.
[0020] Geralmente, os módulos de programa incluem rotinas, pro gramas, objetos, componentes, estruturas de dados, e similares que executam tarefas específicas ou implementam tipos de dados abstratos específicos. Mais ainda, aqueles versados na técnica apreciarão que os dispositivos de computação não precisam estar limitados a gabinetes de computação de servidor convencionais ou computadores pessoais convencionais, e incluem outras configurações de computação, incluindo dispositivos portáteis, sistemas de multiprocessador, eletrônica de consumidor baseada em microprocessador ou programável, PCs de rede, minicomputadores, computadores mainframe, e similares. Similarmente, os dispositivos de computação não precisam estar limitados a um dispositivo de computação independente, já que os mecanismos podem ser praticados em ambientes de computação distribuídos conectados através de uma rede de comunicações. Em um ambiente de computação distribuído, os módulos de programa podem estar localizados em dispositivos de armazenamento de memória tanto locais quanto remotos.
[0021] Com referência à Figura 1, um sistema exemplar 100 está ilustrado, que compreende uma rede 190 de dispositivos de computação. Para propósitos de prover uma base exemplar para as descrições abaixo, a rede 190 está mostrada como compreendendo múltiplos dispositivos de computação de uso específico na forma de comutadores 131, 132, 133, 134 e 135 que estão interconectados no modo mostrado na Figura 1. Um ou mais dispositivos de computação, tais como os dispositivos de computação 111, 112, 113, 121, 122 e 123 podem executar instruções executáveis por computador que podem gerar e consumir dados e, como tal podem atuar como consumidores da rede 190. Por exemplo, os dispositivos de computação 111 e 121 podem executar instruções executáveis por computador direcionadas para um website que vende produtos online. O dispositivo de computação 111 pode ter armazenado neste, informações de conta na forma de dados legíveis por computador, para os usuários cujos últimos nomes começam com as letras A-M. Similarmente, o dispositivo de computação 121 pode ter armazenado neste, informações de conta para os usuários cujos últimos nomes começam N-Z. Se um usuário cujo último nome começa com a letra A estabeleceu comunicações com o dispositivo de computação 121, e então procurou acessar a sua conta, o dispositivo de computação 121 poderia solicitar, sobre a rede 190, as in- formações de conta para tal usuário do dispositivo de computação 111 e, em resposta, o dispositivo de computação 111 poderia prover, sobre a rede 190, os dados que representam tal conta do usuário. De tal modo, as instruções legíveis por computador que executam nos dispositivos de computação 111 e 121 podem ser consumidores dos serviços providos pela rede 190.
[0022] Em uma modalidade, antes de utilizar os serviços da rede 190, tal como antes de transmitir uma quantidade de dados através da rede 190, um consumidor pode primeiro solicitar ser alocado alguma porção dos recursos de rede de modo a transmitir a quantidade de dados. Por exemplo, se os dispositivos de computação 112 e 122 estiverem executando instruções executáveis por computador direcionadas para uma máquina de pesquisa, e o dispositivo de computação 112 procurou transferir, para o dispositivo de computação 122, dez terabytes de dados, os processos associados com a máquina de pesquisa que executa no dispositivo de computação 112 podem fazer uma solicitação de serviço, tal como das solicitações de serviço individuais 171 para um corretor de serviço, tal como o corretor de serviço 151, solicitando transferir 10 TB de dados através da rede 190. Fazendo tal solicitação de serviço individual 171, não somente a quantidade de dados a ser transferida através da rede 190 pode ser especificada, mas metadados adicionais referentes a tais dados a serem transferidos podem também ser especificados. Por exemplo, a máquina de pesquisa que está sendo executada pelo dispositivo de computação 112 pode indicar, como parte da solicitação de serviço individual 171 que esta deseja transferir os dez terabytes de dados dentro das próximas 24 horas.
[0023] Em outra modalidade, somente tipos de utilizações especí ficos da rede 190 podem ser solicitados com antecedência, tal como pelas solicitações de serviço individuais 171. Mais especificamente, transferências de dados interativos podem ocorrer imediatamente e em um modo tradicional, sem primeiro fazer uma solicitação de serviço individual 171. Como aqui utilizado, o termo "dados interativos" significa dados que estão sendo transferidos através de uma rede para responder a uma solicitação de usuário que permanece pendente até tal transferência de dados seja completada. Em contraste, as transferências de outros tipos de dados, tais como dados elásticos ou dados de fundo, podem ocorrer dentro dos confins de uma alocação de serviço que pode ser recebida em resposta a uma das solicitações de serviço individuais 171. Como aqui utilizado, o termo "dados elásticos" significa dados que devem ser transferidos através de uma rede em um modo oportuno, mas não instantâneo. Além disso, como aqui utilizado, o termo "dados de fundo" significa dados que devem ser transferidos através de uma rede sem nenhum prazo final, ou com um prazo final que está suficientemente no futuro de modo a praticamente não impor nenhum impedimento de prazo final.
[0024] Um corretor de serviço, tal como o corretor de serviço 151, pode receber uma ou mais das solicitações de serviço individuais 171 e pode agregá-las nas solicitações de serviço agregadas 172. Mais especificamente, um corretor de serviço, tal como o corretor de serviço 151, pode receber as solicitações de serviço individuais 171 de tipos específicos de serviços. Assim, apesar de que para simplicidade ilustrativa somente um único corretor de serviço 151 ser ilustrado, a rede de consumidores que executa nos dispositivos de computação 111, 112 e 113 pode ser servida por múltiplos corretores de serviço. Por exemplo, as instruções executáveis por computador de website de e- comércio sendo executadas pelo dispositivo de computação 111 podem ser servidas por um corretor de serviço direcionado para solicita-ções de website de e-comércio, enquanto que as instruções executáveis por computador de máquina de pesquisa sendo executadas pelo dispositivo de computação 112 podem ser servidas por outro, diferente corretor de serviço que pode estar direcionado para solicitações de máquina de pesquisa. Um corretor de serviço direcionado a, por exemplo, solicitações de máquina de pesquisa podem agregar as solicitações de serviço individuais de múltiplas máquinas de pesquisa individuais, ou componentes de máquina de pesquisa, ou pode agregar múltiplas solicitações de serviço individuais da mesma máquina de pesquisa. As solicitações de serviço agregadas 172 podem ser providas para um controlador centralizado, tal como o controlador de Rede de Área Ampla de Software (SWAN) 140.
[0025] Em uma modalidade, um controlador centralizado, tal como o controlador SWAN 140, pode receber topologia de rede, estatísticas de rede, falhas de rede, e outras informações de rede similares através da comunicação 182 de um controlador de rede 160. O controlador de rede 160 pode estar especialmente configurado para interagir com um ou mais dos comutadores 131, 132, 133, 134 e 135, ou outros dispositivos de computação similares que implementam a rede 190. Como parte de tal interação, o controlador de rede 160 pode receber, como ilustrado pela comunicação 181, informações de rede de comutadores individuais, as quais o controlador de rede 160 pode então agregar nas informações providas comunicação 182 para o controlador SWAN 140. Por exemplo, o controlador de rede 160 pode estar em conformidade com os protocolos utilizados para configurar, e coletar dados de, um ou mais dos comutadores 131, 132, 133, 134 e 135. De tal modo, o controlador SWAN 140 pode obter as informações que podem permitir o controlador SWAN 140 responder às solicitações de serviço agregadas 172 que este pode receber de corretores de serviço, tal como o corretor de serviço 151.
[0026] Uma resposta que pode ser provida pelo controlador SWAN 140 para um corretor de serviço, tal como o corretor de serviço 151, pode ser as alocações 173 que o corretor de serviço 151 pode distribu- ir entre os serviços individuais em resposta a suas solicitações de serviço individuais 171. Por exemplo, um corretor de serviço, tal como o corretor de serviço 151 pode receber uma série de solicitações de serviço individuais 171 as quais podem, no total, como um exemplo, representar solicitações para transferir cem gigabytes de dados através da rede 190 dentro dos próximos dez minutos. Tais solicitações podem ser agregadas pelo corretor de serviço 151 em uma solicitação de serviço agregada 172 que pode solicitar do controlador SWAN 140, uma alocações de serviço de rede de modo que os cem gigabytes de dados pudessem ser transferidos através da rede 190 nos próximos dez minutos. O controlador SWAN 140, pode, com base na topologia de rede, estatísticas, falhas e outras informações de rede similares que podem ser providas pelo controlador de rede 160, tal como através da comunicação 182, determinar quanto dos serviços providos pela rede 190, tal como os serviços de transferência de dados solicitados, alocar para o corretor de serviço 151 em resposta à solicitação de serviço agregada 172. Por exemplo, o controlador SWAN 140 poderia prover uma alocação agregada 173 que provê a transferência de 25 TB de dados através da rede 190 nos próximos dez minutos.
[0027] Continuando com tal exemplo, uma vez que o corretor de serviço 151 recebe tal alocação de serviço agregada 173, o corretor de serviço 151 pode então doar a alocações de serviço individuais 175 para os serviços individuais que fizeram solicitações de serviço individuais 171. Em uma modalidade, tais alocações de serviço individuais 175 podem ser feitas em um modo linear onde uma solicitação de serviço para a transmissão de dez gigabytes para dados nos próximos dez minutos recebe dez vezes a alocação de uma solicitação de serviço para a transmissão de um gigabyte de dados nos próximos dez minutos. Em outra modalidade, tal doação de alocações de serviço individuais 175 pode ser feita utilizando uma proposta ponderada onde a diferentes solicitadores podem ser atribuídos diferentes pesos com base na prioridade de suas solicitações, a prioridade dos processos que fazem a solicitação, os fatores centrados em tempo envolvidos, tal como a justa aproximação de prazos finais, objetivos de nível de serviço de rede e contratos, tal como uma alocação mínima garantida de serviços de rede, e outros fatores de ponderação similares. Por exemplo, um cliente pode ter assinado um contrato que garante uma alocação mínima. Em caso, os serviços de rede podem ser alocados para tal cliente até que o mínimo seja atendido. Como outro exemplo, um cliente pode especificar prazos finais pelo qual os dados que o cliente busca transmitir devem ter completado a sua transmissão. Em tal caso, os serviços de rede podem ser alocados para tal cliente em uma proporção mais alta então para outros clientes para satisfazer prazos finais.
[0028] Mais geralmente, os corretores de serviço, tal como o corre tor de serviço 151, permitem uma interface mais rica entre os clientes da rede 190 e os alocadores de serviços de rede. Assim, as solicitações de serviço individuais 171 podem inclui uma miríade de informações além de meramente uma solicitação para um serviço de rede específico, tal como uma quantidade específica de largura de banda, por um período de tempo definido. Como ilustrado pelos exemplos acima, as solicitações de serviço individuais 171 podem prover informações de prazo final, informações legais ou contratuais, e outras informações similares que podem ser utilizadas por um corretor de serviço, tal como o corretor de serviço 151, para determinar como alocar as alocações de rede que foram alocadas para o corretor de serviço 151 pelo controlador SWAN 140. Em uma modalidade, as várias informações específicas nas solicitações de serviço individuais 171 podem ser utilizadas para atribuir uma ponderação, e as alocações podem ser feitas com base na ponderação. Assim, em um exemplo simples, se a um cliente foi atribuído uma ponderação de dois, e a outros clientes foi atribuído uma ponderação de um, e estas para os clientes representados pelo universo de clientes entre os quais um corretor de serviço devia alocar serviços de rede, então ao primeiro cliente poderia ser alocado metade dos serviços de rede alocados para o corretor de serviço, enquanto cada um dos outro dois clientes receber outro quarto destes serviços. O controlador SWAN 140 pode similarmente, levar em conta tais dados ricos, os quais podem ser recebidos através de solicitações de serviço agregadas, tal como as solicitações de serviço agregadas 172, e pode fazer alocações ponderadas em um modo análogo.
[0029] Para determinar quanto de um serviço de rede o controla dor SWAN 140 pode alocar para os corretores de serviço, tal como as alocações 173 para o corretor de serviço 151, o controlador SWAN 140 pode considerar múltiplos percursos através da rede 190 de modo a maximizar a utilização da capacidade da rede 190. Por exemplo, e como será abaixo descrito em mais detalhes, o controlador SWAN 140 pode identificar percursos através da rede 190 que ligam juntas múltiplas conexões individuais, cada uma das quais pode ter uma capacidade adicional que pode ser utilizada para transmitir mais dados através da rede 190.
[0030] Na identificação e configuração de tais percursos, o contro lador SWAN 140 pode prover regras de identificação e transferência de pacote 183 para o controlador de rede 160. Mais especificamente, em uma modalidade, o controlador SWAN 140 pode estabelecer percursos através da rede 190 instruindo dispositivos de computação de ingresso, tal como comutadores de ingresso, para sinalizar os pacotes que pertencem um consumidor específico, ou um tipo específico de consumidor. O controlador SWAN pode também instruir outros dispositivos de computação, tal como os comutadores ou roteadores que roteiam os dados através da rede 190, para rotear os pacotes que têm estes sinalizadores em um modo específico tal como será abaixo descrito em maiores detalhes com referência à Figura 2. Em tal modalidade, os consumidores de serviços de rede não precisam gerar pacotes diferentemente, mas tais pacotes serão roteados ao longo de diferentes percursos na rede 190 de acordo com as regras de identificação e transferência de pacote 183 estabelecidas pelo controlador SWAN 140. O controlador SWAN 140 pode, por meio disto, estabelecer outras rotas através da rede 190, e pode então alocar tais rotas a corretores de serviço, tal como através das alocações de serviço 173 comunicadas pelo controlador SWAN 140 para o corretor de serviço 151, por meio disto assegurando que a capacidade da rede 190 está sendo eficientemente utilizada.
[0031] O controlador de rede 160, quando recebendo as regras de identificação e transferência de pacote 183, pode traduzir tais regras em instruções de comutador individuais 184 apropriadas, as quais o controlador de rede 160 pode então comunicar para um ou mais dos comutadores da rede 190, tal como os comutadores exemplares 131, 132, 133, 134 e 135. Por exemplo, o controlador de rede 160 pode gerar instruções de comutador individuais 184 em conformidade com a metodologia de programação empregada pelos comutadores 131, 132, 133, 134 e 135 para gerar ou modificar as tabelas de fluxo, incluindo a adição de condicionais com base em se um pacote está sinalizado em um modo especificado. Como outro exemplo, o controlador de rede 160 pode gerar instruções de comutador individuais 184 conformidade com a metodologia de programação empregada por um comutador de ingresso para sinalizar pacotes em um modo especificado.
[0032] Apesar de descrita com referência ao corretor de serviço 151, a operação do controlador SWAN 140 e do corretor de serviço 152, também ilustrado sistema 100 da Figura 1, pode ocorrer em um modo análogo. Assim, por exemplo, os consumidores individuais que executam em um ou mais dispositivos de computação 121 , 122 e 123 podem transmitir solicitações de serviço individuais 191 para o corretor de serviço 152, o qual pode então agregar tais solicitações de serviço em solicitações de serviço agregadas 192 que o corretor de serviço 152 pode comunicar para o controlador SWAN 140, tal como no modo acima descrito em detalhes. Em resposta, o controlador SWAN 140 pode prover alocações de serviço agregadas 193 para o corretor de serviço 152, e o corretor de serviço 152 pode então doar alocações de serviço individuais 195 das alocações de serviço agregadas 193.
[0033] Apesar de somente uma única camada de corretores de serviço estar ilustrada no sistema exemplar 100 da Figura 1, em outras modalidades múltiplas hierarquias de corretores de serviço podem permitir uma maior escalabilidade dos mecanismos e sistemas aqui descritos. Por exemplo, uma camada inicial de corretores de serviço pode receber solicitações de serviço individuais e agregá-las nas solicitações de serviço agregadas, e então uma camada subsequente de corretores de serviço pode receber estas solicitações de serviço agregadas e agregá-las adicionalmente em solicitações de serviço agregadas adicionais. Similarmente, uma camada mais alta de corretores de serviço pode receber as alocações de serviço agregadas, tal como do controlador SWAN 140, e podem dividi-las em alocações de serviço menores, mais discretas e então enviá-las para as camadas inferiores de corretores de serviço. Estas camadas inferiores de corretores de serviço podem então adicionalmente dividir as alocações, finalmente gerando alocações de serviço individuais paras os consumidores individuais de serviços de rede.
[0034] Quando recebendo as alocações de serviço individuais, tal como as alocações de serviço individuais 175, ou as alocações de serviço individuais 195, os clientes dos serviços de rede para quais tais alocações de serviço individuais estão alocadas podem assegurar que a sua utilização e consumo de tais serviços de rede não excedam as alocações atribuídas a estes. Assim, por exemplo, se um consumidor de serviço de rede de máquina de pesquisa solicitou serviços de rede suficientes para transmitir dez gigabytes de dados dentro de dez minutos, e teve somente atribuído uma quantidade suficiente de largura de banda para transmitir cinco gigabytes de dados dentro de dez minutos, então tal máquina de pesquisa, ou seus componentes pode prover mecanismos para assegurar que os dados transmitidos por tal máquina de pesquisa não excedam a largura de banda alocada para estes. Em outras modalidades, limitações de taxa podem ser impostas por dispositivos de computação de servidor em rede ou os comutadores através dos quais os dados são transferidos.
[0035] Em uma modalidade, consumidores individuais de serviços de rede podem manter comunicações com um corretor de serviço, tal como o corretor de serviço 151 em uma base bastante frequente. Por exemplo, as solicitações de serviço individuais 171 feitas por consumidores individuais de serviços de rede podem ser feitas para um corretor de serviço, tal como o corretor de serviço 151, a cada par de segundos ou a cada minuto. O corretor de serviço 151 pode então procurar satisfazer tais solicitações de serviço individuais 171 provendo alocações de serviço individuais 175 das alocações de serviço agregadas 173 que foram providas para o corretor de serviço 151 pelo controlador SWAN 140. As comunicações entre o corretor de serviço 151 e o controlador SWAN 140, tal como as solicitações de serviço agregadas 172 e as alocações de serviço agregadas 173 podem ocorrer sobre intervalos de tempo mais longos. Por exemplo, o corretor de serviço 151 pode gerar uma solicitação de serviço agregada 172 uma vez a cada dez minutos e a solicitação de serviço agregada 172 pode compreender uma agregação das solicitações de serviço recebidas ao longo de um período de tempo similar. As alocações de serviço agregadas 173 podem então, similar- mente, prover alocações de serviço por um período de tempo estendido, das quais o corretor de serviço 151 pode doar alocações de serviço individuais 175 em uma base mais frequente em resposta às solicitações de serviço individuais 171 mais frequentemente recebidas.
[0036] Em uma modalidade, se um excesso de capacidade existir entre as alocações de serviço agregadas 173 previamente providas para o corretor de serviço 151, pelo controlador SWAN 140, o corretor de serviço 151 pode utilizar tal capacidade em excesso para prover alocações de serviço individuais 175 para novos consumidores ou novas solicitações de serviço individuais 171. De tal modo, tal nova solicitação de serviço individual 171 pode evitar aguardar que uma subsequente solicitação de serviço agregada 172 seja gerada pelo corretor de serviço 151, e uma subsequente alocação agregada de serviço 173 a ser gerada pelo controlador SWAN 140. Por exemplo, se o controlador SWAN 140 tiver alocado uma largura de banda através rede 190 para o corretor de serviço 151, a qual o corretor de serviço 151 ainda não alocou para um consumidor, um novo consumidor, ou uma nova solicitação para largura de banda adicional, pode ser respondido, pelo corretor de serviço 151, da largura de banda em excesso que permanece alocada para o corretor de serviço 151, sem precisar transmitir outra solicitação de serviço agregada 172, e sem precisar aguardar até que a próxima solicitação de serviço agregada 172 programada seja transmitida para o controlador SWAN 140, e uma alocação agregada de serviço 173 associada é provida em resposta.
[0037] Em outra modalidade, o controlador SWAN 140 pode pro ver chamadas de retorno, tal como as chamadas de retorno 174 e 194, com as quais o controlador SWAN 140 pode utilizar para notificar os corretores de serviço, tal como o corretor de serviço 151 e o corretor de serviço 152, de mudanças nas, por exemplo, alocações de serviço que foram alocadas para estes corretores de serviço. Por exemplo, se as informações de rede 181 indicarem uma falha ao longo de um percurso específico, o controlador de rede 160 pode comunicar tal falha para o controlador SWAN 140 através da comunicação 182. Tal falha pode negativamente impactar a disponibilidade de serviço da rede 190. Por exemplo, tal falha pode negativamente impactar a quantidade de largura de banda disponível através da rede 190. Em tal caso, as alocações de serviço alocadas para os corretores de serviço, tal como as alocações de serviço agregadas 173 alocadas para o corretor de serviço 151, ou as alocações de serviço agregadas 193 alocadas para o corretor de serviço 152 pode ser muito grande e pode resultar nos dados tentando ser transmitidos através da rede 190 excedendo a largura de banda corrente, reduzida da rede 190. Mais, em uma modalidade, o controlador SWAN 140 pode utilizar uma chamada de retorno, tal como as chamadas de retorno 174 e 194, para notificar os correto-res de serviço, tal como os corretores de serviço 151 e 152 que houve uma mudança nas alocações de serviço que foram alocadas para estes corretores de serviço.
[0038] Observando a Figura 2, o sistema 200 aqui mostrado ilustra uma porção da rede exemplar 190 (mostrada na Figura 1), a saber a porção que compreende as conexões estabelecidas por comutadores exemplares 131, 132, 133, 134 e 135. Como ilustrado pelo sistema 200 da Figura 2, os comutadores exemplares 131, 132, 133, 134 e 135 podem ser conectados através conexões 211, 212, 213, 214, 215 e 216. Por exemplo, o comutador exemplar 131 pode estar conectado no comutador exemplar 132 através da conexão 211. Tal conexão pode ter uma capacidade determinada de transmitir dados ao longo desta, o que está graficamente ilustrado na Figura 2 como a capacidade 221. Em um modo similar, a conexão 212 pode ter uma capacidade 222, a conexão 213 pode ter uma capacidade 223, a conexão 214 pode ter uma capacidade 224, a conexão 215 pode ter uma capacidade 225 e a conexão 216 pode ter uma capacidade 226. Além disso, cada um dos comutadores exemplares 131, 132, 133, 134 e 135 podem ter uma tabela de fluxo associada com estes que podem especificar como os comutadores devem direcionar os pacotes que passam através dos mesmos. Por exemplo, o comutador 131 pode ter uma tabela de fluxo 231 que pode especificar que os pacotes têm um tipo de identificação devem ser direcionados ao longo da conexão 211, enquanto que os pacotes que têm outro tipo de identificação devem ser direcionados ao longo da conexão 214. Em tal modo, como será abaixo descrito em mais detalhes, percursos específicos através de uma rede podem ser estabelecidos, tal como pelo controlador SWAN 140.
[0039] Por exemplo, como ilustrado pela comunicação 241, mos trado em branco na Figura 2 uma certa quantidade de dados pode ser transmitida através da rede que pode ser os dados interativos acima definidos. Como pode ser visto da Figura 2, no exemplo ilustrado, tais dados interativos podem consumir parte da capacidade 224 da conexão 214 e parte da capacidade 225 da conexão 215. Como indicado anteriormente, em uma modalidade, tais dados interativos não precisam explicitamente solicitar qualquer alocação de serviços de rede e podem, ao invés, simplesmente consumir a porção da capacidade 224 da conexão 214 e da capacidade 225 da conexão 215 em um modo tradicional. Em uma modalidade, para propósitos de alocar a capacidade restante, um controlador centralizado, tal como o controlador SWAN 140 (mostrado na Figura 1), pode estimar a quantidade de capacidade que será consumida pelos dados interativos, tal como a ca-pacidade consumida pela comunicação 241. Tal estimativa pode estar baseada em utilizações de capacidade históricas de tais dados interativos utilizando preditores tal como uma média móvel exponencialmente ponderada, ou outros preditores similares. A capacidade restante pode então ser identificada e alocada.
[0040] Para ilustrar a alocação de capacidade, o controlador cen tralizado pode alocar capacidade para comunicações de dados elásticos 242 e 243. Como ilustrado no sistema exemplar 200 da Figura 2, a comunicação 242 pode ser direcionada ao longo das conexões 214 e 215 e pode consumir umas adicionais da capacidade 224 e 225, respectivamente. Similarmente, a comunicação 243 pode ser direcionada ao longo das conexões 211, 212 e 213 e pode consumir parte da capacidade 221, 222 e 223, respectivamente, como ilustrado. Para propósitos de prover um exemplo ilustrativo, as comunicações 242 e 243 podem compreender comunicações de dados elásticos para as quais a capacidade foi correntemente solicitada. Em tal caso, um controlador centralizado pode procurar identificar percursos adicionais através da rede nos quais pode existir uma capacidade e através dos quais os dados de fundo podem ser roteados. Por exemplo, a conexão 216 pode ter uma capacidade 226 que pode ser não utilizada pelos dados interativos representados pela comunicação 241 e os dados elásticos representados pelas comunicações 242 e 243. Assim, um percurso ao longo do que os dados de fundo podem ser roteados, no presente exemplo, pode ser um percurso compreendido das conexões 211, 212, 216 e 215, como ilustrado pela comunicação 246. A comunicação 246 pode, por meio disto, consumir parte da capacidade 221 da conexão 211, parte da capacidade 222 da conexão 212, parte da capacidade previamente não utilizada 226 da conexão 216, e parte da capacidade 225 da conexão 215. Comunicações adicionais 244 e 245 podem também representar rotas através das quais os dados de fundo podem ser roteados através da rede.
[0041] Para fazer com que os dispositivos de computação de uma rede, tal como os comutadores 131, 132, 133, 134 e 135, roteiem os pacotes no modo determinado, e ilustrado pelo sistema exemplar 200 da Figura 2, os pacotes, tal como o pacote exemplar 251 podem ter uma ou mais identidades, tal como a identidade 252 aplicada a estes, tal como pelo comutador de ingresso. Mais especificamente, o pacote 251 pode receber a rede através de um comutador de ingresso o qual, no presente exemplo ilustrado pela Figura 2, pode ser o comutador 131. O comutador 131 pode ter sido programado com um conjunto de regras que pacotes recebidos de um consumidor específico, ou de outro modo identificado como carregando, por exemplo, dados elásticos, devem um identificador 252 aplicado a estes, e o identificador 252 pode especificar um valor de "X". Cada um dos comutadores 131, 132, 133, 134 e 135 pode então compreender tabelas de fluxo, tal como as tabelas de fluxo 231, 232, 233, 234 e 235, respectivamente, que pode especificar conexões específicas ao longo das quais os pacotes que têm um identificador que tem um valor de "X" devem ser direcionados. Por exemplo, a tabela de fluxo 231 do comutador 131 pode ter uma entrada que indica que pacotes que têm um identificador com um valor de "X" devem ser direcionados ou através da conexão 211 ou através da conexão 214. Continuando com o exemplo, a tabela de fluxo 232, do comutador 132 pode ter uma entrada que indica que pacotes que têm um identificador com um valor de "X" devem ser direcionados através da conexão 212. Similarmente, a tabela de fluxo 233 do comutador 133 pode ter uma entrada que indica que pacotes que têm um identificador com um valor de "X" devem ser direcionados através da conexão 213, e a tabela de fluxo 234 do comutador 134 pode ter uma entrada que indica que pacotes que têm um identificador com um valor de "X" devem ser direcionados através da conexão 215. De tal modo, percursos discretos através da rede podem ser selecionados e então implementados por regras que podem ser inseridas em tabelas de fluxo e executadas por comutadores, ou outros dispositivos de computação de uso especial.
[0042] Um mecanismo direto pelo qual um conjunto de percursos pode ser codificado e referenciado em tabelas de fluxo pode ser codificar cada percurso utilizando um identificador único e uma regra correspondente no comutador. Assim, por exemplo, os pacotes a serem enviados ao longo da comunicação 245, ilustrada na Figura 2, podem ser identificados com um identificador, os pacotes a serem enviados ao longo da comunicação 246, podem ser identificados com outro, di-ferente identificador, e o os pacotes a serem enviados ao longo da comunicação 244 podem ser identificados com ainda, diferente identificador. No entanto, tal representação pode ser desperdiçadora porque múltiplas regras são necessárias mesmo quando dois ou mais percursos atravessam conexões ou combinações de conexões idênticas. Por exemplo, as comunicações 241, 242, 244 e 246 todas atravessam a conexão 215. Assim, em uma modalidade, os percursos podem ser combinados ao longo de uma árvore enraizada de destino e um único identificador pode ser utilizado por árvore. Em tal modo, os vários percursos díspares através da rede podem ser agregados em um conjunto de árvores de arvorescência reversa, e um único identificador singular pode ser utilizado por árvores.
[0043] Em uma modalidade, se as regras inseridas em uma tabela de fluxo, tal como a tabela de fluxo 231, especificarem que um pacote que tem um identificador específico pode ser direcionado através de uma de múltiplas conexões, a conexão através da qual qualquer pacote individual é direcionado pode ser independente da conexão para qual qualquer outro pacote foi direcionado, e pode, ao invés ser ran- domicamente selecionada entre múltiplas conexões identificadas na tabela de fluxo como sendo conexões que tal pacote poderia ser direcionado através. Em outra modalidade, no entanto, a conexão através da qual qualquer pacote individual é direcionado pode ser dependente das conexões que pacotes anteriores foram direcionados através. Por exemplo, uma proposta round-robin pode ser implementada onde a conexão através da qual um pacote individual é direcionado, quando dada uma escolha entre dois ou mais diferentes comprimentos, pode sempre ser diferente da conexão através da qual um pacote imediatamente precedente foi direcionado. Quando os pacotes podem ser direcionados através de uma de múltiplas conexões, os pacotes podem ser inspecionados para assegurar que pacotes de um fluxo não sejam direcionados através de duas ou mais diferentes conexões, de modo que os pacotes do fluxo poderiam chegar no seu destino fora de ordem. Por exemplo, endereços de origem, números de porta de endereços de destino, e informações de protocolo podem examinados para determinar se ou não dois ou mais pacotes do mesmo fluxo e, se for determinado que dois ou mais pacotes são do mesmo fluxo então estes pacotes podem ser direcionados ao longo da mesma conexão.
[0044] Como pode ser visto das descrições acima, os comutado res, tal como os comutadores exemplares 131, 132, 133, 134 e 135 podem ser os acima denominados comutadores "controlados por software" os quais podem suportar especificar regras de encaminhamento mais expressivas, tal como aquelas acima descritas em detalhes, para direcionar o tráfego. Além disso, tais comutadores controlados por software podem também monitorar eventos em andamento e mudanças na rede, tal como uma falha de conexão ou uma falha de comutador. Quando detectando tal evento, as informações podem ser transferidas, tal como parta o controlador de rede 160 (mostrado na Figura 1), por meio disto provendo os mecanismos acima descritos com uma topologia de rede atualizada e outras informações de rede similares.
[0045] Apesar da rede simplificada ilustrada na Figura 2 permitir uma compreensão mais fácil dos mecanismos descritos, as redes são prováveis serem substancialmente mais complexas e, consequentemente, podem compreender uma miríade de percursos através de tal rede através dos quais os pacotes podem ser roteados. Em uma mo- dalidade, para eficiência de processamento, um punhado de percursos através de uma rede pode ser pré-computado e um controlador centralizado pode meramente selecionar entre um dos percursos pré- computados. Por exemplo, retornando ao exemplo ilustrado no sistema 200 da Figura 2, o percurso definido pelas conexões 211, 212, 216 e 215 podem ter sido pré-computados e, como tal, pode ter sido um dos percursos considerados por um controlador centralizado para determinar se qualquer capacidade existe através de tal percurso que não foi ainda utilizada. Assim por exemplo, se o percurso definido pelas conexões 211 , 212, 216 e 215 não era um percurso pré- computado, então o controlador centralizado não poderia ter gerado um roteamento de dados de fundo de acordo com a comunicação 246, mesmo que a capacidade 226 possa permanecer subutilizada, já que o controlador centralizado não teria conhecimento de tal percurso através da rede. Para facilidade de referência, tais percursos pré- computados podem ser referidos como "percursos candidatos" dos quais um controlador pode selecionar para propósitos de alocar capacidade e prover uma utilização eficiente de serviços de rede.
[0046] Em uma modalidade, os percursos através de uma rede podem ser reconfigurados, ou as conexões da própria rede podem ser reconfiguradas para prover uma alocação mais eficiente de serviços de rede. No entanto, quando executando tal reconfiguração de rede, as alocações existentes podem causar uma sobrecapacidade sobre certas conexões de rede. Por exemplo, e com referência à Figura 3, uma configuração de rede inicial 301 está ilustrada no topo da Figura 3. Na configuração de rede inicial exemplar 301, comutadores 131, 132, 133 e 134 podem estar interconectados através de conexões 311, 312, 313, 314 e 315. Cada uma destas conexões pode ter uma capacidade correspondente 321, 322, 323, 324 e 325. Na configuração de rede inicial exemplar 301, um conjunto de comunicações 331 pode con- sumir parte da capacidade 321 da conexão 311, parte da capacidade 325 da conexão 315, e parte da capacidade 324 da conexão 314. Outro conjunto de comunicações 332 pode consumir parte da capacidade 323 da conexão 313 e parte da capacidade 324 da conexão 314.
[0047] Para propósito ilustrativo, uma reconfiguração da configura ção inicial exemplar 301 em uma configuração final exemplar 303 pode ser desejada. A configuração final exemplar 303, como ilustrado, pode mover o percurso tomado pelas comunicações 332 das conexões 313 e 314, para as conexões 311 e 312, como ilustrado pela nova comunicação 342. Similarmente, a configuração final exemplar 303 pode mover o percurso tomado pelas comunicações 331 das conexões 311, 315 e 314, para as conexões 313 e 314, como ilustrado pela nova comunicação 341. Onde tal reconfiguração a ser executada em uma única etapa, poderia existir a possibilidade que certas conexões se tornariam sobressaturadas. Por exemplo, a conexão 311, durante um período de transição, poderia ter todos os pacotes da nova comunicação 342 roteados ao longo da conexão 311, enquanto os pacotes da comunicação anterior 331 continuam a também ser roteados ao longo da conexão 311. Para acomodar tais situações, em uma modalidade, uma proposta gradual pode ser adotada por meio de que mudanças incrementais são feitas. Por exemplo, a configuração intermediária exemplar 302 ilustra uma mudança incremental exemplar da configuração inicial exemplar 301. Especificamente, na configuração intermediária exemplar 302, como parte da reconfiguração as comunicações 332 podem ser divididas entre as comunicações 332 e as novas comunicações 342 com cada uma tomando aproximadamente metade do total de dados que foram originalmente enviados através das comunicações 332. De tal modo, a capacidade 321 da conexão 311 pode evitar ser sobressaturada.
[0048] Da configuração intermediária exemplar 302 para a configu- ração final 303, outra mudança incremental pode ser feita, em que os dados transmitidos ao longo das comunicações 332 são diminuídos para zero e todas tais comunicações são transmitidas ao longo das comunicações 342, e, as comunicações existentes 331 podem transi- cionar para as novas comunicações 341.
[0049] Para permitir tal reconfiguração, em uma modalidade, al guma capacidade pode permanecer não utilizada através de algumas ou todas as conexões da rede. Por exemplo, se a capacidade 321 da conexão 311 foi totalmente utilizada pelas comunicações 331 na configuração original exemplar 301, uma mudança incremental subsequente, em que pelo menos alguns dos dados enviados ao longo das comunicações 332 são agora transicionados para serem enviados ao longo das novas comunicações 342, como ilustrado pela configuração intermediária exemplar 302, nunca poderia ter ocorrido, já que a capacidade 321 teria sido totalmente utilizada, e nenhuma capacidade adicional teria restado para aceitar os dados que estão sendo comunicados ao longo das novas comunicações 342.
[0050] Em outra modalidade, ao invés de reservar uma capacida de não utilizada nas conexões, as transferências de dados de fundo podem ser tratadas como capacidade não utilizada para propósitos de reconfiguração de rede. Por exemplo, se a capacidade 321 da conexão 311 foi totalmente utilizada, mas parte desta utilização foi transferências de dados de fundo, então, na implementação da configuração intermediária exemplar 302, algumas destas transferências de dados de fundo através da conexão 311 podem ser paradas, e uma capacidade adicional, entre a capacidade 321, pode ser tornada disponível de modo a acomodar a capacidade consumida pelas novas comunicações 342. Uma vez que a configuração final exemplar 303 é atingida, as transferências de dados de fundo previamente paradas podem ser reinicializadas, ou através da conexão 311, ou atra- vés de uma conexão análoga que agora compreende um excesso capacidade que pode ser alocada para tais transferências de dados de fundo.
[0051] A reconfiguração de rede acima descrita pode ser imple mentada através de mudanças nas tabelas de fluxo dos comutadores no mesmo modo que aquele descrito acima em detalhes. Especificamente, como um exemplo, transicionando entre a configuração inicial exemplar 301, e a configuração intermediária exemplar 302, as tabelas de fluxo do comutador 131, as quais não estão explicitamente ilustradas na Figura 3, podem ser atualizadas de modo que os pacotes que carregam identificadores que os identificam como pacotes que deveriam ser direcionados ao longo da comunicação 332 podem agora ser divididos entre as comunicações 332 e 342, tal como no modo randô- mico ou round-robin acima descrito em detalhes.
[0052] Observando a Figura 4, o fluxograma 400 ali mostrado ilus tra uma série exemplar de etapas pelas quais os serviços de rede podem ser alocados e a capacidade de rede pode ser consistentemente consumida, provendo os seus benefícios de eficiência consequentes. Inicialmente, como ilustrado, na etapa 410 topologias de rede, estatísticas, falhas e outras informações de rede similares podem ser recebidas e, coincidentemente com o recebimento de tais informações de rede, na etapa 420, solicitações para uma alocação de serviços de rede, tal como a capacidade de rede ou largura de banda de rede, podem ser recebidas. Na etapa 430, uma estimativa pode ser feita da quantidade de serviços de rede que será consumida pela transferência de dados interativos através da rede. Como anteriormente indicado, em uma modalidade, os dados interativos não precisam fazer qualquer solicitações para capacidade de rede, tal como as solicitações recebidas na etapa 420. Subsequentemente, na etapa 440, uma etapa opcional pode ser executada onde a rede pode ser reconfigurada de tal modo a maximizar a quantidade de serviços de rede, tal como a capacidade de rede, restante para alocar. Tal capacidade de rede restante pode ser alocada para solicitações de serviço de rede originadas de consumidores que buscam transferir dados elásticos através da rede, como indicado pela etapa 450 e, como parte de tal alocação, as regras de identificação de pacote e tabelas de fluxo podem ser atualizadas, como indicado pela etapa 460.
[0053] Se, como determinado na etapa 470, qualquer capacidade de rede resta, tal capacidade pode ser atribuída para os consumidores que buscam utilizar a rede para transferir dados de fundo através desta. Em tal modo, a rede pode ser consistentemente utilizada em uma alta capacidade, resultando em uma eficiente utilização de custos de rede. Assim, por exemplo, na etapa 480, a capacidade de rede determinada estar restando na etapa 470 pode ser atribuída para aqueles consumidores de serviços de rede que buscam transmitir dados de fundo através da rede. Subsequentemente, na etapa 490, regradas de identificação de pacote e tabelas de fluxo podem ser geradas para efetuar as alocações da etapa 480. Se, na etapa 470, não existir nenhuma capacidade de rede restante que já não foi alocada, então o pro-cessamento pode pular diretamente para a etapa 499. Subsequentemente, o processamento das etapas 410 até 490 pode ser repetido para subsequentes solicitações para capacidade de rede e para subsequentes notificações de rede.
[0054] Em outra modalidade, não especificamente ilustrada no di agrama 400 da Figura 4, a capacidade de rede pode ser atribuída, como parte de um único processo, tanto a clientes que buscam transferir dados elásticos quanto a clientes que buscam transferir dados de fundo. Em tal modalidade, a modalidade, etapa 450 pode atribuir a capacidade de rede restante para a transferência de ambos os tipos de dados, e a etapa 460 pode atualizar as regras de identificação de pa- cote e as tabelas de fluxo consequentemente. As etapas 480 e 490 podem, por meio disto, ser eliminadas.
[0055] Como ilustrado pelo fluxograma 400 da Figura 4, na etapa 410, informações referentes a falhas de rede podem ser recebidas. Em uma modalidade, a reconfiguração da rede, tal como na etapa 440, pode ser executada em resposta ao recebimento, na etapa 410, de uma ou mais falhas dentro da rede. Subsequentemente, após a rede ser reconfigurada na etapa 440 para acomodar tais falhas, o processamento pode prosseguir para a etapa 460 com as regras de identificação de pacote e tabelas de fluxo podendo ser atualizadas para efetuar a reconfiguração de rede.
[0056] Observando a Figura 5, um dispositivo de computação exemplar está ilustrado, o qual pode incluir tanto dispositivos de computação de uso geral, tais como podem executar alguns dos mecanismos acima detalhados, quanto dispositivos de computação de uso específico, tais como os comutadores acima descritos. O dispositivo de computação exemplar 500 pode incluir, mas não está limitado a, uma ou mais unidades de processamento central (CPUs) 520, uma memória de sistema 530 e um barramento de sistema 521 que acopla vários componentes de sistema incluindo a memória de sistema na unidade de processamento 520. O barramento de sistema 521 pode ser qualquer um de diversos tipos de estruturas de barramento incluindo um barramento de memória ou controlador de memória, um barramento periférico, e um barramento local que utiliza qualquer uma de uma variedade de arquiteturas de barramento. Dependendo da implementação física específica, um ou mais das CPUs 520, da memória de sistema 530 e outros componentes do dispositivo de computação 500 podem estar fisicamente colocalizados, tal como em um único chip. Em tal caso, alguns ou todos os barramentos de sistema 521 podem ser não mais do que percursos comunicacionais dentro de uma estru- tura de chip único e sua ilustração na Figura 5 pode ser nada mais do que uma conveniência notacional para o propósito de ilustração.
[0057] O dispositivo de computação 500 também tipicamente inclui um meio legível por computador, o qual pode incluir qualquer meio disponível que pode ser acessado pelo dispositivo de computação 500. Por exemplo, e não limitação, o meio legível por computador pode compreender um meio de armazenamento de computador e um meio de comunicação. O meio de armazenamento de computador inclui um meio implementado em qualquer método ou tecnologia para armazenamento de informações tal como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. O meio de armazenamento de computador inclui, mas não está limitado a, RAM, ROM, EEPROM, memória instantânea ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento de disco ótico, cassetes magnéticos, fita magnética, arma-zenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser utilizado para armazenar as informações desejadas e o qual pode ser acessado pelo dispositivo de computação 500. O meio de armazenamento de computador, no entanto, não inclui o meio de comunicação. O meio de comunicação tipicamente incorpora instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados em um sinal de dados modulado tal como uma onda portadora ou outro mecanismo de transporte e inclui qualquer meio de fornecimento de informações. Como exemplo, e não limitação, o meio de comunicação inclui um meio com fio tal como uma rede com fio ou uma conexão com fio direta, e um meio sem fio tal como um meio sem fio acústico, RF, infravermelho, e outros. Combinações de quaisquer dos acima devem também estar incluídas no escopo de meio legível por computador.
[0058] A memória de sistema 530 inclui um meio de armazena mento de computador na forma de uma memória volátil e/ou não volátil tal a memória somente de leitura (ROM) 531 e memória de acesso randômico (RAM) 532. Um sistema de entrada/saída básico 533 (BIOS), que contém as rotinas básicas que ajudam a transferir as informações entre os elementos dentro do dispositivo de computação 500, tal como durante a partida, está tipicamente armazenado na ROM 531. A RAM 532 tipicamente contém dados e/ou módulos de programa que estão imediatamente acessíveis à, e/ou presentemente sendo operados pela unidade de processamento 520. Como exemplo, e não limitação, a Figura 5 ilustra o sistema de operação 534, outros módulos de programa 535, e dados de programa 536.
[0059] Quando utilizando o meio de comunicação, o dispositivo de computação 500 pode operar em um ambiente de rede através de conexões lógicas com um ou mais computadores remotos. A conexão lógica apresentada na Figura 5 é uma conexão de rede geral 571 para a rede 190, a qual pode ser uma rede de área local (LAN), uma rede de área ampla (WAN) tal como a Internet, ou outras redes. O dispositivo de computação 500 está conectado na conexão de rede geral 571 através de uma interface de rede ou adaptador 570 que está, por sua vez, conectado no barramento de sistema 521. Em um ambiente de rede, os módulos de programa apresentados relativos ao dispositivo de computação 500, ou porções ou suas porções ou periféricos, podem estar armazenados na memória de um ou mais outros dispositivos de computação que estão comunicativamente acoplados no dis-positivo de computação 500 através da conexão de rede geral 571. Será apreciado que as conexões de rede mostradas são exemplares e outros meios para estabelecer uma conexão de comunicações entre dispositivos de computação podem ser utilizados.
[0060] O dispositivo de computação 500 pode também inclui outro meio de armazenamento de computado removível/não removível, volá- til/não volátil. Como exemplo somente, a Figura 5 ilustra uma unidade de disco rígido 541 que lê do e escreve no meio não removível, não volátil. Outros meio de armazenamento de computado removíveis/não removíveis, voláteis/não voláteis que pode ser utilizado com o dispositivo de computação exemplar incluem, mas estão limitados a, cassetes de fita magnética, cartões de memória instantânea, discos versáteis digitais, fita de vídeo digital, RAM de estado sólido, ROM de estado sólido, e similares. A unidade de disco rígido 541 está tipicamente conectada no barramento de sistema 521 através de uma interface de memória não removível tal como interface 540.
[0061] As unidades e seus meios de armazenamento de computa dor associados acima discutidas e ilustradas na Figura 5, proveem um armazenamento de instruções legíveis por computador, estruturas de dados, módulos de programa e outros dados para o dispositivo de computação 500. Na Figura 5, por exemplo, a unidade de disco rígido 541 está ilustrada como armazenamento o sistema de operação 544, outros módulos de programa 545, e dados de programa 546. Note que estes componentes podem ser ou os mesmos ou diferentes do sistema de operação 534, outros módulos de programa 535 e dados de programa 536. O sistema de operação 544, outros módulos de programa 545 e dados de programa 546 são dados diferentes números aqui para ilustrar que, no mínimo, estes são diferentes cópias.
[0062] Como pode ser visto das descrições acima, uma rede con trolada por software para maior utilização de rede foi apresentada. A qual, em vista das muitas possíveis variações do assunto aqui descrito, reivindica-se como a invenção todas tais modalidades que possam vir dentro do escopo das reivindicações seguintes e seus equivalentes.

Claims (4)

1. Sistema que compreende: um controlador (140) que executa etapas caracterizadas pelo fato de que compreende: receber, de pelo menos um corretor de serviço (151, 152), solicitações agregadas (172, 192) para um serviço de rede; receber, de um controlador de rede (160), informações de rede (182) sobre uma rede que fornece o serviço de rede; alocar o serviço de rede em alocações de serviço agregadas (173, 193) de acordo com as informações de rede recebidas; responder às solicitações agregadas com as alocações de serviço agregadas; e o pelo menos um corretor de serviço (151, 152) que executa etapas que compreendem: receber solicitações individuais (171, 191) para o serviço de rede; agregar as solicitações individuais recebidas em pelo menos uma das solicitações agregadas (172, 192) para o serviço de rede; transmitir pelo menos uma das solicitações agregadas para o controlador; receber, em resposta à transmitida pelo menos uma das so-licitações agregadas, pelo menos uma das alocações de serviço agregadas (173, 193); e distribuir, em resposta às solicitações individuais recebidas para o serviço de rede, alocações de serviço individuais (175, 195) do serviço de rede da recebida pelo menos uma das alocações de serviço agregadas.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende o controlador de rede (160), diferente do controlador, o controlador de rede executando etapas que compreendem: receber da rede as informações da rede (181); receber, do controlador, as regras de identificação e transferência de pacotes (183) para implementar as alocações de serviço agregadas; em que as regras de identificação de pacotes identificam pacotes a serem identificados com um primeiro identificador e em que ainda as regras de transferência identificam uma ou mais conexões da rede através das quais transmitir um pacote identificado com o primeiro identificador.
3. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o controlador executa etapas adicionais que compreendem: estimar uma utilização do serviço de rede por dados interativos, os dados interativos desviando das alocações de serviço do controlador.
4. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o controlador executa etapas adicionais que compreendem: reconfigurar a rede de uma primeira configuração para uma segunda configuração temporariamente e incrementalmente mudando uma configuração de rede de modo a evitar uma sobrecapacidade em qualquer uma ou mais conexões da rede como parte da reconfiguração para a segunda configuração.
BR112015016386-6A 2013-01-10 2014-01-10 Sistema hierárquico para alta utilização em redes BR112015016386B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/738,969 US8977756B2 (en) 2013-01-10 2013-01-10 SWAN: achieving high utilization in networks
US13/738,969 2013-01-10
PCT/US2014/010946 WO2014110304A2 (en) 2013-01-10 2014-01-10 Swan: achieving high utilization in networks

Publications (2)

Publication Number Publication Date
BR112015016386A2 BR112015016386A2 (pt) 2017-07-11
BR112015016386B1 true BR112015016386B1 (pt) 2023-03-28

Family

ID=50031575

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015016386-6A BR112015016386B1 (pt) 2013-01-10 2014-01-10 Sistema hierárquico para alta utilização em redes

Country Status (5)

Country Link
US (1) US8977756B2 (pt)
EP (1) EP2944072B1 (pt)
CN (1) CN105103524B (pt)
BR (1) BR112015016386B1 (pt)
WO (1) WO2014110304A2 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977756B2 (en) * 2013-01-10 2015-03-10 Microsoft Technology Licensing, Llc SWAN: achieving high utilization in networks
US9363303B2 (en) 2013-03-15 2016-06-07 Microsoft Technology Licensing, Llc Network routing modifications for distribution of data
US9577925B1 (en) * 2013-07-11 2017-02-21 Juniper Networks, Inc. Automated path re-optimization
US10116590B2 (en) * 2014-10-13 2018-10-30 Nec Corporation Network virtualization and resource allocation for the internet of things
CN105916167B (zh) * 2015-11-25 2019-06-11 北京邮电大学 一种使用hostapd平台SWAN拓展协议的通信方法
US10182019B2 (en) * 2016-02-25 2019-01-15 Telefonaktiebolaget Lm Ericsson (Publ) Interconnected hardware infrastructure resource control
US20170286994A1 (en) * 2016-03-29 2017-10-05 SETA International LLC Power buy system
US10693732B2 (en) 2016-08-03 2020-06-23 Oracle International Corporation Transforming data based on a virtual topology
US10389628B2 (en) 2016-09-02 2019-08-20 Oracle International Corporation Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
US10291507B2 (en) 2017-02-13 2019-05-14 Oracle International Corporation Implementing a virtual tap in a virtual topology
US10462013B2 (en) * 2017-02-13 2019-10-29 Oracle International Corporation Implementing a single-addressable virtual topology element in a virtual topology
US11418583B2 (en) * 2018-02-14 2022-08-16 International Business Machines Corporation Transaction process management by dynamic transaction aggregation
US11108694B2 (en) * 2018-03-30 2021-08-31 Ricoh Company, Ltd. Communication system and upload method
WO2019232725A1 (en) * 2018-06-06 2019-12-12 Huawei Technologies Co., Ltd. System and method for controlling management operations and shared memory space for multi-tenant cache service in cloud computing
US10554637B1 (en) * 2019-05-01 2020-02-04 Cyberark Software Ltd. Secure and reconstructible distribution of data among network resources

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216179B2 (en) * 2000-08-16 2007-05-08 Semandex Networks Inc. High-performance addressing and routing of data packets with semantically descriptive labels in a computer network
US7505413B2 (en) 2004-09-09 2009-03-17 Cariden Technologies, Inc. Methods and systems to perform traffic engineering in a metric-routed network
CN1416062A (zh) * 2002-10-31 2003-05-07 李洪宝 一种计算机网络上存储介质资源的聚集方法
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US20060109832A1 (en) * 2004-11-23 2006-05-25 Boris Ginzburg Apparatus and method of aggregation of data packets streams
EP1872533B1 (en) 2005-04-22 2019-05-22 Audinate Pty Limited Network, device and method for transporting digital media
US20070121870A1 (en) 2005-11-03 2007-05-31 Microsoft Corporation Subscription service integration application program interface and schema
US8145917B2 (en) * 2005-12-30 2012-03-27 Nokia Corporation Security bootstrapping for distributed architecture devices
US7933205B1 (en) 2006-05-01 2011-04-26 At&T Mobility Ii Llc Generalized interconnection apparatus for delivering services based on real time performance requirements
US8274905B2 (en) 2006-08-22 2012-09-25 Embarq Holdings Company, Llc System and method for displaying a graph representative of network performance over a time period
US8125907B2 (en) 2008-06-12 2012-02-28 Talari Networks Incorporated Flow-based adaptive private network with multiple WAN-paths
CA2762706A1 (en) * 2008-07-29 2010-02-04 Motorola Mobility, Inc. Method and system for securing communication sessions
US20110299389A1 (en) 2009-12-04 2011-12-08 Telcordia Technologies, Inc. Real Time Monitoring, Onset Detection And Control Of Congestive Phase-Transitions in Communication Networks
US8190593B1 (en) * 2010-04-14 2012-05-29 A9.Com, Inc. Dynamic request throttling
US8488575B2 (en) 2010-11-18 2013-07-16 At&T Intellectual Property, I, L.P. Methods, devices, and computer program products for providing a plurality of application services via a customized private network connection
US9450873B2 (en) 2011-06-28 2016-09-20 Microsoft Technology Licensing, Llc Performance isolation for clouds
US8977756B2 (en) * 2013-01-10 2015-03-10 Microsoft Technology Licensing, Llc SWAN: achieving high utilization in networks

Also Published As

Publication number Publication date
WO2014110304A3 (en) 2014-11-27
WO2014110304A2 (en) 2014-07-17
BR112015016386A2 (pt) 2017-07-11
US8977756B2 (en) 2015-03-10
US20140195689A1 (en) 2014-07-10
CN105103524A (zh) 2015-11-25
EP2944072B1 (en) 2018-08-15
CN105103524B (zh) 2019-04-09
EP2944072A2 (en) 2015-11-18

Similar Documents

Publication Publication Date Title
BR112015016386B1 (pt) Sistema hierárquico para alta utilização em redes
US10657106B2 (en) Method, computing device, and distributed file system for placement of file blocks within a distributed file system
US11237871B1 (en) Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems
CN107066319B (zh) 一种面向异构资源的多维调度系统
US9497139B2 (en) Client-allocatable bandwidth pools
US10055262B1 (en) Distributed load balancing with imperfect workload information
US9154589B1 (en) Bandwidth-optimized cloud resource placement service
US9104492B2 (en) Cloud-based middlebox management system
US9306870B1 (en) Emulating circuit switching in cloud networking environments
US9454408B2 (en) Managing network utility of applications on cloud data centers
US9438665B1 (en) Scheduling and tracking control plane operations for distributed storage systems
TW201214284A (en) Virtualization and dynamic resource allocation aware storage level reordering
US10158709B1 (en) Identifying data store requests for asynchronous processing
US10146814B1 (en) Recommending provisioned throughput capacity for generating a secondary index for an online table
Li et al. Elasticity-aware virtual machine placement for cloud datacenters
US10846788B1 (en) Resource group traffic rate service
US20110099265A1 (en) Defining enforcing and governing performance goals of a distributed caching infrastructure
Javadpour et al. Mapping and embedding infrastructure resource management in software defined networks
US9898614B1 (en) Implicit prioritization to rate-limit secondary index creation for an online table
CN110430236A (zh) 一种部署业务的方法以及调度装置
US20220004330A1 (en) Memory pool data placement technologies
Wen et al. Load balancing consideration of both transmission and process responding time for multi-task assignment
Huang et al. Virtualrack: Bandwidth-aware virtual network allocation for multi-tenant datacenters
US11962429B1 (en) Sharing transport interfaces between tenants on multi-tenant edge devices
WO2023066248A1 (zh) 数据处理方法、装置、设备和系统

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
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 10/01/2014, OBSERVADAS AS CONDICOES LEGAIS