模型的重要性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模型的重要性

网络算法学的一个中心难题是,它要求跨领域的知识,包括协议、硬件、体系架构、操作系统、算法等。但是一个人不可能对所有这些领域都非常了解,因此需要不同领域的专家协作才能设计出高效的网络系统。

不同领域的专家之间如何进行有效的对话呢?这时模型就很有用了,模型既可以把问题讲清楚,又不涉及不必要的细节。

最低程度,模型应能定义所需要的术语,这样不同领域的专家就能交流了(能听懂对方的话了)。最好情况:领域外的专家可以根据模型进行设计,并可由领域内的专家对设计进行检验。比如,算法设计者虽然不懂得硬件,但能够根据硬件专家给出的模型设计出与硬件相匹配的算法,并在硬件上进行验证。这正是本章的目的。

下面给出几个与网络计算机系统性能有关的抽象模型。

2.1 协议抽象模型

协议是网络的核心,各种网络功能都是通过执行协议来实现的。协议定义了对等实体之间通信的规则,对等实体之间通过交换报文来实现通信。网络协议定义了报文的格式和交换次序,……,协议还定义了调用接口。

因此,可将协议看成是一个加上了接口和报文格式的状态机。所有协议都可以抽象为图中的状态机模型:……。

常见而耗时的功能

这门课关注的是系统性能,而TCP/IP协议是因特网的核心,所以我们把基于TCP/IP 的协议状态机需要经常执行而又非常耗时的功能抽象出来,这些功能正是我们优化实现的重点。图示的模型将贯穿于整个课程中。

图的中部是协议处理部分(传输层、网络层);图的下部是与网络的接口部分,涉及数据包的收发;图的上部是应用程序部分,涉及应用数据的交付。

在图的下部(Data Manipulation):协议状态机必须从网络接收和发送数据包。这涉及到数据操作,即必须读或写数据包中的每一个字节(当操作时间与数据长度成正比时,通常认为这是一个高开销的操作)。在此过程中需要分配资源,如分配缓冲区、CPU时间等(缓冲区分配、任务调度都需要操作系统参与)。

图的中部(Protocol processing)描述了许多协议都需要的一些功能,协议处理开销随着包数量的增加而增大:

(1)很多协议允许将大块数据分成小段传输,因而需要重组功能。

(2)协议都需要查找或者修改一些状态。例如,每个TCP包到来都会导致TCP去查找TCP连接表并修改连接状态,每个IP包到来都会导致IP去查找转发表等。

(3)协议都需要设置定时器。

(4)如果协议模块需要处理多个不同的客户程序,它需要有效地调度这些客户,例如TCP必须调度对不同连接的处理。

在图的上部:协议状态机必须将数据包交付(Demultiplex)给某个客户程序。在某些情况下,客户程序程序需被激活,产生开销较大的控制切换(control transfer)。比如,当TCP 收到一个web页时,根据端口号将数据包交给web浏览器程序,并可能需要唤醒运行浏览器的进程。当目标程序很多的时候,解复用和控制切换都会产生很大的开销。

本课程的主要内容就是仔细研究这些功能的实现。我们会看到,尽管这些常见功能一般来说开销很大,但是通过正确的技术是可以降低它们的开销的。

重要的性能度量

网络中两个最重要的性能指标:吞吐量,延迟。

我们比较熟悉比特速率这个指标,但在某些情况下我们更关注包速率这个指标。比如,对于路由器来说,每个包的处理开销是差不多的,包括包头检查、IP地址表查找等。包的长度越短,单位时间内包的数量就越多,路由器的负担就越重,因此包速率是更能够反映路由器处理能力的指标。因此在做路由器压力测试时,输入的都是最小长度的包。当然,如果我们关注与数据处理有关的功能,比如内容扫描、加密/解密等,那么长包的处理压力大,这时我们会采用比特速率这个指标。

线速处理是网络系统优化的重要目标之一。为满足线速处理要求(当前数据包必须在下一个包到来前处理完),必须限制最坏情况下数据包的处理时间。所以,往往我们对最坏情况延迟更感兴趣。

性能测量分为全局性能测量(如端到端延迟和带宽)和本地性能测量(如路由器查找速度)。尽管全局性能测量对于整个网络的性能很重要,但本课程只关注本地性能测量。

大多数网络管理工具(如HP的OpenView)用于全局测量,本地测量需要的工具是在计算机内部测量性能的工具,比如英特尔的VTune。

因特网环境的特点

当我们优化任何一个系统时,都要考虑它的运行环境。不要试图做出一个在各种情况下都最优的系统,因为通用和最优也是一对矛盾。就像我们前面介绍过的DIR24-8算法,它充分利用了因特网中绝大多数路由表项的前缀不超过24位、24位索引表消耗内存空间不大这个特点设计的,对于长度为128位的IPv6地址就不适用。(将来你们做研究时也要注意这个问题)

因此,我们要设计因特网中的高效网络系统,那么一定要了解因特网环境的特点。

链路速度:链路速度高意味着包的最大处理时间在缩短。

TCP占主导:传统应用主要使用TCP,P2P文件共享等也使用TCP(要求可靠传输),因此TCP优化很重要。

小包:研究表明,路由器收到的包中大约一半为最小长度(40字节)的TCP响应包。在移动互联网应用中,大量的都是小包。

延迟很长:网络中的实际来回延迟远远超过光的传输延迟。测量发现,数据包穿过美国的延迟时间平均为241ms,而光的传输延迟不超过30ms。延迟增大可能是由追求高吞吐量造成的,比如在调制解调器上的批量压缩和在路由器中的流水处理,也可能因为拥塞造成。

局部性很差:骨干网上的流量研究表明,在一个非常短的时间内大约有一百万个并发流(具有不同的<源,目的>对)经过一个路由器,因此局部性很小。也就是说,在一个包上执行的计算在未来短时间内重用到另一个包上的可能性很小,因此路由缓存不奏效。正因为如此,路由缓存在现在的高速路由器中已经不用了,转而使用高速的IP地址查找技术,如硬件实现的DIR24-8算法。

从因特网环境的特点,我们可以看到网络系统面临的挑战:高速+小包=包速率很快;高速+大规模并发流量=局部性差,cache用不上;TCP很重要,但TCP开销大、处理复杂。

2.2存储器

在现代计算机系统结构中,访存是最大的性能瓶颈,因为访存延迟比指令执行时间长很多,而且处理器速度和访存速度之间的鸿沟越来越宽,使得访存瓶项问题更加突出。

相关文档
最新文档