Desvendando a Internet das Coisas e Sistemas Distribuídos
Pósgraduação unicinos. Sejam todos muito bemvindos ao nosso podcast número 8. A ideia aqui então é nós mergulharmos na parte de métricas para desempenho como analisar de fato o desempenho do meu sistema bom nessa parte aqui né não tem como a gente fugir da parte de redes de computadores então quando a gente fala desse sistema distribuídos e internet das coisas tanto quanto o outro eles remetem aqui a utilização da rede Então quais são as métricas como é que eu vou avaliar certo se desempenho do meu sistema está bom ou ele está ruim Necessariamente, a gente tem que olhar, né, pras métricas tradicionais de monitoramento de rede de computadores. E nessa parte de monitoramento de redes junto com a intersecção com o, 3 grandes métricas né Elas entre aspas gritam aqui para nós certo e que elas merecem o nosso cuidado aqui assim a primeira delas é a questão de latência de comunicação a segunda métrica é chamada largura de banda e taxa de vazão na comunicação e a terceira métrica é chamada ditter ou controle de ditter certo então tem para latência largura de banda e o dita Então veio comigo né A ideia então é explicar o funcionamento de cada 1 delas certo na sequência aqui bom então qual que é a ideia certo de latência de comunicação quando eu falo de latência certo 3 grandes informações Elas têm que enfim ver debate pronto na cabeça dos alunos a primeira informação é o conceito de latência esse termo muitos muitos alunos já ouviram falar né mas a ideia agora aqui é solidificar de fato que eu sei o que que é latência de comunicação Então vamos lá latência conhecimento número que são 3 né é o primeiro conhecimento de latência 2 pontos é o tempo somente do envio de 1 mensagem de 0 bytes entre ponto e outro então somente envio entre que 0 bytes então se eu pegar o modelo de referência de redes tcp ele tem a camada de aplicação camada de transporte camada de rede camada de lace camada física, e nós estamos posicionados lá em cima na camada de aplicação.
Speaker 1:E ali eu faço então 1 mensagem de 0 bytes, né, e eu vou mandar aqui do professor RIG para o aluno ABC. E daí eu mandei 0 bytes certo mas olhem só e aí que tá o ponto do gato eu mando 0 bytes na parte da aplicação mas cada 1 das camadas de rede ela entrou na camada de transporte depois entrou na camada de rede depois entrou na camada de enlace cada 1 das camadas vai adicionando o seu próprio cabeçalho de controle de modo que o que chegou lá na parte da rede de fato lá na parte física da rede não chegou o 0 bytes então eu mando 0 bytes só que de repente lá na parte física da rede né chegaram 500 bytes por quê mas da onde que vem esses 500 que são as adições certo que existem né com os cabeçalhos das camadas do modelo de referência tcb e p então a lei ideia de latência é o que é o tempo mínimo para abrir o canal de comunicação e isso então acaba sendo muito muito importante certo Então essa é a primeira informação, mensagem somente de ida, certo, de tamanho 0 bytes, porque daí eu consigo ver o tempo mínimo né, de comunicação entre 2 partes.
Speaker 1:A segunda informação na parte de latência certo é o que eu posso pensar na latência como a soma de 3 grandes tempos o primeiro que é o serviços de comunicação o segundo que é o tempo para acessar a rede e o terceiro é o tempo da própria rede então serviço de comunicação tempo para acessar a rede e o tempo de rede a latência é como se fosse a soma desses 3 tempos na parte dos serviços de comunicação que é o nosso primeiro tempo aqui né eu coloco que eu coloco o próprios os próprios processamentos que existem dentro da camada laço certo então cada 1 dessas camadas possuem processamentos certo e tem cabeçalhos né e para gerir para enfim para montar esse cabeçalho logicamente passamos por processamento e aqui dentro desse item serviço de comunicação eu gostaria muito muito muito de salientar a questão do entre aspas grande ladrão de tempo aqui para nós que é o protocolo tcp e o tcp ele fica dentro da camada de transporte certo e o tcp ele é o protocolo mais usado na internet né e ele é utilizado para quê para palavrachave confiabilidade então automaticamente todos os alunos né banco de dados depara na nossa cabeça faloulhe ah porque eu protocolo tcp automático todos saibam que eu estou falando de confiabilidade em última análise tá então isso aí acaba sendo bem bem importante então o TCP e pra garantir essa confiabilidade o TCP que executem software dentro do sistema operacional o tcp ele faz toda a parte de enfim retransmissão das mensagens com ACK ele faz controle de butter o tcp ele faz a parte de multiplexação de multiplexação faz controle de CRC check redundancic para verificar a integridade das mensagens certo controle de fluxo né então você fez 1 série de tarefas para garantir essa confiabilidade E logicamente para isso né então isso faz com que ele acabe gastando tempo certo e nessa questão do serviço de comunicação ele é ali enfim o nosso calcanhar de Aquiles mas professor gostaria de melhorar o meu desempenho né eu vi que o tct realmente ele tá consumindo muito eu gostaria de melhorar de repente você pode utilizar o protocolo UDP na camada de transporte mas só que a gente tem que olhar direitinho aqui porque o UDP ele possibilita o perder pacotes então lembrem que as palavraschaves do UDP são 2 pontos desempenho e experiência do celular certo então se eu tenho isso aí né se este é o caso com essa ideia de desempenho se eu posso perder pacotes para mim não tem nenhum problema muito perto de aplicações multimídia por exemplo é que eu tenho vídeo e eu me eu posso perder no frame do meu vídeo que que a ideia do vídeo não vai ser perdida né então posso utilizar o protocolo do DP Então esse foi o tempo dentro da latência encarregado do serviço de comunicação tempo 2 é o tempo para acessar a rede de fato então imagine eu estou na camada de aplicação lance é o dado ele foi para camada de transporte na parte de baixo e depois ele viajou para camada de rede mais na parte de baixo e chegou na camada de a camada de ela tem 1 parte dela que é software tipo driver de rede e também tem 1 parte que é hardware que a própria plaquinha de rede certo e então chega no momento que eu tenho que fazer o quê Eu tenho que colocar os meus dados de fato na rede, eles ainda estão no meu computador, certo?
Speaker 1:Descendo ali as camadas eu tenho que colocar os dados na rede, e não é somente assim, ah eu vou chegar e colocar os dados na rede e tá tudo certo existem protocolos de sinalização que lhe habilitam certo a colocar o protocolo na rede adequadamente então tem 2 grandes protocolos de sinalização certo que é muito usado na parte de redes certo? Esse é protocolo e outro que é muito utilizado em redes de radiofrequência, né, que é o CSMACA. O CA no no final é o Colision Avoidance. Então, esses protocolos, eles são de sinalização eles olham toda a parte de engenharia elétrica e verificam de Fato né se eu posso colocar determinado pacote dentro da rede ou não certo Vamos falar pouquinho, né, dessa parte então, ainda dentro do tempo pra acessar a rede, vamos colocar alguns detalhes de funcionamento do CSMA CD, certo? Que é o protocolo dentro da tecnologia Ethernet, que é aquela tecnologia do Cabinho Azul, né, que a gente utiliza no nosso dia a dia.
Speaker 1:Então, quer dizer eu vou enfim escutar 1 portadora, dum meio que enfim tem acesso múltiplo. Então imaginem que eu tenho enfim filme de comunicação onde que várias estações podem comunicar aquele fio então antes de realizar 1 comunicação eu vou lá com meu ouvido bem pertinho do fio e fico escutando, opa, não tem ninguém comunicando agora, então eu posso pegar e colocar o meu dado na rede. E daí o dado foi lá a prestação que ele tem que ir. Agora o que que pode acontecer? Então, eu tenho dado para comunicar que que eu faço eu ouço a portadora ah não tem ninguém comunicando então vou lá e coloco o meu dado mas 1 outra estação outro lado também tem dado pra colocar ela fez a mesma coisa no mesmo instante que eu, ela ouviu a portadora não tinha ninguém usando e ela colocou o dado e eu coloquei também o meu dado e deu o quê?
Speaker 1:Deu enfim aqui conflito né enfim deu ruído dentro da linha de transmissão certo e daí isso acaba causando 1 colisão de dados. Então eu tenho algoritmo certo de colisão dentro do csma CD esse algoritmo ele tem nome bonito chamado back office exponencial que acontece daí retransmissões até enfim não termos mais colisões Tá bom então aqui assim eu sempre digo assim que eu tenho que para ter 1 baixa latência certo não é somente fator ou outro né mas 1 coleção de fatores e o protocolo de acesso à rede se é sma c d ou c sma c a certo então isso aqui acaba sendo muito quantidade de nós né escalabilidade da minha rede também acaba sendo muito muito importante aqui e o terceiro tempo é o tempo de rede de Fato né então se eu tô numa rede local eu tenho tempo menor se eu tenho 1 rede Network eu tenho 1 rede tempo maior certo e assim vai então a latência ela pode ser vista como tempo recordando serviços de comunicação tc t que assim é nosso grande gargalo tempo de acesso à rede como recém comentei mas o tempo da rede certo e eu posso ter aqui assim é diferentes locais 1 rede local normalmente eu vou ter Hub vai ter chaveador ou 1 rede de larga cobertura que eu tenho por exemplo roteadores certo e tudo mais tá bom bom e qual que é a terceira grande informação da latência lembram que eram 3 a primeira foi o que que ela tem esse tempo somente de ida de 0 bytes a segunda informação da latência é enfim a soma dos 3 tempos e o que são os 3 tempos e a última informação da latência é como medir a latência de fato então eu tenho 2 processos eu posso fazer o quê programinha pingpong então no processo a eu pego o tempo certo depois eu mando 1 mensagem para o processo b o processo b nem via novamente eu a recebo pega o tempo T2 e a latência eu posso calcular ela né como abrir parênteses T2 T1 fecha parênteses dividido por 2 Tá bom então ah mas por que dividido por 2 porque é o tempo somente do envio lembram certo é assim que a ideia dela tem se eu não dividisse por 2 eu teria o tempo de aqui assim bom essa foi a ideia de latência agora a nossa segunda métrica certo é a questão de largura de banda e sempre homens que eu falar para vocês em largura de banda sempre pensem numa métrica de vazão que é medida por dados dividido por tempo.
Speaker 1:Então, se eu pegar assim ah porque Rig eu estou trabalhando com 1 placa certo então automaticamente aí tem consigo 1 ideia de vazão porque porque a placa é gigabit por segundo então a gente fala porque a placa é gigabit internet mas é 1 abreviação certa para o enfim o limite teórico dessa placa, que é gigabits por segundo, certo? Então, isso acaba daí sendo muito importante a gente olhar nessa questão aí de largura de banda e quando a gente olhar a parte de largura de banda lembrem do seguinte 1 coisa é a largura de banda teórica então eu compro 1 placa 10 megabits por segundo 100 megabits por segundo que é a placa Fast ethernet por exemplo, giga bbs, gigabit por segundo, 10 giga bbs. Então, quando eu vou lá na minha lojinha e eu compro 1 placa dessas, essa esse são os valores nominares de vazão agora não no momento que eu for testar de fato e fazer o meu programa dentro da minha empresa certo Então eu comprei 1 placa, por exemplo, gigabit por segundo, muito comum hoje nos notebooks, nos computadores, certo? Gigabit por segundo. E, eu estou precisando então usufruir, né, de praticamente toda aquela largura de bando e daí eu vou lá faço os meus testes certo de desempenho e o que que eu verifico professor eu não consigo chegar no limite teórico a placa é por segundo, mas eu consigo 80 por 100 disso, eu consigo 85 por 100 disso no topo, né?
Speaker 1:EAEA pergunta é por quê? Por que que eu não consigo de fato chegar naquele limite no mineral da placa que eu estou comprando né que seria justo Olha eu estou comprando a placa gigabits por segundo eu gostaria então certo de atingir aquela determinada eficiência E a grande questão aqui assim, né, é que eu tenho o protocolo TCP e o protocolo do DP, certo? Principalmente eles da camada de transporte, e eles acabam processamentos e eu não consigo usufruir do poder total da placa. Então eu tenho gap, que que é o gap? Da parte nominal, certo, do que eu conseguiria atingir, do que eu consigo atingir de fato.
Speaker 1:Então, a prática vezes o nominal, a prática vezes a teórica, certo? E esse gap é graças aos protocolos de comunicação. Bom, então isso então foi a questão de largura de banda e lembra esse tempo da nominal e da prática e para fechar né eu tenho a parte do dither o dither o controle de dither certo ele é muito muito utilizado em redes de computadores e sistemas IOT que precisam de cadência. Então ah eu gostaria professor de enfim implementar enfim alguma maneira de visualizar vídeo no meu browser, certo? Eu tenho browser, gostaria então de visualizar vídeo.
Speaker 1:E o que que é vídeo? O vídeo ainda está mais é do que 1 sequência de frames e pro vídeo aparecer, né, e dar tudo direitinho, tanto da parte da imagem quanto a parte de som, certo? Eu tenho que ter cadência, né? A cadência é o que? É 1 regularidade entre os pacotes.
Speaker 1:E isso é quem gerencia isso pra nós automaticamente são os codecs de vídeo né Por exemplo h 2 meia 4 por exemplo são os codecs tradicionais e aqui eu tenho 1 vírgula Qual que é o probleminha aqui é que eu tenho de lado a parte da internet certo que ela é totalmente dinâmica imprevisível tem congestionamento os pacotes vêm de forma totalmente desordenada isso é o inter normal na internet só que do outro lado tem o meu browser que eu quero olhar vídeo e que ele precisa de regularidade então tem os 2 minutos que não a colam então eu preciso que de algoritmo de controle de deter que faz o quê ele pega dados totalmente irregulares da internet certo e os transforma é através de algoritmo de balde por exemplo que é muito regular e transforma na regularidade para o controle de dither como isso esse algoritmo do controle de dither que trabalha com balde funciona da seguinte maneira eu vou lá no meu videozinho na internet e dou play só que o vídeo não começa O vídeo, ele começaria 1 bolinha redonda, né, e começa loopzinho, como se ele estivesse carregando. Nesse meio tempo, o que que eu estou fazendo?
Speaker 1:Eu estou pegando frames da internet de maneira irregular, e colocando esses frames dentro do meu balde e eu vou botando no balde vou botando no balde quando o meu balde chegar determinado nível certo eu sei o quê eu sei que eu posso regularmente ir passando esses frames para o codec para o browser adequadamente para serem enfim colocados no browser. Então, isso aqui eu estou falando pra vocês na parte de vídeo, né, mas também está totalmente alinhado com a questão de streaming, certo? Então, por quê? Porque o streaming, essa questão da irregularidade, né, também é muito muito importante o streaming, assim como o vídeo, né, tem tudo a ver com a parte do IOT porque os eu posso capturar vídeos através de dispositivos IOT, eu posso capturar streaming de dados através de dispositivos IOT da mesma forma onde a cadência pra apresentação dos dados acaba sendo muito importante, tá bom? Então, a gente mergulhou em 3 grandes métricas.
Speaker 1:Falamos da latência, certo, que é muito importante. Falamos da parte da largura de banda e aqui eu expliquei a prática e a nominal, certo? E depois falamos do dither, né, você nua no no na nossa brincadeira, né, enfim, ah o nosso banco de dados depare quando falar em dither certo automaticamente pensa em que cadência sabe porque tem que ter sim ou não a resposta é a cadência certo o tempo entre pacotes ele é importante para mim se sim eu vou ter que habilitar algoritmo de controle de dívida nos encaminhando aqui para o fechamento do nosso podcast de métricas de avaliação 2 assuntos muito, muito importantes. Eu fico muito feliz de trazêlos aqui para os nossos valores. A primeira questão é, eu vou trazer aqui assim, 2 cenários, certo, pra gente trabalhar.
Speaker 1:O primeiro cenário é, o professor tem que, enfim, enviar 100 bytes para o aluno. Então, eu tenho que, eu tenho dado aqui comigo, 100 bytes, eu tenho que enviar esse dado para o aluno adequadamente. Eu tenho 2 possibilidades, ou eu faço, por exemplo, 10 pequenos envios de 10 bytes, né, então cada envio o envio 10 bytes, ou o envio 100 bytes de 1 vez só, certo? No final o aluno vai ter lá os 100 bytes que ele gostaria. E a pergunta é, é a mesma situação enviar 10 vezes 10 bytes é a mesma coisa que enviar 1 vez 100 bytes?
Speaker 1:E a resposta é não cuidem isso não é a mesma coisa porque porque enviar 10 vezes 10 bytes o que que eu estou fazendo eu estou abrindo o canal de comunicação 10 vezes eu estou pagando 10 latências. Então, o que que é melhor pra auto desempenho? É trabalhar o quê? Com buferização, isso, enfim, a parte bacana disso é que o sistema operacional e o TCP já fazem muitas coisas dessas pra nós de brinde, certo? Mas se eu gostaria de melhorar o desempenho da minha aplicação de repente eu trabalho com buferização vou aumentando o tamanho da mensagem quando chegar num tamanho razoável eu chego e envio lá para o meu destino certo isso faz com que eu tenha melhor 1 melhor utilização da minha rede e pague 1 única latência Então isso é muito muito importante certo a gente se dar conta né Na hora de enviar várias e várias mensagens pequenas de lado ao outro de repente a gente olha vamos bacerizar essas mensagens e enviar 1 mensagem maior de modo que a gente consiga pagar 1 única latência Então essa primeira questão e a segunda questão certo e eu vou trazer aqui 1 pergunta importantíssima com os alunos é a seguinte qual que é o papel do meu processador na minha rede tá mas 1 coisa isso é processamento e a outra coisa é comunicação pela rede as coisas não têm estão desconectadas não tem nada a ver 1 coisa com a outra e a resposta é não é b s tm certo acompanhem comigo eu falei para vocês que, o grande protocolo da internet ele é o TCP, que o TCP ele só existe nas pontas, só existe nos como existe dentro dos notebooks, dentro dos computadores, dentro dos celulares, certo?
Speaker 1:É ali que existe o TCP, que faz toda a questão de confiabilidade do TCP quando eu quero navegar pela internet, quero mandar email, quero baixar arquivo da internet via FTP, tudo isso quem gerencia é o protocolo TCP joia e o que que é o TCP vamos tocar no TCP o TCP é o software certo ele é programinha e ele reside dentro do sistema operacional certo então joia software dentro do do sistema operacional joia e agora que Berlim o Grand Fura Ali e quer que executa o TCP de fato É o meu processador. Então é muito muito importante ter bom processador, certo, pra ter bom desempenho de rede, né? Vou colocar aqui assim 2 situações importantes aqui que a gente já se encaminha pro finalzinho do nosso podcast. Imagine então que eu ligue meu Imagina, então, que eu ligue meu computador, certo, e eu, então, abra no meu browser 50 abas, certo? Então, eu boto ali diferentes websites URL né eu abro ali 50 Abas e que que eu percebo pá eu percebo então que enfim né a minha internet ficou lenta e daí eu já começo enfim né a dizer que olha a minha internet está muito lenta o meu provedor tá muito ruim certo e dizer então que é problema de conexão de comunicação certo mas que que acontece eu abrir 50 Abas são 50 sockets TCP que estão comunicando, certo?
Speaker 1:Isso aí eu tenho que fazer multiplexação de multiplexação em vários controles que o TCP faz e quem executa o TCP é o meu processador. Então, pode ser que, certo, o grande calcanhar daquele seja o TCP, certo, ou seja o meu processador aqui, que eu tenho processador lento. E, aqui assim eu trago então pra 1 outra situação, né? Quando vocês querem melhorar o desempenho da rede de vocês dentro da empresa de vocês olhem para melhores placas de rede olhem para cabos blindados categoria 7 categoria 7 a olhem para melhores suítes ou chaveadores né que tem a questão de gerenciamento que tem toda a questão de SDN software mas também olhem a questão de que Dos processadores que existem nos computadores da tua rede local. Então, ah, na minha empresa tem, enfim, 20 computadores em rede.
Speaker 1:Qual processador que existe em cada desses computadores? Então, ter essa ciência, né, é muito importante por quê? Porque CPU influencia sim, muito muito, certo, na velocidade da minha rede. Então é muito importante trazer esse dado, né, aqui na aula de métricas de alto desempenho e métricas pra gente medir esses temas. Bom, esse aqui era o nosso podcast número 8, certo?
Speaker 1:Analisamos as 3 principais métricas, né? E era isso. Muito obrigado pessoal e sigam comigo. Pósgraduação UNICINA