欢迎来到天天文库
浏览记录
ID:48606607
大小:143.00 KB
页数:7页
时间:2020-01-29
《常规计算机硬件体系结构.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.word可编辑.第二章常规计算机硬件体系结构早期的包处理系统是建立在常规计算机系统之上的,这也是最廉价的包处理系统。我们定义一个常规的计算机系统由四个基本部件组成:一个CPU,一个内存,一个或多个I/O设备,一条总线。总线连接另外的三个基本部件,并允许它们相互通信。PC机是一个常规计算机系统,因为它包括了以上所有四个部件。为了将一台常规的计算机转换成一个可以处理数据包的网络系统,必须在计算机上增加一些硬件和软件。增加的硬件用来发送和接收数据包,增加的软件用来处理数据包。2.1早期的NIC将一个计算机系统连接到一个网络的
2、硬件设备称为网络接口卡(NetworkInterfaceCard,NIC)。对于计算机来说,NIC和其它I/O设备一样连接到计算机的总线并由CPU控制,CPU控制NIC的方法与控制其它I/O设备的方法也相同。对于网络来说,NIC表现得像一台主机,即NIC可以发送和接收数据包。主机和包分析器只连接到一个网络上,这样的系统只需要一块NIC。复杂一些的系统,像网桥、路由器等,要求多个网络连接。当系统需要多个网络连接时,有两种可能的实现方法。一种方法是将多块网卡插入到总线扩展槽中,每块网卡连接一个网络;另一种方法是在一块电路板上
3、提供多个独立的网络接口,电路板插入扩展槽中,每个网络接口连接一个网络,目前已经出现了这种商用的NIC硬件。从计算机的角度来看,这两种方法没有什么区别。但是由于总线扩展槽的数量是有限的,因此后一种方法更好,可以节省扩展槽。网络接口由CPU操作,这意味着CPU控制着所有数据包的发送和接收。为发送一个数据包,CPU首先在内存中组装好数据包,然后将包传递给NIC,NIC再将数据包发送到网络上。在系统接收一个数据包前,CPU必须先允许NIC,指明数据包存放的位置。NIC等待从网络上到来的数据包,将其存放到指定的位置,然后通知CPU
4、。NIC中通常包含实现物理层协议标准的物理接口芯片组,它们保证每个输出的帧具有正确的格式并且产生出符合物理层协议标准的信号波形;类似地,它们检查每个到来的帧以保证每个帧是有效的。数据总线上一次可以传输的数据量由数据总线的宽度(即数据线的数目)决定。一般来说,数据总线的宽度不足以一次传输一个完整的帧,因此一个帧必须分成许多较小的片段(如32比特)分多次传递给NIC。由于NIC是由CPU操作的,这意味着CPU必须参与到这种传输过程中。事实上,早期的NIC硬件依赖于计算机系统的CPU完成帧的收发。在帧的接收过程中,CPU反复地
5、访问NIC取得下一个片段的数据,然后存放到内存中。在帧的发送过程中,CPU反复地将帧的片段发送给NIC。使用CPU传输数据包的主要优点是代价低,因为NIC硬件不需要做很多事,因此可以做得很简单。主要的缺点是开销大和可扩展性差,使用CPU处理输入输出意味着它不能做别的事;更重要的是,一个CPU无法适应高速网络,特别是当系统有多个网络接口时。2.2现代的NIC为了支持多个网络接口和适应高速网络,必须将输入/输出和包处理分离开来,并尽可能避免使用CPU,因此现代的NIC都包含独立于CPU操作的复杂硬件。以下四种技术用来优化数据
6、传输和减少开销:(1)卡上地址识别和过滤;(2)卡上包缓存;(3)直接内存访问DMA;(4)操作链。(1)卡上地址识别和过滤.专业.专注..word可编辑.以太网使用共享媒体进行传输,每个节点实际上可以收到所有的帧,只是丢弃哪些不是发给自己的帧。这意味着,每个节点必须接收网络上传输的每一个帧,然后检查帧头中的目的地址以决定是否要处理这个帧。如果目的地址匹配节点的单播地址或者广播地址,就处理该帧,否则丢弃。卡上地址识别和过滤的想法很简单,就是不用计算机的CPU检查帧的目的地址,而是用NIC的硬件来测试。也就是说,设计能够独
7、立操作并能检查帧头中目的地址的NIC硬件。当一个帧到达时,NIC检查帧的目的地址;如果目的地址不匹配节点的单播地址或广播地址,则丢弃帧,并且不中断CPU。卡上地址识别可极大减轻CPU的负担,因为所有的帧都在共享网络上传输,而其中只有很少的帧是需要一个特定节点来处理的。卡上多播地址的识别增加了NIC的复杂度。每个多播地址对应一个多播组,一个节点可以加入到多个多播组中,并且节点可以动态地加入或离开一个多播组,因此节点应识别的多播地址集合是动态改变的,这与固定不变的单播地址及广播地址完全不同。只要多播帧匹配多播地址集合中的任何
8、一个地址,节点就应处理该帧,否则丢弃该帧。早期的NIC不过滤多播帧,而是将所有的多播帧都接收下来,交给CPU去检查和判断。然而,接收所有的多播帧会导致很高的开销,因为多播经常被音/视频这样的应用用来发送连续的数据流。更糟糕的是,网络上所有的节点都要产生这个开销,即使它们不参加任何一个多播组。为减小开销,现代的NIC提
此文档下载收益归作者所有