Part I Part II 第1章 网络算法学概述 第2章 网络实现模型 第3章 实现原则 第4章 原则的运用 第5章 数据拷贝

Slides:



Advertisements
Similar presentations
北京市卫生和计划生育委员会. 目录目录 2 1 汇审工作安排 2 年末结账及明年建账关注事项 3 卫生年报口径讲解 4 财政决算口径讲解.
Advertisements

營養午餐 嘉大附小四年二班. 形容詞豐富 鍋燒烏龍麵裡有很多料,有細細長長的麵、翠 綠的青菜、像雨傘的香菇、紅紅的蘿蔔和像圓 月的丸子。每次去盛鍋燒烏龍麵時,我都會聞 到香噴噴的味道,讓我好餓,似乎可以吃下一 頭牛。吃下第一口時,有彈牙的麵、鮮甜的青 菜、 QQ 的香菇、軟軟的丸子,還有脆脆的紅 蘿蔔。每當我吃完第一碗,就還想吃第二碗,
项目四 网店推广与营销 4.1 店内推广与营销. 教学目的: 通过本节内容的学习,帮助学生了解消费者保障服务分类,理解店内活动是运 营店铺时不可缺少的一些营销活动。 知识要求: 1. 了解申请加入消费者保障服务项目的条件 2. 了解店内活动如满就送、限时打折、搭配套餐、优惠券的设置 技能目标: 1.
广西 2014 年 “ 区培计划 ” 学前教育远程培 训 总结简报 南宁马山县幼教 1 班 莫毅.
中职教师省级网络培训 使用说明 南京中华中等专业学校教研处 平台登陆 登录 (江苏教师教育) 在页面右侧找到登录框,填写用户名、密码进入系统.
“ 税融通 ” 业务简要介绍. + 一、什么是 “ 税融通 ” ? + “ 税融通 ” 是指银行金融机构根据中小微企业 纳税情况,向依法诚信的中小微企业提供 一定数额的信用贷款或担保贷款的金融产 品。
“ 菸 ” 之非福 Part Ⅰ. 你的想法 ─ Q1 :你覺得他很有個性嗎? Q2 :吸菸會增加個人魅力嗎? Q3 :吸菸會讓人感覺成熟?
学年 江西省教师全员远程培训指南. 培训学习及考核时间安排 学习时间: 2013 年 10 月 年 1 月 15 日 考核时间: 2014 年 3 月 1 日 年 3 月 30 日.
-- 八 (19) 班第二学期期中家长会 、关于期中考试 2 、关于班级常规活动 3 、关于会考、体育 4 、关于自主招生 5 、给家长的一些建议.
當憂鬱來敲門 憂鬱與憂鬱症辨識 嘉南藥理大學 學生輔導中心提供 資訊大放送 一、憂鬱 vs 憂鬱症 二、小知識大考驗 三、好心情自己來.
學會摘要 四年級 ( 內容擷取自劍潭國小陳錦蓮和詹珮怡老師的簡報 ). 2 分享綱要 1 1 什麼是摘要 2 3 如何教摘要 實例與實際操作.
2015 年 4 月 (第一期) 初中数学 14 班 简报 惠州市 2015 年初中教师全员培训.
我們可以如何應付氾濫 ? 2c 第三組. 目錄 防洪 (1) 防洪 (2) 湖北坪興建三峽主壩簡介 長江三峽水利樞紐工程 三峽工程的利益 (Part1) 三峽工程的利益 (Part2) 三峽工程的弊 (Part1) 三峽工程的弊 (Part2) 總結 組員名單 完.
1 寫作測驗武功秘笈 洪德惠老師 99 年 1 月 18 日. 2 PART1 理論部分 3 寫作測驗的基本能力 1. 能掌握寫作步驟,充實作品內容,精確表達自 己的思想。 2. 能依收集材料立意、選材、安排段落及組織等 步驟行文。 3. 能運用觀察的方法觀察周遭事物,並能寫下重 點。 4. 能適切地遣詞造句,使用正確的標點符號,完.
山东理工大学成人高等教育 新生入学指南. 如何获悉学院的通知公告等? 1. 网站。所有的通知公告等都通过远程与继 续教育学院网站 发布, 同学们应每周登录 “ 学生工作室 ” 或 “ 函授教育 ” 关注是否有新的通知公告。
此时此刻,我还是爱你?还是不爱? 我想,我不爱你了! 因为我累了, 我爱得累了 …………. 你的好对于我来说 像是一种无形的压力 每次你对我好 我都觉得好难承受 你越是对我好 我就越怕你 总是想逃避。
财务处目前共有 50 人,其中事业编 32 人,非事业编 18 人。分为 6 个科室,分别是会计核算科、资金结算中心、综合管理科、预算管理科、 基建财务科和一卡通中心。 会计核算科主要业务为收入入账、费用报销审核等。 资金结算中心主要业务为资金收付、开具发票、学费管理。 综合管理科主要业务是工资及住房公积金管理、税务管理、收费项目.
心理咨询师的个人品牌建设 徐钧 南嘉心理咨询师部落(俱乐部) 申请 QQ 酒香还怕巷子深 你需要一个 “ 个人品牌 ” 以让别人知道你 你是谁? 你的目标是什么? 你要成为什么样的人? 你能做什么? 你会怎样做? 怎么与你有效沟通?
房地产法 主讲教师:龙慧峰 QQ: 电话: 法律实质上既是物质的又是意识形态的这一 事实是与以下事实相联系的:法律既是从 整个社会的结构和习惯自上而下发展而来, 又是从社会中的统治阶级们的政策和价值 中自上而下移动。 —— 【美】伯尔曼《法律与革命》
某中学一青少年因迷上网络游戏,视力由1. 2下降到0
加强工作室资源建设 提升网络辐射影响力 林月周工作室
和合共美,同修共进 ——工作室三年感言 何伟俊
凉山州2011级一诊考试情况分析 暨后期复习建议 四川省凉山州教育科学研究所 谌业锋.
发挥学科优势 打造“互联网+”党建工作模式
《凉山州中长期教育改革和发展规划纲要》( 年)解读 (讲座幻灯课件请在网上下载,让我们一起思考!)
當我已老 謹以此文獻給像我一樣流浪在外的子女們.
坚持群众路线 做到“三严三实” 内蒙古直属机关工委党校 裴聚斌 电话:
新所得税申报表如何填写 注册税务师 注册会计师 高级会计师 注册资产评估师 注册土地估价师 注册房地产估价师 主讲人:林溪发
備審資料與面試準備 高雄醫學大學醫學系 林郁涵.
校园法治网 ◎传播校园法制文明 ◎营造校园法治环境
人类行为的起源 康复医学系 王海成 医学教授 精神科主任医师 QQ: 手机:
我的未来,我做主之 坚持不懈,直到成功。 电话: QQ: 时间:2013年5月27日 肖亚平.
(讲座幻灯课件请在网上下载,让我们一起思考!)
自读高晓声的小说 《陈奂生上城》 写一篇800以上的感悟文章.
高考成功心理 平凉一中 刘雅娟.
2012江西(九江吉安)事业单位 公共基础知识 备考指导 主讲:罗红军 qq: 新浪微博:罗红军的微博
运筹帷幄 决胜高考 应怎样去做? 湖北黄冈中学 余利平 QQ:
幼儿园环境创设 成智客服QQ:
工作中的九型人格 主讲嘉宾:梁旭 ---九型人格应用系列课程 介绍自己 有多少听过九型 课程纪律 课程时间 工作中的九型人格
2015年12月14日-2015年12月20日 缩略版.
指導老師:羅夏美 組別:第四組 組員: 車輛二甲 蔡中銘 車輛三甲 莊鵬彥 國企二甲 陳于甄 國企二甲 詹雯晴 資傳二乙 林怡芳
千秋大业在担当 《中国共产党问责条例》解读提纲.
開南大學 資訊管理學系 學分學程相關說明.
企业涉税业务基本知识宣传 郑州航空港区国家税务局机场税务分局 王 磊.
大型探索节目《谜》之 感恩.
2013年二手车市场环境分析.
生命停看聽—生命圖書館 萬中選一的祝福 推薦人:彰師附工進修學校 蘇郁惠.
保良局方王錦全小學 學校健康促進經驗分享    盧淑宜校長.
凉山州2015届高考情况分析 暨2016届高三复习建议 四川省凉山州教育科学研究所 谌业锋.
香港普通話研習社科技創意小學 周順強老師.
“网络问政”给九江新闻网 带来新的发展机遇 -- 九江新闻网 高立东 --.
新事业单位会计准则 和事业单位会计制度讲解
愛心月課程活動 設計者:洪雪玲老師.
《乡村教师支持计划 年》 解读.
小朋友怎麼吃藥最安全?! 現代人不可不知的用藥基本常識 [藥你健康]簡報分享
1-3 探究自然的科學方法.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
姓名:梁晓莹 职务:安徽省旅游局安全办主任(高级经济师) 中国旅游研究院(华侨大学)旅游安全研究基地行业顾问 经历: 自1987年就职于安徽省旅游局 自2009年主持安全办工作 曾主编《旅游安全宣传手册——暨安徽旅游安全格言警句精选》、《安徽旅游安全》、《安徽旅游发展大事记》等 承办过“安徽省旅游安全演讲征文大赛”及“旅游安全调研成果奖”评选等工作.
第三章 科学把握人生的方向和道路 教学目标 主要内容 第一节 追求高尚的人生目的 第二节 培养正确的人生态度 第三节 创造有价值的人生
本活動 想解決的問題是……. 本活動 想解決的問題是…… 130最少要加上多少才能被8整除? 130最少要減去多少才能被8整除? 《除法定理》 被乘數=乘數 x 商 + 餘數.
社会工作概论 个案工作 课程培训 深圳电大 赖小乐.
雞蛋這樣孵出小雞的 動物的生殖 Part I.
中学生网络安全教育.
前言.
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
目次检索 打印 下载 文字摘录 更换背景 多窗口阅读.
公务卡日常管理篇 办卡激活/遗失补办/ 停用销卡/额度调整 财务处 2016年.
——向刑事案件被告人家属调查取证的伦理性讨论
~建構有創意的教學策略~ 培養學生創意思考與創造力
Presentation transcript:

