Nem sempre nós precisamos de ter a correção de erro, tá? Bom, vamos imaginar aqui um meio de comunicação, vamos imaginar aqui por exemplo uma fibra, uma fibra, a taxa de erro, é tão desprezível que transmitir dados a mais seria um desperdício da minha banda de comunicação, tá? Agora, é natural que quando eu tenho uma comunicação via satélite, aonde o tempo de transmissão pode chegar a um quarto de segundo, ou seja, alcançar um satélite pode demorar um quarto de segundo, é natural que uma correção de erro seria bem interessante, tá? Então quando eu quero apenas uma detecção de erros, ou seja, eu quero saber que houve o erro, mas eu não quero saber aonde, eu não quero corrigir que o outro lado me retransmita essa informação, tá? Então eu uso códigos de detecção de erros, são mais simples, consomem menos banda, é natural, tá? Vamos lá, estamos aqui primeiro a entender a natureza dos erros, eu achei essa imagem na internet, eu falei, ah, eu vou colocar, são fibras, né, conexões com fibras, tem erros que não dá para corrigir, né? Se esse rato romper essa imagem já era. Esses erros que eu estou falando com vocês são erros de transmissão, por exemplo, vamos aqui pensar, digamos que alguém passou junto com o cabo de rede, cabo de energia que vai alimentar o motor e esse motor, naturalmente, ele liga e desliga. Então, por exemplo, eu estou de um ar condicionado, tá? Liga e desliga, então é natural que vamos ter ali um ruído aleatório, então esse ruído aleatório seria campo eletromagnético, sendo gerado ao longo do cabeamento e interferindo a comunicação, não é esse tipo de erro do meio físico não, tá? Eu coloquei ele só para brincar com vocês. Bom, nós temos, naturalmente, mais que três, mas do código nós temos três formas de detectar erros, tá? Primeiro é paridade, né? É onde nós criamos erros de paridade. Chequeçã, Chequeçã é mais complexo que paridade, tá? Alguns, preste atenção, alguns Chequeçã são considerados de paridade, por isso você vai ver aí uma certa confusão em livros de rede, com relação à palavra Chequeçã, sendo utilizado no lugar de paridade, só que Chequeçã ele é muito mais amplo que paridade, não deveria, é por isso que nós utilizamos quem? Quem? Quem como autor? Tanebol, tá? Tanebol, porque os outros livros de rede é apenas uma simplificação do Tanebol e nessa simplificação os caras cagam no saco, ok? Opa, falei, não deveria. E verificação de redundância cíclica, né? Então vamos primeiro entender o que é paridade. Uma das operações que binária, que é muito utilizada em rede de computador, é SHORE, tá? Recomendo que você volte lá no curso de C e veja que que é um end, que que é um war, que que é um war exclusivo, dá uma olhadinha lá, negação, dá uma olhada, fica fera nisso, tá? Bom, bit de paridade é escolhido, de modo que um bit, um, na palavra de código seja par ou imp, por exemplo, se eu tenho, eu posso definir paridade par, quer dizer que se eu tenho dois números um, então eu tenho uma paridade, tá? Ou eu posso dizer que a paridade é ímpar, ó, eu precisaria de três, um, três, cinco, uns, tá? Pra definir o bit sim, tá? Naturalmente nós podemos fazer isso com SHORE e usamos muito SHORE, tá? Então nós podemos enviar, e eu defino um, zero, um, um, zero, um, zero, eu dei o isso, por isso que eu não gosto da aula de OLC, né? Lá nós temos um, dois, três, quatro, quatro números uns, ok? E se eu defino que par, ok? Não tem paridade, defino que é par, então é natural que eu vou colocar zero, tá? Agora eu acho isso muito chato, né? Paridade ímpar, paridade par, olha só que interessante, de paridade, né? De ser par, de pariar, pariar, agora se define que a paridade é ímpar, aí eu coloco um, tá? Isso, a sua questão vai estar descrita, vai estar descrita a sua questão, calcule o código, caso que o bit, que está em laranja, calcule o bit, redundante, pra, desculpa, pra detecção de erro, caso seja, bit de paridade par, aí vai ser o, nesse caso vai ser um zero, vai estar na questão, isso é importante, tá? Tem que ler a questão, tem que dar um tapa na questão, e pá, já sai fazendo, se o seu professor for o filho da, eu conheço um, tá? Ele vai meter uma questão com paridade ímpar, e você vai meter um zero, mas ele está falando que ele quer ímpar, tá? Fique esperto isso aí, isso é um tipo, tá? De bits de paridade, tá? Um tipo de bit de paridade, tá? Ele, ele, ele cai ali no nosso, tá? Tranquilo? Isso nós definimos, tá? Lê a questão, cara. É muito comum também, eu conheço um professor o filho da puta, que ele faz assim, ele faz provas salteadas, aí você olha pro lado, o cara respondeu zero, você mete zero também, pô, mas você não viu que o texto da questão do outro aluno tá ímpar e o seu tapar, tá? Aí tomar um cuidado, tá? Você pode fazer, naturalmente, você tem um choro aqui, ó, você tem um choro, tá? Então você pega cada uma da entrada e gera um bit de saída, tá? Isso aqui é a exibição ali de um formato de gráfico, tá? Exibição. Vamos dar uma olhada aqui, ó. O que acontece? Ficarei muito pesado, eu ficar fazendo assim. Então nós trabalhamos com a ideia de rajada. O que é uma rajada? Isso é uma rajada. Ele dispara vários bits, vários bits, vários bits, vários bits, vários bits, vários bits, isso é uma rajada. Isso é uma rajada de um bloco. Chamamos isso aqui de bloco. Aí depois que ele dá uma rajada, escreve todo bloco, ele calcula a paridade, tá? Quem? Pegar a jogada, né? Bloco. Se tiver que transmitir um bit a mais, eita, Prula, ele vai ter que transmitir um bit com bloco quase todo vazio. Pensa. Cara, na computação nós trabalhamos muito em bloco, tá? Por exemplo, sistemas operacionais, operações de read e write em bloco, tá? Reds, transmissão de rajada, ou seja, de bloco, tá? Criptografia de bloco. Por quê? São operações que consomem, que são muito importantes, tá? Então vamos trabalhar com blocos. Então vamos imaginar que aqui eu tenho um cálculo de uma rajada, aqui eu tenho uma rajada, né? Para, aí ele calcula aqui o número de bits de detecção de erro, tá? E aí ele passa pelo capo, não tem o ratinho, tem a história do ar condicionado, e durante a história do ar condicionado, quando estava passando esses bits que estão indecrito aqui, o que que aconteceu? O ar condicionado ligou, motor, pão, é? E aí teve aquela rajada de campo magnético no fio que interferiu na comunicação, tá? E aí eu naturalmente, se você comparar esse trecho aqui, tem erro, aqui era para ser um zero, aqui ficou um, aqui era para ser um zero, aqui é um é um, tá? Aqui um, um, zero, e um. Há um erro aqui, tá? Então olha só, vamos lá. Aqui nessa coluna aqui eu tenho um, dois, três, quatro, é paridade, par. Então, legal. Aí ele colocou o zero aqui. Um, dois, três, quatro, cinco, um. Um, dois, três, quatro, cinco, seis, é zero. Um, dois, três, quatro, cinco, seis, é um, viram? Sempre que é ímpar, é um, né? Sempre que é zero, eu digo sempre que é par, é zero, né? Se você olhar aqui, olha só, tá? Um, dois, três, quatro, legal, zero. Um, dois, três, quatro, cinco, seis, é zero. E tenho um aqui, ó. Deu merda aqui. Deu merda nessa coluna, tá? Bom, códigos de detecção de erro tem um problema. Qual problema? Quando o erro narrajada altera várias dessas linhas e acaba que o produto do erro vai gerar um código de validação igual ao código de validação quando saiu. Isso pode acontecer, tá? E isso é um cálculo de dois elevado a n possibilidades. Desculpa, dois elevado a menos n, tá? Possibilidades, tá? Então, aonde n é o número naturalmente de bits de transmissão, tá? Bom, Chexan, alguns códigos de paridade são considerados também, tá? São considerados também como Chexan. Mas, Chexan, ele é muito mais amplo, tá? Imagine que o Chexan que é utilizado na internet, ele opera com palavras, tá? Ele opera com palavras. E aonde eu tenho a validação da palavra, tá? Ah, eu sei que você vai me falar, mas é natural que a palavra é feita de bits. Sim, a palavra é formada de bits. Mas a palavra é uma porção de bits. Então, naturalmente eu faço uma validação que pode ser algo bem parecido com isso, não por bits, mas por palavras, tá? E aí eu tenho a minha detecção de erro. Só pra você ter uma noção, eu poderia dizer pra vocês que os dois dígitos de verificação do seu CPF, ele é um tipo de Chexan. É um tipo de Chexan. Chexan vai um pouco mais além, apenas aqui, tá? A explicação do termo. Outra coisa interessante também que você tem que levar em consideração, tá? É que esses códigos, quando localizam uma falha, eles não têm a capacidade de tratar. Por exemplo, vamos lá. Pra você transportar um megabit, um, desculpe, um megabyte, um megabyte, você vai precisar no código de RAM de 10 mil bits. Então, vamos lá. Para um megabyte, você vai precisar do código de RAM de 10 mil bits, aproximadamente, tá? E nos códigos de paridade e Chexan, você vai precisar de 2 mil bits. Essa é a diferença, tá? 2 mil bits. Código de RAM, então, já vimos nas últimas aulas, código de RAM é um código de correção de erro. Chexan e paridade é de detecção de erro. Só dá pra você ter uma ideia de ordem de grandeza pro número de bits transportado, que eu tô falando em megabyte, um megabyte, 10 mil bits, código de RAM, 2 mil bits, tá? De paridade. Eu tô aproximando, tá, galera? Vai bater bem ali muito próximo, tá? Aqui nós temos o quê? Por exemplo, um Chexan clássico que poderia ser chamado também de paridade, tá? Aonde eu tenho duas palavras, eu tenho um código de validação de palavra, tá? Isso aqui é considerado palavra 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, internet. Ah, porra, tá aqui, caramba. É animal mesmo, né? Internet. Isso aqui é internet, tá? Aqui eu tenho a palavra, né? A palavra na internet são 16 bits e aí eu tenho uma validação embaixo ali, tá? Ah, código polinomial. Agora fudeu, hein? Você deve tá assim, caraca, mano. Eu me fudi no segundo grau todinho, com equação de primeiro e segundo graus. Esse cara agora vem me fuder aqui também, tá? Exatamente, tá? Não sei se você sabe mais, se você adentrar em sistemas operacionais e se você adentrar em redes de computadores, você vai ver a importância do, na verdade você vai ver a resposta que você se fez durante todo o início do seu curso de ciência da computação, barra ds. Para que que eu vou fazer a sua conta do cálculo. É isso? Você vai usar se você levar a sério e a fundo em redes de computadores somos operacionais, tá? Cálculo puro, tá? Trabalhamos com cálculo puro. Então nós estamos aqui também em código polinomial, também baseado no tratamento, né? De bits e naturalmente representação de co-acientes, né? Então nós fazemos um cálculo polinomial e aí nós calculamos os bits que estão errados na equação matemática. Ou seja, podemos representar os dados por equação matemática, que é a mesma ideia que se utiliza onde? Transmissão de onda, tá? Bom, próximo vídeo, vou falar sobre o protocolo básico de camada de enlace. Vamos ver um disparo de mensagem sequencial e um código C, tá? É, tem um livro muito bacana que eu vou colocar no final desse capítulo, tá ok? Sobre tcp barpê e aí vocês vão naturalmente entender mais sobre esses códigos em C, tá ok? Até mais, até a nossa próxima aula, até mais, tchau!