中国科学技术大学:《网络算法学》课程教学资源(PPT课件)第六章 传输控制

第六章传输控制

6.1为什么有控制开销? 举例:Web服务器响应一个GET请求的过程: 客户向服务器发送了一个GET请求( GET File1) 。包到达服务器适配器,适配器将包拷贝到内存(DMA),然 后通过中断通知CPU CPU响应中断,进行协议处理,通过 unblock之前的一个系 统调用来通知Web服务器 服务器进程解析GET请求,得到文件名 服务器查找一个目录结构,确定文件在磁盘上的位置 服务器进程启动对文件系统的读操作(一个系统调用) 若文件不在 file cache中,文件子系统启动一个磁盘l/O操作 文件进入应用缓冲区后,服务器通过写相应的套接字(另 个系统调用)发送HTTP响应
举例:Web服务器响应一个GET请求的过程: ◦ 客户向服务器发送了一个GET请求(GET File 1) ◦ 包到达服务器适配器,适配器将包拷贝到内存(DMA),然 后通过中断通知CPU ◦ CPU响应中断,进行协议处理,通过unblock之前的一个系 统调用来通知web服务器 ◦ 服务器进程解析GET请求,得到文件名 ◦ 服务器查找一个目录结构,确定文件在磁盘上的位置 ◦ 服务器进程启动对文件系统的读操作(一个系统调用) ◦ 若文件不在file cache中,文件子系统启动一个磁盘I/O操作 ◦ 文件进入应用缓冲区后,服务器通过写相应的套接字(另一 个系统调用)发送HTTP响应

代码组织与进程切换 网络代码的组织方式: 0每层实现为一个进程:处理一个包产生的进程调度开销(几百 微秒)比一个包的到达时间要大得多 。所有层实现为一个进程:控制开销最小(这种方法最多见) Web服务器的组织方式: 。每个进程服务一个客户:并发度最大,进程切换开销最高 。一个进程服务所有客户:上下文切换开销最小,进程须自己调 度客户以实现最大的并发度(调度开销) 0将客户划分成组,每个进程服务一组客户:并发度和调度/切 换开销适中 代码的组织方式:主要考虑并发度和调度/切换开销的权衡
网络代码的组织方式: ◦ 每层实现为一个进程:处理一个包产生的进程调度开销(几百 微秒)比一个包的到达时间要大得多 ◦ 所有层实现为一个进程:控制开销最小(这种方法最多见) Web服务器的组织方式: ◦ 每个进程服务一个客户:并发度最大,进程切换开销最高 ◦ 一个进程服务所有客户:上下文切换开销最小,进程须自己调 度客户以实现最大的并发度(调度开销) ◦ 将客户划分成组,每个进程服务一组客户:并发度和调度/切 换开销适中 代码的组织方式:主要考虑并发度和调度/切换开销的权衡

Web服务器中的控制开销 Process per group; groups defined by application structure Scheduling overhead vS. loss of currency Web server application System call overhead lwrite0 readY FindActive0↓ Scheduling overhead TCP/IP File system Tracking active files and connections Kernel Interrupt overhead CPU Packet received MEMORY DISK BUS NETWORK ADAPTOR Network FIGURE 6.2 Control overhead involved in handling a get request at a server

本章考虑的控制开销 进程切换:几百微秒 系统调用:几十微秒 中断处理:几微秒 在一个10Gbps的以太网链路上传输最小长度(64 字节)的包,每隔51.2ns会到来一个包。 丶CPU速度的提高并不会显著降低上述控制开销,因 为这些开销与访存有很大关系
进程切换:几百微秒 系统调用:几十微秒 中断处理:几微秒 在一个10Gbps的以太网链路上传输最小长度(64 字节)的包,每隔51.2ns会到来一个包。 CPU速度的提高并不会显著降低上述控制开销,因 为这些开销与访存有很大关系

6.2避免网络代码中的调度开销 UNX将所有协议代码作为内核进程的一部分执行 当一个包到达时, 网络适配器产生一个硬件中断 。中断处理程序将包放入一个内存队列,然后通过软件中 断调度一个内核进程(一次上下文切换) 内核进程执行协议处理,通过检查传输层端口号得到目 的应用,唤醒应用(一次上下文切换) 每个包的处理至少经历两次上下文切换: 中断上下文到内核进程(协议处理) 内核进程到应用进程
UNIX将所有协议代码作为内核进程的一部分执行 当一个包到达时, ◦ 网络适配器产生一个硬件中断 ◦ 中断处理程序将包放入一个内存队列,然后通过软件中 断调度一个内核进程(一次上下文切换) ◦ 内核进程执行协议处理,通过检查传输层端口号得到目 的应用,唤醒应用(一次上下文切换) 每个包的处理至少经历两次上下文切换: ◦ 中断上下文到内核进程(协议处理) ◦ 内核进程到应用进程

在用户空间实现协议 基本思想: 协议处理与应用在同一个进程中,可以通过 upcall 进行通信 用户级实现的好处 可以绕过内核,直接从中断上下文到应用进程,减 次上下文切换 协议代码可以在用户空间编写和调试 问题: 中断例程如何确定将包交给哪个应用进程?
基本思想: ◦ 协议处理与应用在同一个进程中,可以通过upcall 进行通信 用户级实现的好处: ◦ 可以绕过内核,直接从中断上下文到应用进程,减 少一次上下文切换 ◦ 协议代码可以在用户空间编写和调试 问题: ◦ 中断例程如何确定将包交给哪个应用进程?