Part I Part II 第1章 网络算法学概述 第2章 网络实现模型 第3章 实现原则 第4章 原则的运用 第5章 数据拷贝 第1章 网络算法学概述 第2章 网络实现模型 第3章 实现原则 第4章 原则的运用 Part II 第5章 数据拷贝 第6章 传输控制 第7章 定时器管理 第8章 提前解复用 第9章 协议处理

第九章 协议处理

本章主要内容 缓冲区管理 常规协议(TCP/UDP)处理:TCP头部预测 分片重组 在极高的数据速率下,协议处理的任何一个环节都不能忽视 对于大量小包来说,主要开销是一般性协议处理而不是数据处理

9.1 缓冲区管理 数据包到达后,首先要分配一个缓冲区 操作系统需提供分配和释放缓冲区的服务,包括: 管理空闲缓冲区 为数据包找到合适大小的缓冲空间 如果多个连接或用户共享一个缓存空间,还需提供某种形式的公平分配 困难:包缓冲区分配必须实时完成

9.1.1 缓冲区分配 经典的BSD UNIX包缓冲区实现称为mbufs: Mbufs设计的出发点: 缺点:访问数据和拷贝数据的开销大 9.1.1 缓冲区分配 经典的BSD UNIX包缓冲区实现称为mbufs: 使用一个缓冲区链来存放一个包,每个缓冲区为一段连续的存储空间 BSD定义了三种大小的缓冲区:100字节、108字节、2048字节(称cluster) Mbufs设计的出发点: 使用一个缓冲区链来存放一个包:允许动态扩展包的缓冲空间;适应各种协议栈 定义不同大小的缓冲区:充分利用内存空间 缺点:访问数据和拷贝数据的开销大

