Detecção e Correção de Erros | Introdução a Redes Parte 2
80.08k views5552 WordsCopy TextShare
Fabio Akita
Apesar de ser Parte 2 da mini-série de redes, vou falar pouco sobre redes propriamente ditas e focar...
Video Transcript:
o Olá pessoal Fabio akita o episódio anterior eu quis trazer algumas noções de como dados trafegam por redes cabeadas o Williams isso porque ultimamente eu andei brincando com coisas com o meu novo nas mas antes de poder falar dele coisa quando ele prometendo como docker achei que finalmente chegou a hora de falar um pouquinho sobre rede como eu já tinha falado antes eu tô longe de ser especialista em redes então eu quero explicar as coisas do ponto de vista mais de alguém que é programador e usa a Rede Mais do que monta redes no episódio de hoje eu quero explorar o motivo de porque eu montei um nas evitar perder dados a maioria das pessoas hoje está acostumado ao mundo para o Gameplay sempre conectados serviços de cloud e tudo mais e tem muito menos preocupação com os seus dados na real a maioria não tem dados tão importantes que se perder vai ser um grande problema mesmo por isso eu acho que não tem problema se perdeu perdeu se do eu devia ter se precavido mais programa dois eu acho que deveriam ter um pouco mais de cuidado Especialmente porque lidam com dados dos outros sobre isso tem dezenas de assuntos que e com segurança de dados mas como hoje eu quero falar só sobre os blocos mais básicos de como Erros podem acontecer e como a ciência da computação vem resolvendo esses problemas desde pelo menos os anos 60 e [Música] e veja meu nas ele tá construído uma configuração raidsix Mas vamos falar de novo do formato mais simples ó 2 HD se você ainda não assistiu minha playlist de armazenamento eu vou resumir só essa parte de novo com 2 HDs eu posso fazer duas coisas escolha segurança ou escolher performance se eu for um gamer que eu posso baixar tudo de novo da Steam caso perca os agradeço talvez faça sentido colocar em modo Raid 0 nesse modo você tem operacional vai enxergar os dois HDs no único volume Lógico que os HDs de 1 terabyte cada em inglês de 0 volume Lógico meu você: no Windows vai ter dois terabytes inteiros eu vou ter quase o dobro de performance porque eu posso escrever nos dois ao mesmo tempo lembro que eu já expliquei antes sobre arquivos e transmissão de dados em geral a maioria das pessoas Olha o Windows Explorer ele assume que a menor Unidade São arquivos os sistemas operacionais escolher os detalhes e mesmo programadores sólido no máximo com arquivos na maior parte do tempo mas isso é ineficiente agradeço não são dispositivos de arquivos o tipos de blocos por isso o serviço da Amazon eu posso instalar o HD virtual na minha máquina virtual do ec2 se chama EBC ou elastic Block Store ele nos dá um dispositivo de blocos eu explico isso nos vídeos sobre armazenamento as estão lá depois no episódio passado eu falei que comunicação de redes usa hoje em dia comutação de pacotes pacotes são essencialmente blocos de bits por isso tenha na cabeça que tanto o arquivo no seu sistema como transferência desses arquivos pela rede acontece de forma fragmentada um pacote de cada vez e não o arquivo inteiro de uma vez por isso eu tenho o dobro de performance no Raid 0 se o sistema só Enxergar se arquivos quando fosse gravar gravar o arquivo inteiro só em um HD daí a velocidade máxima seria só desse HD mas como na realidade a partição é uma tabela que tem o registro e dizendo arquivo Hello. MP3 tem dois mil blocos de 4 km escada e os blocos de um até Milton no HD um e os blocos de 1001 até 2. 000 tão hd2 e pode mandar gravar os blocos nos dois HD de ao mesmo tempo e por isso eu tenho mais velocidade tanto para lazer quanto para gravar porque o arquivo pode ser segmentado nos dois agradeço mas também por isso esse sistema de 60 tem um grande calcanhar de Aquiles em si um dos HD sofreu um defeito e morrer seu HD morrer você perdeu tudo dos dois HDs entenderam Porque alguns blocos dos arquivos no HD que está vivo tava no HD que morreu Então você ficou com um monte de arquivos quebrados que não servem para nada por isso que você nunca deve usar o rei de zero se os dados que tivessem O importante se era só para games que você pode recuperar tudo depois beleza compra outro HD remoto raid0 formar tá tudo reinstalar o Windows E baixa tudo de novo da Steam a importância que era performance e os dados tinha backup fora então ok mas você vai misturar com o trabalho e coisas que se perder vão te dar prejuízo e só puder comprar dois agradecer Então coloque eles em raid1 Esse é o sistema de espelhamento seu sistema operacional vai enxergar os dois HD de 1 terabyte é o único HD de 1 terabyte toda vez que mandar gravar um arquivo sistema vai mandar todos os blocos para os dois HD de fazer uma cópia Idêntica bloco A bloco então a performance vai ser a de um único HD um pouco menos até porque agora vai ter o trabalho de gravar no outro HD também quando ler não vai ter quase diferença em termos de performance vai perder um pouco então Qual a vantagem a vantagem é que se um dos agradeço morrer o sistema automaticamente elege o outro como HD primário e na prática você nem vai notar seu sistema não vai cachear e vai poder continuar usando tudo como antes zero perda de dados agora é só comprar outro HD substitui o que falhou aí no próximo boot o sistema vai copiar tudo do HD que sobrou para o HD novo criando outra cópia espelho aqui trocamos um pouco de performance e metade do espaço por segurança para entender os outros níveis de Raid com mais agradeço de novo veja minha playlist sobre armazenamento para entender mais sobre isso de blocos e redundância DH besta mas para hoje eu precisava que você estivesse na cabeça o modelo de trem dof de performance segurança e redundância isso porque poderia aparecer que um verde um é perfeito e vai deixar seu sistema protegido Isso é verdade até certo ponto É muito raro de se ver mas um evento que acontece é bitbot o degradação de bits ou simplesmente bit-flip interna qualquer sistema de armazenamento seja um HD mecânico sejam SSD que usa chips nand Flash como também SD cards o pendrive em memória RAM tudo está sujeito a uma hora sofrer algum tipo de degradação O melhor é quando há falha bem aparente ele para de funcionar totalmente o problema é quando ele continua funcionando mas os bicos armazenados não são mais confiáveis tudo é gravado magneticamente informação é um linguição de bits bits são cargas eletromagnéticas armazenados ou transportados no fio de cobre em ondas pelo ar qualquer tipo de interferência eletromagnética poderia fritar bits aleatoriamente por isso existe blindagem todo um processo de e para evitar ao máximo qualquer tipo de interferência externa mais nada é perfeito escrevendo sobre isso me lembrou de duas historinhas que seria legal vocês saberem 18 de Maio de 2003 aconteceu a primeira eleição com o voto eletrônico da cidade de sherbrooke em Bruxelas milhões votaram eletronicamente pela primeira vez tudo correu conforme o esperado até o dia de contar checar os votos aí a comissão da eleição lotou duas coisas Fora do Comum primeiro porque uma candidata a Só realmente desconhecida ganhou milhares de votos a mais do que se desesperado mas a segunda coisa que foi mais absurda é que o total de votos foi maior do que o total de pessoas que votaram claramente Isso é um problema e obviamente você nem imagina o tanto de gente apontando o dedo um para o outro atrás de fraude teve diversas investigações para entender o que aconteceu você foi um banho manipulação mais uma coisa chama atenção o excesso de votos contados da exatamente 4.
096 para de 4. 096 é só um número mais para gente de computação 4. 096 é o número muito específico que vocês não sentiram alguma coisa quando houver o número eles não praticar mais porque é exatamente 2 elevado a 12 Lembra quando eu falo que vocês precisam se acostumar a converter decimais em binários 1 número é uma cadeia de bits de Gama de 32 bits E você qual bicho na posição 13 vai dar esse 4.
096 a mais se lá estivesse zero não quer dizer que não houve fraude Mas é muita coincidência alguém que fosse fraudar pensar no número exatamente assim o objetivo não é detalhar o caso então depois do Google para saber como foram as investigações de fato encontrar um banco de segurança e coisas assim no software todo software de votação ainda mais a primeira vez ainda mais não foi visto e revisto testado e retestado e auditado por diferentes grupos e programadores Independentes certamente tem bugs importantes não há talvez é certeza absoluta mas mesmo assim nenhum dos bugs encontrados consegui explicar e Oi gente um particular e uma hipótese que não dá para provar mais tem chance de acontecer é que esse bilhete foi flipado por raios cósmicos Pois é caso você não saiba estamos o tempo todo sendo bombardeados por milhares de partículas subatômicas que vieram de explosões de supernovas que caem na Terra como raios cósmicos muitos experimentos delicado são feitos abaixo da Terra com muita blindagem para tentar minimizar o efeito desse site onde qualquer um a variação da ordem de um elétron pode mudar os resultados dependendo do estudo que achar pode encontrar que é possível um bit-flip por Gigabyte de memória por ano sabe tela azul do Windows que só aconteceu uma vez e nunca mais não teve um motivo nenhum talvez tenha sido um bit-flip de raios cósmicos tem muito mais histórias do que essa das eleições E só mais uma que eu achei interessante porque eu acho que eu gosto foi Speed Hunger 2013 de Super Mario 64 do usuário Dota Timberg Speed Run para quem não sabe a competição para ver quem consegue acabar um jogo do menor tempo possível e esses pediu Eles barram Não grite considerado impossível sem manipular o jogo num determinado o pedaço da fase ele tava simplesmente por usando uma plataforma e fez um orbe para cima do teto sem nenhuma razão todo mundo da comunidade tentou replicar isso usando emulador você ficando exatamente espaço do tiberg frame a frame com scripts mas ninguém conseguiu replicar esse feito isso porque para realizar esse Word Excel que se chama de 15 Uma Mente upset aqui é fora do controle do jogador a única forma de replicar o óleo é fazendo um bit-flip número que representa o peso do Mario se você fica um bit mudando de cinco para C4 hexadecimal estudar o peso exato para fazer um orgulho para cima naquele exato momento de novo é impossível dizer que foi isso mas a hipótese de novo é que raios cósmicos preparam esse Boom Beach naquela hora causando morte mas o ponto é que os beautyflix acontecem e raios cósmicos é só mais um fator no menor ministra de fatores que podem levar à corrupção D em particular quando usamos mídias magnéticas para armazenar e transportar dados e se tudo isso ainda não te convenceu não precisa ir muito longe quantos de vocês lembram da época de CDs piratas de games e como vocês gostavam de esfregar o disco na camiseta e mesmo disco tem vários riscos em ainda funcionava Como pode essas coisas isso é tudo para vocês entenderem que erros e corrupção de dados são inevitáveis e se vocês nunca notaram estão testamento de como a ciência da computação já conseguiu resolver a grande maioria desses problemas e para todo mundo tudo simplesmente só funciona vamos recapitular imagine um arquivo de imagens como esse gato obviamente é sempre um gato mas o que a gente vê a representação visual de um linguição de bits eu expliquei isso no episódio sobre compressão só por conveniência para mostrar aqui na tela eu posso representar essa linha contínua de bits quebrando em várias linhas digamos em linhas de 11 bits e eu posso organizar mais ainda cada linha de 11 bits como um bloco em particular eu vou organizar os 11 bits da primeira linha no a 16 posições numerados de 0 a 15 as posições 012 48 eu vou reservar Eu preencho as 11 posições seguintes com meus bits de dados agora vamos olhar Metade dos Bichos e checar o que chamamos de paridade para idade e literalmente se temos um número par ou número ímpar de bits um nesse caso temos dois bichos ou então é par e assim preenchendo o bit de paridade na posição zero agora olhamos o próximo grupo E chegamos a qualidade temos 3 bilhetes um é ímpar então na posição dois preenchemos esse outro bit de paridade com um agora que vem os grupos de colunas na vertical vamos ficar grupos na horizontal esse próximo grupo também tem número imperdibles portanto no bicho qualidade da posição quatro preenchemos com um e finalmente chegamos o último grupo que também tem um número ímpar de bits um Portanto preenchemos o bit de paridade na posição 8 com um finalmente chegamos à paridade do bloco inteiro temos 8 bits um é par então bit de paridade da posição zero vai ser zero Pode parecer complicado mas e até o final de exemplo para eu explicar o que estamos montando aqui nesse momento queremos um bloco de 16 bits para carregar 11 bits de dados de 5 bits de esticagem de qualidade agora faz de conta que estamos transmitindo esse bloco pela internet sujeito a todo tipo de interferência eletromagnética erros de berço degradação do material do fio e tudo mais e o mais bicos nesse bloco vai ser free parado no meio do caminho mas na outra ponta a gente não sabe disso agora outra ponta recebeu esse bloco eu duvido que vocês vêm de cabeça como era o bloco original Então vamos chegar à paridade chegamos o primeiro grupo e vemos número par de bits 11 então o bit de paridade na posição tá correto com 0 e sabemos que a segunda e quarta colunas parecem Ok o próximo grupo tem o número par de bicos um mais no bit de paridade na posição do está um O que é um problema sabemos que tem o erro em algum lugar nessas últimas duas colunas Mas como já sabemos que a quarta com ela tava OK o problema tem algum lugar na 3ª coluna chegando o próximo grupo temos o empate bits então o bit de paridade na posição quatro tá correto sendo um portanto sabemos que a segunda e quarta linha Tá ok e no último grupo temos um número par de bicos mas o bit de paridade na posição oito tá um em vez de zero Então temos algum problema nessas últimas duas linhas mas já sabemos que a quarta linha tava Ok para chegar de anterior Portanto o erro tem que estar na terceira linha e como já sabemos que tem algum erro na terceira coluna cruzando as duas sabemos que deve ter um erro na posição 10 esse limite foi fretado mais do que isso olhando o bloco inteiro vemos que a paridade é ímpar então no bit de paridade do bloco deveria estar um em vez de zero isto nos dá confiança de saber que estou um bit-flip e não dois portanto soube da posição 10 foi free pada e se mudarmos de 1 para 0 jogarmos fóruns 5 bits de checagem temos o bloco correto original de 11 bits que foi enviado o que fizemos aqui Foram duas coisas nós tivemos a capacidade de checar a existência de um bit-flip ainda tivemos a capaz a operar o bit que foi danificado e recuperar o bloco inteiro o Que Vocês acabaram de ver foi o algoritmo de correção de erros remcloud nomeado depois o seu Criador Richard hamming e essa é uma das formas que temos hoje para correção de erros essas animações deles e familiares Porque eu peguei emprestado do excelente canal true Blue One Brown que fez dois vídeos excelente dois anos atrás explicando exatamente como funciona o Renan code e ele fez isso em conjunto com outro canal que vocês já viram mostrar aqui o do bem e ter que implementou é mim Cold em protoboards em hardware para demonstrar como é possível colocar correção de erros enraizador eu altamente recomendo que assistam os vídeos deles para saber em detalhes como que isso funciona eu assisti esses vídeos dois anos atrás e tava esperando uma oportunidade para encaixar eles nos meus vídeos quem seguiu minha recomendação de seguir os canais deles já deve ter visto Richard hamming o pesquisador da época e se programavam em cartões perfurados imagina levar Dias escrever um programa nesses cartões e para uma máquina mecânica que vai nesses cartões através dos furos mas Vira e Mexe ele era um furo que registra a informação errada se até hoje aquelas porcarias de máquinas de refrigerante não consegue identificar seu dinheiro imagina uma máquina mecânica velha que tem que ler centenas de cartões sem errar nenhum furo isso acontecerá tanto que deixou o rendimento Tarso e não existe melhor forma de invenção do que não se acostumar com problemas e sem coçar pela para coceira é assim que ele fez e inventou todo esse sistema de paridade do Remo Cold para checar e corrigir erros a gente usa remin Cold até hoje em coisas como memória EC ou Action code and workstations e data Centers a memória que você tem o seu PC provavelmente não é esse cê mas o servidor de cloud que armazena seus dados certamente tem esse cê e é por isso que coisas com raios cósmicos não são aparentes no nosso dia a dia outra forma de correção de erros é o índice solo mon code que é usado em CDs blue-ray e é por isso que mesmo você o disco esfregando a sua camiseta ainda é possível ler os dados mas o mais astuto entre vocês assistindo poderia pensar Espera aí você tá me dizendo que tem um box de 11 bits eu precisei reservar mais 5 bits para redundância ou seja um terço do espaço e Banda de transferência foi desperdiçado para isso então não blu-ray de 40 GB você precisaria ter quase 20 gigabytes a mais só para redundância mas o mais assunto do mais astuto entre vocês talvez tenha lotado que eu fui fazendo checar diz naquele bloco de metade em metade toda vez que fez da Computação você vai procura as feitas de metades de metades deveria ver a cabeça procura binária lembra os episódios onde eu falei de árvores e porque árvores são das coisas mais importantes que todo programador deveria ter em mente ficamos duas qualidades de dois grupos de colunas verticais depois duas qualidades dois grupos de linhas horizontais no bloco pequeno de 16-bits precisamos fazer quatro perguntas de paridade para localizar e corrigir o bicho flipado mas e no bloco bem maior de 56 bits vão precisar fazer só oito perguntas de cozinhas e Para isso precisamos preservar só 8 bits de redundância ou seja só três por cento do tamanho dos dados e não um terço como era no bloco de 16-bits quanto maior for o bloco menor vai ser na quantidade de bits de redundância necessário e esse é o poder da procura binária e isso porque vocês precisam estudar algoritmos e estruturas de dados estamos usando blocos de 16-bits só porque é mais fácil de colocar aqui na tela ou para você ver no seu celular mas o bloco de sistema de arquivos costuma ter pelo menos uns 4 kg bytes de dados um bloco de rede costuma ter pelo menos 1. 500 bits mas em rede não se usa nem Remy e nem abri de solo amor só para coisas com o programa espacial da Nasa Onde o boy agir por exemplo usa o Indy só não Cold para as transmissões hoje em dia se usa variações de vir de solo no para fitas magnéticas CDs Blazer toda mídia de armazenamento incluindo a cabeça você nem sabe disso mas toda vez que o bloco de dados é gravado no dia o cálculo esses bits de redundância e grava no lugar apropriado no HD Então tá resolvido tudo então só usar Renner Ovídio solo mãe tudo que tá tudo certo mais ou menos por mais que eles sejam altamente eficientes não gastem tantos bicos assim ainda assim são bits extras para cada bloco de bits a indústria de agradeço por exemplo em pesquisando outras formas que sejam quase tão eficiente quanto ruim de solo mais perdem 10. 1 por cento dos casos como o ldpc could Win Solo tem complexidade o quadrática O que significa para disco gigante de dezenas de ter a base leva muito tempo para corrigir erros particularmente ruim da paciente que tem a raiz com centenas DH besta 1l de PC atinge 99.
9 por cento de recuperação comparado comida e solo e tem complexidade ó linear é uma área ainda com pesquisas ativos recuperar erros não Só gasta limites estas de armazenamento como exige processamento para fazer essa coleção imagine agora switches de rede em escala de internet por isso eu acho que errei e não tem correção Deus assim encher garagem de erro é muito menos trabalho identificar que tem um erro mas não recuperar esse erro que você tá fazendo aquele download longo e v a velocidade cai porque a internet da sua região é bem estável não é tentativa de correção de erros que está acontecendo e sim repetição de pacotes em rede funciona mais ou menos assim seu arquivo de download é quebrado em vários pacotes enviados um atrás do outro seu PC vai recebendo esses pacotes e remontando o arquivo mas ele faz uma checagem antes essa secagem é parecida com a secagem de bits de paridade do Rei Cold mais um pouquinho só mais sofisticado no caso de internet falamos de cheques somos em particular o internet 16-bits este aqui são é uma soma dos bicos do bloco / palavras de 16 bits existem formas melhores como Flash aqui são ou CRC que é cyclic redundancy check mas eu acho que ainda se usa internet 16-bits mesmo de qualquer forma entenda que existe essa secagem via tixan e o detectado que houve um bit-flip o coisas como Burst que é comum o pacote é rejeitado e seu por semana Abismo de volta para o servidor Olha o pacote aí deixa espetel veio cágado Manda de novo esse é um na que eu falei antes daí o servidor manda o mesmo pacote outra vez é um dos motivos de porque você velocidade de download caindo e flutuando no caso de rede é mais barato pediu o pacote de novo do que tentar corrigir ele com exceção é mais importante quando você não tem para quem pedir uma cópia original como arquivo no seu HD que só você tem no começo da internet a gente usava um serviço chamado de usenet que usava o protocolo nntp pensa tipo um sistema de fóruns assim como protocolo smtp de e-mail http the web era outro protocolo baseado em texto puro de 8 bits ele foi feito para transmissão de texto e não arquivos binários pensem o cinético no WordPress que o povo tem que puxar mais coisas do que ele foi planejado para fazer e usenet foi feito para sincronizar arquivos de texto entre diferentes servidores é mas obviamente a gente achou gente de ir puxar arquivos binários para fazer pirataria estamos falando de uma era antes de BitTorrent eu mesmo fiz muito isso na faculdade a gente baixar imagens software e tudo mais daí ozinete o problema é que por diversas razões os arquivos podiam acabar corrompido erros de conversão erro nos discos fundamentais dos servidores da época e tudo mais mas o problema é que invariavelmente eles acabavam corrompidos primeiro a gente precisa resolver o problema de trafegar arquivos binários no protocolo de textos os mais astutos já tem a resposta na ponta da língua Daisy 64 é uma forma de transformar binário em textos de 7 bits bem c64 não é encriptação de jeito nenhum o problema é que se você tentar abrir um arquivo binário no Notepad não tem como dar cop peixe em outro loutpad sal aqui vai conter tudo porque o editor de texto não reconhece todos os símbolos minarios a solução é converteu minaria um subconjunto de aço que que o editor de textos entenda Como converter de volta no binário o custo disso é gastar um pouco mais de espaço cada digito de base-64 representa exatamente 6 bits de dados então 3 bytes de 8 bits cada do arquivo ou seja 3 X 8 ou 24 bits podem ser representados por quatro dígitos 16 bits que dá 24 bits também isso significa que a versão base64 do arquivo vai ser 133 por cento maior do que o original o arquivo binário de 100 megabytes vai virar 133 megabytes em base64 como arquivos podem ter tamanhos variados como um filme longo por exemplo ou instalador do Photoshop ou coisa assim pra ilzinete não reclamar a gente que brava esses binários primeiro em múltiplos binários usando o bom e velho formato rar ou errar porque assim como o zíper e compactar o arquivo mais diferente de zíper ele permite a quebrarem múltiplos arquivos com final pontuar 2. 3 assim por diante e depois que baixa todos os arquivos WinRAR conseguia remontar e descompactar o bom então processo era simples faz vários arquivos RAR converte em texto base64 na época usando a ferramenta I wish I could do in Unix que significa junix túnicas em Cold postava cada pedaço em um artigo da usenet do outro lado a gente baixava o beijo e meia 4 de cada pedaço usava e o de Cold para conseguir os binários de volta e usavam equivalente Winrar para descompactar os arquivos originais Era assim que a gente fazia antes de Google Drve Mega o BitTorrent Como eu disse aí o sinais não foi feita para transportar arquivos e por inúmeras razões incluindo defeitos nesse monte de paz que a gente tem que fazer alguns bits acabavam como um piso então a gente precisava de uma forma de garantir que dava para recuperar de alguma forma após o download caso lotação o arquivo corrompido E aí surgiu a ideia do Parque vi o arquivos. Par ou a versão melhor que foi parar dois Agora você podia baixar os arquivos RAR e também os arquivos par dois que era bem menor encerrar tivesse cumprido na hora de descompactar a experimentar recuperar usamos arquivos.