【教学课件】第九章协议处理.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《【教学课件】第九章协议处理.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第九章协议处理.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 协议处理主要内容缓冲区管理常规协议(TCP/UDP)处理:TCP头部预测分片重组9.1 缓冲区管理数据包到达后,首先要分配一个缓冲区操作系统必须提供分配和释放缓冲区的服务,包括:管理空闲缓冲区为数据包找到合适大小的缓冲空间如果多个连接或用户共享一个缓存空间,还需提供某种形式的公平分配困难:包缓冲区分配必须实时完成9.1.1 缓冲区分配经典的BSD UNIX包缓冲区实现称为mbufsmbufs:使用一个缓冲区链来存放一个包,每个缓冲区为一段连续的存储空间BSD定义了三种大小的缓冲区:100字节、108字节、2048字节(称cluster)Mbufs设计的出发点:使用一个缓冲区链来存放一个
2、包:允许动态扩展包的缓冲空间;适应各种协议栈定义不同大小的缓冲区:充分利用内存空间缺点:访问数据和拷贝数据的开销大Sk_buffLinux操作系统的包缓冲区实现是sk_buffsk_buff:每个包缓冲区都是一块连续地址空间,提前为路径上需要添加的各种协议头预留了空间用空间换时间(P4b):实现简单包缓冲区必须满足最大包长,有时会浪费空间如何为不同大小的包分配缓冲区?按需分配内存:当一个包到来时,为其分配一块合适大小的缓存空间动态分配内存的困难:用户在不同的时间释放缓冲区,导致内存中出现许多不连续的、大小不同的空闲区域教科书上的标准算法(如First-Fit、Best-Fit)可以搜索到合适大
3、小的空闲区域,但速度太慢高速包缓冲区分配器隔离池分配器(Segregated Pool Allocator)Linux分配器(Linux Allocator)批量分配器(Batch Allocator)隔离池分配器随BSD 4.2 UNIX发布,称Kingsley malloc()。将存储空间划分成一组隔离的内存池,同一个内存池中的缓冲区大小相同,为2的幂次。内存请求被取整到最近的缓冲区大小,从相应的内存池链表头部取一个空闲缓冲区分配。若对应的内存池空间不足,分配失败。可能有内存空间浪费,但实现简单。Linux分配器Linux分配器最初由Doug Lea实现,称为dlmalloc()内存被划分
4、成128个内存池:前64个内存池,缓冲区大小分别为16、24、32、512字节(按8字节步长增加)后64个内存池,大小为2的幂次分配器会合并相邻的空闲缓冲区,放入合适的缓冲池中。Lea分配器比Kingsley分配器使用内存更高效,但实现起来更复杂。批量分配器分配器一次性向系统请求一大块内存,用来作为包缓冲区(批量的含义)当一个内存块正在使用时,后台创建另一个空闲内存块分配器在当前内存块上采用顺序分配:一个指针指向上一次分配结束的位置,新的内存请求总是从当前位置开始分配一个内存块用完,立即转移到另一个空闲内存块上批量分配器(续)当缓冲区释放的顺序与分配的顺序不一致时,内存块中形成一些孔洞,需要合
5、并。方法一:使用足够多的内存块,确保在这些内存块用完之前,已分配的内存块被释放,避免显式回收。(目前工业界的做法)方法二:使用页面重映射将若干分离的物理页映射成在虚拟存储空间是连续的。优点:支持可变长度的内存分配,没有内存浪费,分配快。9.1.2 共享缓冲区假如一群用户共用同一组空闲缓冲区,我们希望共享缓冲区的分配是公平的:这组缓冲区在需要的用户之间近乎均等地分配共享缓冲区的用户是变化的:每个用户分配的缓冲区数量应当能够动态调整当有新用户加入时,应能从老用户那儿夺取一些缓冲区缓冲器窃取实现公平分配的一种方法是缓冲区窃取:若所有缓冲区已用完,一个分配较少的用户想多要一些缓冲区,就从当前分配最多的
6、用户那儿窃取。即使一个用户最初攫取了全部缓冲区,其它用户通过缓冲区窃取可以获得他们公平的份额。缓冲区窃取的通用解决方案:使用一个大顶堆,代价O(logn),n为当前活跃的用户数。如何实现得更快?问题分析如果允许用户一次获取任意数量的缓冲区,那么使用O(logn)的堆是必需的。问题分析如果允许用户一次获取任意数量的缓冲区,那么使用O(logn)的堆是必需的。为获得常数时间的算法,假设可以降低要求:一个用户一次只能窃取一个缓冲区每个用户拥有的缓冲区数量是一个小整数缓冲区窃取的常数时间算法如果允许用户一次获取任意数量的缓冲区,那么使用O(logn)的堆是必需的。为获得常数时间的算法,假设可以降低要求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第九 协议 处理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内