今天才发现前几天写的笔记里面图片没了,今天又给添加上了。抱歉啊~
需要知道几个常识吧。
在全局结构mbstat中维护各种统计。如图
这个结构可以被命令netstat -m检测;关于所用的映射页的数量的俩个值是:m_clusters减m_clfree和m_clusters;
分配给网络的存储器的千字节数是mbuf存储器(99*128)加上簇存储器(34*2048)再除以1024;使用的百分比是mbuf存储器(99*128)加上所有簇存储器(2*2048)除以网络存储器总数(80千字节)再乘以100;
mbuf的定义
接下来就是mbuf的结构了:
我们在前面说过mbuf结构中前俩个成员的目的是:指针m_next把mbuf链接成一个链表,而指针m_nextpkt把mbuf链表链接成一个mbuf队列。
M_EXT和m_pkthdr已经在前面说过。M_EOR在一个包含纪录尾的mbuf中设置。Internet协议例如TCP从来不设置这个标志,tcp提供了一个无记录边界的字节流服务。
当要往一个链路层广播地址或多播地址发送分组,或者要从一个链路层广播地址或多播地址接收一个分组时,在这个mbuf中要设置接下来的俩个标志M_BCAST和M_MCAST,这俩个常量是协议层和接口层之间的标志。
最后一个标志M_COPYFLAGS,当一个mbuf包含一个分组首部的副本时,这个标志表明这些标志是复制的。