Sk_buff Linux操作系统的包缓冲区实现是sk_buff: Sk_buff的设计原则是用空间换时间: 每个包缓冲区都是一块连续地址空间,提前为路径上需要添加的各种协议头预留了空间 Sk_buff的设计原则是用空间换时间: 使用连续地址空间的缓冲区,实现简单,时间开销小 包缓冲区必须满足最大包长,有时会浪费空间

如何为不同大小的包分配缓冲区? 给每个包分配最大长度的包缓冲区是一种浪费 较好的方法是按需分配内存: 动态分配内存的困难: 当一个包到来时,为其分配一块合适大小的缓存空间 动态分配内存的困难: 用户会在不同的时间释放缓冲区,导致内存中出现许多不连续的、大小不同的空闲区域 教科书上的标准算法(如First-Fit、Best-Fit)可以搜索到合适大小的空闲区域,但速度太慢

高速包缓冲区分配器 开发高速网络软件的工程师通常会考虑以下三种内存分配器: 隔离池分配器(Segregated Pool Allocator) Linux分配器(Linux Allocator) 批量分配器(Batch Allocator)

隔离池分配器 可能有内存空间浪费,但实现简单 随 BSD 4.2 UNIX发布,称Kingsley malloc() 将存储空间划分成一组隔离的内存池,同一个内存池中的缓冲区大小相同,为2的幂次 内存请求被取整到最近的缓冲区大小,从相应的内存池链表头部取一个空闲缓冲区分配 若对应的内存池空间不足,分配失败 可能有内存空间浪费,但实现简单

