sk_buff는 Linux 커널에서 네트워크 패킷을 표현하는 핵심 데이터 구조로, netdev_alloc_skb, skb_reserve, skb_put 함수를 통해 메모리 레이아웃이 동적으로 관리됩니다. 이 글에서는 네트워크 드라이버 개발자에게 필수적인 sk_buff를 할당하는 3형제를 소개합니다..1. sk_buff 의 세 가지 할당 단계1) netdev_alloc_skb() 실행 후head(0), data(0), tail(0), end(68) 포인터 초기화68바이트 전체가 사용 가능한 빈 버퍼 생성2) skb_reserve(2) 적용데이터 시작 위치를 2바이트로 설정(data=2)패킷 헤더 공간 확보를 위한 전형적인 작업3) skb_put(64) 실행64바이트 데이터 추가로 tail 포인터 66으로 ..