<aside> 🔀 Este projeto é sobre como fazer uma fofoca de qualidade em privacidade (sem esparrar pra todo o mundo).
</aside>
palavras-chave: redes, roteamento, subdivisão de redes, endereço de IP, máscara de sub-rede, octetos, conversão binário-decimal
Esse projeto é diferente de todos os outros da 42 porque a entrega não envolve uma sequer linha de código: é uma lista de 10 exercícios sobre roteamento e subdivisão de redes (subnetting), com dificuldade progressiva. A sua entrega neste projeto é a sua resolução para cada um dos exercícios, gravada em um arquivo .json
, que deve ser submetido no repositório da Vogsphere. Para a defesa do projeto, três dos 5 exercícios mais difíceis da lista (6 ao 10) serão aleatoriamente escolhidos, e você terá 15 minutos ao todo para resolver os três exercícios.
Por causa disso, existe a maneira express de fazer o projeto — decorar a resolução dos exercícios 6 a 10 e praticar para resolvê-los rápido o suficiente —, e existe a maneira que leva mais tempo de pesquisa e mais bateção de cabeça. Uma não necessariamente é mais válida que a outra, e muito do conteúdo desse Acelera existe principalmente porque o decoreba não funciona >> pra mim <<, então por isso fiz minhas pesquisas para conseguir entender o que é que os exercícios do Netpractice pretendem simular, pesquisas que não necessariamente me dão ferramentas pra resolver os exercícios em si, mas me dão contexto sobre o mundo de redes e sub-redes para que eu me sinta mais confortável olhando para os diagramas abstratos da lista de exercícios.
Eu acho difícil começar a falar sobre esse projeto, porque o assunto “redes de computadores” é absurdamente vasto, com várias camadas que podem ser atacadas a partir de vários ângulos diferentes. Existem cursos de graduação inteiros dedicados a essa disciplina (Engenharia de Redes de Comunicação, por exemplo), que abordam desde o aspecto físico de redes de comunicação (cabos, wireless), aspectos lógicos (protocolos de comunicação), aspectos digitais (transmissão de sinais, componentes eletrônicos para produzir e medir sinais), aspectos elétricos (alimentação e manutenção de datacenters), e tantas coisas mais que me escapam… Da maneira como entendo, esse projeto existe no nosso currículo para nos mostrar que esse mundo das redes de computadores existe… mas não é (e nem faz sentido ser) um mergulho profundo no assunto.
Assim, se você precisa correr, siga o passo a passo comentado de resolução do NetPractice nesse Github (em inglês). Se você tem tempo e interesse para conhecer mais sobre o mundo de redes e roteamento, bem-vinde a este acelera :)
Dá uma olhada no Holy Graph. Existe uma transição muito sutil que acontece do anel 4 pro anel 5, que não está escrita em nenhum lugar, não está documentada, mas que é fundamental perceber para você entender todos os projetos que vai fazer daqui pra frente. Até o presente momento, todos os projetos que você já entregou são projetos que rodam em um único computador, e não se comunicam com outros computadores. Não existe essa necessidade. Pensa em um jogo como o So_long, um programa como o Minishell, ou o Minitalk. O que eles têm em comum? Esses programas são executados uma única vez, dentro de um computador; podem ou não interagir com o usuário (o player andando na tela; os comandos do minishell); o minitalk até mesmo se propõe a botar dois processos diferentes para conversarem entre si, mas sempre dentro de um mesmo computador. O objetivo desses programas é: ser invocado, executar uma tarefa, e se encerrar.
Mas computadores não existem apenas isolados uns dos outros, rodando programas sozinhos, no máximo interagindo com o usuário. Na verdade, se você está lendo isto, é porque o seu computador está conectado a uma rede mundial chamada Internet! Para pra pensar sobre isso um minutinho. Eu não te dei o meu computador pessoal para você ler isso que estou escrevendo. Se pá a gente nem se conhece. Eu também não as publiquei em um livro que você comprou na livraria e está lendo agora, muito menos criei cópias do arquivo que contém os Aceleras em vários CDs ou pen-drives (entregando a idade aqui) e distribuí as cópias por aí na porta da 42. Você está lendo essas palavras aqui e agora porque eu coloquei os textos do Acelera dentro de um computador, que está conectado à internet, e cujo conteúdo pode ser acessado publicamente por qualquer outra pessoa conectada à internet, não importa quem seja ou de onde esteja me lendo.
[…]
Roteirinho: