O Tamanho Mínimo de um Quadro
O principal motivo para determinar o tamanho mínimo de um quadro da camada de enlace de dados é garantir que o emissor saiba que, havendo uma colisão, é o pacote dele que foi perdido. A definição deste tal tamanho mínimo foi uma das coisas que mais me deram dor de cabeça para entender, e por isso mesmo ralei para conseguir uma maneira simples de explicar isso a vocês, de forma que entendam isso muito mais rápido que eu.
Ainda assim, vamos devagar.
Quando há uma colisão, um ruído percorre o cabo para avisar todas as estações que "ó só, deu merda, hein!". Além disso, é importante saber que este ruído de aviso não tem informações sobre quais pacotes foram perdidos, de onde vinham ou para onde iam.
Agora acompanhe os desenhos abaixo e veja o que acontece se o pacote for muito pequeno.
A começa a transmitir um pacote para B.
A já terminou de enviar o pacote, mas ele ainda está percorrendo o cabo e nem chegou em B.
Quando o pacote está prestes a chegar em B, B começa a transmitir. Há uma colisão.
O ruído de colisão percorre o cabo, até chegar em A. A fica sabendo que houve uma colisão, mas não sabe se o seu pacote foi o danificado, já que o ruído não traz nenhuma informação sobre isso.
***
Perguntinha crucial: o que é preciso para que A saiba que um dos pacotes perdidos é o seu? Simples: é preciso que A ainda esteja transmitindo quando este sinal chegar.
Vamos rever os desenhos, mas desta vez com um pacote maior:
A começa a transmitir um pacote para B.
Quando o pacote está prestes a chegar em B, B começa a transmitir. Há uma colisão.
O ruído de colisão percorre o cabo, torrando o pacote de A. Quando o ruído de colisão chega em A, este ainda está transmitindo o pacote e vai saber que imediatamente que seu pacote foi perdido e que terá que recomeçar tudo.
***
Aí vem a grande conclusão: o pacote tem que ser grande o suficiente para que a sua codificação dure o tempo que uma informação leva para ir e voltar entre os dois pontos mais distantes de uma rede.
Não custa repetir: se o pacote for menor que este tamanho mínimo, corre-se o risco de haver uma colisão no ponto mais distante da rede e então o ruído de aviso chegar ao transmissor quando este já tiver terminado de transmitir.
Para calcular o este tamanho, leva-se em consideração a velocidade da transmissão e os comprimentos máximos dos cabos. Nas redes Ethernet chegou-se à conclusão que o tamanho mínimo de um pacote é de 64 bytes.
Se por acaso os dados a serem transmitidos não forem grandes o suficientes para formar um pacote deste tamanho, o próprio protocolo da subcamada de controle de acesso ao meio se encarrega de preencher o pacote.
Artigos do Vovó Viu a Rede:
Saiba mais sobre a camada de enlace de dados
Saiba mais sobre Ethernet
7 comentários:
Mário,
Obrigado pela dica. Mas a norma obriga a todos a enviarem este tamanho mínimo e quem recebe pacote menor deve jogar fora?
Jorge
Olá, Jorge.
Como este é um tamanho mínimo padronizado, todos os protocolos desta camada se encarregam de assegurar que um pacote nunca ultrapasse este limite.
Se, por um acaso, uma máquina transmissora tiver que enviar poucos dados, o próprio protocolo preenche o pacote com dados inúteis.
Caso o receptor receba um pacote cujo tamanho esteja abaixo do padrão, acredito que hajam mecanismos para tentar recuperar os dados, mas acho que todos serão descartados, pois serão, necessariamente, pacotes corrompidos.
Espero ter ajudado, e agradeço por ter deixado um comentário.
Grande abraço.
Parabéns pelo excelente conteúdo de seu blog. Já está gravado e quando necessário vou recomendá-lo. Gostei muito dos artigos.
Abraços,
Marcio Wesley Borges
http://www.marciowb.net
Márcio, obrigado pelos elogios. Grande abraço.
Olá Mário, muito bom esse seu artigo, realmente foi muito bom para visualizar o problema de colisão em redes de computadores, e como é possível a identificação dos quadros afetados, através da determinação do tamanho mínimo deles.
Voce disse que quando envia pacotes menores que o tamanho minimo, o protocolo preenche com bits que serão descartados depois. Mas como ele diferencia os bits do pacote e os bits adicionais que serao descartados ?
Oi, Marcelino,
Provavelmente o sistema insere um separador nos dados para informar ao receptor que "olha só, a partir daqui, só tem encheção de linguiça, beleza?".
E o receptor ignora a partir dali.
Postar um comentário