1.1、使用计算机 络
引言:
- 大量互相独立但彼此连接的计算机共同完成计算任务——这些系统被称为计算机 络。如何设计并组织这些 络是本书的主题。
- 计算机与分布式系统的关键差别在于:由一组独立计算机组成的分布式系统呈现给用户的是一个关联系统。最著名的分布式系统是万维 。
1.1.1商业应用:
- 公司内部通常需要资源共享。虚拟专用 络(VPN,Virrual Private
Networks)技术可以将不同地点的单个 络连成一个扩展 络,以试图终结“地理位置的束缚”。 - 公司的信息系统就像是一个或多个数据库。数据储存在性能强大的计算机上(即服务器),通常服务器集中在一起,由一个系统管理员负责维护,员工桌子上用于访问数据的机器就称为客户机。这种安排方式称为客户机——服务器模型。最受欢迎的是Web应用。
- 构建计算机 络的第二个原因是公司员工之间通信的需要。员工们可以使用电子邮件和IP语音通信。领导可以使用视频会议。桌面共享使得远程工作人员与一个图形化计算机屏幕交互工作,因而多个员工可以在不同地点读写同一块黑板,或者合写一份 告。
- 第三个原因则是电子商务。这样可以减少库存,提高工作效率。
1.1.2家庭应用:
- 个人与远程数据库之间的交互。
- 对等通信:使用客户机——服务器模型,但没有固定分工,也没有中央数据库。每个用户在本地维护自己的数据库并为附近群体中的其他成员提供服务。(电子邮件本质上也是对等模式)
- 人与人之间的通信。电子邮件、即时消息、远程学习等。
- 电子商务。
- 娱乐。
- 普适计算。通过嵌入智能家居监控的传感器,家庭用电可以通过 络获得;烟雾探测器可以直接呼叫消防部门。
- 射频识别(PFID,Raio Frequency IDentification)技术可能将物联 世界的想法逐步变成现实。
1.1.3移动用户:
- 与Internet的连通性是移动应用(如笔记本)的前提。由电话公司经营的蜂窝 络是一种我们最熟悉的无线 络,通过基站提供的手机覆盖面把大家联系在一起。基于802.11标准的无线热点是另一种无线 络,只需一台笔记本电脑和一个无线调制解调器就能连接到Internet。
- 手机了驱动移动无线的应用,智能手机迎上了电话和internet的融合时代,结合了移动电话和移动电脑两方面的内容。它们连接的蜂窝 络可以提供Internet的快速数据服务,同时处理电话服务,许多手机还能连接到无线热点。
- 未来预见:传感器 络、可穿戴式计算机。
1.1.4 会问题
- 敏感政治问题、盗版作品问题、隐私问题、信息的真实性、垃圾信息、电子赌博以及病毒、钓鱼邮件等。
- 完全自动图灵测试(CAPTCHA,Completely Automated Public Turing test to tell Computers and Human Apart):区分人类和计算机的技术。例如在一个扭曲的图像中显示字母并输入对应的字母,以便证实他们是人类。
1.2 络硬件
引言:
- 计算机 络没有被普遍接受的分类方法,但有两个重要维度:传输技术和 络尺度
传输技术:
-
目前普遍使用的传输技术有两种:广播式链路和点到点链路。
-
点到点链路:将一对单独的机器连接起来。在这种 络中,为了从源端到达接收方,短消息必须首先访问一个或多个中间机器,这种短消息在某些情况下被称为数据包或者包(packet)。通常在 络中有可能存在多条不同的路由,因此,找到一条好的路由对点到点 络非常重要。点到点传输只有一个发送方和接收方,有时候也被称为单播。
-
广播式链路:在此 络上,任何一台机器发出的数据包能被其他任何机器收到。每个数据包的地址字段指定了预期的接收方。当一个机器收到数据包时,它检查地址字段。如果包的目的地就是接收机器,则该机器要处理次数据包;否则忽略。广播系统往往提供将一个数据包发送给所有目标的可能性,只要在地址字段中使用一个特殊的编码。如果被传输的数据包带有这样的地址编码,那么 络中的每一台机器都会接受该包并处理——即广播。有些广播系统还支持给一组机器发送数据包的模式——即组播。
络尺度:
-
个域 、局域 、城域 、广域 、互联 络(两个或多个 络的连接)。
-
个域 (PAN,Personal Area Network):处理器之间的距离在10米之内。
应用:计算机通过无线 络(蓝牙)与外围设备连接。(如果外设不通过电缆连接的话)
最简单的形式下,蓝牙采用主—从操作模式,系统单元(PC)通常是主设备,与鼠标、键盘灯从设备通信。主设备告诉从设备以后广播时使用什么地址、它们能传输多长时间、它们可以使用什么频率等所有与传输相关的信息。
其他应用:蓝牙耳麦与手机,数字音乐播放器与汽车等(都是个域 )
PAN也可以采用其他短程通信技术搭建:比如智能卡和图书馆书籍上的RFID。 -
局域 (LAN,Local Area Network):处理器之间的距离在10公里之内。
局域 是一种私有 络。局域 被广泛用来连接个人计算机和消费电子设备,使它们能够共享资源和交换信息。当局域 被用于公司时,它们就称为企业 络。这些系统中,每台计算机都有一个都有一个无线调制解调器和一个天线,用于与其他计算机通信,大多数情况下,每台计算机与安装在天花板上的一个设备通信,这个设备被称为接入点、无线路由器或者基站,它负责中继无线计算机之间、无线计算机与Internet之间的数据包。 -
IEEE 802.11:是无线局域 的一个标准,俗称WiFi。
-
有线局域 使用了各种不同的传输技术。它们大多使用铜线作为传输介质,有一些使用光纤。有线局域 在性能所有方面都超过了无线局域 ,因为通过空气发送信 更难。许多有线局域 的拓扑结构是以点到点链路为基础的。俗称以太 的IEEE 802.3是迄今为止最常见的一种有线局域 。
举例:交换式以太 ——每台计算机按照以太 协议规定的方式运行,通过一条点到点链路连接到一个盒子,这个盒子称为交换机。一个交换机有多个端口,每个端口连接一台计算机。交换机的工作是中继与之连接的计算机之间的数据包,根据每个数据包中的地址来确定这个数据包的目标计算机。为了建立更大的局域 ,交换机必须插入到彼此的端口中。为了将大的局域 分成两个较小的逻辑局域 即独享的虚拟局域 (Virtual LAN或者VLAN),在这种设计中,交换机每个端口都带有一个“彩色”的标签,比如说绿色表示工程部门,而红色表示财务部门,交换机在转发数据时会区别开来。 -
其他形式的有线局域 拓扑结构:经典以太 (原始以太 )——在最初的以太 设计中,所有数据包在一条线性电缆上广播,因而一次至多只有一台机器能成功发送,为此,需要一个分布式仲裁机制来解决冲突问题。分布式机制的算法很简单:只要电缆空闲计算机就可以传输;如果两个或以上的数据包发生冲突,每台计算机只是等待一个随机时间后再次试图发送。
-
无线和有线广播 络可以分为静态设计和动态设计,两种设计取决于如何分配信道。一个典型的静态分配方案是将时间划分为离散的时间间隔(时间槽)并使用轮循算法,每台机器只能在分配给它的时间槽到来时广播。当一台机器在分配给它的时间槽到来时没有任何数据需要发送,这种方案就浪费了时间,因此大多数系统都试图动态分配信道。一个公共信道的动态分配方法可以是集中式的,也可以是分散式的。在集中式的信道分配方法中,有一个中心实体,例如蜂窝 络中的基站,由这个中心实体决定接下来谁使用信道。具体的算法可能是他接收多个数据包,按照某个内部算法确定这些数据包发送的优先次序。在分布式信道分配方法中,没有一个中心实体;每台机器必须自行决定是否可以传输。
-
城域 (MAN,Metropolitan Area Network):处理器在100公里之内。
应用:有线电视 。当Internet开始吸引人们的时候,有线电视 络经营商也开始意识到,只需要利用原来尚未使用的频谱就可以提供双向的Internet服务。电视信 和Internet流量都被送往一个集中式线缆的前端,然后再分发到居民家中。
有线电视不是唯一的城域 ,虽然它是一种局域 。另一种城域 ——被标准化为IEEE 802.16——即WiMAX。 -
广域 (WAN,Wide Area Network):处理器在一万公里以内。
以一个公司为例:公司在墨尔本、珀斯、布利斯三处有办事处。每个办事处的计算机称为主机,连接主机的部分称为子 。子 组成:传输线路和交换元素。传输线路负责在机器之间移动比特,可以是铜线、光纤、无线链路。交换元素或简称为交换机(现在常称为路由器),是专用的计算机,负责连接两条或两条以上的传输线路。
第一种广域 :办事处直接连接到Internet,办事处通过虚拟链路相互连接,而这些虚拟链路使用了底层Internet的容量,这种方式称为虚拟专用 络(VPN,Virtual Private Network)。
第二种广域 :子 由不同的公司负责运营。子 运营者称为 络服务提供商。如果子 运营商还与Internet的其他 络相连,这样的子 运营商称为Internet服务提供商(ISP,Internet Service Provide),相应的子 被称为ISP 络。两个路由器没有直连的传输线路,必须通过其他路由器间接通信,决定使用哪条路径的策略称为路由算法。每个路由器决定如何把一个数据包发送到哪个位置的策略称为转发算法。
其他广域 :卫星系统、蜂窝移动电话 络。 -
互联 络:一组相互连接的 络称为互联 或互联 。全球范围的互联 称为因特 (首字母大写),Internet使用ISP 络连接各种各样的企业 络、家庭 络和其他 络。(第一,如果不同的组织出资构建了 络的不同部分,并且各自维护,那么它们可以构成互联 络;第二,如果 络的不同部分采用了不同的底层技术,如广播与点到点、无线与有线。也可以构成无线 络。)。将两个或多个 络连接起来并提供必要转换的机器,其硬件和软件方面的总称是 关。路由器可以是 关。
1.3、 络软件
1.3.1 协议层次结构
- 为了降低 络的复杂性,绝大多数 络被组织成一个层次栈或分级栈,每一层都建立在其下一层的基础之上。
- 一台机器上的第n层与另一台机器上的第n层进行对话,该对话中使用的规则和约定统称为第n层协议(protocol)。
- 不同机器上构成相应层次的实体称为对等体(可以是软件过程、硬件过程、甚至是人类)。
- 每一层数据都将数据和控制信息传递给它的下一层,直到传递到最底层,第一层下面是物理介质,通过它进行实际通信。每一对相邻层次之间的是接口。接口定义了下层向上层提供哪些原语操作和服务。层和协议的集合称为 络体系结构。一个特定的系统所使用的一组协议,称为协议栈。
1.3.2 层次设计问题
- 可靠性:当某些比特遭到损坏,编码的检错、纠错机制;当某条路由不通时, 络应自动做出路由选择。
- 络增长:协议分层,识别发送方和接收方(寻址和命名),消息顺序编 , 络传输的最大长度导致分段机制出现。
- 资源分配:统计复用——动态共享 络宽带,快速发送方的数据不会把慢速接收方淹没——流量控制, 络拥塞,实时的服务质量。
- 安全性:保密性——认证机制,信息完整性。
1.3.3 面向连接与无连接服务
- 下层可以向上层提供两种类型的服务:面向连接和无连接服务。
- 面向连接服务:安装电话系统建模的。服务用户首先必须建立一个连接,然后使用该连接传输数据,最后释放该连接。
- 无连接服务:按照邮件系统建模的。每个 文(信件)都携带了完整的目标地址,每个 文都由系统中的中间节点路由,而且独立于于后续 文。 文在不同上下文中有不同的称呼:数据包/包是 络层的 文。如果中间节点收到 文所有内容后再发给下一个节点——储存-转换交换;如果 文在没有全部接收完毕之前就向下一个节点传输——直通式交换。
- 具体服务类型:
服务 | 例子 | |
---|---|---|
面向连接 | 可靠的 文流 | 顺序页面 |
面向连接 | 可靠的字节流 | 移动下载 |
面向连接 | 不可靠的字连接 | IP语音 |
无连接 | 不可靠的数据 | 垃圾邮件 |
无连接 | 有确认的数据 | 文本消息 |
无连接 | 请求-应答 | 数据库查询 |
1.3.4 服务原语
- 一个服务由一组原语正式说明,用户进程通过这些原语(操作)来访问该服务。原语告诉服务要执行某个动作,或者将对等体所执行的动作 告给用户。如果协议栈位于操作系统中,则这些服务原语通常是一些系统调用。
- 简单例子
原语 | 含义 |
---|---|
LISTEN | 阻塞操作,等待入境连接请求 |
CONNECT | 与等待中的对等实体建立连接 |
ACCEPT | 接受来自对等实体的入境连接请求 |
RECEIVE | 阻塞操作,等待入境 文 |
SEND | 给对等实体发送一个 文 |
DISCONNECT | 终止一个连接 |
首先,服务器执行LISTEN,表示它已经准备好接受入境连接。通常实现LISTEN的方式是将它做成一个阻塞的系统调用。在执行了LISTEN原语之后,服务器进程被阻塞,知道有连接请求来到为止。
接着,客户机执行CONNECT原语,以便于服务器建立连接。CONNECT调用需要指定跟谁连接,所以它可能有一个参数来指定服务器的地址。操作系统会发送一个数据包请求建立连接,客户进程被挂起,直到有应答为止。
数据包到达服务器时,服务器看到这是一个请求连接包,它就检查是否存在一个监听进程。如果有,就解除该监听进程的阻塞,用ACCEPT调用创建连接,之后发给客户机一个确认消息,客户机接收后就恢复运行状态,这时才真正建立一个连接。
下一步是服务器执行RECEIVE,准备接受第一个请求。通常情况下,一旦服务器从LISTEN的阻塞状态被释放后,会马上执行RECEIVE,这时确认消息往往还没有到达客户机。RECEIVE再次阻塞了服务器。
然后客户机执行SEND发送它的请求,接着执行RECEIVE等待服务器应答。请求数据包到达服务器后,首先操作系统解除服务器的RECEIVE阻塞,使得可以处理客户请求。处理后,服务器通过SEND将请求的执行结果返回给客户机(是否此时继续调用RECEIVE阻塞进程呢上无解释)。数据包到达客户机后,客户机的RECEIVE阻塞被解除,并检查服务器返回的结果。如果客户机还有其他请求,它现在可以继续发送这些请求。
如果客户机的任务已经完成,它通过执行DISCONNECT终止当前连接,进程被阻塞,并给服务器发送一个数据包。服务器接收这个包后,它也发送一个DISCONNECT,作为确认消息,并释放该连接。服务器的的包到达客户机后,进程阻塞解除,该连接正式终止。综上所述,就是面向连接的通信过程。
1.3.5 服务与协议的关系
服务:是指某一层向上一层提供的一组原语(操作)。服务定义了该层准备代表用户执行哪些操作。低层是上层的服务提供者。
协议:协议是一组规则,规定了同一层上对等体之间所交换的数据包或者 文的格式和含义。对等体利用协议来实现它们服务的定义。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!