1장에서는 리눅스 커널과 리눅스 네트워크 스택의 전반적인 개요를 확인할 수 있다. 1장의 다른 주제로는 네트워크 장치, 소켓 버퍼, Rx와 Tx 경로 구현이 있다. 1장은 리눅스 커널 네트워킹 개발 모델로 마무리한다.
2장에서는 넷링크 소켓에 관해 배운다. 넷링크 소켓은 사용자 영역과 커널의 양방향 통신을 위한 메커니즘을 제공하고, 네트워킹 서브시스템뿐만 아니라 다른 서브시스템에서도 사용된다. 일반 넷링크 소켓에 관해서도 2장에서 배울 수 있는데, 일반 넷링크 소켓은 고급 넷링크 소켓으로 여겨질 수 있으며, 12장과 커널 네트워킹 소스코드를 훑어보면서 만나게 될 것이다.
3장에서는 ICMP 프로토콜에 관해 배운다. ICMP 프로토콜은 시스템이 네트워크 계층(L3)에 관한 오류와 제어 메시지를 보내며 정확히 동작하도록 돕는다. IPv4와 IPv6에서의 ICMP 프로토콜 구현에 관해 모두 배운다.
4장에서는 IPv4 프로토콜을 다룬다. 인터넷과 현대의 삶은 IPv4 없이 설명될 수 없다. IPv4 헤더 구조체, Rx와 Tx 경로, IP 옵션, 단편화와 역단편화 및 이것이 왜 필요한지, 그리고 IPv4의 중요한 작업인 패킷 포워딩에 관해 배운다.
5장과 6장에서는 IPv4 라우팅 서브시스템에 전념한다. 5장에서는 라우팅 서브시스템에서 탐색이 이뤄지는 방법, 라우팅 테이블이 구성되는 방법, IPv4 라우팅 서브시스템에서 사용되는 최적화와 IPv4 라우팅 캐시의 제거에 관해 배운다. 6장에서는 멀티캐스트 라우팅, 정책 라우팅, 다중경로 라우팅 같은 고급 라우팅 주제를 설명한다.
7장에서는 이웃 서브시스템을 설명한다. IPv4에서 사용된 ARP 프로토콜, IPv6에서 사용된 NDISC 프로토콜, 그리고 두 프로토콜의 일부 차이점에 관해 배운다. IPv6에서 중복 주소 탐지(DAD; Duplicate Address Detection) 메커니즘도 배울 것이다.
8장에서는 IPv6 프로토콜을 설명한다. 이 프로토콜은 IPv4 주소의 부족으로 인한 불가피한 해결책으로 보인다. 8장에서는 IPv6 구현을 설명하고 IPv6 주소, IPv6 헤더와 확장 헤더, IPv6에서 자동구성, Rx 경로, 포워딩에 관해 설명한다. MLD 프로토콜에 대해서도 설명한다.
9장에서는 넷필터 서브시스템을 다룬다. 넷필터 훅과 이를 등록하는 방법, 연결 추적, IP 테이블과 네트워크 주소 변환(NAT), 연결 추적과 NAT로 사용되는 콜백에 관해 배운다.
10장에서는 IPsec를 다루는데, IPsec는 가장 복잡한 네트워킹 서브시스템이다. IKE 프로토콜(사용자 영역에서 구현돼 있는) 같은 주제와 IPsec의 암호화와 관련된 부분은 간략히 설명한다(전체 설명은 이 책의 범위를 벗어난다). 리눅스 IPsec 서브시스템의 기초인 XFRM 기반구조와 XFRM 정책과 두 가지 가장 중요한 구조체에 관해 설명한다. 이 구조체는 XFRM 정책과 XFRM 상태 구조체다. ESP 프로토콜과 더불어 전송 모드의 IPsec Rx 경로와 Tx 경로를 간단히 설명한다. 10장에서는 XFRM 탐색과 NAT 이동에 관한 짧은 절로 마무리한다.
11장에서는 4계층 프로토콜을 설명하며, 가장 일반적으로 사용되는 프로토콜인 UDP와 TCP로 사작해 새로운 두 프로토콜 SCTP와 DCCP로 마무리한다.
12장에서는 리눅스 무선(IEEE 802.11)을 다룬다. mac80211 서브시스템과 구현, 다양한 무선 네트워크 토폴로지, 절전 모드, IEEE 802.11n과 패킷 집합에 관해 배운다. 12장에는 무선 메시 네트워크에 대해서만 다룬 절도 있다.
13장에서는 인피니밴드 서브시스템을 탐구하는데, 인피니밴드 서브시스템은 데이터 센터에서 인기가 날로 높아지고 있는 기술이다. RDMA 스택 구조, 인피니밴드에서의 어드레싱(addressing), 인피니밴드의 패킷 구조, RDMA API에 관해 배운다.
14장에서는 특히 리눅스 네임스페이스와 네트워크 네임스페이스를 설명하고, 바쁜 폴링 소켓, 블루투스 서브시스템, IEEE 802.15.4 서브시스템, 근거리 무선 통신(NFC) 서브시스템, PCI 서브시스템 등을 설명한다.
부록 A “리눅스 API”와 C “용어 설명”에서는 이 책에서 설명한 많은 주제에 관한 참고 정보를 제공한다. 부록 B “네트워크 관리”에서는 리눅스 커널 네트워킹을 다루는 데 필요한 다양한 도구에 관한 정보를 제공한다.
---서문 중에서