分类: 系统运维
2010-10-16 17:11:24
在4.4BSD-Lite中的tcp/ip协议中,主要有四种数据结构:
1. 一条mbuf链表
2. 如下图所示:多条mbuf链表再次组合成二维链表
3. 如下图所示:多条mbuf链表再次组合成二维链表
4. 双向链表
1. 0<=数据长度<=64
我们会遇到两个函数: i c m p _ r e f l e c t和t c p _ r e s p o n d,它们通过把接收到的 m b u f作为输出m b u f来产生一个应答。
2. 85<=数据长度<=100
3. 101~207
第一个mbuf最多放100字节,但是由于有些数据域在两个mbuf公用就行了,所以第二个mbuf可以最多放8个数据
4. 数据长度>=2048,需要一个或者多个外部簇
Mbuf使用了共享簇的机制,避免了数据从一个mbuf复制到另外一个mbuf的过程