Diagrama da pilha de rede completa do Linux (2024)
(zenodo.org)- Este diagrama mostra visualmente todas as camadas e elementos da pilha de rede do Linux
- O diagrama inclui diversas tecnologias de virtualização, como virtualização, container Linux, emulação e paravirtualização
- Ele cobre toda a estrutura de camadas desde o socket de rede até a pilha de rede (superior: TCP, UDP / inferior: GRO, RPS, RFS, GSO)
# Principais componentes
- Pilha de rede
- Camada superior da pilha de rede (TCP, UDP)
- Camada inferior da pilha de rede (GRO, RPS, RFS, GSO)
- Composição do agendador de rede
- NetFilter e controle de tráfego
- Inclui diversas interfaces de rede, como interface Bridge, Bond e Tap
- Driver de dispositivo
- Fila (Queue)
- NAPI
- Manipulador de IRQ
- Funções de rede aceleradas pela NIC
- Offload de checksum, VLAN, VxLAN, GRE, TSO, LRO, RSS, entre outros
# Recursos e informações adicionais
- Cada camada fornece dicas de otimização e informações estatísticas
- O fluxo completo até a placa de rede é conectado com bastante detalhamento
- Este diagrama faz parte do material “Operativni sustavi i računalne mreže - Linux u primjeni” e tem alto valor de uso como referência técnica
1 comentários
Comentários do Hacker News
Senti falta de documentos desse nível com frequência
Eu não consegui utilizar o iptables corretamente por vários anos
Comprei livros e tentei vários exemplos em blogs, mas sem entender direito como as coisas funcionavam não conseguia usá-lo adequadamente
Até que encontrei um diagrama (fluxograma) mostrando como os pacotes atravessam o kernel, o que me permitiu ver a ordem exata em que cada cadeia de regras é aplicada e onde os valores do
sysctlsão refletidosGraças a esse diagrama, pude escrever as regras exatamente como queria e escolher a regra certa considerando também o desempenho
Um único diagrama fez parecer que o mundo inteiro passou a funcionar corretamente já na primeira tentativa
Pude vivenciar em primeira mão o quanto um bom diagrama pode ser poderoso
Fico curioso se este é o diagrama que está aqui
Também quero citar o alvo TRACE, que registra exatamente qual regra o pacote atingiu no firewall
Em firewalls de grande porte, é uma ferramenta realmente indispensável
Gostaria de perguntar se você poderia compartilhar esse diagrama
Também quero conhecer de verdade o mundo do iptables
Eu também não conseguia entender o iptables por muito tempo
Então conheci o FreeBSD e as pf tables, e agora me sinto como um engenheiro de rede
Claro que isso exigiu tempo e esforço de estudo, mas o aprendizado foi um encaixe perfeito e pude aprender cada vez mais
Recomendo a qualquer pessoa tentar por conta própria
O documento oficial de firewall do FreeBSD também vale a pena conferir
Recentemente também foi lançado o The Book of PF, 4ª edição
Se alguém tiver interesse, quero mencionar que o autor também fez um fluxo de I/O de disco do Linux
O diagrama de I/O de disco pode ser visto aqui
Todos esses diagramas surgiram do livro do autor "Operativni sustavi i računalne mreže - Linux u primjeni"
A versão original do livro também está disponível
Aplaudo o trabalho excelente e atencioso do autor
Fico curioso se esse livro tem uma versão em inglês
O diagrama de I/O de disco é incrível
Muito obrigado por compartilhar
O mapa do Linux Kernel também é um material excelente, então vale a pena conferir
[Link do Linux Kernel map](https://commons.wikimedia.org/wiki/File:Linux_kernel_map.png)
Gostaria de agradecer ao Hrvoje Horvat por criar um diagrama tão detalhado
Graças a isso, estudar a pilha de rede vai ficar muito mais fácil
O livro do autor "Operativni sustavi i računalne mreže - Linux u primjeni" parece até justificar aprender croata
Parabenizo pela publicação do livro e agradeço novamente por essa contribuição valiosa
Link do livro
O trabalho do autor é surpreendentemente bom
Sinceramente, espero que exista uma tradução em inglês
Eu acho que é um material realmente incrível
Se alguém desenvolver uma ferramenta de visualização que gerasse diagramas assim automaticamente, seria ainda melhor, mas na prática parece ser quase impossível
Ainda assim, ferramentas como Mermaid ou PlantUML conseguem mostrar uma parte desse território, e o PGF/TikZ parece um bom candidato para tentar gerar texto em vez de criar imagem
Também quero mencionar que em ambiente de container é possível usar uma stack TCP/IP própria, de forma parecida com uma VM
Com
slirp4netns, o container fica com networking próprio, enquanto compastausa diretamente a stack TCP/IP do kernelSe tiver curiosidade, o diagrama neste link é bem detalhado
Mesmo sem ter estudado formalmente stack de rede, usar Linux por décadas me fez me acostumar com a maior parte da estrutura de stack, e isso é curioso
Fico curioso se é possível ver o diagrama como arquivo SVG
Como está só no PDF, às vezes fica difícil de ler
Diagrama simplificado
Na prática, não chega a incluir nem o iptables nem o nftables