Linux分配器 Linux分配器最初由Doug Lea实现,称为dlmalloc() 内存被划分成128个内存池: 前64个内存池,缓冲区大小分别为16、24、32、……、512字节(按8字节步长增加) 后64个内存池,大小为2的幂次 分配器会合并相邻的空闲缓冲区,放入合适的缓冲池中 Lea分配器比Kingsley分配器使用内存更高效,但实现更复杂

批量分配器 分配器一次性向系统请求一大块内存,用来作为包缓冲区池(批量的含义) 当一个内存块正在使用时,后台创建另一个空闲内存块 分配器在当前内存块上采用顺序分配: 一个指针指向上一次分配结束的位置,新的内存请求总是从当前位置开始分配 一个内存块用完,立即转移到另一个空闲内存块上

批量分配器(续) 当缓冲区释放的顺序与分配的顺序不一致时,内存块中形成一些孔洞,需要合并。 方法一: 使用足够多的内存块,确保在这些内存块用完之前,已分配的内存块被释放,避免显式回收。(目前工业界的做法,空间换时间) 方法二: 使用页面重映射将若干分离的物理页映射成在虚拟存储空间是连续的。 优点:支持可变长度的内存分配,没有内存浪费,分配快 内存分配用硬件实现,后台创建空闲块用软件实现

9.1.2 共享缓冲区 假如一群用户共用同一组空闲缓冲区,我们希望共享缓冲区的分配是公平的: 困难在于共享缓冲区的用户是变化的: 9.1.2 共享缓冲区 假如一群用户共用同一组空闲缓冲区,我们希望共享缓冲区的分配是公平的: 这组缓冲区在需要的用户之间近乎均等地分配 困难在于共享缓冲区的用户是变化的: 每个用户分配的缓冲区数量应当能够动态调整 当有新用户加入时,应能从老用户那儿夺取一些缓冲区

缓冲器窃取 缓冲区窃取是实现公平分配的一种方法: 缓冲区窃取的通用解决方案: 若所有缓冲区已用完,一个分配较少的用户可从当前分配最多的用户那儿窃取一些缓冲区 即使一开始分配是不均衡的,最终每个用户都可以获得他们公平的份额 缓冲区窃取的通用解决方案: 使用一个大顶堆,代价O(logn),n为当前活跃的用户数 有无更快的实现方法?

问题分析 如果允许用户一次获取任意数量的缓冲区,那么使用O(logn)的堆是必需的 假设为了获得常数时间的算法,可以降低要求: 一个用户一次只能窃取一个缓冲区 每个用户拥有的缓冲区数量是一个小整数 可以用桶排序代替堆排序

常数时间算法:Mckenney算法 采用桶排序: 将分配了 i 个缓冲区的进程组织在一个链表中,头指针保存在第 i 个桶中 一个变量highest指向分配了最多缓冲区的进程链表

窃取一个缓冲区 当一个进程 P 希望获取一个缓冲区时: 算法是常数时间的: 算法从highest指向的进程链表头部取进程Q,Q的缓冲区数量减1,P的缓冲区数量加1 将P从链表 i 移到链表 i+1 将Q从链表 j 移到链表 j-1 如果highest指向的链表为空,更新highest为 j-1 算法是常数时间的: 由于限定了每次只能增加或减少一个缓冲区,算法更新highest指针最多只需移动一个桶

