frags vs. frag_list

sk_buffer의 frags는 Main buffer를 확장하는 개념으로 다른 page에 저장된 데이터도 하나의 IP Packet으로 전송할 때 사용한다.

반면, sk_buffer의 frag_list에 연결된 sk_buffer들은 각각 서로 다른 IP packet으로 전송된다. 이는 L4 에서 IP layer의 Fragmentation을 쉽게 하기 위해 미리 조각을 내는 경우등에 이용된다. 이 경우 L4 protocol은 미리 PMTU등을 통해 알아낸 패킷 크기 정보를 이용하여 미리 fragmentation을 수행하고, 이를 frag_list로 연결되는 sk_buffer들로 구성한 후 IP layer로 전송한다. IP layer에서는 frag_list에 연결된 sk_buffer들의 data에 IP header만 추가하여 전송한다.