리눅스 전체 네트워크 스택 다이어그램 (2024)
(zenodo.org)- 이 다이어그램은 리눅스 네트워크 스택의 모든 계층과 요소를 시각적으로 보여줌
 - 다이어그램에는 가상화, 리눅스 컨테이너, 에뮬레이션, 패러버추얼라이제이션 등 다양한 가상화 기술이 포함됨
 - 네트워크 소켓부터 네트워크 스택(상위: TCP, UDP / 하위: GRO, RPS, RFS, GSO) 까지 전체 계층 구조를 담고 있음
 
# 주요 구성 요소
- 
네트워크 스택
- 네트워크 스택의 상위 계층(TCP, UDP)
 - 네트워크 스택의 하위 계층(GRO, RPS, RFS, GSO)
 
 - 네트워크 스케줄러 구성
 - 
NetFilter와 트래픽 컨트롤
- Bridge, Bond 인터페이스, Tap 인터페이스 등 다양한 네트워크 인터페이스 포함
 
 - 
디바이스 드라이버
- 큐(Queue)
 - NAPI
 - IRQ 핸들러
 
 - 
NIC에서 가속되는 네트워크 기능
- 체크섬 오프로드, VLAN, VxLAN, GRE, TSO, LRO, RSS 등
 
 
# 특징 및 부가정보
- 각 계층은 최적화 팁과 통계 정보를 함께 제공함
 - 네트워크 카드로 이어지는 전체적인 흐름까지 자세하게 연결함
 - 본 다이어그램은 “Operativni sustavi i računalne mreže - Linux u primjeni” 교재의 일부로 전문적인 참고 자료로 활용 가치가 높음
 
Hacker News 의견
- 
이런 수준 높은 문서가 많이 필요함을 느낌
나는 여러 해 동안 IP tables를 제대로 활용하지 못했음
책도 사고, 블로그의 다양한 예제도 시도해 봤지만, 무엇이 어떻게 동작하는지 이해가 되지 않아 제대로 사용할 수 없었음
그러던 중 패킷이 커널을 통과하는 과정을 보여주는 도식(플로우차트)을 발견했고, 이게 각 룰 체인이 적용되는 정확한 순서와 sysctl 값이 어디서 반영되는지 알 수 있게 해줌
이 도식 덕분에 원하는 대로 규칙을 직접 적을 수 있게 되었고, 동작 성능까지 고려해 적절한 규칙을 선택할 수 있게 됨
도식 하나가 정말 세상을 바꾼 것처럼 전부 첫 시도부터 제대로 동작함
좋은 도식의 힘이 엄청남을 직접 경험함- 
혹시 이 도식이 여기 있는 것인지 궁금함
 - 
방화벽에서 패킷이 어떤 규칙에 정확히 걸렸는지를 로그로 남겨주는 TRACE 타겟도 필히 언급하고 싶음
큰 규모의 방화벽에서는 정말 필수적인 도구임 - 
그 도식을 공유해 줄 수 있을지 물어보고 싶음
나도 iptables의 세계를 제대로 경험해보고 싶음 - 
나 역시 IP tables를 오랫동안 이해하지 못했음
그러다 FreeBSD와 pf tables를 알게 되었고, 지금은 네트워크 엔지니어처럼 느껴짐
물론 공부엔 시간과 노력이 들었지만, 학습이 잘 맞아떨어졌고 점점 더 많은 걸 쌓으며 배울 수 있었음
누구든 직접 도전해보길 추천함
FreeBSD 방화벽 관련 공식 문서도 참조할 만함
최근에는 The Book of PF 4판이라는 책도 출간됨 
 - 
 - 
혹시 관심 있는 사람이 있다면, 이 도식의 저자가 Linux 디스크 I/O 흐름도도 만들었음을 알리고 싶음
여기에서 디스크 I/O 도식 확인 가능함
이 모든 도식은 'Operativni sustavi i računalne mreže - Linux u primjeni'라는 저자 책에서 출발함
책 원문 역시 공개되어 있음
저자의 탁월하고 친절한 작업에 박수를 보냄- 
혹시 이 책에 영어 번역본이 있는지 궁금함
 - 
디스크 I/O 도식 너무 뛰어남
공유해줘서 고맙다는 이야기 전함 
 - 
 - 
Linux Kernel map도 정말 훌륭한 자료이니 참고하길 권함
[Linux Kernel map 링크](https://commons.wikimedia.org/wiki/File:Linux_kernel_map.png) - 
Hrvoje Horvat에게 이렇게 상세한 도식 만들어줘서 고맙다는 인사 전함
덕분에 Network stack 공부가 정말 한결 쉬워질 것 같음
저자의 책 "Operativni sustavi i računalne mreže - Linux u primjeni"도 크로아티아어를 배울 가치가 느껴질 정도임
책 출간 축하하며, 이러한 소중한 기여에 다시 한번 감사 인사 전함
책 링크 - 
저자의 작업이 믿기지 않을 정도로 훌륭함
진심으로 영어 번역본이 있었으면 하는 바람임 - 
정말 멋진 자료라고 생각함
만약 누군가 이런 도식을 자동으로 생성해주는 시각화 도구를 개발한다면 더욱 신날 것 같지만, 아마 현실적으로는 불가능에 가까울 것 같음- 자동 생성을 위해서는 이 도식이 보여주는 많은 추상화 단계를 처리해야 해서 정말 어려울 것 같음
그래도 Mermaid나 PlantUML 같은 도구가 어느 정도 까지는 비슷한 영역을 보여줄 수 있고, PGF/TikZ는 이미지를 생성하는 대신 텍스트 생성에서 도전을 시도해볼 만한 대상임 
 - 자동 생성을 위해서는 이 도식이 보여주는 많은 추상화 단계를 처리해야 해서 정말 어려울 것 같음
 - 
컨테이너 환경에서도 VM에서와 비슷하게 자체 TCP/IP stack을 쓸 수 있다는 점 언급하고 싶음
slirp4netns를 사용하면 컨테이너가 자체 네트워킹을 갖게 되고, 반면 pasta를 쓰면 커널의 TCP/IP stack을 직접 활용함
궁금하다면 여기 링크의 다이어그램을 참고하면 자세함 - 
나는 특별히 네트워크 스택을 정식으로 공부하지 않았는데도, 수십 년간 Linux를 써오다 보니 대부분의 스택 구조가 익숙해져서 신기한 느낌임
 - 
혹시 다이어그램을 svg 파일로 볼 수 있는지 궁금함
pdf에만 포함되어 있어 읽기 어렵게 느껴짐- 임베디드 PDF 뷰어 아래에 "Download"를 누르면 PDF 전체를 받을 수 있음
 
 - 
단순화된 그림임
실제로는 iptables나 nftables까지는 들어가 있지 않음- iptables를 유심히 바라보면, iptables 역시 나를 쳐다본다는 느낌임