A freebsd (mbuf klaszterek, mbufs, usters stb
A FreeBSD a mbuf klaszterekben tárolt hálózati adatokat tárolja, mindegyik 2Kb méretét, de a
Kb. 1500 bájtot használnak (az Ethernet csomag mérete szerint).
A klaszter minden egyes mbuf-jához "mbuf" szükséges, ami 256 bájt méretű és
Szükség van a mbuf klaszterek láncolatainak szervezésére. A mbuf-ban fel tudsz tenni
hasznos információ a 100 byte tartományban, de ez nem mindig használható.
Ha 1GB driver és több memóriát, akkor 25 ezer. Mbuf klaszterek jönnek létre alapértelmezésben
ami nem mindig elég ...
--------
Lássuk, hogyan valósulnak meg a csomagok a gazdagépen. A hálózattól kapott adatokat először a hálózati adapter kis belső pufferében halmozzák fel. Ha tele van, a hálózati kártya generálja megszakítani, arra kényszerítve a vezető másolni a csomag (ok) a hálózatban kernel puffer (pl mbufs). A csomagok átkerülnek a TCP / IP stackbe, mivel azok mbufs-ban vannak. Amikor egy csomag belép a kernel pufferbe, a vele végzett műveletek többsége független a méretétől, mert Számukra csak a címek fontosak, és nem valamilyen teljes terhelés. Ez is igaz, hogy a csomagszűrő, amelyen keresztül a csomag egy időben, és aki úgy dönt, hogy rögzítse, vagy hagyja ki a csomagot. Ha a csomag kell irányítani (továbbítása), TCP / IP stack továbbítja a hálózati kártya, ami kibontja a csomagot mbufs és adja vissza a kommunikációs vonalon.