9.2 TCP头部预测 因特网上最主要的流量是TCP,最复杂的数据面协议也是TCP Tcp_input是TCP中最长的一部分代码,约1100行: 许多实现完全遵循RFC 793中定义的输入事件处理步骤 逐个状态地检查,以确定要执行什么处理 然而,检查的大部分状态都是很少发生的 Van Jacobson提出头部预测机制 : 快速识别预期的TCP段,避免不必要的状态检查,优化常见情形的处理

对TCP头的观察 连接完成后,目的端口和源端口是固定的 大部分情况下IP包顺序到达,因此序号域通常等于预期接收的下一个序号 连接建立后,ACK标志总为1,其它标志一般为0 大多数情况下,接收窗口大小不变 当URG标志为0时,紧急指针域不用 变数较大的域只有两个:确认序号,检查和

预期情形 大多数时候,TCP连接上的数据传输是单向的: 两种预期的情形: 其它预期情形: 客户从服务器下载一个文件,或客户向服务器上载一个文件 两种预期的情形: 发送数据一方:收到一个纯ACK段(无数据) 接收数据一方:收到一个纯数据段(确认序号无更新) 其它预期情形: 标志位常规设置 无窗口更新

接收端头部预测的伪代码

接收端头部预测伪代码(续) 第一个子句检查标志位设置是否符合预期 第二个子句检查是否无窗口更新 第三个子句检查是否是预期接收的段(不是乱序到达或重发的) 若以上条件判断为真,这是预期接收的TCP段,再区分是纯ACK段还是纯数据段 若以上条件判断为假,不是预期接收的TCP段,执行常规的处理过程(慢路径) 标志域以及窗口大小组成一个32位的字,可将这个字的预期值保存到TCB中,头两个子句的检查只需用TCP头的第4个字与TCB中保存的字进行一次比较即可。

发送端头部预测 在发送端发送的一系列 TCP 段中,TCP头部有变化的域只有少数几个 发送端头部预测: 发送端在TCB中建立一个TCP头模板

9.3 IP分片重组 分片重组的经典实现: 各分片按照分片偏移量保存在一个有序链表中 一个分片到达时,顺序查找链表,插入到合适的位置 在寻找插入位置的过程中,检查分片之前的数据是否全部到达;如果是, 在插入分片后继续沿链表向下查找,检查是否全部数据已到达;如果是, 重新扫描链表,将数据拷贝到另一个缓冲区中

优化预期情形 重组过程复杂的原因: 预期情形: 优化预期情形: 考虑到IP分片可能乱序到达,且分片之间可能有重叠 若判断为预期情形,只需将到来的分片添加到链表尾部(一个常数时间操作)

优化的IP分片重组算法 在有序链表的基础上,增加一个指向链表尾部的指针 分片到来时,用分片的起始字节偏移量与链表上最后一个分片的末字节偏移量(存在一个变量中)进行比较 若分片顺序到达且无重叠,将分片添加到链表的尾部,更新指向链表尾部的指针,更新末字节偏移量 如果这是最后一个分片(MF=0),重组结束 寻找插入位置及检查重组是否结束,只需要常数时间

假设与实际相符吗? 分片重组优化算法隐含的假设: 实际测量: IP分片按照偏移量从小到大的顺序发送 多数情况下IP包顺序到达 许多较新的实现(包括Linux),发送端按照分片偏移量从大到小的顺序发送IP分片! 原因:最后一个分片携带了IP包总长度的信息,让最后一个分片最先到达接收端,方便接收端为数据包分配适当大小的缓冲区

算法调整 使用第一个到来的分片,判断发送端按照什么顺序发送IP分片 如果第一个到来的分片是第一个分片,使用前述实现 如果第一个到来的分片是最后一个分片,跳转到按逆序处理的程序: 最后一个分片放在链表头部,其余分片按偏移量降序排列 用分片的末字节偏移量与链表尾部分片的起始偏移量进行比较

9.4 总结 缓冲区分配: 缓冲区共享: TCP输入处理、IP分片重组: 空间利用率 vs 合并不连续空闲区域的难度 缓冲区窃取 通过优化预期情形的处理,提高大多数情况下的算法性能