中断例程如何确定包的应用进程? 方案一:使用一个解复用进程 解复用进程检查所有的包,确定包的目标进程, 将包交给目标进程。 缺点:增加一次进程切换。 Demux- Process 1 Process 2 process KERNEL (driver)
方案一:使用一个解复用进程 ◦ 解复用进程检查所有的包,确定包的目标进程, 将包交给目标进程。 ◦ 缺点:增加一次进程切换

中断例程如何确定包的应用进程? 方案二: 内核定义一个接口(如 Berkeley packet Filter,BPF) 允许应用声明自己要处理的包类型 中断例程根据一组包过滤器进行解复用(提前解复用) ---Process 1 Process 2---, KERNEL Filter for Filter for s Process 1 Process 2 F1 F3 Arriving Packet FIGURE 6.5 The packet filter approach to demultiplexing
方案二: ◦ 内核定义一个接口(如Berkeley Packet Filter,BPF), 允许应用声明自己要处理的包类型 ◦ 中断例程根据一组包过滤器进行解复用(提前解复用)

协议代码实现为一个共享库 用户级协议实现要求每个应用进程应当实 现协议栈 通常将TCP/P代码实现为一个共享库,链 接到应用中,避免在每个应用中复制 TCP/P代码: TCP/P代码必须是可重入的
用户级协议实现要求每个应用进程应当实 现协议栈 通常将TCP/IP代码实现为一个共享库,链 接到应用中,避免在每个应用中复制 TCP/IP代码: ◦ TCP/IP代码必须是可重入的
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学:《MATLAB程序设计语言》课程教学资源(PPT讲稿)Chapter1 Matlab系统概述.ppt
- 清华大学:Mandarin Pronunciation Variation Modeling.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 用户自定义函数.ppt
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第七讲 顺序统计学(主讲人:吕敏).pptx
- 《Java语言程序设计》课程教学资源(PPT课件讲稿)第三章 面向对象特征.ppt
- Virtual Topologies - Faculty of Science, HKBU.ppt
- 《Adobe Photoshop CS》软件教程(PPT讲稿)第13章 使用路径.ppt
- 《软件开发》课程PPT教学课件:Chapter 16 异常处理 Exception Handling.ppt
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)基于CORBA的分布式平台(CORBA编程-Hello World例程).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第七章 网络安全.ppt
- 北京大学:浅谈计算机研究的层次与境界(李振华).pptx
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)计算机图形学引言(主讲:路通).ppt
- 国家十一五规划教材:《电子商务案例分析》课程教学资源(PPT课件)第11章 网络社区模式案例分析.ppt
- 西安电子科技大学:《操作系统 Operating Systems》课程教学资源(PPT课件讲稿)Chapter 08 多处理器系统 Multiple Processor Systems.ppt
- 计算机问题求解(PPT讲稿)图论中的其它专题.pptx
- SIGCOMM 2002:New Directions in Traffic Measurement and Accounting.ppt
- 厦门大学计算机科学系:《大数据技术原理与应用》课程教学资源(PPT课件)第十章 数据可视化.ppt
- 成都信息工程大学(成都信息工程学院):分层分流培养个性发展的计算机卓越工程师——专业课分层教学探索与实践.ppt
- 沈阳理工大学:《Java程序设计基础》课程教学资源(PPT课件讲稿)第1章 创建Java开发环境.ppt
- 北京师范大学网络教育:《计算机应用基础》课程教学资源(PPT讲稿)第8章 计算机安全、第9章 多媒体技术.pptx
- 香港浸会大学:《Data Communications and Networking》课程教学资源(PPT讲稿)Socket Programming Part II:Design of Server Software.ppt
- 上海交通大学:《软件开发》课程教学资源(PPT课件)第一讲 概述.ppt
- 《计算机网络原理》课程教学资源(PPT课件讲稿)第二章 网络实现模型.ppt
- 香港理工大学:INSTRUCTION SETS 指令.pptx
- 计算机问题求解(PPT讲稿)B树.pptx
- 北京大学远程教育:《计算机应用基础》课程PPT教学课件(专科)串讲(综合复习).pptx
- 《Microsoft Access 2003》教程PPT:第9章 报表设计.ppt
- 《编译原理和技术》课程PPT教学课件:第十三章 函数式语言的编译.ppt
- 四川大学:Object-Oriented Design and Programming(Java,PPT课件).ppt
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第五章 循环与分支程序设计.ppt
- 《C程序设计》课程PPT教学课件(电子教案)第六章 函数.ppt
- 基于语义关联和信息增益的TFIDF改进算法研究.ppt
- Integrated analysis of regulatoryand metabolic networks revealsnovel regulatory mechanisms inSaccharomyces cerevisiae.ppt
- 山东大学:《计算机图形学》课程PPT教学课件(Programming with OpenGL)Part 3:Three Dimensions.ppt
- 《算法设计技巧与分析》课程教学资源(PPT讲稿)Lecture 8 贪婪法则 Greedy Approach.ppt
- 山西国际商务职业学院:《网页设计与制作》课程教学资源(PPT课件)第一章 网页设计基础知识.ppt
- 《多媒体教学软件设计》课程PPT教学课件:第13章 多媒体教学软件中脚本编程技巧.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)动态调度(Cont)、推断执行和ILP.ppt
- 香港浸会大学:《Experiencing Cluster Computing》Class 8 Case Studies.ppt
- 香港理工大学:Building Robust Wireless LAN for Industrial Control with DSSS-CDMA Cell Phone Network Paradigm.ppt