Der ,,Linux Socket Buffer`` sk_buff

Jedes Netzwerkpaket im Linux Kernel wird durch die sk_buff-Struktur repräsentiert, auf welcher die Funktionen des Linux Netzwerkstacks angewendet werden können. Diese Struktur bietet zum einen eine flexible Handhabung der Daten wenn diese zwischen zwei Netzwerkschichten übergeben werden müssen. Hierzu besitzt diese Struktur einen head und einen data Zeiger, sowie einen tail und einen end Zeiger, die jeweils Anfang und Ende des Pufferbereichs bzw. des Datenbereichs markieren. So wird durch Verschieben des data Pointers, mit wenig Aufwand den Protokoll-Header des darunterliegenden Protokolls für das darüberliegende entfernt, ohne Speicher kopieren zu müssen. Zum anderen bietet die sk_buff Struktur alle wichtigen Metadaten der einzelnen Netzwerkschichten in aufbereiteter Form.

Eine kurze Auflistung der wichtigsten Felder des sk_buff:

Klaus Rechert 2004-03-09