Relatório Descritivo da Patente de Invenção para: "CONTROLEDE BANDA ADAPTATIVO" .
Referência a Pedidos Relacionados
A presente invenção está relacionada a pedidos depatente seguinte: Método direito e aparelhos para controlede largura de banda adaptativo.
Fundamentos da Invenção
Campo da Invenção
A presente invenção refere geralmente a um sistemamelhorado de processamento de dados e, em particular, a umcomputador implementado método e aparelho para transferirdados. Ainda mais especificamente, a invenção se refere aum método de programas de computador, aparelhos, e códigode programa de computador utilizáveis para adaptativamentecontrolar largura de banda utilizada para transferir dados.
Descrição da Técnica Relacionada
Com o uso comum das redes e da Internet, comunicações,comércio eletrônico foi revolucionado. As redes sãocomumente usados para transferir dados. Muitas aplicaçõesdistribuídas fazer uso de transferências do fundo grandepara melhorar a qualidade do serviço. Com estes tipos detransferências do fundo, os usuários não são obrigados aesperar por essas transferências para concluir antes deexecutar outras ações. Uma ampla gama de aplicações eserviços, incluindo, por exemplo, backup de dadosprefetchmg, distribuição de dados da empresa de Internet,distribuição de conteúdo, e peer-to-peer de armazenamentoempregar transferências do fundo. Consumo de rede Estes eoutros tipos de aplicações de aumentar a banda. Algunsdesses serviços têm potencialmente ilimitado exigências delargura de banda em que o uso de mais largura de banda deforma incrementai incrementai fornece um serviço melhor.Um problema com esses tipos de aplicações é que a maioriadas redes tem apenas uma quantidade limitada de largura debanda disponível para transferência de dados. Algumasaplicações de realizar funções críticas, enquanto outrossão não-críticas.
Normalmente, as transferências fundo não são críticase podem usar toda a banda disponível abrandar o tráfego derede crítica.
Adaptive controles de largura de banda têm sidoempregadas para se adaptar automaticamente às condições darede para reduzir o impacto para a rede. Atualmente,diferentes processos de controle adaptativo de banda ealgoritmos são utilizados para controlar a quantidade delargura de banda utilizada por aplicativos diferentes paraevitar congestionamentos. Atualmente disponível adaptativoprocessos de controle de largura de banda de ter em contaas condições da rede a nível local interface, quer noservidor ou computador do cliente e são incapazes de levarem conta outras condições que possam existir natransferência de dados.
Código de programa, portanto, seria vantajoso ter umcomputador melhor método implementado, o aparelho e ocomputador pode ser utilizado para controlar o uso da bandaadaptativamente na transferência de dados.
Sumário Da Invenção
A presente invenção fornece um método de programas decomputador, aparelhos, e código de programa de computadorpode ser utilizado para receber dados de uma fonte a umapluralidade de gateways para distribuição usando umaprioridade selecionada. Os dados são transmitidos a partirda pluralidade de portas de entrada para uma pluralidade dereceptores com a prioridade escolhida. Cada gateway napluralidade de gateways tem um processo de controleadaptativo de banda e um conjunto respectivos parâmetrospara controlar o processo de controle adaptativo de bandapara enviar os dados com a prioridade selecionada.Transmissão dos dados de cada porta de entrada para aprioridade escolhida tem um impacto diferente sobre otráfego em outros gateways diferentes no gatewayspluralidade para a prioridade escolhida quando os valoressão estabelecidos para o conjunto de parâmetros para osgateways diferentes.
O conjunto de parâmetros pode incluir um limiar, betae um tempo máximo de espera. 0 conjunto de parâmetros podemser configurados para um gateway especial na pluralidade depassagens, onde o conjunto de parâmetros para o gatewayparticular pode ser diferente a partir do conjunto deparâmetros para um outro gateway na pluralidade dosgateways. O processo de controle adaptativo de banda levaem conta o congestionamento ao longo de um caminho a partirde um portal na pluralidade das portas de entrada para umreceptor da distribuição. Além disso, o respectivo conjuntode parâmetros podem ser diferentes para diferentes gatewaysna pluralidade dos gateways. Nos exemplos ilustrativos, osdados incluem um arquivo de dados, uma atualização doaplicativo, e um patch virus.
Breve Descrição Dos Desenhos
Concretização (s) da invenção será agora descrito, atitulo de exemplo apenas, e com referência aos desenhos queacompanham, em que:
A Figura 1 é uma representação pictórica de uma redede sistemas de processamento de dados em que os aspectos dapresente invenção pode ser aplicada.A Figura 2 é um diagrama de blocos de um sistema deprocessamento de dados em que os aspectos da presenteinvenção pode ser aplicada.
A Figura 3 é um diagrama que ilustra um exemplo derede de processamento de dados do sistema em que asdistribuições pode ser feito utilizando diferentesprioridades de acordo com uma modalidade ilustrativa dapresente invenção.
A figura 4 é um diagrama que ilustra os componentesutilizados no controle de banda adaptável de acordo com umamodalidade ilustrativa da presente invenção.
A Figura 5 é um diagrama de um protocolo de controlede transmissão / protocolo Internet (TCP / IP) e protocolossimilares, de acordo com uma modalidade ilustrativa dapresente invenção.
A Figura 6 é um diagrama de processos de softwareilustrando e componentes utilizados na prestação decontrole de banda adaptável de acordo com uma modalidadeilustrativa da presente invenção;
Figura 7 é um diagrama que ilustra uma rede para o envio deuma distribuição de um remetente adaptativo para receptorescom as prioridades de acordo com uma modalidade ilustrativada presente invenção.A Figura 8 é um diagrama que ilustra o uso da banda emuma rede, de acordo com uma modalidade ilustrativa dapresente invenção.
A Figura 9 é um fluxograma de um processo paraconfigurar as configurações do usuário para os parâmetrosde acordo com uma modalidade ilustrativa da presenteinvenção.
A Figura 10 é um fluxograma de um processo de enviaruma lista de discussão, de acordo com uma modalidadeilustrativa da presente invenção.
A Figura 11 é um fluxograma de um processo derastreamento de pacotes segmento, de acordo com umamodalidade ilustrativa da presente invenção, Figura 12 é umfluxograma de um processo de discussão para um controle decongestionamento, de acordo com uma modalidade ilustrativada presente invenção.
A Figura 13 é um fluxograma de um processo para arealização de controle de banda adaptável de acordo com umamodalidade ilustrativa da presente invenção.
A figura 14 é um fluxograma de um processo parapersonalizar o envio de distribuições para os receptores deum cliente, de acordo com uma modalidade ilustrativa dapresente invenção.
Descrição da Modalidade PreferidaAs Figuras 1-2 são fornecidos como diagramas exemplarde processamento de dados ambientes em que incorporações dapresente invenção podem ser aplicadas. Deve-se considerarque são apenas figuras 1-2 exemplar e não se destinam aassegurar ou implicar qualquer limitação no que dizrespeito aos ambientes em que aspectos ou incorporações dapresente invenção podem ser aplicadas. Muitas alteraçõesaos ambientes descritos podem ser feitas sem alterar oespirito e alcance da presente invenção.Agora, com referência aos valores, a Figura 1 mostra umarepresentação pictórica de uma rede de sistemas deprocessamento de dados em que os aspectos da presenteinvenção podem ser aplicadas. Rede de dados sistema deprocessamento de 100 é uma rede de computadores em queincorporações da presente invenção podem ser aplicadas.Rede sistema de processamento de dados contém 100 rede 102,que é o meio usado para fornecer comunicações ligaçõesentre os vários dispositivos e computadores ligados entresi no sistema de processamento de dados da rede 100. Rede102 pode incluir conexões, como fios de cabos, ligações decomunicação sem fio ou fibra ótica.
No exemplo ilustrado, 104 servidores e 106 se conectar aoservidor de rede, juntamente com 102 unidade dearmazenamento de 108. Além disso, os clientes 110, 112 e114 se conectar à rede 102. Esses clientes 110, 112 e 114podem ser, por exemplo, computadores pessoais oucomputadores de rede. No exemplo ilustrado, 104 servidorfornece dados, como arquivos de inicialização, imagens dosistema operacional e aplicativos para os clientes 110, 112e 114. Clientes 110, 112 e 114 são clientes ao servidor 104neste exemplo. Rede de dados sistema de processamento de100 podem incluir servidores adicionais, clientes e outrosdispositivos que não é mostrado.
No exemplo descrito, o sistema de dados da rede deprocessamento de 100 é a Internet com rede de 102representa uma coleção mundial de redes e gateways que usamo Transmission Control Protocol / Internet Protocol (TCP /IP) suite de protocolos para se comunicar com o outro. Nocoração da Internet é a espinha dorsal de dados de altavelocidade de linhas de comunicação entre os nós principaisou computadores host, composto de milhares de comerciais,governamentais, educacionais e outros sistemas decomputador que os dados de rota e mensagens. Naturalmente,os dados da rede do sistema de processamento de 100 tambémpode ser implementado como um número de diferentes tipos deredes, como por exemplo, uma intranet, uma rede de árealocal (LAN) ou uma rede de área ampla (WAN) . Figura 1destina-se, como exemplo, e não como uma limitação dearquitectura para diferentes incorporações da presenteinvenção.
Com referência agora à Figura 2, um diagrama de blocos deum sistema de processamento de dados é mostrado em que osaspectos da presente invenção podem ser aplicadas. Dados dosistema de processamento de 200 é um exemplo de umcomputador, como o servidor de 104 ou 110 clientes naFigura 1, em que o código de computador utilizáveis ouinstruções de execução dos processos de incorporações dapresente invenção pode ser localizado.
No exemplo descrito, o sistema de processamento de dados200 emprega uma arquitetura hub incluindo a ponte norte eMemory Controller Hub (MCH) 202 e ponte sul e entrada /saida (I / 0) controller hub (ICH) 204. Unidade deprocessamento de 206, 208 de memória principal, processadorgráfico e 210 estão conectados à ponte norte e hubcontrolador de memória 202. Processador gráfico 210 podeser conectado a ponte norte e hub controlador de memória de202 através de uma porta de gráficos acelerada (AGP).No exemplo ilustrado, rede de área local (LAN) 212 conecta-se a ponte sul e I / O controller hub 204. Adaptador deÁudio 216, teclado e mouse adaptador 220, modem 222, ReadOnly Memory (ROM) 224, unidade de disco rígido (HDD) 226,CD-ROM 230, universal serial bus (USB) e outras portas decomunicação 232, e PCI dispositivos de E / PCIe 234 ligar aponte sul e I / O controller hub 204 por 238 ônibus e 240ônibus. Dispositivos PCI / PCIe podem incluir, por exemplo,placas Ethernet, placas de expansão e cartões de PC paracomputadores portáteis. PCI utiliza um controlador debarramento do cartão, enquanto PCIe não. ROM 224 pode ser,por exemplo, um flash de entrada binária / output system(BIOS).
Hard disk drive 226 e CD-ROM 230 conectar a ponte sul e I /O controller hub 204 por 240 ônibus. Hard disk drive 226 eCD-ROM 230 pode utilizar, por exemplo, um eletrônicointegrado (IDE) ou Serial Advanced Technology Attachment(SATA) interface. Super I / O (SIO) 236 dispositivo podeser conectado a ponte sul e I / 0 controller hub 204.Um sistema operacional é executado em unidade deprocessamento de 206 e coordena e fornece o controle devários componentes no sistema de processamento de dados 200na Figura 2. Como cliente, o sistema operacional pode serum sistema operacional disponíveis comercialmente, como oMicrosoft ® Windows ® XP (Microsoft e Windows são marcasregistradas da Microsoft Corporation nos Estados Unidos,outros países, ou ambos).
Um objeto do sistema de programação orientada, como osistema de programação Java ™, pode funcionar em conjuntocom o sistema operacional e oferece chamadas para o sistemaoperacional a partir de programas Java ou aplicações emexecução no sistema de processamento de dados 200 (Java émarca registrada da Sun Microsystems, Inc. nos Estados Unidos, outros países, ou ambos).
Como um servidor, sistema de processamento de dados de 200pode ser, por exemplo, um IBM eServer ™ pSenes sistemainformático ®, correndo o Advanced Interactive Executive(AIX ®) ou sistema operacional Linux (sistema operacional eServer, pSenes e AIX são marcas registradas daInternational Business Machines
Corporation nos Estados Unidos, outros países, ou ambos,enquanto o Linux é uma marca registrada de Linus Torvaldsnos Estados Unidos, outros países, ou ambos). Dados do sistema de processamento de 200 pode ser ummultiprocessador simétrico (SMP sistema), incluindo umapluralidade de processadores em unidade de processamento de206. Como alternativa, um sistema único processador podeser empregado.
Instruções para o sistema operacional, o sistema deprogramação object-oriented, e aplicativos ou programasestão localizados em dispositivos de armazenamento, comodisco rígido 226, e pode ser carregado na memória principalpara execução de 208 por unidade de processamento de 206.Os processos de incorporações da presente invenção sãorealizados por unidade de processamento de 206 usando ocódigo de programa de computador usado, que pode estarlocalizado em uma memória, como, por exemplo, a memóriaprincipal 208, 224 Read Only Memory, ou em um ou maisdispositivos periféricos 226 e 230.
Aqueles de competências normais no art compreenderá que ohardware em figuras 1-2 pode variar dependendo daaplicação. Hardware interno ou Outros dispositivosperiféricos, tais como a memória flash, equivalente não-volátil, ou unidades de disco óptico e similares, podem serutilizadas em complemento ou em substituição dosequipamentos descritos nas figuras 1-2. Além disso,os processos da presente invenção pode ser aplicada a umsistema de processamento de múltiplos dados.Em alguns exemplos ilustrativos, sistema de processamentode dados de 200 pode ser um assistente pessoal digital(PDA), que é configurado com memória flash para fornecermemória não-volátil para armazenar arquivos do sistemaoperacional e / ou de dados gerados.
Um sistema de ônibus poderá ser composta de um ou maisônibus, como o ônibus 238 ou 240 ônibus, como mostrado nafigura 2. Claro que o sistema de ônibus pode serimplementado usando qualquer tipo de tecido ou decomunicações arquitetura que prevê uma transferência dedados entre os diferentes componentes ou dispositivosconectados ao tecido ou arquitetura. A unidade decomunicações podem incluir um ou mais dispositivos usadospara transmitir e receber dados, tais como modem 222 ouadaptador de rede 212 da Figura 2. A memória pode ser, porexemplo, a memória principal 208, 224 Read Only Memory, ouum cache como encontrada na ponte norte e hub controladorde memória de 202 na Figura 2. Os exemplos descritos nasfiguras 1-2 e exemplos descritos acima não são destinadas aimplicar limitações arquitectónicas. Por exemplo, o sistemade processamento de dados 200 também pode ser um computadorde mesa, computador portátil, telefone ou outro dispositivopara além de adoptar a forma de um PDA.A presente invenção fornece um método de programas decomputador, aparelhos, e código de programa de computadorutilizáveis para o controlo adaptativo de banda usada natransferência de dados. Os aspectos da presente invençãoreconhecer que atualmente utilizados processos de controleadaptativo de banda são incapazes de tomar em conta ascondições da rede para além desses no cliente. Os aspectosda presente invenção reconhecer que redes diferentes têmcaracterísticas diferentes, que podem afetar atransferência de dados. Os aspectos da presente invençãofornecer mecanismos diferentes para tomar estes tipos defatores em conta. Os aspectos da presente invenção forneceruma capacidade de definir parâmetros para controlar a formacomo os pacotes de dados são enviados em uma rede para usoem controle de banda adaptável.
Os aspectos da presente invenção reconhecer que existemactualmente sistemas de transferência de dados tendem acorrer muito devagar nos modos de fundo e pode levar muitotempo para ser concluído. Os aspectos da presente invençãotambém reconhecer que existem muitos casos em que osclientes desejam funcionalidade adaptativa e não queremdistribuições para levar um longo tempo, em certos casos.Por exemplo, uma distribuição de adesivos de vírus ouatualizações é considerada muito importante no que dizrespeito a uma atualização para um aplicativo. Assim, osaspectos da presente invenção fornecer uma capacidade dedefinir umprioridade em uma base por distnbution. Nestes exemplosilustrativos, três diferentes prioridades são definidas:alto, médio e baixo. A prioridade destes exemplos é umaprioridade adaptáveis em que uma das prioridadesseleccionadas, tais como alto, muda a maneira como umprocesso de controle adaptativo de banda se comporta. Porexemplo, uma atualização do software pode ser enviado comouma prioridade baixa seguida de um patch de vírus em umaalta prioridade. Como resultado, as distribuiçõesdiferentes podem ser dadas prioridades diferentes em funçãoda importância dessas distribuições. As distribuições com5 diferentes prioridades fornecer um conjunto diferente deparâmetros para o processo de controle adaptativo de bandapara alterar o comportamento do processo em função daprioridade especial selecionada.
Além disso, a configuração das prioridades diferentestambém pode ser fixada em uma base por gateway. Nestesexemplos, um gateway é um dispositivo ou sistema deprocessamento de dados que serve como um canal para umconjunto de dispositivos. Por exemplo, uma gateway podeservir como um portal ou entrada de uma rede de área localou uma rede de área ampla. Além disso, uma porta de entradatambém pode servir como uma ligação a uma rede sem fio. Ogateway é também referida como gestão de um conjunto declientes.
Embora estes exemplos ilustrativos são direcionados paracontrole de banda adaptativo, os aspectos da presenteinvenção pode ser aplicada a qualquer tipo de transferênciade dados em massa para um ou mais sistemas de processamentode dados de destino.
Passando agora a Figura 3, um diagrama que ilustra umexemplo de rede de processamento de dados do sistema em queas distribuições pode ser feito utilizando diferentesprioridades é retratado de acordo com uma modalidadeilustrativa da presente invenção. Neste exemplo, o sistemade processamento de dados da rede 300 contém fonte 302, queestá ligado aos gateways 304, 306 e 308. Gateway 304oferece uma conexão para os clientes 310, 312, 314 e 316através de 318 router. Gateway 306 oferece uma conexão paraos clientes 320, 322, 324 e 326 através de satélite 328router. Gateway 308 oferece uma conexão para os clientes330, 332, 334 e 336. Nestes exemplos, esses clientes estãoviajando computadores portáteis que se conectam ao gateway308 através de diversos meios, tais como uma conexão semfio, uma conexão dial-up, um modem por cabo ou algumsistema de conexão de outros semelhantes.
Rede 300 é um exemplo de uma rede de dados contidos emsistema de rede de tratamento de 100 na Figura 1. Emparticular, os diferentes clientese gateways podem ser executadas através de um sistema deprocessamento de dados semelhante ao sistema deprocessamento de dados 200 na Figura 2.Neste exemplo, o gateway 304 gerencia altamente segurosservidores de rede de área local. Em outras palavras, osclientes 310, 312, 314 e 316 são sistemas de processamentode dados do servidor. Gateway 306 gerencia ponto-de-vendalocalizados em filiais diferentes. Gateway 308 é usado paragerenciar os clientes sob a forma de viajar laptops.338 administrador pode enviar uma distribuição usandoconfigurações diferentes. Nestes exemplos, uma distribuiçãoé o envio de qualquer tipo de dados para um ou maisendpomts ou receptores. Por exemplo, a distribuição podeser uma atualização para uma aplicação, uma atualização dabiblioteca de vinculo dinâmico, um patch ou atualização dedefinição de virus, ou um arquivo de dados. Neste exemploilustrativo, uma distribuição pode ser enviada através deum dos três níveis de prioridade, alta, média ou baixa.Claro, outros números de níveis de prioridade podem serimplementadas dependendo da aplicação específica. Trêsdiferentes níveis de prioridade são empregados para fins deincorporação uma ilustração da presente invenção.Como resultado, 338 administrador pode enviar umadistribuição para gateways 304, 306 e 308 para adistribuição para os clientes com uma prioridade, comoalta. 338 Administrador poderá então enviar uma posteriordistribuição aos gateways 304, 306 e 308 com uma prioridadediferente, como a médio prazo. Desta maneira, asdistribuições diferentes podem ser dadas prioridadesdiferentes para transferir para os receptores com base naimportância associada a uma distribuição especifica. Comoresultado, as distribuições mais importantes podem atingiros clientes mais rapidamente, embora este tipo dedistribuição utiliza mais largura de banda. Com umadistribuição de prioridade mais baixa, menos largura debanda é usada com esse tipo de distribuição, tendo maistempo para distribuir.
Além disso, os aspectos da presente invenção fornecer umacapacidade de um prioritários seleccionados para autilização de diferentes quantidades de largura de banda emgateways diferentes para o nivel de prioridade selecionada.Em outras palavras, para um nivel de prioridadeselecionados, dois gateways podem utilizar diferentesquantidades de largura de banda para a transferência dedados dadas as condições mesma rede. Os diferentes efeitosde um nivel de prioridade selecionados são ajustados em umabase por gateway nestes exemplos ilustrativos, ajustandoparâmetros no processo de controle adaptativo de banda deexecução sobre os gateways para enviar a distribuição paraos diferentes clientes.
Por exemplo, o gateway pode usar 304 de setenta por centoda largura de banda quando enviar uma distribuição de altaprioridade para os clientes 310, 312, 314 e 316. Gateway306 pode usar cinqüenta por cento da largura de banda natransferência da mesma distribuição, com uma altaprioridade para os clientes 320, 322, 324 e 326. Na portade entrada 308, a mesma distribuição a ser enviada em umaalta prioridade só pode usar até trinta por cento dalargura de banda em enviar a mesma distribuição para osclientes 330, 332, 334 e 336.
0 impacto real sobre o uso da banda dentro de umadeterminada rede acessada por uma porta de entrada éajustado pelo ajuste dos parâmetros no processo de controleadaptativo de banda de execução sobre os gateways. Cada umadessas passagens podem ser pré-configurado quando osportões são inicialmente criados. Além disso, estesparâmetros podem ser alterados com base em mudanças na redeou outras alterações como identificado pelo administrador338. Estas alterações podem ser administrados através deconfigurações definidas pelo usuário como discutido abaixo.Passando agora a figura 4, um diagrama que ilustra oscomponentes utilizados no controle de banda adaptativo édescrito de acordo com uma modalidade ilustrativa dapresente invenção. Neste exemplo, o remetente adaptativas400 envia dados para receptores de 402, 404 e 406. Nesteexemplo ilustrativo, remetente adaptativas 400 pode ser umaporta de entrada, como gateway 304 na Figura 3. Emparticular, o remetente 400 adaptativo pode serimplementado como um servidor 106 na Figura 1, utilizandohardware como o encontrado no sistema de processamento dedados 200 na Figura 2. Receptores 402, 404 e 406 podem serclientes, tais como clientes, 310, 312, e 314, na Figura 3.Estes receptores também podem ser executadas através de umsistema de processamento de dados, como o sistema deprocessamento de dados 200 na Figura 2. Os dados sãoenviados através do envio de pacotes de 408 a um mecanismode roteamento, tais como 410 router. Router 410 é umdispositivo que serve para encaminhar ou enviar pacotes de408 para os receptores adequados de roteamento baseado emdados encontrados em pacotes de 408. Quando 410 roteador éforçado a processo de muitos pacotes, é referido como umroteador backlogged. Em outras palavras, o roteador deatraso é o router que tem a maior carga ou o maior númerode pacotes na fila. Não pode ser zero ou mais roteadoresentre um emissor e um receptor. O remetente é a fonte dospacotes e os receptores são a fonte de reconhecimentos.Como esses receptores de receber pacotes de 408, elesretornam ao remetente reconhecimentos 412 adaptativas 400.Neste exemplo, os reconhecimentos são parte de regular TCP/ IP de comunicação.
Nestes exemplos ilustrativos, remetente 400 adaptativo podeser implementado como um processo em um sistema deprocessamento de dados, tais como servidor de 104 na Figura 1.
Receptores 402, 404 e 406 são processos que podem executarem um dispositivo de recepção, tais como clientes, 108, 110e 112 na Figura 1. Em particular, estes processosdiferentes podem ser implementadas em um sistema deprocessamento de dados, tais como o processamento de dadosdo sistema 200 na Figura 2.
Remetente Adaptive 400 pacotes de 408 faixas enviadas paracada receptor. O recebimento das confirmações 412 também écontrolado e é usado para identificar os parâmetros, comotempo de ida e volta. Round tempo de viagem é o momento emque um pacote é enviado até que a confirmação for recebida.Neste exemplo, o tempo de ida e volta é baseada naperspectiva do remetente adaptativas 400.
Além disso, essa informação é usada para identificar osblocos. Um bloco começa quando um pacote é enviadoarbitrária; dados estatísticos é mantido para todos ospacotes no bloco até que o pacote inicial, que começou obloco é reconhecido pelo receptor. Quando o aviso para opacote arbitrário é devolvido, remetente adaptativas 400calcula as estatísticas de que o bloqueio de pacotes. Emoutras palavras, os pacotes de uma ou mais podem estarpresentes em um bloco, dependendo de como muitos pacotesforem enviados antes do reconhecimento do pacote arbitráriono inicio do bloco foi devolvido. Além disso, o remetenteadaptativas 400 também identifica uma janela. Uma janela éo número de pacotes na rede que tinha sido enviado semreceber uma confirmação.
Além disso, o remetente adaptativas 400 também estima onúmero de pacotes que estão localizados em 410 router. Estainformação é determinada pelo tempo de viagem atual rodadade calcular o número esperado de pacotes não confirmadosversus o número real de pacotes não confirmados. Porexemplo, se cinco pacotes devem existir em uma rede, porquea actual ronda de tempos de viagem e oito pacotes nãoreconhecidos são identifiçados pelo remetente adaptável400, remetente adaptativas 400 pode-se estimar que trêspacotes estão localizados em 410 router.
Remetente Adaptive 400 controla a velocidade, aumentando oudiminuindo o tamanho da janela de espera durante atentativa de manter um número selecionado de pacotes em 410router. Uma grande janela é mais agressivo porque 410router passa mais tempo no processamento de pacotes detráfego de rede adaptativa versus outros. Desta forma, oremetente adaptativas 400 pode sintonizar um parâmetro alfae beta para 410 router. Alpha é um inteiro indicando onúmero minimo de pacotes no roteador 410 por conexão antesque a janela é aumentada de um pacote. Beta é um inteiroque indica o número máximonúmero de pacotes no roteador atraso por conexão antes quea janela é diminuído por um pacote. Estes parâmetros permitem que pequenos aumentos ou diminuições develocidade, ajustando a janela com base no alfa e beta.Outro parâmetro, limite, permite uma diminuição rápida navelocidade em que 50% dos pacotes em um bloco de satisfazeras condições deste limiar. Neste exemplo, o limite é configurável uma percentagem do tempo da base de tempo deida e volta ao tempo máximo de ida e volta.Voltando à Figura 5, um diagrama de um protocolo decontrole de transmissão / protocolo Internet (TCP / IP) eprotocolos semelhantes são descritos de acordo com uma modalidade ilustrativa da presente invenção. TCP / IP eprotocolos semelhantes são utilizados por comunicaçõesarquitetura 500. Neste exemplo, as comunicações arquitetura500 é um sistema 4-camada. Esta arquitetura inclui a camadade aplicação 502, camada de transporte 504, camada de rede506, e camada de ligação de 508. Cada camada é responsávelpelo tratamento de várias tarefas de comunicação. Linkcamada 508 também é referida como a camada de ligação dedados ou a camada de interface de rede e normalmente incluio controlador de dispositivo no sistema operacional e daplaca de interface de rede de correspondentes nocomputador. Esta camada lida com todos os detalhes dehardware fisicamente interface com os meios de comunicaçãode rede a ser utilizados, tais como cabos ópticos ou cabosEthernet.
Camada de rede 506 também é referida como a camada deInternet e controla o movimento de pacotes de dados pelarede. Por exemplo, a camada de rede 506 lida com oroteamento de pacotes de diversos tipos de dados que sãotransferidos através da rede. Camada de rede 506 no TCP /IP é composto de vários protocolos, incluindo o protocolode Internet (IP), Internet controle mensagem protocolo(ICMP), Internet e protocolo de gestão de grupo (IGMP).Em seguida, a camada de transporte 504 fornece umainterface entre a camada de rede e 506 camada de aplicação502, que facilita a transferência de dados entre doiscomputadores host. Camada de transporte 504 está preocupadocom coisas como, por exemplo, dividindo-se os dadospassados para ele a partir da aplicação em pedaços detamanho adequado para a camada de rede abaixo, reconhecendoos pacotes recebidos, e estabelecendo limites de tempo parater certeza do outro lado reconhece pacotes que sãoenviados . No TCP / IP, . dois protocolos de transportedistintas estão presentes, TCP e User Datagram Protocol(UDP) . TCP fornece serviços de confiabilidade paraassegurar que os dados sejam devidamente transmitidos entredois exércitos, incluindo a detecção de abandono e serviçosde retransmissão.
Inversamente, UDP fornece um serviço muito mais simplespara a camada de aplicação, apenas o envio de pacotes dedados chamados datagramas de um hospedeiro para outro, semque nenhum mecanismo para garantir que os dados sejamtransferidos corretamente. Ao usar UDP, camada de aplicaçãodeve executar a funcionalidade de confiabilidade.Camada de Aplicação 502 lida com os detalhes da aplicaçãoespecifica. Muitos comum /TCP / IP aplicações estãopresentes em quase toda a aplicação, incluindo um Telnetpara login remoto, um protocolo de transferência deficheiros (FTP), um protocolo de transferência de correiosimples (SMTP) para o correio electrónico, e um protocolode gestão de rede simples (SNMP) .
Os aspectos da presente invenção são implementados nacamada de aplicação 502 adaptada para controlar atransferência de dados de uma forma que permiteconfigurações do usuário para a entrada por um usuário.Desta forma, o usuário pode alterar as configuraçõesdiferentes para controlar o modo como os pacotes sãoenviados na rede para uso em controle de banda adaptável.Ao permitir que as configurações do usuário para a entradado nivel de aplicação, o usuário pode fazer alterações paraos diferentes tipos de redes e de condições de redediferentes que geralmente não são tidas em conta pelosprocessos de controle adaptativo de banda. Desta forma, asoutras condições do que aquelas em que os clientes podemser tomadas em consideração. Por exemplo, os aspectos dapresente invenção permite que um usuário alterar asconfigurações baseado em uma identificação de fatores, taiscomo o número de saltos em um caminho para o receptor e asligações no caminho para o receptor que tem uma grandequantidade de tráfego ou congestionamento.
Embora os exemplos ilustrativos da presente invenção sãoimplementadas em um nivel de aplicação, os diferentesprocessos também podem ser aplicadas em outras camadas. Porexemplo, os aspectos da presente invenção pode serimplementada dentro da camada de transporte da camada derede 504 ou 506, dependendo da aplicação especifica.Passando agora a Figura 6, um diagrama de processos desoftware ilustrando e componentes utilizados na prestaçãode controle de banda adaptativo é descrito de acordo comuma modalidade ilustrativa da presente invenção. Nesteexemplo, o remetente adaptativas 600 é uma ilustração maisdetalhada dos processos dentro do remetente 400 adaptativona Figura 4. Remetente Adaptive 600 contém três tópicosneste exemplo ilustrativo. Enviar discussão 602, segmentoControle de congestionamento do 604, e 606 pacotes sniffingdiscussão são os componentes utilizados paraadaptativamente enviar dados para um ou mais receptores.Enviar
thread 602 é usado para enviar dados através de chamadas auma tomada. Um socket é um objeto de software que conectaum aplicativo para um protocolo de rede, como um protocoloTCP / IP em uma pilha TCP / IP. Enviar thread 602 envia umpedido de 608 discussão congestionamento controle 604 paraperguntar quantos dados podem ser enviados por enviardiscussão 602. Segmento de controle de congestionamento 604resposta retorna 610, dizendo quantos dados podem serenviados. Enviar thread 602 resposta 610 usa para enviarpacotes de 612 para a transmissão. Estes pacotes sãoarmazenadas na fila de backlog router 614 rotas até umroteador atraso dos pacotes ao seu destino. Fila Backlogrouter 614 está localizado em um roteador de atraso, como410 roteador na Figura 4. Agradecimentos 616 são devolvidosao remetente adaptável 600, quando os pacotes sãorecebidos.
Segmento de controle de congestionamento 604 identifica aquantidade de dados a serem enviados através da realizaçãode um processo de controle adaptativo de banda. Segmento decontrole de congestionamento 604 nestes exemplos usa oprocesso de controle adaptativo de banda adaptada paraidentificar as taxas de transmissão para a transmissão depacotes de dados através de uma rede em resposta a mudançasnas condições de rede. Estas condições da rede incluem, porexemplo, o nivel de congestionamento na rede devido avárias outras transmissões de dados, para além das que estásendo processado pelo remetente adaptativa. Em outraspalavras, a taxa de velocidade na qual os dados podem serenviados muda de acordo com as condições da rede. Segmentode controle de congestionamento identifica 604 diferentestaxas de acelerar ou retardar a manter um mínimo de impactona rede com base em diferentes parâmetros que estãodefinidos pelo usuário.Um exemplo de condições da rede é ilustrada com a Figura 7abaixo. Antes de servidor de FTP 752 enviar dados .paracliente de FTP 754, a condição de 746 roteador está ocioso.Esta situação permite remetente adaptativas 700 para enviarpara os receptores ou pontos de extremidade em uma taxamuito alta de velocidade, mesmo quando a prioridade ébaixa. No entanto, assim como o servidor FTP 752 começa aenviar dados para cliente de FTP 754, 746 router ficainundada. Em seguida, o processo de controle adaptativo debanda irá reagir de acordo com sua prioridade. Em umaprioridade baixa, o processo de controle adaptativo debanda vai abrandar para onde envia quase nada, e terá umimpacto mínimo sobre a distribuição de FTP. Em altaprioridade, este processo irá enviar muito rapidamente ecausar a distribuição de FTP para abrandar.0 seguinte é outro exemplo de distribuições como vai reagiradaptável às condições da rede. Um banco contém um únicoroteador que gerencia o
conexão de rede para 10 sistemas no interior do banco.Através desse banco o roteador está conectado a um sitecentral (que administra 300 bancos de todo o país). Às 6 damanhã (antes da abertura dos bancos), ninguém está nobanco, ea rede (especificamente o roteador do banco único)está ocioso. Neste momento, uma distribuição muito grandede adaptação é enviado em prioridade baixa a partir do sitecentral. Porque a distribuição é o tráfego apenas noroteador do banco, a distribuição de velocidades de até 100por cento de utilização da largura de banda do roteador.Isso continua até às 8 horas, quando os clientes começam ausar caixa eletrônico do banco e os sistemas deprocessamento de empréstimos, que também deve compartilhara rede com o único roteador. A distribuição adaptativa deimediato reconhecer que há um tráfego adicional através dolink lento (router do banco neste cenário). Porque adistribuição é adaptável em prioridade baixa, ele vaiabrandar para usar uma percentagem muito pequena doroteador causando um impacto minimo sobre a ATM e tráfegode processamento de empréstimos. Às 5 da tarde adistribuição de adaptação ainda está em andamento. Oempréstimo de processamento diminui o tráfego que o bancofecha. A distribuição de adaptação será sentido a cargareduzida da rede e continuar a acelerar a largura de bandase torna disponível.
Voltando à Figura 6, este processo utiliza asinformações localizadas em 618 fila. Em particular, packetsniffing thread 606 pacotes agarra e reconhecimentos darede e as informações de pacotes 620 lugares ereconhecimento de informações 622 em 618 fila. Packetsniffing thread 606 filtros de pacotes e agradecimentospara colocar dados apropriados necessários pelo segmento decontrole de congestionamento 604 em 618 fila. Emalternativa, todos os pacotes e confirmações podem sercolocados em fila para processamento de 618 por thread decontrole de congestionamento 604. A informação no 618 dafila é usado por thread congestionamento controle 604 paraidentificar os parâmetros, tais como um tempo de ida evolta a partir de quando um pacote foi enviado até aconfirmação de que o pacote foi recebido. Outros parâmetrosque podem ser identificadas e mantidas pelo segmento decontrole de congestionamento 604 a partir de informações em618 fila incluir um bloco, uma janela, e os pacotes noroteador backlog.
Além disso, os aspectos da presente invenção incluiinterface de usuário do 624, que pode ser usada paradefinir parâmetros definidos pelo usuário 626. Interface deusuário 624 é fornecido pelo segmento parâmetro 628.Normalmente, os parâmetros são criados quando o processoadaptativo é a primeira criada em um sistema. Estesparâmetros podem ser alterados através da interface dousuário e 624 thread parâmetro 628. 626 parâmetrosdefinidos pelo usuário são armazenadas em uma memória não-volátil, como um disco. Estes parâmetros podem ser lidosmais tarde, quando a banda inicia o processo adaptativo.Neste exemplo ilustrativo, estes parâmetros incluemum conjunto de parâmetros em que os valores estiverempresentes diferentes para diferentes prioridades. Nosexemplos ilustrativos, o conjunto de parâmetros que amudança com base no nivel de prioridade de uma distribuiçãosão limiar, dados e tempo máximo de espera. Embora umusuário pode introduzir os valores diferentes para osdiferentes níveis de prioridade, esses parâmetros podem serdefinidos diretamente para utilização pelo remetenteadaptativas 600. Interface de usuário 624 permite aousuário selecionar vários parâmetros de entrada ou parautilização por segmento de controle de congestionamento narealização de 604 processos de controle adaptativo debanda.
Nestes exemplos ilustrativos, os aspectos da presenteinvenção permite que um usuário insira ou selecione valorespara cinco parâmetros. Estes cinco parâmetros incluem umlimite, uma variação máxima de ida e volta o tempo, beta, otempo de ida e volta de nivelamento, e um tempo máximo deespera. A variação máxima de ida e volta o tempo é umparâmetro utilizado para restringir a quantidade de mudançano tempo atualmente medido de ida e volta em relação aotempo de viagem medido rodada anterior. O processoacompanha o tempo de viagem atual rodada, o tempo máximo deround trip ea base de tempo de ida e volta.O segmento de controle de congestionamento faixas dostempos de ida e volta em uma base por soquete e seqüência.Se um pacote tem um tempo de ida e volta de dez e umsegundo pacote tem um tempo de ida e volta de vinte, emseguida, o segundo pacote de tempo de ida e volta élimitada por um tempo de ida e volta o valor máximo dealteração de um ponto cinco (1,5) . Mesmo que o tempo de idae volta é de vinte reais, o valor ronda tempo de viagem éregistrada como um ponto de dez vezes cinco é igual aquinze (10 x 1,5 = 15). Então, o pacote subseqüente podeter um tempo de ida e volta, no máximo, de um ponto cincovezes quinze (1,5 x 15), o tempo de ida e volta gravadapara o segundo pacote.
Redes normalmente têm alguma quantidade de aleatoriedade.Este parâmetro permite que um processo de controleadaptativo de banda para ignorar um demasiado grande oudemasiado pequeno tempo de viagem redonda, mas ainda prevertempos de viagem grande circulo, se elas ocorrem comfreqüência suficiente. Este parâmetro permite ao utilizadorconfigurar para alterar o quanto é tolerada.O tempo de ida e volta de alisamento parâmetro nessesexemplos é um inteiro utilizado para indicar o quanto otempo de ida e volta medições devem ser suavizados pelodecaimento exponencial. O decaimento exponencial é feitapela média das medições anteriores. Este parâmetro podeajudar nos casos em que o processo de controle adaptativode banda se comporta erraticamente por overcompensatmg paraflutuações no tempo de ida e volta. A suavizaçãonormalmente ocorre antes de alterar o parâmetro máximo étomado em consideração.
O tempo máximo de espera é um parâmetro que indica omúltiplo de tempo máximo de round trip irá esperar umaconexão para enviar antes de desistir e repor. Às vezesconfirmações podem ser perdidos em uma rede fazendo com queo remetente de esperar por um longo período de tempo antesde enviar dados adicionais. Este é um valor dereinicialização do processo de controle de banda adaptativose o tempo se passou muito antes que os dados foramenviados. Com relação ao parâmetro de limite, quando ostempos de ida e volta dos pacotes são enviados em umsoquete, o tempo tendem a cair dentro de um intervaloselecionado. Esta situação é especialmente verdadeiroquando a rede está ociosa.
O limite é uma percentagem do caminho entre o mínimo detempo de ida e volta para o tempo máximo de round trip. Porexemplo, um limite de vinte por cento significa que olimite é de vinte por cento do caminho entre o tempo deviagem de base redonda com o tempo máximo de round trip.Dependendo dó tipo de rede, os tempos de ida e volta terávariação de mais ou menos. As variações diferentesnormalmente requerem diferentes limiares. Por exemplo, umarede de área local bem comportado terá muito pouca variaçãono tempo de viagem de volta, permitindo a um valor baixolimiar. Uma rede de área ampla rodada terá mais variaçõesdo tempo de viagem. Com este tipo de rede, um limiar maiselevado é necessário. Este parâmetro especial éconfigurável pelo usuário para ter em conta os diferentestipos de redes que podem ser encontrados no envio de dados.Com relação ao parâmetro de limite, quando os tempos de idae volta dos pacotes são enviados em um soquete, o tempotendem a cair dentro de um intervalo selecionado. Estasituação é especialmente verdadeiro quando a rede estáociosa.
Se o tempo de ida e volta de um pacote é mais lento do queo valor limiar, este pacote é considerado lento. Secinqüenta por cento dos pacotes em um bloco sãoconsiderados lentos, então a janela pode ser cortada pelametade, reduzindo a velocidade de distribuição. Comoresultado, permitindo a configuração do usuário deste valorpermite, tendo em conta diferentes tipos de rede econdições.
Os aspectos das mudanças prioridades presente invenção,modificando três parâmetros nos exemplos ilustrativos. Osparâmetros modificados para as diferentes prioridadesnestes exemplos são o limite, beta, eo tempo máximo deespera.
Voltando à Figura 7, um diagrama que ilustra uma rede parao envio de uma distribuição de um remetente adaptativo parareceptores com prioridades é retratado de acordo com umamodalidade ilustrativa da presente invenção. Neste exemplo,o remetente envia uma adaptação 700 de distribuição em todaa rede para 702 clientes 704, 706, 708, 710, 712, 714, 716,718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738 , 740 e 742. 750, 748, 746 e 744 são roteadores 746 é o roteadorbacklog. Esses clientes estão ligados ao router 744, quepor sua vez é ligado ao router 746. Router 746 conecta aoroteador 748. Remetente Adaptive 700 se conecta à rede de702 por 750 servidores. Neste exemplo, a rede 702 contémvinte e lúpulo. Além de uma distribuição, File TransferProtocol (FTP) 752 também pode enviar dados para cliente deFTP 754. Neste exemplo, servidor de FTP 752 envia dadospara cliente de FTP 754, enquanto a distribuição doremetente adaptativas 700 é enviado para os clientes. 0exemplo ilustrativo resultados no servidor de FTP gerandouma alta demanda de tráfego causando uma inundação no linkem 746 router. Ao definir as prioridades, o remetente podeusar 700 adaptativas diferentes quantidades de largura debanda em enviar a distribuição para esses clientes.Passando agora a Figura 8, um diagrama que ilustra o uso dabanda em uma rede é representada de acordo com umamodalidade ilustrativa da presente invenção. 0 gráfico daFigura 8 ilustra a percentagem de largura de banda de redeusada na transf erência de dados para uma rede, como oilustrado na Figura 7. Neste exemplo, a linha 802 mostra aquantidade de largura de banda utilizada para diferentestipos de distribuição. Na seção 804, apenas umatransferência de FTP em um servidor FTP 752 para 754cliente de FTP da Figura 7 é mostrado. Cem por cento dalargura de banda é usado nesta distribuição. Com um cenáriode baixa prioridade para a distribuição do remetente 700adaptativo na Figura 7 para os clientes, roteador 744 naFigura 7 aloca cerca de oitenta por cento da largura debanda para a transferência de FTP como ilustrado na seção806. Com um partido médio, cerca de cinqüenta por cento dalargura de banda é usada como indicado na secção 808 para atransferência FTP. Como pode ser visto, com o aumento daprioridade, menor largura de banda é alocada para atransferência de FTP com mais largura de banda alocada paraa distribuição pelo remetente adaptativa. Na seção 810, umaalta prioridade é dada para a distribuição aos clientes.Como pode ser visto, a transferência FTP cai para um nivelque varia em torno de trinta por cento da largura de banda.Na seção 812, o processo de controle adaptativo de bandanão são utilizados. Como resultado, nenhuma das controle decongestionamento descrito é utilizado nesta seção especial.Passando agora a Figura 9, um fluxograma de um processopara configurar as configurações do usuário para osparâmetros é representada de acordo com uma modalidadeilustrativa da presente invenção. 0 processo ilustrado naFigura 9 pode ser implementado em discussão parâmetro 628na Figura 6. Esse processo é usado para permitir que umusuário para definir ou alterar os parâmetros usados nocontrole de largura de banda adaptável. Nestes exemplos, osparâmetros são limiar, ida e volta variação máxima, tempode ida e volta de nivelamento, tempo máximo de espera, ebeta. Em particular, o processo ilustrado na Figura 9 podeser usado para definir parâmetros para os gatewaysdiferentes para uso em diferentes niveis de prioridade,tais como alta, média e baixa. Nestes exemplos, uma altaprioridade pode definir beta igual a sete, valor igual anoventa e nove o tempo de espera máximo equivalente avinte. A prioridade média pode definir beta igual a cinco,valor igual a quarenta e um tempo máximo de espera igual atrinta. Com uma baixa prioridade, beta é definida comoigual a três, valor igual a vinte e cinco, e um tempomáximo de espera igual a quarenta anos. Estas definiçõesparticular os que estão utilizados para os niveis deprioridade diferentes. Essas configurações podem serdefinidas através da interface do usuário, tal comoprevisto.
Além disso, os aspectos da presente invenção também levarem conta os efeitos de qualquer roteador ou servidor apartir da porta de entrada para o endpomt nestes exemplosilustrativos. Esta capacidade é fornecida através do uso detempos de ida e volta nos processos de controle adaptativode banda.
O processo começa por apresentar as configurações dousuário (passo 900). Estas definições podem serapresentadas em uma interface de usuário, como interface deusuário 624 na Figura 6. O processo, em seguida, recebe aentrada do usuário (passo 902). A determinação é feita comose o usuário altera as configurações de entrada nosparâmetros de passo (904). Se o usuário alterar asconfigurações de entrada, as configurações antigas sãosubstituídas por novas configurações (passo 906).Posteriormente, o processo retorna para o passo 900 paraapresentar essas configurações para o usuário.Com referência novamente a etapa 904, se a entrada dousuário não alterar as configurações, é feita umadeterminação sobre se a entrada do usuário é para finalizaro processo de alteração das configurações do usuário (passo908). Se a entrada do usuário não é para finalizar oprocesso, o processo retorna para o passo 900. Casocontrário, as configurações do usuário são salvos (passo910) com o processo encerra em seguida. Essas configuraçõessão salvas como usuário 626 parâmetros definidos na Figura6 nestes exemplos.Seguidamente, a Figura 10, um fluxograma de um processo deenviar uma lista de discussão é retratado de acordo com umamodalidade ilustrativa da presente invenção. O processoilustrado na Figura 10 pode ser implementado em enviar umalista de discussão, como enviar 602 discussão na Figura 6.O processo começa por enviar um pedido de quantos dadospodem ser enviados pará o segmento de controle decongestionamento (etapa 1000). O processo, em seguida,recebe uma resposta (etapa 1002). Esta resposta contém aquantidade de dados que podem ser enviados como umresultado do processo de controle adaptativo de bandaexecutado pelo segmento de controle de congestionamento. Emresposta à recepção da resposta, o processo envia umachamada para o socket para enviar apenas a quantidadeaceitável de dados (etapa 1004). Posteriormente, é feitauma determinação sobre se os dados mais está presente paraser enviado (etapa 1006). Se os dados mais está presente, oprocesso retorna para a etapa 1000. Caso contrário, oprocesso termina.
Seguidamente, a Figura 11, um fluxograma de um processo derastreamento de pacotes segmento é representado de acordocom uma modalidade ilustrativa da presente invenção. Oprocesso ilustrado na Figura 11 pode ser implementado em606 pacotes sniffing discussão na Figura 6.O processo começa por determinar se um pacote foi detectado(etapa 1100). Se um pacote tenha sido detectado, o processoextrai o identificador do pacote eo timestamp do pacoteetapa (1102). O processo, em seguida, armazena os dados emuma etapa (a fila 1104). Essa fila é acessível por um fiode controle de congestionamento para que os dados podem serutilizados na determinação do tempo de ida e volta eexecutar processos de controle adaptativo de banda.Com referência novamente a etapa de 1100, se um pacote nãofor detectado, é feita uma determinação sobre se um avisode recepção tenha sido detectada (etapa 1106). Se oreconhecimento não foi detectado, o processo retorna para aetapa 1100. Se um aviso foi detectado na etapa 1106, oidentificador do pacote e o carimbo do tempo para oreconhecimento são extraídos (etapa 1108). O processo entãoprossegue para a etapa 1104, como descrito acima.Passando agora a Figura 12, um fluxograma de um processo dediscussão para um controle de congestionamento é retratadode acordo com uma modalidade ilustrativa da presenteinvenção. Neste exemplo, o processo ilustrado na Figura 12pode ser implementado em discussão Controle decongestionamento do 604 na Figura 6.O processo começa pela recepção de um pedido de enviar umalista de discussão (etapa 1200). Nestes exemplos, oprocesso de controle adaptativo utilizado pelo segmento decontrole de congestionamento está localizado em um gateway.
Cada gateway tem seus próprios valores para os diferentesparâmetros utilizados para as prioridades. Quando enviaruma lista de discussão começa a enviar uma distribuição, osegmento passa enviar esses valores, juntamente com aprioridade atual distribuição para o segmento de controlede congestionamento. O segmento de controle decongestionamento irá utilizar os valores que correspondem àdistribuição atual prioridade. Esta informação pode serrecebido na etapa 1200, pela primeira vez apresentado opedido para o envio de uma distribuição. Este pedidosolicita uma identificação de quantos dados podem serenviados.
Posteriormente, os dados são puxados do passo (fila de1202). Esses dados incluem tempos de chegada e deidentificadores de pacote. Posteriormente, os tempos de idae volta são identificados a partir dos dados na etapa (afila 1204) . Os parâmetros são então obtidos com base em umaprioridade para a distribuição (etapa 1206). Estesparâmetros vêm de usuário 626 parâmetros definidos naFigura 6. Em particular, os parâmetros definidos pelousuário são para um determinado conjunto de parâmetrosassociados com a prioridade escolhida. Nestes exemplosilustrativos, os parâmetros com diferentes configuraçõespara diferentes prioridades são beta, limiar e tempo máximode espera. Posteriormente, o processo é executado umprocesso de controle adaptativo de banda (etapa 1208). Esteprocesso pode ser, por exemplo, as medidas contidas nosegmento de controle de congestionamento. Alternativamente,o segmento pode chamar uma função ou processo externo naetapa 1208. O processo, em seguida, obtém um resultado(etapa 1210), e uma resposta é devolvida com a quantidadede dados que podem ser enviadas (etapa 1212) com o processoencerra em seguida.
Seguidamente, a Figura 13, um fluxograma de um processopara a realização de controle de banda adaptativo édescrito de acordo com uma modalidade ilustrativa dapresente invenção. O processo descrito na Figura 13 é umadescrição mais detalhada da etapa 1208 na Figura 12.O processo começa por identificar o menor tempo de ida evolta e os maiores tempos de ida e volta (etapa 1300).Posteriormente, a janela é identificada (etapa 1302). 0processo então identifica o número de pacotes acima eabaixo do limiar por aviso (etapa 1304). Em seguida, oprocesso determina se cinqüenta por cento dos pacotes em umbloco estão acima do limiar (etapa 1306). Se cinqüenta porcento dos pacotes em um bloco não estão acima do limite, orendimento esperado é calculado etapa (etapa 1308). Naetapa de 1308, o rendimento esperado é calculado da seguinte forma: E ^ W
minRTT
E é a taxa esperada, W é a janela, e minRTT é o menor tempode ida e volta visto desde os tempos de ida e volta obtidosa partir da fila. Posteriormente, o processo identifica a taxa real (etapa 1310) . Este rendimento real é identificadousando o seguinte:
A <- W observedRTT
A é a taxa real, W é a janela, e observedRTT é o valor queé medido utilizando a diferença no tempo de quando o pacote é enviado e, quando a confirmação for recebida. Comoresultado, o rendimento esperado é baseado no tempo mínimode ida e volta, pois a expectativa é que os presentes emuma rede ocioso o tempo mínimo de viagem de volta é sempreo resultado do envio de um pacote. A produção efectiva é com base nas condições da rede atual, em que o tempo deviagem atual rodada é maior do que o tempo mínimo de ida evolta. Nestes exemplos, o tempo mínimo de viagem de volta éo mesmo que o tempo de viagem de base redonda. O processo,então, calcula o número de pacotes no roteador backlog(etapa 1312) . O número real de pacotes é estimado usando oseguinte:
Dif <- (E ·- A) Diff · minRTT é o número de pacotes noroteador de atraso, E é a taxa esperada, A é a taxa real, eminRTT é o menor tempo de ida e volta visto.Em seguida, é feita uma determinação sobre se o número depacotes no roteador atraso for inferior a alfa (etapa1314). Como descrito acima, o alfa é um inteiro que indicao número de numerai de pacotes que devem estar presentes emum roteador de atraso por conexão antes que a janela éaumentada de um pacote. Se o número de pacotes no roteadoratraso é menor do que alfa, o processo de incrementos dajanela por uma etapa (1322). Posteriormente, o processoindica que é razoável para enviar dados até o tamanho dajanela (passo 1318) com o processo encerra em seguida.Com referência novamente para a etapa 1314, se o número depacotes no roteador atraso não seja inferior a alfa, éfeita uma determinação sobre se o número de pacotes é maiordo que beta (etapa 1316). Se o número de pacotes é maior doque beta, o tamanho da janela é diminuído por um (etapa1324) . O processo então prossegue para a etapa 1318, comodescrito acima. Caso contrário, o processo prossegue para aetapa 1318, sem alterar o tamanho da janela.Com referência de volta para a etapa 1306, quando cinqüentapor cento dos pacotes em um bloco estão acima do limiar, ajanela é reduzida à metade (etapa 1320). O processo entãoprossegue para a etapa 1318, como descrito acima.O processo ilustrado na Figura 13 acima é baseada emmodificações atualmente disponíveis algoritmos de controlede banda, tais como o algoritmo descrito em NiceVenkataramani et al. "TCP Nice: um mecanismo paratransferências de fundo", SIGOPS ACM Operating SystemsReview, vol. 36, Issue SI Winter 2002, pp. 1-15. Que estáincorporada neste documento por referência.
Os aspectos da presente invenção têm identificado um númerode parâmetros que o efeito de aplicação do processo decontrole adaptativo de banda descrito na Figura 13. Estesparâmetros e há descrições são listadas a seguir:NICE_ALPHA - Um inteiro que indica o número mínimo depacotes no roteador de atraso por conexão antes que ajanela é aumentada. 0 padrão é 1. NICE_BASE_DISCARD - Uminteiro que indica o número de medições RTT inicial basepara descartar por conexão. 0 raciocínio é que quando adistribuição é iniciado ea rede ainda não está saturadoinjustificadamente medições RTT baixa base podem ser feitasinicialmente. 0 padrão é 3.
NICE_BASE_SCALE - Um número de ponto flutuante que um fatorespécie de escala que é aplicado ao mínimo global RTT (vbaseRTT) mantida pelo simpático. Definir este a um pequenonúmero positivo, como o 1.1, pode ajudar se a rede permiteque ocasionalmente RTTs atipicamente curto. 0 padrão é 0,0.NICE_BELOW_ONE - Um inteiro que prevê um limite inferiorpara cwnd ν abaixo um, que é o número máximo de RTTs queuma conexão pode ser ocioso para fazer uma janela baixa. Opadrão é 48.
BETA NICE - Um inteiro que indica o número máximo depacotes no roteador atraso por conexão antes que a janela é reduzida. Este é um valor padrão de beta. O padrão ébaseado em prioridade.
NICE_CLAMP - Quando definido aperto o tamanho da janela(snd_cwnd) é limitada a um máximo de quatro pacotes maiordo que o número de pacotes que estão atualmente na rede. O padrão é definido.
COND NICE - Ao definir o segmento aguarda o envio de umacondição que é sinalizado pelo segmento ACK em vez deesperar uma quantidade arbitrária de tempo. Padrão não estádefinido.
NICE_CONG_RTX_Q - Ao definir o segmento de extensão congirá acrescentar ou atualizar uma estimativa de cada pacotede saida para o rtx_q; que é usado para calcular RTTs. 0segmento cong tem a vantagem que a sua estimativa do tempode saida é precisa, mas poderá cair pacotes. 0 padrão édefinido.
NICE_DYNAMIC_MSS - Quando definido, o processo de controleadaptativo de banda vai começar com um valor baixo para MSSe aumentá-lo cada vez que um pacote de saida é inalado quetem um MSS maiores. Desta forma, os EM devem rapidamente aabordagem do MSS utilizado para a conexão. O padrão édefinido.
NICE_FAST - Um inteiro que especifica o número demilisegundos cada socket processo adaptativo de controle delargura de banda é estar em fase de arranque rápido. Quantomais rápido o inicio da fase mais precisa a estimativa demaxRTT. No entanto, esta definição para um valor grandecausas processo de controle adaptativo de banda para serefetivamente desativado para essa quantidade de tempo. Opadrão é 5000 = 5 seg.
NICE_FAST_RETURN - Quando definida a fase de arranquerápido é encerrado após a primeira falha enviar () com umerrno de EWOULDBLOCK. Isso deve minimizar a quantidade detempo gasto no modo de inicio rápido, que não rende para ogateway, uma vez enchendo a fila de saida da tomada deveser muito rápido. O padrão é definido.
NICE_INTERFACE - A interface (identificador de placa derede) que está a ser usado por agradável. Neste momento, oprocesso de controle adaptativo de banda não é capaz dedeterminar dinamicamente a interface correta. Assim, ainterface precisa ser configurado manualmente, se não é aprimeira interface ativa. Normalmente, isso seria definidopara coisas como "ethl". 0 padrão é desactivado.
NICE_MAX_MULT - Um número de ponto flutuante que especificaum valor mínimo para maxRTT como um múltiplo de baseRTT.Quando definida, deve ajudar a prevenir exageradamentebaixos valores de maxRTT, bem como a baixa taxa detransferência que tende a concordar com isso. 0 padrão é0,0.
NICE MIN MSS - Um inteiro que indica o MSS mínimo a serutilizado. No interesse de menores valores de eficiênciafornecida pelo sistema operacional são ignorados em favorda NICE_DEFAULT_MSS. 0 padrão é 1000.NICE_MIN_PACKET - Um inteiro que especifica a quantidademínima de dados que devem ser enviados em uma única vez.Isso é diferente de Nice Melhores SEND em que se está okpara enviar é menor que o valor especificado é definidocomo O. Isto é para evitar uma situação em que o segmentode controle de congestionamento continua dizendo a enviarlista de discussão para enviar valores muito pequenos, como1 byte. Ao definir este valor para 10, o segmento decontrole de congestionamento que esperar pelo menos até 10bytes podem ser enviados (retornando 0 cálculos especificaraté 10). O padrão é 0.
NICE MIN ENVIAR - Um inteiro que especifica o valor mínimode ok para enviar, o que significa que o segmento decontrole de congestionamento vai dizer sempre a enviarlista de discussão para enviar pelo menos esta quantidadede dados. Por esta definição para 10, em seguida, mesmo queos cálculos adaptativo especificar 3 segmento de controlede congestionamento vai retornar 10. O padrão é 0.NICE_NANO_FIXED - Um inteiro que especifica o número demicro segundos que a função de retorno interna,select_delay (), é para dormir, quando utilizado.NICE NANO fixo tem nenhum efeito quando a chamada deretorno é definido como algo diferente select_delay ().Quando não está definido, o atraso é dinamicamentecalculada com base em quanto tempo deve levar para que hajaespaço suficiente para enviar um pacote como indicado pelatransferência do último bloco (determinado pelo RTT dopacote o mais rápido no último bloco e os tamanho dobloco).
Quando definido para 1234 nanosleepO não é chamado: nãodefinida - Atraso é calculado dinamicamente 0 - nanosleepOé chamado com um valor de 0, que pode ser um atraso,enquanto 10 ms em alguns sistemas de 1234 - Não chamenanosleepO outros - Call nanosleepO com o número demicrossegundos especificado padrão é 0.NICE_PCAP_TIMEOUT - Um inteiro que indica quanto tempo osistema operacional deve esperar antes de retornar com umalista de pacotes capturados. Esta variável não tem efeitoem sistemas Linux desde sistemas Linux só esperar até queum pacote está disponível independentemente de quanto tempodemora. Em sistemas onde esta variável tem um efeito, comoSolaris, há um trade-off entre a obtenção RTTs precisoquando o tempo limite é definido de baixa e desperdiçartempo de CPU quando a rede está ociosa. 0 padrão é 10 ms (omenor valor suportado no Solaris).
NICE_QUEUE_LIMIT - 0 número inteiro que especifica ocomprimento máximo da fila de pacotes por escrito para osniff segmento que é lido pelo segmento Cong. Quanto maistempo na fila de menos sensíveis agradável é como osegmento cong está agindo sobre a informação que estáatrasado por o tempo que leva para os pacotes de trabalharsua maneira através da fila. 0 padrão é 10.NICE_RTT_MAX_CHANGE - Um inteiro que indica a quantidademáxima de que a base e RTTs max são autorizados a mudar em'relação ao valor anterior. Quando definido, o processo decontrole adaptativo de banda deveria ser mais tolerante comfalsos valores RTT extremas. 0 padrão é 1,5.NICE_RTT_MIN_STDS - Um inteiro que indica o número mínimode desvios-padrão acima da base do RTT RTTs terá de serconsiderado acima da RTT base. Padrão em 0.NICE_RTT_SMOOTHING - Um inteiro que indica o quanto o RTT(Round Trip Time) as medições devem ser suavizados pelodecaimento exponencial, que é feito pela média com amedição anterior. Definindo isso pode ajudar nos casos emque se comporta de forma errática agradável por maiscompensadores para cada variação de RTT. O padrão é 50.NICE_RTT_STD_SMOOTH - Um inteiro que é semelhante aoNICE_RTT_SMOOTHING, mas por desvios-padrão. 0 desvio padrãoé baseado em uma média ponderada das medições recentes RTT.O padrão é 0.
NICE_SEND_RTX_Q - Ao definir o segmento de envio iráacrescentar ou atualizar uma estimativa de cada pacote desaida para o rtx_q que é usado para calcular RTTs. 0segmento de envio tem a vantagem de não descartar pacotes,mas a sua estimativa do tempo.de saida pode ser impreciso.0 padrão é definido.
NICE_THROUGHPUT_AVG - Um inteiro que indica quantos dospacotes mais recentes estão a ser incluídos no cálculo dorendimento. Os maiores valores deve resultar em cálculosmais precisos de transferência, mas à custa de ser menossensível. 0 padrão é 20.
NICE_THROUGHPUT_START - Um inteiro que indica o númeromínimo de pacotes que devem ser enviadas antes de oscálculos de transferência sejam iniciadas. Isso é para darconta da fila de ligação lenta inicialmente ser vazio,então a taxa de transferência durante a parte inicial dosocket não pode ser típico da tomada e deve ser ignorado. 0padrão é 100.NICE_WAIT_BASE - Um inteiro que indica o múltiplo dev_baseRTT (global mínimo RTT) irá esperar uma conexão paraenviar antes de desistir e redefinir snd_nxt e snd_una. Olimite de tempo calculado é adicionado para queNIC E_WAIT_MAX. O padrão é 0.
NIC E_WA I T_MAX - Um inteiro que indica o múltiplo dev_maxRTT (global máximo RTT) irá esperar uma conexão paraenviar antes de desistir e repor. 0 padrão é baseado emprioridade.
Passando agora a Figura 14, um fluxograma de um processopara personalizar o envio de distribuições para osreceptores de um cliente é retratado de acordo com umamodalidade ilustrativa da presente invenção. O processoilustrado na Figura 14 é um processo utilizado parafornecer soluções para clientes que desejam os sistemas dedistribuição personalizada dentro de suas redes.O processo começa pela recepção de um pedido do cliente(etapa 1400). Esta solicitação inclui informaçõesnecessárias para gerar a solução. Por exemplo, umaidentificação dos gateways na rede do cliente está contidono pedido. Além disso, as características das diferentesclientes acessados através dos gateways também podem serincluídos. Além disso, os requisitos do cliente para oenvio de diferentes tipos de distribuição, também estãoincluídos no exemplo ilustrativo. Em resposta a recebereste pedido, o cliente são analisados os parâmetros para oenvio de distribuições para as extremidades (etapa 1402).Nesta análise, são identificadas as configurações para osparâmetros utilizados para as diferentes prioridades (etapa1404). Nestes exemplos ilustrativos, as prioridades sãolimiar, beta e tempo máximo de espera. Os parâmetros podemser identificados por níveis de prioridade diferentes. Porexemplo, os exemplos utilizam três níveis de prioridade,alta, média e baixa. Dependendo do pedido de clientes, umnúmero diferente de níveis de prioridade podem serutilizadas, tais como dois ou quatro. Os parâmetros geradospara um nível de prioridade especial pode ser diferentepara gateways diferentes dependendo do pedido do cliente eas características da rede em que os portões estão localizados.
Posteriormente, o código é gerado para o controleadaptativo de banda para cada gateway (etapa 1406). Estecódigo é fornecido de forma que o código pode ser instaladoem um gateway especifico. Este código inclui o processo decontrole adaptativo de banda e os parâmetros para o gatewayespecifico. Este código também pode incluir arquivos executáveis necessários para instalar econfigurar o processo de controle adaptativo de banda em umgateway. Posteriormente, o código é enviado para o cliente(etapa 1408) para a distribuição. Desta forma, um clientepode receber personalizados dos sistemas de distribuição de um negócio ou outro provedor, em resposta a um pedido.Assim, os aspectos da presente invenção fornecer um métodode programas de computador, aparelhos, e código de programade computador utilizáveis para ajustar a taxa detransferência de dados. Os aspectos da presente invenção receber entrada do usuário para selecionar os valores paraos parâmetros em um nivel de aplicativo. Estes usuárioparâmetros definidos são utilizados em um processo decontrole adaptativo de banda para identificar o número depacotes que podem ser enviadas para um destino em uma rede. Os aspectos da presente invenção permite que um usuáriopara definir os parâmetros com base nas condições de rede ecaracterísticas diferentes. Desta forma, os aspectos dapresente invenção permitem a adaptação envio de dados combase em diferentes tipos de redes e condições.A invenção pode assumir a forma de uma encarnação dehardware totalmente, uma modalidade de software totalmenteou uma personificação contendo tanto elementos de hardwaree software. Em uma modalidade preferida, a invenção éimplementada em software, o que inclui mas não estálimitado a firmware, software residente, microcódigo, etcAlém disso, a invenção pode assumir a forma de um produtode programa de computador acessíveis a partir de umcomputador reutilizáveis ou processados por computadormédio fornecer o código do programa para uso por ou emconexão com um computador ou qualquer outro sistema deexecução de instrução. Para os efeitos desta descrição, umcomputador reutilizáveis ou computador meio legível podeser qualquer aparelho tangíveis, Conter también que,Armazenar, comunicar, Propagar, ou o transporte do programapara uso por ou em conexão com o sistema de execução daInstrução, aparelho ou dispositivo.
0 meio pode ser um registo electrónico, magnético, óptico,eletromagnético, infravermelho, ou o sistema desemicondutores (ou aparelho ou dispositivo) , ou um meio depropagação. Exemplos de um meio legível por computadorinclui uma fita de semicondutores ou memória de estadosólido, magnético, um disquete de computador removível, umamemória de acesso aleatório (RAM), uma memória somenteleitura (ROM), um disco magnético rígido e um disco óptico.Exemplos atuais de discos ópticos incluem disco compacto -Read Only Memory (CD-ROM), disco compacto - leitura /gravação (CD-R / W) e DVD.
Um sistema de processamento de dados adequados para umaarmazenagem e / ou execução de código do programa vaiincluir, no mínimo, um processador acoplado direta ouindiretamente, a elementos da Memória Através de umbarramento do sistema. Os elementos de memória pode incluirmemória local contratado durante a execução efectiva docódigo do programa, o armazenamento em massa, e memóriascache que fornecem armazenamento temporário de pelo menosalgum código do programa, a fim de reduzir o número devezes que o código deve ser recuperada a partir dearmazenamento em massa durante a execução.Entrada / saída ou de dispositivos de I / 0 (incluindo masnão limitados aos teclados, monitores, dispositivosapontadores, etc) pode ser acoplado ao sistema, querdirectamente quer através da intervenção controladores I /0.
Os adaptadores de rede também pode ser acoplada ao sistemapara Permitir que o sistema de processamento de dados paraTornar-se um associado outros dados ou sistemas deprocessamento de Impressoras Remotas ou dispositivos dearmazenamento Através de Intervir redes privadas oupúblicas. Modems, cable modem e placas Ethernet são apenasalguns dos tipos disponíveis atualmente de adaptadores derede.
A descrição da presente invenção foi apresentada parafins de ilustração e descrição e que não pretende serexaustiva ou limitada à invenção na forma divulgados.Muitas modificações e variações Serão aparentes paraCompetências Com aqueles normais no art. A incorporação foiescolhido e descrito, a fim de melhor explicar osprincípios da invenção, a aplicação prática, e parapermitir que outros com competências normais na arte decompreender a invenção de várias modalidades, com váriasalterações que são adequados ao uso específico contemplado.