Loading

Module 1: Desempenho e Controle

Nota de Estudos
Study Reminders
Support
Text Version

Gerenciamento de buffer e Controle de congestionamento

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Buffer Management e Controle de congestionamento
Bem-vindo de volta para o curso em Redes de Computadores e Protocolos da Internet. Por isso, estamosdiscutindo sobre a camada de transporte e vários serviços sob a camada de transporte.Então, na última aula discutimos sobre os módulos de desempenho básico na camada de transportejuntamente com um protocolo de camada de transporte hipotético que como vocêirá fazer a interface da camada de transporte com a camada de aplicação. Assim, continuando a partir desse ponto, emesta palestra, discutiremos sobre o mecanismo de gerenciamento de buffer na camada de transportee, em seguida, analisaremos os detalhes dos algoritmos de controle de congestionamento.Então, chegando ao gerenciamento de buffer; assim, como você olhou para a última classe que emo lado emissor assim como no lado do receptor, mantemos um buffer de camada de transporte queé um buffer de software manter como uma fila e nessa fila, no lado emissor, sempre quevocê estiver enviando alguns dados, você coloca os dados nessa fila e, em seguida, baseado em seu algoritmo de controle de taxa, o camada de transporte irá buscar os dados da fila e enviá-los para a camada IP não confiável da camada de rede.Por outro lado que o lado do receptor, você tem uma fila onde os dados da camada de redesão colocados na fila e então o aplicativo irá buscar os dados daquela fila. Agora, vamos olhar para este diagrama. Então, aqui na camada de rede, este recebimento de ip énovamente uma função hipotética que recebe os dados da camada de ip na camada de rede,e ele colocar os dados na fila e esta fila é o buffer na camada de transportecorresponde a um aplicativo, e utilizamos número da porta para identificar que em qual bufferé necessário colocar os dados.Então, uma vez que esta camada de rede coloque os dados na camada de transporte, então, o aplicativo, você tem que usar a chamada do sistema de leitura ou há outro sistema chamacomo o sistema de gravação, a chamada de sistema de gravação através da qual você receberá os dados dea camada de transporte. Então, esta chamada de sistema de leitura que é a parte da programação do socketque discutiremos mais adiante em detalhes.Então, a leitura usando a chamada do sistema de leitura, você receberá os dados da camada de transporte. Portanto, se você estiver usando esta chamada de gravação ao lado do remetente, então você pode usar a chamada de leiturano lado do receptor no aplicativo para ler os dados e a respeito dessa implementação da camada de transporte, já que vimos que toda essa parte da implementação da pilha de protocolosque é implementada dentro do Kernel, se você considerar um tipo de operação do tipo Unix ou amplamente, pode-se dizer que esta pilha de protocolo é a parte do sistema operacionalonde como este aplicativo está escrito no espaço do usuário.Então, a frequência da chamada de leitura que é realmente gerenciado pelo aplicativo o qual vocêestá escrevendo e o aplicativo está usando esta programação de socket que discutiremosposteriormente em detalhes; ele usará a programação do socket para ler os dados deste buffer de camada de transporte. Agora pode acontecer que bem aplicativo esteja lendo os dados, dados em uma velocidadeonde como a rede, ele está recebendo os dados em outra velocidade.Muitas das vezes, pode acontecer que a rede esteja enviando os dados em uma velocidade maissuperior em comparação com o que o aplicativo está lendo, digamos que pode ser a rede érecebendo dados a uma taxa de cerca de 1 Mbps e o aplicativo está lendo os dados na taxa10 Kbps. Então, o aplicativo está lendo os dados a uma taxa de 10 Kbps significa a essa taxa,você está executando a chamada do sistema de leitura. Então, você está pode estar chegando a cada 1 second minutos evocê está fazendo uma chamada de sistema de leitura com o tamanho de buffer de 1 Kb-10 Kb. Assim, você iráreceber os dados a uma taxa de 10 kbps por causa dessa diferença, enfrentamos certos problemasporque os dados que serão bufferados dentro desse buffer de transporte.Então, porque você está recebendo dados em uma taxa mais alta para que dados particulares obtenham bufferdentro da camada de transporte, buffer dentro dessa fila em particular e depois de algum tempo, podeacontecer que a fila fique cheia. Se a fila ficar cheia, isso será um problemaporque, nesse caso, se os senadores enviam mais dados para a rede, então que determinados dadosvirão aqui na camada de transporte, mas porque esse buffer ficou cheio, vocêexperimentará uma queda de pacotes desse buffer em particular.Agora, você quer evitar isso. Agora para evitar isso; o que você tem que fazer? Você tem que ajustaro algoritmo de controle de fluxo. Então, como você vai sintonia o algoritmo de controle de fluxo? Você tem que ter algo chamado um gerenciamento de buffer dinâmico onde esse lado buffer de receptores,ele está mudando dinamicamente, ele está mudando dinamicamente por causa dessa diferença de taxaentre a camada de aplicação e a camada de transporte, a taxa na taxa em que estárecebendo os dados da camada de rede, por causa dessa diferença de taxa você pode ter alteração de tamanho de buffer.Agora, para tratar disso; o que você tem que fazer, como você tem que enviar essa informação para o lado do remetentepara que o remetente possa parar de enviar dados, a menos que haja espaço suficiente no buffer do receptor. Então, esse conceito em particular, chamamos como o gerenciamento de buffer dinâmico emo lado receptor. Assim, olhemos para este conceito de gerenciamento de buffer dinâmico em pequenos detalhes.(Consulte o Tempo do slide: 05:53)Então, em caso de gerenciamento de buffer dinâmico para controle de fluxo baseado em janela para controle de fluxo baseado em janela, o que você tem a fazer que o emissor e o receptor precisam paraajustar dinamicamente sua alocação de buffer.Então, que é baseado na diferença de taxa entre a entidade de transporte e o aplicativo,o tamanho disponível do buffer do receptor pode alterar; assim, neste diagrama específico. Então,estes são o conjunto de segmentos que o aplicativo já leu. Então, isso foi que foido buffer de aplicação. Agora este é o seu tamanho de buffer completo. Bem, então, este é o seu tamanho de buffer completo. Agora fora que existem 3 segmentos, que já são eles sãodentro do buffer.Então, esses segmentos estão esperando dentro do buffer para a aplicação para lê-los. Agoraaqui o espaço livre que você tem no buffer receptor que é essa quantidade. Então, você precisa depara anunciar essa quantia para o remetente. Então, que o remetente doesn ’ t enviar mais dadoscomparado com o que o buffer receptor pode segurar. Assim, o remetente não deve enviar mais dadosem comparação com o espaço buffer do receptor. Então, você precisa ajustar dinamicamente o tamanho da janela; o tamanho da janela do remetente com base na disponibilidade do espaço do buffer do receptor.Então, o que nós olhamos no algoritmo de controle de fluxo baseado em janela que você podeajustar dinamicamente o tamanho da janela do remetente e o tamanho da janela do remetente basicamente retrataque quanto de dados você pode enviar para o receptor sem esperar o reconhecimento. Agora se você enviar o feedback do lado do receptor para o remetenteque quando o receptor tiver esse grande espaço de buffer disponível, então o remetente pode configurar seu tamanho de janelapara máximo esse valor. Assim, que nunca enviará dados para o receptor maisdo que aquele tamanho específico.Agora, uma vez que o receptor receberá esses dados, após receber os dados, o receptor podenovamente enviar um reconhecimento. Uma vez que esses dados tenham sido lidos pelo aplicativo equando ele estiver enviando que a confirmação com a confirmação, ele pode anunciaro tamanho do buffer disponível. Então, vamos olhar como funciona este procedimento em particular.(Consulte o Tempo do Slide: 07:55)Então, aqui está um exemplo. Há 2 nós A e B. Eles estão se comunicando com cada umoutro.Então, a primeira mensagem é que Um pedido para os 8 buffers. Então, aqui estamos representando obuffer no número de segmentos que você deseja transferir e estamos assumindo quetodo segmento é um tamanho de correção embora isso não se mantenha fiel ao TCP, mas aqui este é apenaspara simplificação, estamos fazendo uma suposição que todo segmento tem de mesmo tamanho eo receptor no remetente, remetente A. Então, A é meu remetente quem vai enviar os dados e B émeu receptor quem vai receber os dados.Então, o remetente primeiro pedido por 8 buffer. Assim, A quer 8 espaço tampão de B, mas B encontraque bem apenas 4 espaço tampão estão disponíveis espaço tampão para 4 segmentos estão disponíveis. Então,A envia de volta uma confirmação com um número de confirmação junto com este valor de espaço de buffer. Assim, o valor do espaço tampão é mencionado como 4 que determina que Asó concederá 4 mensagens da mensagem 0 para a mensagem 4 ou para o segmento 0 para o segmento 4.Agora A envia 1 mensagem; assim, uma vez A A envia esta mensagem, estes dados com número de sequência0. Agora neste momento, A enviou 1. Então, A tem 3 buffers deixados, então A envia outra mensagemA m1. Agora A tem 2 buffers deixados, então A enviou outra mensagem e assume que esta mensagemperdeu.Agora, esta mensagem perdeu. Assim, embora no lado do receptor, você tenha 2 espaço de bufferesquerda, mas A pensa que só sobem um espaço de buffer porque A já enviou 3 segmentos. Por isso, nesta fase B reconhece 0 e 1. Por isso, uma vez B reconhece 0 e 1; Aenviar B envia um reconhecimento 1. Então, aqui esta confirmação é um reconhecimento decumulativo. Assim, uma vez que você está enviando confirmação de volta 1; isso significa, vocêé reconhecer reconhecer a mensagem 0 e a mensagem 1 junto com a que épublicidade de que o espaço de buffer é 3.Então, A obter uma atualização que bem esta mensagem 0 e a mensagem 1 foi recebida com sucessorecebida pelo receptor e ela tem um espaço de buffer disponível de 3. Então, A novamente enviamensagem m3 porque ele já enviou mensagem m2, já enviou mensagem m2 já. Então,não sabe se a mensagem foi recebida ou não então ela envia novamentem4 e finalmente, envia m2.Então, depois de enviar este 3 ele o espaço de buffer anunciados foi 3. Por isso, enviou 3 mensagem. Então,uma vez que é ele enviou 3 mensagem, durante esse tempo, A não pode enviar mais dados porque Uma janela de envio de A ’ sfoi definida para 3. Então, já transmitiu 3 mensagens de 3. Agora neste estágio, este B, ele envia uma confirmação dizendo que o reconhecimento número iguala 4. Então, quando esse número de confirmação é igual a 4, neste estágio A descobre quebem, todas as 4 mensagens a partir de m1, a partir de m2, m3 e m4, eles obtiveramreconhecido porque 4 é novamente uma confirmação cumulativa.Então, neste estágio, houve um tempo limite para que houvesse um tempo limite para a mensagem m2 para a qual elanão recebeu a confirmação e ela transmite essa mensagem novamente. Por isso, B temrecebido m2, m3 e m4. Por isso, B enviou um reconhecimento 4 com espaço tampão 0. Então,com esse espaço de buffer 0, o que A é reconhecer? O A está reconhecendo que que estamensagem particular, toda a mensagem foi recebida por B, mas não tem nenhum espaço de bufferdisponível; isso significa, o aplicativo não leu esses dados. Agora uma vez que o aplicativotenha lido que dados, A envia outro reconhecimento dizendo que o reconhecimento denúmero o mesmo reconhecimento número 4, mas anunciando o espaço de buffercomo 1.Então, neste estágio, A disponibiliza um espaço de buffer, B disponibiliza 1 espaço de buffer paraUm dizendo que pode enviar mais uma mensagem, mais um segmento. Então, aqui você pode ver queuma vez que você é espaço de buffer de publicidade 0, depois disso, uma vez que o espaço de buffer se tornadisponível, você precisa enviar outra confirmação, caso contrário, o remetente obterábloqueado nesta fase porque o emissor; uma vez que o espaço de buffer é 0, ele não iráenviar mais dados.Então, é ele será bloqueado aqui. Então, dessa forma as coisas se continuam continuando. Então, aquineste caso, A A envia os dados e fica bloqueado e então ele consegue um número de confirmaçãocom espaço de buffer 0, aqui A ainda está bloqueada, então Um pode enviar get get outramensagem com o espaço tampão disponível.Então, aqui você pode ver que bem, pode acontecer algum dia que vocêesteja enviando este anúncio que você não tem nenhum espaço de buffersuficiente, há um possível deadlock possível no lado emissor, pois o remetentepode descobrir ou remetente pode pensar em que não há mais espaço disponível no lado do receptor. Agora, para evitar essa coisa em particular, o que você tem para garantir? Você tem que garantir que os reconhecimentosestejam fluindo na rede continuamente. Então, neste particularexemplo, se acontecer aquele bem inicialmente, você anunciava que o espaço de buffer é 0,então B envia outro reconhecimento dizendo que o espaço de buffer está disponível, masde alguma forma esta confirmação se perdeu.Então, porque essa confirmação se perdeu, o sistema pode levar a um deadlock a menos que Benvie outro reconhecimento depois que ele obter um tempo limite. Então, ele precisa dizer explicitamente a Umque agora o espaço de buffer suficiente está disponível. Assim, um será capaz de enviar mais dados. Assim, emaquele caso específico, você tem que garantir que depois de cada tempo limite, B deve se B não estiverrecebendo mais dados de A e a conexão ainda está aberta. Assim, B deve enviar a confirmação de duplicataanunciando que tem espaço de buffer suficiente para receberdados adicionais, caso contrário, há possibilidade de haver um deadlock caso o reconhecimentose perca.Agora, veremos outro aspecto importante da camada de transporte que chamamos como o controle de congestionamento. Então, o que é esse controle de congestionamento? Então, você só pensa inicialmente em um cenário de rede centralizado em. Então, cada nó tem uma borda. Há uma borda entre 2nós e temos uma espera de borda.Então, essa espera de borda significa que qual é a capacidade desse link específico, digamos se vocêquiser enviar alguns dados S para D, nesse caso, se você quiser descobrir que o que seria a capacidadedesse fluxo qual seria a capacidade máxima desse fluxo.Então, você pode aplicar este teorema de corte máx. de fluxo que está sendo coberto no curso algorítmico. Assim, você pode aplicar o fluxo máx em teorema de corte e a partir do maxflow min min corte teorema você pode descobrir qual é o corte mínimo aqui. Por isso, apenas olhandopara o cenário, este parece ser o corte mínimo porque este é o corte mínimo. Assim,você pode enviar um fluxo máximo na taxa de 6 mais 4 mais 10 mais 2, 12.Então, você pode enviar um dado na taxa de se você enviar um think como a unidade como Mbps, assim você pode enviar os dados a uma taxa de 12 mbps de S para D. Agora se você tiver esse tipo de cenário centralizado, você pode aplicar este tipo de algoritmo, este tipo de mecanismo para restringir sua taxa de fluxopara 12 Mbps, mas se ele não estiver lá, então como você conseguirá localizá-lo?Agora, seu algoritmo de controle de fluxo não será capaz de garantir que sua transmissão fiquesempre restrita a 12 mbps porque você está ficando com a taxa de vários caminhos e a coisaé restrita a este tamanho máximo do segmento que é um cálculo aproximado queolhamos mais cedo. Então, por causa disso pode acontecer que em um cenário distribuído,o remetente possa empurrar mais dados compare a essa capacidade de gargalo de 12 Mbps que élá nesta rede em particular. Então, essa capacidade é a capacidade de engarrafamento. Assim, se vocêquiser enviar alguns dados de S para D mesmo que não haja outros fluxos na rede, vocênunca conseguirá alcançar mais de 12 mbps.Agora, o cenário fica mais complicado se você tiver vários fluxos, se você pensar nissohá outro fluxo deste S 1 para D 1, que também utilizará estes links este links individuaisna rede, você pode pensar em que há um link daqui para cá com a capacidadede 4. Agora, vai usar este link específico. Agora esse fluxo pode passar por qualquer um deeste link e haveria esse tipo de sobreposição entre vários fluxos de pontae eles compartilharão a capacidade neste links de gargalo.Então, essa coisa toda é difícil de implementar em uma rede real, pois em uma rede real,é preciso implementá-la de forma distribuída. Assim, nesse conceito específico, o congestionamentopode ocorrer na rede onde esse pescoço de garrafa liga no link de estrangulamento,você está tentando empurrar mais do que a capacidade do link particular de gargalo. Agora se vocêquiser empurrar mais dados em comparação com o link de bottleneck, capacidade do link bottleneck,o que acontecerá que o buffer intermediário nos nós, eles serão preenchidos, vocêexperimentará a perda de pacotes, o que reduzirá o fim de atraso de transmissão ouo que preencheria o aumento do fim de transmissão de fim de transmissão de forma significativa.Gerenciamento de Buffer e Controle de congestionamento-Parte 2
Então, a partir daqui deixe-nos olhar para que como suas largura de banda se modifica quando você alocar startmais fluxos entre o mesmo par de destino de origem. Por isso, inicialmente diga que sua largura de bandanós estamos normalizando-a em 1 mbps. Então, inicialmente se você tem um fluxo único, então nóssó pensamos em uma rede como essa. Então, você tem dizer esta rede e você é você estáenviando um único fluxo desta fonte para S1 para o destino D1 e assuma que estacapacidade de link do gargalo é 1 Mbps.Agora, se for o caso, então uma vez que você está iniciando o fluxo 1, então o flow 1 será capaz de usartoda essa largura de banda de 1 mbps que está lá neste link de estrangulamento. Agora diga depois de algum tempoem mais uma vez você começa outro fluxo de diz este S2 a D2. Isso é dizer fluxo 2.Agora se você começar que então essa capacidade de link é 1 mbps. Então, esse link está sendo compartilhado portanto F1 quanto F2. Assim, o ideal é o que deve acontecer que bem sempre que você estiver iniciando este fluxo particular de, ele irá toda a largura de banda a largura de banda do link bottleneck serádividida entre F1 e F2. Assim, todos terão aproximadamente o fluxo 1 e o flow 2obterão aproximadamente 0,5 mbps de velocidade, se a sua taxa de envio for superior a 0,5 mbps.Então, nesse caso, toda essa capacidade de estrangulamento é dividida entre o fluxo 1 e o fluxo 2 edepois de algum tempo dizer que você iniciou outro fluxo, o flow 3 que exigiu qualcuja largura de banda necessária é pouco menos, diz que sua largura de banda necessária é algo próximo adigamos 100 kbps. Se for o caso, arrastará essa largura de banda de 100 kbps daqui e entãoa largura de banda restante será compartilhada entre o fluxo 1 e o flow 2, e o flow 1 e o flow2 estão utilizando tanto esta largura de banda de gargalo.Agora, depois de algum tempo se o flow 2 parar, então o flow 1 digamos flow 2 consegue parar, o flow 2 flow 2finaliza, nesse momento o fluxo de banda 1 irá obter a largura de banda que está próxima de 900 m, 900 kbps efluxo 1 está utilizando cerca de 100 kbps. Dessa forma toda essa alocação de largura de banda entre osmúltiplos fluxos de múltiplos buffer é alterada ao longo do tempo.(Consulte o Tempo do slide: 20:59)Então, neste contexto, o congestionamento discutimos o algoritmo controlado por congestionamento ema rede. Então, esse algoritmo de controle de congestionamento, ele é necessário porque esses fluxos elesentram e saem de rede dinamicamente, o exemplo que vimos e por causa dissorazão, aplicar um algoritmo para controle de congestionamento na rede é difícil porquevocê não tem essa informação de rede centralizada, como o primeiro exemplo que eu tenhomostrado onde você pode aplicar esse teorema de corte mínimo para descobrir o fluxo máximoentre uma origem e um destino.O cenário é muito mais difícil aqui porque cada roteador individual não temtoda esta rede informações, até mesmo o host end não tem toda aquela informação de redee uma forma distribuída ou de forma descentralizada você tem que alocar os fluxosentre as taxas de fluxo entre os fluxos de ponta diferentes para os fluxos de fim. Então, aplicamos algo chamado de algoritmo de evasão de congestionamentoem vez de um controle de congestionamento porque aprioriestimação de congestionamento é difícil. Por isso, em vez de ir para o controle de congestionamento, vamospara a evasão de congestionamento.Então, a evasão de congestionamento é que sempre que há um congestionamento, você detecta aquele congestionamentoe depois tenta sair desse congestionamento. Então, como você vai fazer isso? Assim,você regula a taxa de envio com base no baseado no que a rede pode suportar. Então, sua taxa de envioagora é o mínimo de algo chamado taxa de rede e a taxa do receptor. Então, mais cedo sua taxa de envio era igual à taxa do receptor.Então, com base no anúncio de buffer que foi dado pelo receptor, você está controlandovocê janela tamanho e você está enviando os dados nessa taxa específica. Agora você éenvio de taxa será o mínimo da sua taxa de rede, o que a rede pode suportare o que o receptor pode suportar. Então, essa taxa de rede, taxa de receptor ela vem do algoritmo de controle de fluxo. Então, o ele vem do receptor anunciando tamanho de janela para um controle de fluxo baseado em janela de. Então, o receptor é publicando aquela informação de janela particulare essa taxa de rede você não tem nenhum controle sobre a taxa de rede ouem vez de dizer que você não tem nenhum mecanismo de estimação sobre a taxa de rede. Então, o quevocê pode fazer que pode aumentar gradualmente esse componente de taxa de rede e observar o efeitosobre a taxa de fluxo. Por isso, idealmente o que pode acontecer em caso de rede com fio, se vocêassumir que a perda devido a erro de canal é muito menor; isso significa, se houver perda dea rede que a perda está vindo devido ao estouro de buffer nos roteadores intermediários.Agora se o estouro de buffer acontece que dá uma indicação de que, bem a taxa de entrada totalpara o buffer excede a taxa de saída total desse buffer.Então, como um exemplo, se você apenas pensar em uma fila intermediária intermediária de buffer intermediário eleestá recebendo dados de fluxos múltiplos e há alguma taxa de saída a taxa de saídapode também ser múltiplo. Então, assuma que a taxa de entrada total é de λ e a taxa de saída total é μ.Agora se o seu λ for mais do que mu, isto indica que após algum tempo o buffer obterápreenchida e uma vez que o buffer será preenchido haverá queda de pacotes a partir do buffere você experimentará uma perda.Então, as mesmas coisas acontecem em caso de perda de rede e estamos sentindo um congestionamentoa partir desta perda de pacotes porque a perda de pacotes dá uma indicação de que o bufferque você tem, esse buffer está ficando ultrapassado.Então, você o identifica como um congestionamento e você volta a cair a taxa de rede. Então, a ideia do amploé que você aumente gradualmente a taxa de rede em algum momento, você vai experimentar,a perda de pacotes o momento em que você estiver experimenta a perda, aí você baixa a taxa e novamenteaumenta a taxa e novamente sempre que você ’ ll obter uma perda, você vai baixar a taxa. Então, quecomo aplicamos o algoritmo de controle de congestionamento na rede.Agora, a questão vem aqui que como você vai aumentar a taxa. Por isso, vemos o primeiro quequeremos ver o impacto do congestionamento da rede sobre o bem colocado e atraso. Então, o que vemosque se você olhar para dentro da rede boa colocar que o número de pacotes por segundo que vocêestá recebendo na camada de transporte e com a carga oferecida. Então, você tem uma capacidade máxima. Então, normalmente o que acontece que bem a taxa fica aumentada até a capacidade máxima.Mas, no momento, há esse congestionamento, você vê uma certa queda no bom colocadoporque seus pacotes estão ficando eliminados e se os pacotes estão sendo eliminados, o algoritmo de controle de fluxotentará retransmitir os pacotes. Então, você vai ter uma certa queda aqui,nós chamamos isso de colapso do congestionamento. Agora quando o colapso do congestionamento acontece, vocêexperimenta um aumento significativo no atraso.Porque os pacotes estão sendo eliminados, o controle de fluxo está tentando retransmitir o pacote,se nesse momento o link não é capaz de sair do congestionamento, novamente esse pacote retransmitidovai cair no congestionamento e há uma alta probabilidade de que o buffer ainda esteja cheioe o pacote pode ser eliminado. Então, por causa disso, o fim total para finalizar a entrega do pacote de sucessoque pode ser diminuído.Então, para garantir o controle de congestionamento sobre a rede precisamos garantir outra coisa quechamamos como equidade. Então, o que é equidade, a equidade garante que a taxa de todos os fluxos dena rede seja controlada de forma justa. O que o que significa isso? Agora o algoritmo de controle de congestionamentoruim pode afetar a equidade; isso significa, alguns fluxos na redepodem ficar faminados. Então, porque porque ele está fluindo no congestionamento, você pode simplesmente pensarde um cenário em uma rede rodoviária, se você está caindo em um congestionamento, se um carro está caindo em um congestionamento, então o carro pode ter uma sorte muito ruim ou ter um atraso enorme para alcançar no destino. Então, a coisa semelhante pode acontecer na rede que alguns fluxos podem terpassar fome.Agora em uma rede descentralizada, garantir a equidade difícil é muito difícil porque vocênovamente você requer toda a informação da rede e quer fazer algum cálculo dematemático para descobrir esse corte mínimo a partir desse mínimo de teorema de corte, qual seria a capacidade disponívele restringir a largura de banda a essa capacidade específica. Então, vejamos um exemplo de alocação de justo max min. Por isso, neste exemplo específicotemos vários fluxos aqui. Assim, você pode ver que esta é a capacidade de estrangulamento em que 3fluxos estão compartilhando o link. Por isso, 3 fluxos estão compartilhando o link significa que cada um deles obteráum terço da largura de banda. Então, este link em particular é compartilhado por número máximo de fluxos.Então, isso é compartilhado por 3 fluxos isso é compartilhado por 2 fluxos, isso é compartilhado por 2 fluxos e este écompartilhado por um fluxo. Então, aqui está o gargalo. Assim, cada um deles obterá um terço da largura de bandase eles estiverem obtendo um terço da largura de banda, o fluxo que é esse fluxonúmero D, ele usará um terço da largura de banda, este fluir o número C e ele usará oum terço da largura de banda. Em seguida, o flow B que está se deslocando daqui por causa dessa capacidade de gargalo, ele está usando um terço de largura de banda. Assim, ele utilizará um terço de largura de bandaneste link. Por isso, neste link a capacidade restante é de 2 em terceiro. Então, esse fluxo A, elepode usar o 2 terceiro da largura de banda. Então, este é o algoritmo de max min fair porque sevocê quiser aumentar a largura de banda deste a partir de um terço digamos para o flow B, se você quiserquiser aumentá-lo a partir de um terço você tem que diminuir a largura de banda do flow A.Da mesma forma, se você quiser aumentar a largura de banda para o fluxo C ou flow D porque você podever que neste link a capacidade total que está sendo utilizada dois terceiro, não está utilizando a capacidade totalaqui também, não está utilizando a capacidade total e apenas tomando isso se vocêquiser aumentar a capacidade de qualquer deste link por causa dessa capacidade de estrangulamento distribuição, você tem que diminuir a capacidade de say flow B. Então, esta alocação deem particular é uma alocação de justo max min.Agora, de uma forma distribuída podemos garantir alocação de justo max min aplicando este algoritmoAIMD. Por isso, chamamos de algoritmo como aditivo aumento multiplicativoque foi proposto por Chiu e Jain em 1989. Então, o algoritmo é algo assim.Então, se você está fazendo como um aumento aditivo seguido de um ganho de diminuição multiplicativaum aumento aditivo seguido de uma diminuição multiplicativa e ambos os usuários estão seguindoeste princípio, gradualmente, eles virão para o ponto ideal similarmente se você começar a partir deaqui você faz um aumento aditivo e então em direção a este ponto central fazer uma diminuição multiplicativa de novo faça um aumento de aditivo faça uma diminuição multiplicativagradualmente você vai se mover em direção a este ponto ideal.Então, dessa forma este algoritmo AIMD aditivo aumentar em 45 grau e multiplicativodiminuir em direção aos pontos de linha para origem, se você aplicar este algoritmo em particular, você podeconvergir em direção ao ponto ideal. Então, esse algoritmo em particular é usado pelo TCP para ajustaro tamanho da janela deslizante para controlar as taxas que irão olhar para os detalhes em algum momentodepois. Bem, então, nesta palestra em particular você conseguiu a ampla visão geral sobre o algoritmo de controle de congestionamentoe com esta palestra, cobrimos serviços básicos que estão sendooferecidos na camada de transporte.Então, no próximo conjunto de palestras, vamos analisar mais detalhes da camada de transporte a partir dea perspectiva de protocolo, e também analisamos que como esses diferentes serviços podem sercombinados juntos para construir os serviços finais.Então, obrigado a todos por participar, espero que nos reunimos na próxima aula.