Transcrição do áudio
Chegamos no terceiro capítulo do livro de redes de computadores do Turnbull, no meu ponto de vista o melhor livro que existe, tanto que é utilizado pelas grandes universidades tanto na Europa, nos Estados Unidos, não importa o país. É um livro difícil de ler, não é um livro que você lê no final de semana, é um livro que você consume aos poucos em doses homeopáticas, se não você não entende. Atualmente, também é acompanhar esse canal aqui que você vai entender cada vez mais do assunto. Então, o nosso curso é de redes de computadores, ele é todo baseado no Turnbull, bem como também no livro de arquitetura de redes de computadores. De Luiz Paulo Maia, uma segunda fonte, sempre é bom ter um curso. Olá, eu só não importa, não importa, o que importa é que você vai ficar fera nisso aqui. No meu ponto de vista, camada de enlace, cara, é a camada mais top da pilha do modelo Ozy. No meu ponto de vista, a pilha de camadas do modelo Ozy. Eu gosto pra caramba dessa camada, eu acho que ela resolve uns problemas assim, o-dasticos. Exemplo, você quer ver, a camada inferior, no caso anterior, é a camada física. A camada física, nessa camada física, eu utilizo estímulos no meio físico pra enviar algo e eu acabo entendendo os estímulos do meio físico pra receber algo. Então, tem o meio físico na jogada, que pode ser naturalmente um cabo metálico, uma fibrera, uma onda, e tudo isso sofre interferência. Então, pense, a camada física transmite um fluxo de bits. É a função, na verdade, ao serviço oferecido pela camada física para a camada de enlace, é um fluxo contínuo de bits. Certo? A unidade de medida da camada física é o bit, é a mesma unidade mínima da computação. Veja, eu tenho um bit, eu mando. E aí, será que eu mandei um e chegou um do outro lado? Será que um não virou serve, depois virou um? Como assim virou, por exemplo, um fio mal colocado de rede? Hoje a cachorra mastigou o meu cabo de rede. Ora funcionava bem, agora funcionava mal, mas estava indo. Aí eu fui pegar a gata para passar remédio, a gata se pegou no fio de rede, o cheu gato, e aí o fio terminou de se romper. Repare que eu não tinha visto que o cachorra tinha mastigado os fios de rede. Então, o meio físico é sujeito a interferências magnéticas, elétricas, RF, eu vou fazer um vídeo sobre isso, tá? Vou ter que reposicionar, vou notificar vocês. E também, rodores, tubarões, cachorros, gato também agora. Mas você está entendendo? Então, pode ser que aquele 1 virou 0 e depois virou 1 de novo, não sei como, tá? A camada física não tem como tratar isso. Imagine você mandando um DVD da Shakira, de 4.7 GB. Imagine que você vai controlar cada 1 bit, então digamos que o controle por 1 bit precisaria de um mínimo 1 bit. Nós estaremos mandando 9.4 GB, é muita coisa, 9.4 GB é muita coisa, um DVD da Shakira, eu sei que Shakira é foda. Mas o que acontece? Pera a atenção, a camada física, porque está trabalhando com a unidade mínima da computação, e ser um meio muito diverso, olha o caso que eu expliquei, ele não conseguiu tratar os erros que acontecem. Já a camada física terá, então, 1 de suas funções, tratar erros. Olha que bacana, tá? Então, por isso que eu acho que essa camada é foda, não vou falar disso mais para frente. Então, vamos lá. A camada de enlace, então, no modelo OZ, ela está situada ali acima da camada física e abaixo da camada de rede. Então, preste atenção, camada de enlace, consume serviço da camada física e oferece serviço para a camada de rede, sempre assim, não importa se os dados estão indo ou vindo. Preste atenção, galera acha que a camada de enlace entra em contato com a camada de rede quando chega dados. Não, a camada de rede desconselta a camada de enlace para saber se tem dados, para ela poder processar. Entenderam? Como chegada. Então, não importa se está subindo os dados ou descendo dessa pilha, a camada de enlace sempre consome da camada física, o serviço da camada física e a camada de enlace sempre proveu serviço para a camada de rede, sempre. A subida ou descenda, não importa. Ta? Coria de camada, capítulo de introdução do livro do Tano, vou explicar muito bem isso. Ta? Funções. Uma coisa é função, outra coisa é serviço. Eu enxergo funções como algo que ela faz dentro dela, serviço, o que ela oferece para a camada superior e que é visível pela camada superior. Ou seja, camada superior não consegue manipular as funções, mas consegue manipular os serviços. Isso é inclusive caindo naquele esquema, né? Eu poderia ali fazer uma alusão ali a requisitos funcionais e não funcionais. Ok? Pode usar, pode usar essa ideia também, tá? Caíria aqui. Muito bem. Então, por exemplo, fornecer um intervalo de serviço bem definido a camada de rede seria uma função, conforme eu falei, lidar com erros de transmissão, controlar fluxo de dados, seria funções dessa camada de enlace. Então, três funções aqui, tá? Olha só, conforme eu falei, o controle de fluxo, ah não, expliquei a questão de erros, né? A questão de erros eu já expliquei. A questão de fluxo imagina o seguinte, estou tendo um dispositivo muito rápido, muito rápido, produzindo dados e aí ele acaba sobrecarregando um outro dispositivo. Ou eu tenho um dispositivo muito rápido que não está mandando, mas que está recebendo. Ele pode, como eu posso dizer, errar na leitura dos registradores. Bom, no livro de sistemas operacionais modernos do Taneble, lá atrás, no outro livro, tá, que você tem que estudar, porra, tá? E aí, você vai ver lá um tal de problema do produtore e do consumidor. Eu até cheguei a gravar um vídeo sobre isso. Eu vou gravar um vídeo melhor, tá? E o problema do produtore e do consumidor funciona assim. Olha só. E eu vou produzir mais do que você é capaz de consumir, eu vou, naturalmente, sobrecarregar seus registradores. E aí, vai faltar espaço. Isso é um problema. Agora, se você consome mais dados do que eu sou capaz de produzir, pode ocorrer que o seu registrador, você faça uma leitura a mais e o ponteiro de leitura ultrapasse o ponteiro de escrita nas listas circulares, tá? Para circular que você viu estrutura de dados. Pera aí. Você tá querendo me dizer que eu preciso saber tudo de samos operacionais e de programação e de estrutura de dados para entender redes de computadores? Sim, senhor. E muito bem, tá? E eu preciso disso aqui para ser um hacker, então, quer dizer que eu preciso ter muito mais conhecimento caso eu queira ser um... com certeza. Entenderam? Você tem que manjar estrutura de dados, tá? Nesses dispositivos de entrada e saída tem registradores em esquema de lista circular. Por que lista circular como uma estrutura de dados para recebimento e saída de dados? Porque uma lista circular me proveu uma memória infinita numa memória finita, tá? Seu professor não explicou isso, estrutura de dados? É complicado, né? Também não adianta você dar aula de estrutura de dados se você não conhece para que ela é utilizada. Entenderam, jogada? Tem que saber para que ela é utilizada. Cada estrutura de dados... estrutura de dados... Só que no seu português, né? Cada estrutura de dados tem um objetivo na computação. Então eu sei o meu problema, conheço o objetivo e escolho a melhor estrutura de dados. Ok? Vou demonstrar isso em um vídeo futuro, não tão futuro assim, ok? E aí vocês mantêm sempre alinhados aí, curta, compartilhe esse canal, playlist de redes, não é isso? Que você vai entender, tá? Que você vai receber esse vídeo, onde eu vou estar explicando isso, tá? E aí eu vou voltar no problema do leitor, do produtor, do consumidor, tá? Lá do Livro de Sembros Operacionais. E aí contempla a explicação disso aqui, de regulação de fluxo, tá? Seguinte, e se você olhar a camada de baixo, a camada física, ela trabalha com unidade de medida bit. Ah, eu coloquei lá do lado, lá. Bit. E aqui, ó. A camada de enlace trabalha com uma unidade de medida chamada quadro. Quadro. Nesse curso preste atenção. Neste curso, vou assumir que estamos trabalhando com computadores em rede Ethernet. Porque isso, vou simplificar toda minha explicação, tá? Então aqui não entramos aqui em tantos detalhes de diferentes redes que vai confundir sua cabeça. Tudo bem? Então, a partir de agora, tem a ciência que estamos trabalhando só com Ethernet. Então, o que que acontece? Olha só, onde isso já vai impactar. Eu tenho bits na camada física. Na camada de enlace, eu tenho quadros. Na Ethernet, o quadro mínimo é de 64 bytes. Então, minho... Tem alguma coisa. Depois eu dou uma olhada aí nesse limite. Ou seja, o quadro tem o tamanho variado. O quadro tem o tamanho variado na camada de enlace. O quadro tem a seguinte estrutura. Um header. Ah. E um trailer. Pô, cara. Mano, eu não pego nenhum livro do terrible bem traduzido, cara. Eu não... Vou explicar. Se um dia você for contratado para traduzir um livro, você não pode traduzir os nomes. Tá? O nome das coisas. Tipo, cabeçário do jamais deveria ser cabeçário. É header. Tá? Ali no final não deveria ser final. Aqui se chama trailer. Por que trailer? Ou checksum? Pode usar qualquer uma dessas duas palavras. Trailer ou checksum. O trailer e o checksum, quando alguém falar isso para você, significa que é um fechamento que tem algo ali que é utilizado para validar o resto. Entenderam? O resto que eu digo o que veio anteriormente. Preste atenção. Encontrou trailer em alguma coisa. Encontrou checksum em alguma coisa. Simples no final. Tá lá. O que? Ele valida o que é antes dele. Vamos por exemplo, o trailer que deveria estar aqui, ele valida a cada útil que é o Playload Future e o Header. Tá? Trampelou? Eu vou começar a trabalhar com livros inglês. Cara, sério mesmo. Eu não sou bom em inglês. Vocês são melhores que eu, mas porra, a cagada dessa aqui você pode se ferrar na prova da Cisco. Tá? Na prova da Cisco, mesmo a prova vindo em português, ela não vem como final, ela vem como trailer. Ela vem como checksum. Tá? Entenderam? Então, Header, trailer e aqui o Playload Future. Tá? Aqui é o package, o pacote. O pacote é da camada de rede, a camada Traegs do modelo OZ. Então o pacote tem que caber aqui dentro da carga útil. Então daqui até o final aqui, o final que eu digo não é o final o trailer. O último bit aqui, até o último bit do primeiro bit, o último bit, ele tem um tamanho variado, naturalmente, isso tudo aí, para que caiba esse pacote aqui, mas naturalmente você tem que entender que eu tenho um limite de 1.000 e tantos bytes ali. Tá? Então é assim que funciona. Ele coloca aqui, vai passar, vai embora. A chegar do outro lado, ele vai ler o Header, vai lidar com checksum ou trailer, depende do livro, se deu merda, não deu merda, tá ok? Inclusive o trailer, ele é utilizado para corrigir ou apenas detectar o erro, exemplo. Se esse trailer for pequenininho, ele só valida se teve erro anteriormente aqui, certo? Valeu a jogada. Se esse trailer é grande, significa que eu tenho dado o suficiente para corrigir alguma cagada anterior aqui. Pegou a jogada? Tá. Depois que eu faço tudo isso, eu leio o Header para saber o que fazer, que eu pego o trailer valido a que se teve a carga útil, tem erro ou não, e aí eu subo isso, naturalmente, eu disponibilizo isso para a camada de rei de pegar. Quase que eu errei aqui na minha explicação, hein? Quase que eu errei. Você viu? Como é que você está agora chegando a dar uma ideia de que a camada 2 vai até a camada 3? Não. A camada 2 disponibiliza o pacote na memória e a camada 3 pega o pacote da memória, a camada 3 que vai lá pegar. Quase que eu errei. É interessante, eu não vou nem cortar para você ver como que até um cara que tem mais experiência, trabalha com isso aqui há anos, ele, na explicação, pode simbola errar. A camada de enlace fornece 3 serviços para a camada de rede. A camada de enlace oferece 3 serviços para a camada de rede. A camada física oferece um único serviço. Então a camada física oferece um único serviço, que é chamado fluxo continuo de beats, e a camada de enlace fornece para a camada de rede 3 serviços, são esses. Serviço não orientado à conexão, sem confirmação, acabei colorindo que não deveria. Eu deveria ter colorido só isso aqui. Ah, dá para trocar aqui. Eu vou explicar aqui essa cagada. Muitos livros são traduzidos de forma errada ao pé da letra. Há livros do Taneble, que está escrito inclusive, tradução antiga, até outros livros, tradução mais antiga, tipo 2010, 2012. Serviço sem conexão. Não. O correto é não orientado à conexão. Serviço não orientado à conexão, traduzido ao pé da letra, os livros no passado. Os livros mais modernos não são traduzidos ao pé da letra. Não orientado à conexão, sem confirmação. Não orientado à conexão, com confirmação. Orientado à conexão. Tá bom, corrigido. Depois eu fico na aula assim, ah, deveria corrigir, deveria corrigir e nunca corrigir o material. Serviço orientado à conexão. E naturalmente, confirmação obrigatória. São três serviços. O que é um serviço ser orientado à conexão e um serviço não orientado à conexão? Vamos lá. Um serviço orientado à conexão eu concronizo com a outra parte. Eu passo meus parâmetros para a outra parte. A outra parte, passo os parâmetros dela. Então nós nos acertamos nas velocidades em code, escambal, a quatro. Então começamos a transmitir. Essa fase inicial de tudo isso orientado à conexão ali, né? Chamamos de handshake, chamamos de handshake, aperto de mão, tá? Já o serviço não orientado à conexão não tem nada disso. Um serviço não orientado à conexão simplesmente eu abro e começo a mandar. Eu abro link e mando. Não tem um acordo, não tem definição de taxa de transmissão, não tem bosta nenhuma. Não há o handshake, apenas o envio. E isso é um serviço não orientado à conexão, tá? Então, cara, isso é muito importante, tá? Vou falar uma coisa para vocês agora. Que é confirmação e não confirmação. Então imagine que com o passar do tempo, eu estou mandando dados, tá? Dao host 1 para o host 2. Então estou mandando o pacote A. Eu fiz esse slide em 2000, essa imagem eu fiz ela em 2012, tá gente? Eu fiz ela em 2012. Estou mandando aqui, essa imagem é minha. Estou mandando o pacote A para... O pacote A está indo, o pacote B está indo logo atrás. Ok? Por que eu estou falando isso? Aquela estrela vermelha parece a estrela do PT, né, cara? Eu estou dizendo que eu fiz esse slide muito antes, cara. Muito antes de tudo, tá, galera? A boca aconteceu ali, aquela estrela vermelha ali. Aquela estrela vermelha quer dizer que o bem enquanto estava indo, ele se perdeu completamente. Tem dois tipos de erro, um enlace que temos que trabalhar, tá? Primeiro erro. O que era o BT0 chegou lá como um. Isso é um erro. Em outro erro. Os 1000 e tantos bytes nunca chegaram. Ou seja, nunca chegou um BT desses 1000 e tantos bytes como andei. Pode acontecer. Esse erro é mais grave. Por que? O Rost2 não vai saber nunca da existência do B. O Rost2 recebe o A, o C, o D, mas nunca recebeu o B. Para nós é claro. Pô, eu numero essa merda, mas não temos como numerar isso. Não dá para numerar. Então isso é um problema, tá? São grandes problemas quando a perda é total. Total, tá? Então sem feedback, simplesmente vai mandando e não há um feedback de retorno, né? Dizendo, chegou, nos chegou, né? Vocês concordam comigo que o Rost1 sabe da existência do pacote B? Mas o Rost2 não. Porque o pacote B nunca chegou lá. Ele sempre é que ele vai e é destruído completamente. Então o Rost1 anda, o A, o A está quase chegando, o B está indo. E repare que em azul está vindo um feedback. Está vindo um feedback. E naturalmente o B é perdido completamente. Como que se resolve isso? O Rost2 não sabe da existência do B, mas o Rost1 sabe. Ou seja, se o Rost1 não recebe uma confirmação que foi recebida o pacote B pelo Rost2, então o Rost1 envia novamente o pacote B. Então o pacote ele é enviado caso não receba a confirmação em um tempo que vamos definir. Quem vai definir isso? Com certeza nós somos dois programadores aqui de alto nível. É quem fez a tecnologia, quem projetou isso e eu vou explicar para vocês que parte disso está chubada, fixa na placa de rede. Mais para frente. Caramba, mas como é que ele sabe disso? Cara, ele mantém um relógio para a chegada de todas as confirmações. Então para cada quadro ele cria um relógio. Se estoura o tempo do relógio e não tem confirmação, ele reenvia. Olha a jogada. Mas isso é um problema que eu vou explicar para vocês mais para frente. Então veja, eu expliquei a questão do não orientado a conexão, não tem rende shake, simplesmente eu abro e mando e aí eu posso ter confirmação ou não. E o orientado a conexão obrigatoriamente tem que ter confirmação. O orientado a conexão é o rende shake. Porque o orientado a conexão é obrigatório a confirmação. Por motivo muito simples. No caso da orientação a conexão, o feedback que está vindo em azul traz informação de como está o outro lado. O rende shake é feito no começo do meu envio. Se ele é feito no começo do meu envio, as minhas condições técnicas eram, por exemplo, as condições técnicas A. Veja, por favor, falei letra de novo, tem letra já. Um em romano. Um em romano. As condições estão. E aqui que aconteceu? Daqui, 30 segundos, as condições técnicas já estão completamente diferentes. Dois romano. Um romano é diferente de dois romano ali. Tá ok? Os as condições técnicas quer dizer o seguinte, que as coisas mudam com o passado tempo. O feedback que está vindo no azulzinho ali, vai me trazer que chegou do outro lado, algo, que é o A, o B, o C, o D. E também vai me trazer como está o outro lado, para que eu possa, no serviço orientado, a conexão. Tá? Erre, como assim, é, re... Recolocar ali os parâmetros de conexão para que não aconteça nenhum problema. Vamos colocar assim. Tá? Então, no caso da orientação, a conexão, tá? Conforme eu falei, existe uma solicitação de conexão, aonde parâmetros do host 1 são enviados para o host 2. Parâmetros do host 2 são enviados para o host 1, para, então, somente haver a troca de dados de um lado para o outro. Aqui são registradores buffers que vocês viram em A, O, C. Recomendo que estude A ou C. Recomendo que estude sistemas operacionais, tá? Para entender isso aqui, aqui tem estrutura de dados também envolvidas aqui, tá? Conforme já falei, lista circular com dois ponteiros, um ponteiro de leitura e um ponteiro de escrita, holdbola. E depois, a finalização, sempre por parte do representante. Host 1 é que pede a finalização para o host 2, para que limpe os registradores, libere os registradores, que libere o recurso. Isso aqui, é ser orientado à conexão. Como que é um não orientado à conexão? Faltou essa imagem, tá meu garotinho? É só essa parte azul. É só essa parte azul aqui. Fomos mandados e voltadas. Banda dados e voltadas, tá? Bom, parece que é inferior, né? Mas conforme eu falei hoje sobre estrutura de dados, que cada estrutura de dados tem um objetivo, tem um problema que no mundo que resolve-se, com aquela determinada estrutura de dados, nós temos diferentes tipos de conexão e há problemas que resolvemos no mundo com uma e problemas que nós resolvemos com outra, tá? Legal. Vamos aprofundar nisso no curso, tá? Então, você, esteja ali com likezinho em dia ali, esteja ali com... Se você tiver like, galera, eu vou para o vídeo, hein? Vou para esses cursos aqui de redes, hein? Mete like aí. O que que acontece? Aí eu tenho ali, ó, a visão... Isso é interessante. Isso aqui é muito interessante. Eu acho que o Tannibal não explorou muito bem isso aqui, tá? Minha visão é que o Tannibal não explorou muito bem isso aqui. E o capítulo pequeno, capítulo de camada de inlass, pequeno perto do camada física, poderia ter explorado mais. O que é isso aqui? Olha, a camada... A camada 2 do modelo OSI, ela é subdividida em subcamada LLC e subcamada MAC. Provavelmente você já ouvir um falar no endereço chamado MAC-EDURIS. E nós vamos falar mais para frente. Pode ficar tranquilo, cara. Nós vamos aprofundar em cada detalhe. O que que acontece? Na visão da camada 2 e 3, tá? A conexão vai ocorrer virtualmente pela LLC. Ah? Então a subcamada 2 não enxerga a complexidade do mundo físico. Quando ela está na subcamada LLC. Cara, isso aqui é uma discussão, tá? Isso aqui é uma discussão. Se deveria ou não ter essa subdivisão. Porque a subcamada MAC, da camada de inlass, sabe da complexidade física e do acesso físico. Apunto que a fronteira, presta atenção, a fronteira entre o virtual, ou seja, o lógico, é essa vermelha aqui. Essa é a fronteira entre o mundo real e o mundo lógico. Então, essa é a fronteira. O que é o seguinte? A camada 1, ela é física, bruta na placa de rede. E a subcamada MAC, ela é física e bruta na placa de rede. Você quer ver uma comprovação disso? Você tem o MAC Address. Você vai lá, acessa o MAC Address. Se vocês não sabem do que eu estou falando, eu tenho um livro de Linux, capítulo de rede. Eu mostro isso. Como pegar, como alterar algum MAC Address no Linux, como operar a placa de rede, tá? E que graça, é só clicar e ler, cara. Não te peço nada, não te peço nem meio. E lá, cara, você desliga a máquina e diga a máquina, volta o MAC Address que tinha. E aí você troca o MAC Address, você pode trocar, tá? É na memória. Vou explicar o porquê, pera aí. Você troca lá na memória o MAC Address e aí você desliga a máquina e quando volta, é o MAC Address anterior. Porque ele é físico, ele está chumbado na placa física. Você troca só a placa de rede, você troca o MAC Address. Veja, então a subcamada MAC, o MAC Address, está chumbado fisicamente. Você consegue comprovar isso com esse teste, tá? Já a subcamada LLC, ela é totalmente virtual. Ela é totalmente virtual, tá? Então vamos trabalhar com rede Ethernet. Então para rede Ethernet foi 802.2. Já é virtual. Não importa que você tenha, se é uma fibra, se é um capo de rede, se é um wireless, tá? Vai acontecer isso aqui, beleza? Olha que interessante. A subcamada MAC, então tem todo ali o conhecimento de B, sabe? O caminho real. A LLC, não, ela é virtual, tá? A hora, né? Porquê que você pode trocar o MAC Address e não troca na placa de rede? Na placa de rede, o MAC Address, eu vou lhes explicar ainda, ele é dado para o fabricante. O fabricante tem uma parte do MAC Address que é chamada OUI, ou seja, toda placa realtech tem o mesmo OUI. A não ser que a realtech compre várias faixas, né? Mas vamos imaginar que a realtech é uma fábrica de placa e não é tão grande. Então ela comprou apenas o OUI, então ela incrementa o resto do MAC Address, ou seja, 24 bits, é fixo para a empresa. 48 bits é um alto incremento por placa de rede da empresa, tá? Vamos lá. Nós não falamos bastante de MAC Address ainda, tá, galera? Calma aí. Então quer dizer o seguinte, se você olhar, ler o livro do TANIBOL de sistemas operacionais, capítulo de dispositivos de entrada e saída, você vai ver o seguinte, dispositivos de entrada e saída podem ser mapeados na memória. Então, mente, olha que louco. Placa de rede é uma dela, gente. Placa de rede é uma dela. Então ela é mapeada os seus parâmetros na memória, tá? E aí você pode alterar ali. Quando você renuncia a sua máquina, a memória for pro saco, assim. E aí, de novo, a tua placa de rede é mapeada na memória com o MAC Address da placa de rede, que tá chumbado numa memóriazinha somente leitura. Por isso que você não altera ela. Então nós temos ali a subcamada LLC, que é da hora. Outra coisa, o TANIBOL não explorou muito bem essa camada. Para a camada MAC, o TANIBOL tem um capítulo inteiro gigantesco, top, desmelhores. Mas você não tem uma subcamada LLC, tá? Bom, a camada de protocolo de comunicação de dados é a subcamada superior da camada de enlace. A subcamada LLC atua como uma interface entre a camada MAC e a camada de rede. Então ela é a ponte entre a 3 e a subcamada MAC. Ou seja, eu vou mostrar para vocês mais para frente. Aqui pode ter muitos protocolos diferentes. Placa de rede diferente. O LLC vai garantir um protocolo único para a camada 3. Ou seja, aqui pode ter um wireless, aqui pode ter uma placa de fibra, aqui pode ter um Bluetooth, aqui pode ter um cabo metálico. São protocolos diferentes, tá? Que vai entregar, vai passar pela LLC e vai padronizar um único protocolo, um tipo de protocolo e entregar para a camada 3 um protocolo certinho, unificado. Vamos colocar assim. É muito mais complexo que isso, eu estou simplificando, porque não é o momento que eu ainda vou mostrar isso para vocês. Mas aí você começa a entender a visão do porquê ela existe. Tem um autor da área da pedagogia, psicologia e cognição humana, sei lá, como é que é. É o seguinte, ele diz que nós temos que colocar esténios em vocês, primeiro explicar as coisas mais gerais e depois ir especificando, deixando mais específico. Eu estou usando essa tática com vocês. A subcamada LLC fornece mecanismos de multiplexação que tornam possível você trabalhar com IP, IPX, DCnet, na camada superior, aqui e qualquer outro protocolo na camada inferior. Ele é tipo uma linguagem intermediária. Acredito que eu sei, já começou a informar alguma coisa da minha vida. Ele é uma linguagem intermediária, vou colocar o seguinte. E aí, naturalmente, eu posso ter muitos protocolos diferentes em cima, protocolos diferentes embaixo e na LLC eu consigo manter um padrão, consigo uniformizar essas coisas. E ele também concede o controle de fluxo caso e correção de erros caso o protocolo, o descolhido, não faça. Os protocolos e os escolhidos não façam. Inclusive, é possível que eu deixe de fazer a correção de erros na camada 2. Lembrando, correção de erro e controle de fluxo não é obrigatório na camada 2. Pode ser que eu faça isso em camadas superiores. Inclusive, isso é uma questão da CISCO. Ela não coloca bem assim. Eu posso deixar de fazer uma funcionalidade em uma camada inferior para que seja feita em uma camada superior? Sim. Por exemplo, eu deixo de fazer a camada 2 e faço a camada 4. Bom, vamos falar disso na camada 4. A divisão do fluxo de bits em quadros é mais difícil do que parece. Aqui você enxerga o quadro assim, bonitinho. Caramba. Assim, bonitinho. Esse quadro é um amontoado de bits, cara. É um amontoado de bits. Você tem que saber onde começa o quadro e onde termina o quadro. Aonde começa o quadro? Não sei. E onde termina o quadro? Também não sei. Para isso, vamos usar quatro possibilidades aqui. Bom, vamos lá. Imagina o seguinte. O primeiro bit, o primeiro byte, ele diz quantos bytes eu tenho depois. Eu leio 5 e 1, 2, 3, 4 e 5. Aqui termina. 4. Então, isso aqui é um 4. Aí eu leio mais um byte. E aí eu passo 5 de novo. 1, 2, 3, 4 e 5. Aqui é o segundo quadro. Aí eu leio 8. Opa. Então, 1, 2, 3, 4, 5, 7 e 8. Aqui é o terceiro quadro. Terceiro quadro. Legal, assim parece bacana, né? E se, em vez de ler 5, eu li 7. O último interferência elétrica, um emi, um RFI, não importa. No meu físico. Cagou a conversão. Eu saio. Repare que desronda tudo. Tudo está desandando. Contagem de bytes tem esse problema. Tá? Tem esse problema. Então, é a primeira forma de tentar enquadrar os bits em quadro. Entenderam? Enquadrar um fluxo de bits em quadro. Mas não dá pra vir nenhum flag, mas um flag em bit? Lembre-se que a camada física está trabalhando com bit. Olha o problema. Então, como é que é lá na camada física? Um fluxo de bits. Você não vai gastar 60 bits pra endereção bit. Tá entendendo? Você multiplicou seu DVD da Shakira por 61. Então, 4.7 GB multiplica por 61. Você tem uma noção. Não dá algum tempo lógico. Você gastar bits pra endereçar outro bit. Entenderam? Olha o problema, cara. Então, os caras pensaram o seguinte. E se eu andasse tipo assim, aspa dupla, e aí eu mando todo o testão, e eu fecho com aspa dupla. Ah, novamente você está usando Java como exemplo. Estringue aspa duplo um texto, um aspa duplo um an. Então, meu filho, olha só. E se aspa dupla aparece aqui dentro do texto da carga útil? Aí ferrou. Se aparece um flag dentro aqui, eu coloco o escape e o flag. Num caso de programação Java, o escape é a barra, não é isso? Tá, mas isso apareceu o escape também. Escap, escape. E se apareceu escape, flag aqui dentro? Então eu coloco escape, escape, escape, flag. Pô, cara. E cada vez que isso acontece, eu adiciono um byte. Porque o flag é um byte e o escape é um byte. Então, cada vez que isso acontece, é um byte. Então, quer dizer que são 8 bits adicionados. Bom, está melhor que isso aqui. Está melhor que isso aqui. Está mais assertivo que isso aqui. Está mais assertivo. Bom, acontece que adicionar 8 bits é um problema. O que começa a ficar grande demais. Os caras pensaram. E se eu pego um flag e uma sequência de 8 bits? E se ele acontece aqui dentro, eu altero um byte apenas, não os 8. Adicionando escape. Tipo assim, eu não vou adicionar um escape, eu vou adicionar um byte para quebrar a sequência. Que apareceria aqui. E aí eu garantiria que isso apareceria aquela sequência de abertura e fechamento. No abertura e fechamento. Porque se ela acontecer dentro da massa de dados, eu injeto zeros. Eu injeto zeros para quebrar. E aí a cada ocorrência, em vez de eu adicionar um byte, que são 8 bits, eu adiciono apenas um bit. Reduz o quê? Reduz o enxamento. Nem sei se isso é a palavra. Reduz isso, cara. Enflar os dados, enchar os dados. Reduz para caramba. São 7 bits economizados. Para a devido da Shakira, cara. Pô, devido da Shakira é foda, cara. Então galera, esses aqui são os problemas da camada de emlássio de como que ela resolve. Nós vamos entrar mais a fundo no assunto com tolhe de erros no próximo vídeo. Aonde eu vou falar sobre corrigir um erro. Vamos detectar um erro. Ou não fazer bosta nenhuma. Então, até o nosso próximo vídeo. Lembre-se sempre de curtir, compartilhe esse vídeo, assista o vídeo pela playlist. Com a sequência exata. Até mais. Tchau.