课程简介:概要介绍了高效实现网络系统的15条原则.doc

课程简介:概要介绍了高效实现网络系统的15条原则.doc

ID:58491610

大小:92.00 KB

页数:9页

时间:2020-09-22

课程简介:概要介绍了高效实现网络系统的15条原则.doc_第1页
课程简介:概要介绍了高效实现网络系统的15条原则.doc_第2页
课程简介:概要介绍了高效实现网络系统的15条原则.doc_第3页
课程简介:概要介绍了高效实现网络系统的15条原则.doc_第4页
课程简介:概要介绍了高效实现网络系统的15条原则.doc_第5页
资源描述:

《课程简介:概要介绍了高效实现网络系统的15条原则.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、原则的运用第三章概要介绍了高效实现网络系统的15条原则,这一章挑选一些例子说明这些原则是怎么运用的。这里给出的例子都很小,但并不简单。这些例子均从真实的问题中抽取,有些解决方案就是在真实产品中使用的。我们要重点关注的是思维方式,而不是一个具体问题的解决。对于每个例子,按照提出问题、分析提示和解决思路的顺序来介绍。4.1应用设备通道的缓冲区验证应用程序通常必须通过系统调用来收发包,这是因为操作系统向应用程序提供了简单I/O的抽象,以简化应用程序使用I/O设备,同时也可实现应用程序之间的隔离。然而,通过内核通信增加了系

2、统调用的开销。应用设备通道允许应用程序直接读写网络适配器的内存来进行网络收发,以减少系统调用的开销。注意,这里只是允许应用程序直接访问适配器内存,适配器的控制寄存器仍然只能由操作系统来读写。应用设备通道的基本思想将网络适配器内存看成是主存的一部分,采用虚拟存储系统来管理。为什么可以将适配器内存看成是主页的一部分呢?在一个内存映射的体系结构中,设备的寄存器及存储器被映射到一块内存区域,CPU通过读写这块内存区域与设备通信。因此在CPU看来,适配器的内存也是主存的一部分,可以和主内一样来进行管理。具体来说,操作系统将网

3、络适配器的存储空间划分成一系列的物理页,预先为每个应用分配一定数量的物理页,并映射给应用程序使用。应用程序可以直接读写映射给它的内存页,这个过程不需要内核参与,从而消除系统调用。由于空间有限,适配器内存并不用来直接存放数据包。数据包放在位于主存的包缓冲区中,适配器中只存放包缓冲区的描述符。收发数据包之前,应用将需要使用的包缓冲区描述符写入适配器内存。当适配器需要收发数据包时,从适配器内存中得到包缓冲区描述符。这里有一个问题,应用程序将需要使用的包缓冲区描述符写入适配器内存,如何保证应用只使用分配给它的包缓冲区?隔离

4、应用程序的保护机制应用设备通道采用的方法是,内核预先为每个应用程序分配一定数量的物理内存页存放包缓冲区,并将这些物理内存页映射给应用程序使用;内核同时将这些内存页的页号也通知给网络适配器。网络适配器检查每个应用程序给出的页号是否在其合法的页号集合中。比如,在图4.1中,内核将内存页X、Y、……、L、A映射给应用P使用,这个信息也配置到网络适配器中。P要求适配器将发给它的下一个包放入位于页A的一个包缓冲区中,适配器检查页A是否在分配给P的合法页集合中。问题假定合法页组织在一个线性表中,顺序查找,那么验证的代价为O(n

5、),n为合法页的数量。如果n很大,这个操作的开销很大,会降低适配器的收发包速度。如何加速验证的过程?分析通常会想到的一种方法是使用一个比线性表好的数据结构来降低验证过程的复杂度(P15)。擅长算法的人立即会想到使用哈希表,……二分查找可以提供lon(n)的最坏查找时间,但当n较大时开销也比较大。这两种数据结构都不能解决问题。现在我们换个思路,能不能不用算法来解决这个问题?(想一想)应用的合法内存页是由内核分配的,内核同时将该组页号也传给了适配器,也就是说,应用和适配器拥有相同的信息和数据结构。因此,如果采用系统思维

6、的话,我们可以让应用程序在读写请求中给出页号时,同时指出该页号在线性表中的位置(线索),来方便适配器在线性表中迅速找到指定的页(P9)。解决方案适配器将每个应用的合法页保存在不同的数组中,如图4.2所示。仅当内核更新每个应用程序的合法页集合时,适配器更新相应的数组。当P请求将一个数据包放入页A时,它同时向适配器传递一个句柄,这个句柄就是页A在合法页数组中的索引。适配器使用这个句柄可以很快验证A是否在P的合法页集合中。验证的代价包括一次数组访问和一次比较操作。注意,页号在数组中的位置只是一个帮助快速定位的线索,线索不

7、一定正确,所以需要验证。这个例子说明了系统思维的重要性:不要将适配器查找页号看成是一个孤立的问题(那样就变成了一个纯算法的问题),而是要把它放在整个系统中,看到应用程序和适配器的线性表都是操作系统提供的,是相同的,从这个角度来提出高效的解决方案。4.2ATM流量控制调度器ATM是上世纪80年后期至90年代中期提出的一种网络技术,为了解决已有IP网络的不足,如不支持连接、不提供服务质量、IP路由器很慢等。虽然ATM技术的理念是好的,但是由于缺少上层应用,以及IP网络已经占领了市场,ATM技术最终并未普及开来,将来也不

8、会再有发展。尽管如此,不妨碍我们用ATM举这个例子。每条VC上使用流量控制来限制发送速度。具体做法是:VC每隔一定时间获得一些credit,每个credit可以用来发送一个信元。可以将credit理解成令牌。4.3使用Dijkstra算法计算路由因特网中最常使用的域内路由协议是OSPF协议。路由器首先通过相互交换链路状态分组获得网络的带权拓扑图,然后使用Di

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。