#### 第6章: #### 计算机网络 ##### 6.1 数据通信 1. 模拟通信 其信号的波形可以表现为时间的连续函数。 :-: ![](https://img.kancloud.cn/8e/af/8eafa0dad11b4118e380f4780cd7dd50_500x500.png) 电话信号就是语音声波的电模拟,利用送话器的声/电变换功能,把语音声波压力的强弱变化转变成语音电流的大小变化。 1. 数字信号 :-: ![](https://img.kancloud.cn/d4/9b/d49bcdcc2a31d87041991c9e1c1e9740_500x500.png) 通常以两个离散值(0和1)来表示二进制数字信号,以数字信号为传输对象的传输方式称为`数字传输`, 以数字信号来传送消息的通信方式称为`数字通信`。传输数字信号的通信系统统称为`数字通信系统`。此刻你使用的电脑形成的数据传输系统使用的是数字信号,微观每一个电脑是一个小型数字通信处理器(或数字通信系统),宏观整个计算机网络是一个巨大无比的数字通信系统。其特征是幅度不随时间连续变化,只能取有限个离散值。 :-: ![](https://img.kancloud.cn/30/fe/30fe4631e7e39450e8b0bfb272669ad9_500x154.png) 数据通信模型 数据通信系统模型包括三个系统,和以下5个要素 1. 源点 2. 发送器 3. 传输系统 4. 接收器 5. 终点 数据通信系统的组成 1. 终端设备子系统:数据终端设备及有关的传输和控制设备组成。 2. 数据传输子系统:由传输信道及两端的数据电路终端设备组成。 3. 数据处理子系统:包括通信控制器在内的计算机。通信控制器把来自主计算机的数据经过通信控制器分送给相应的通信线路,或者把来自通信线路的数据经由通信控制器送往主计算机进行处理。 #### 6.2 数据通信网络 数据通信系统中的数据传输子系统实际上是一个数据通信网络。 这个通信网络是由一些处于不同地理位置的数据传输设备、数据交换设备、通信线路等构成的。 :-: ![](https://img.kancloud.cn/32/ad/32adddd9c7306ae7e060d0c70fc5732f_456x435.png) 试想一下:如果没有计算机网络,要实现“人-机”,“机-机”交互是不是要给台计算机拉无数根网线与其他无数台计算机相连呢。 数据通信网络由硬件和软件两个部分组成。 硬件部分包括终端处理设备、数据传输设备、数据交换设备、通信线路和计算机系统等。 软件部分是支持上述硬件配置实现网络协议功能的各种程序。 1. 广域网 广域网通常指覆盖范围很广的远程网络,它由一些结点交换机以及连接这些交换机的链路组成。结点交换机只提供交换功能,它将数据从一个结点交换机传送到另一个节点交换机,直到到达终点。(目前采用分组交换技术)。 2. 局域网 局域网指通过通信线路把较小范围内的各种设备连接在一起的通信网络。与广域网的相比,主要区别在于:覆盖范围小,局域网之间相连的设备属于同一单位,传输率高。 3. 城域网 城域网的地域覆盖介于广域网和局域网之间,是一种主要面向企业用户、可提供丰富业务和支持多种通信协议的公用网络。 ##### ISP(Internet Service Provider)因特网服务提供者 ISP指的是英特网服务提供者,比如中国的电信、网通、铁通、联通、移动公司等。他们一般提供主干ISP服务和地区ISP服务。 :-: ![](https://img.kancloud.cn/7d/c2/7dc28cf9e7fbb467df0bc89d2ef2a0a4_1000x761.png) 英特网交换点IXP是一个物理基础架构,它允许不同的ISP之间通过对等协议进行通信,减少它们各自对上层ISP的依赖,这就使得英特网上的流量分布更加合理,减少分组转发延迟时间,减低分组转发费用,从而提高了运行效率和容错性。比如电信的网络可以和移动的网络相连。 ##### 英特网的组成 英特网是一个覆盖全球、拓扑结构颇为复杂的互联网,由两大部分构成。 1. 核心部分。由大量各种网络和连接这些网络的路由器组成。它为周边部分提供连通和交换服务。 2. 周边部分。由所有连接在英特网上的主机组成。它为用户提供数据通信和资源共享服务。 在端系统中运行的程序之间,通常有以下两种通信模式。 1. 客户/服务器模式(C/S模式) 特点:非对等作用;通信完全异步。 :-: ![](https://img.kancloud.cn/8c/72/8c724cc0aae2706aa61e61aad35ca992_1000x272.png) 主机A运行客户端程序,主机B作为服务器运行服务器程序。主机A的客户进程向主机B的服务器进程发送服务请求,而主机B的服务器进程根据主机A客户进程的请求向其提供所需要的服务。有时候客户进程和服务器进程之间仅需要一次交互即告完成,而有时则需要多次交互才可结束。 1. 对等模式(P2P模式) :-: ![](https://img.kancloud.cn/56/9e/569ea35d5abe170204a3d8f83f62fdad_866x474.png) 传统的C/S模式能够实现一定程度的资源共享,但客户和服务器所处的地位是不对等的。服务器通常由功能强大的计算机担任,作为资源的提供者响应来自多个客户的请求。 对等模式(Peer-to-Peer,P2P)是指两主机通信时所处的地位是对等的。它们运行着对等软件(P2P软件),就可以同时起着客户或服务器的作用向对方提供服务。在P2P系统中。把任务分布到整个网络的大量类似结点上,就可以避免中心结点或超级结点的存在。通过将资源的所有权和控制权分散,使得这些结点成为服务的提供者,这样既充分利用了各结点的计算、存储和带宽资源,又减少了网络关键结点的拥塞状况,从而大大提高了网络资源的利用率。同时,由于没有中央结点集中控制,可避免其故障,增强了系统的伸缩性,提高了系统的容错性和坚定性。利用P2P的软件:迅雷。 P2P并不是一种高效的传输模式,因为在P2P应用的传输过程中可能会出现很多重复的分组,从而占用大量的网络带宽,甚至造成网络拥塞,降低其他业务的性能。然而,采用P2P模式的网络利用了多路并行传输带来的快速传输性能却使其他应用望尘莫及。 #### 6.3 计算机网络性能 1. 速率 速率是指计算机网络中主机在信道(有线信道,无线信道,广域无线信道,局域无线信道)上单位时间内传输的数据量。单位为比特/秒(b/s或bps)。当速率较高时可用kb/s,Mb/s、Gb/s或者Tb/s,其中k表示千(10的3次方),M表示兆(10的六次方),G表示吉(10的9次方),T表示太(10的12次方)。 1. 带宽 带宽是指某个信号所具有的频带宽度。一个信号可能包括不同的频率成分,因此它的带宽也就是该信号的各种不同频率成分所占用的频率范围。带宽也是传输介质的一种物理特性,通常取决于传输介质的构成、厚度和长度。过去通信线路传输的是模拟信号,通信线路允许传送的信号频率范围称为线路的带宽,单位是赫兹(Hz)、千赫兹(kHz)、兆赫兹、吉赫兹、太赫兹。如今通信线路可以传送数字信号,带宽用来表示线路传送数据的能力,即从网络中某一点到另一点所能达到的最高数据传输速率,单位是比特/s(b/s)。以上两种分别称为频域称谓(分频传输)和时域称谓(分时传输)。 1. 吞吐量 吞吐量是指单位时间内通过某个网络(或信道、接口)的数据量,其单位是比特/秒。吞吐量常用于对某个实际网络的性能测试。 1. 时延 时延是指数据(一个报文或分组或比特)从网络(或链路)的一端传送到另一端的时间。 时延分为 * 发送时延 主机或路由器发送数据帧所需要的时间 * 传播时延 电磁波在信道中传播一定距离所需要的时间 * 处理时延 主机或网络结点处理数据分组所需要的时间 * 排队时延 分组进入处网络节点后排队等待处理所需要的时间 :-: ![](https://img.kancloud.cn/7a/7f/7a7ffe020d3e807aa27df530bdea52d2_902x410.png) 总时延 = 发送时延 + 传播时延+处理时延+排队时延 1. 时延带宽积 时延带宽积=时延 X 带宽 1. 利用率 利用率分为信道利用率和网络利用率。 信道利用率指规定时间内信道上用于传输数据的时间比例。 网络利用率指全网络的信道利用率的加权平均值。 #### 6.4 层次型的体系结构 假设网络中的两台计算机之间需要传送一件文件,那么它们之间除了必须有一条传送数据的通路,还需要完成以下工作: 1. 源端计算机必须用命令“激活”所连接数据通信通路,并告知通信网络如何识别接收数据的目的端计算机。 2. 源端计算机必须确定网络连接正常,目的端计算机已经做好接收数据的准备。 3. 源端计算机必须确定目的端计算机已经做好接收和存储文件的准备,如果两者文件格式不兼容,必须有一台计算机来完成格式的转换工作。 4. 当网络出现故障,出现传送数据出错、重复或丢失等现象时,应有适当的措施来保证目的端计算机仍能正确接收到完整的文件。 以上工作需要相互通信的计算机密切配合。但具体的工程实现上,人们不可能用一个单一的模块来实现以上所有功能,而是将他们分解成若干个子任务,独立地实现每个子任务。 :-: ![](https://img.kancloud.cn/00/ea/00eab6fb0fa46c8150e71a85333fdb56_932x257.png) 以文件传送为例的体系结构 #### 计算机网络的模型(OSI模型、TCP/IP模型) ##### OSI模型 OSI模型(开放系统互连参考模型)有七个层次,自下向上为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。1-3层是网络服务平台,其任务是在物理上把数据从一个设备传送到另外一个设备,对电气约定、物理连接、物理编址以及传输的定时和可靠性等做出规定。5-7层是用户服务平台,使得一些无关的软件具有互操作性。第4层是把上述两个部分连接起来,使得低层发送的是高层可以使用的形式。在OSI中,高三层总是用软件来实现,而低三层是硬件和软件的组合(物理层绝大部分是硬件)。 :-: ![](https://img.kancloud.cn/7e/55/7e557c872a45719208fb79d6a3807c26_1000x821.png) 1. 物理层 物理层为数据链路层提供一个物理连接,在传输介质上透明地传送比特流。“物理连接”不是永远存在于传输介质上的,而是需要物理层去建立、维持、终止。物理层所传单位是比特。 2. 数据链路层 数据链路层屏蔽物理层的特性,为网络层提供一个数据链路,在一条可能出差错的物理连接上,进行几乎无差错的数据传输。数据链路层通过校验、确认以及反馈重发等手段将原始的物理连接改造成无差错的数据链路。该层将物理层传送的比特流组合成帧。帧是数据链路层的单位。帧中包含地址、控制、数据、校验等信息。数据链路层负责建立、维持、释放数据链路。 3. 网络层 网络层为源端的传输层送来的分组选择合适的路由和交换结点,正确无误地按照地址传送给目的端的传输层。分组或包是网络层传送数据的单位。当分组仅通过一个通信子网就能达到目的端时,通信子网中的结点交换机相当于源端与目的端之间的中继站,此时结点交换机要时间物理层到网络层的功能。当分组需要通过数个通信子网才能到达目的端时,网络层还要解决网际互连(怎么找到目的端)的问题。 4. 传输层 传输层为会话层用户提供一个端到端(主机到主机)可靠、透明和优化数据传输服务机制。传输层是网络体系中结构中的`关键层次`,是一个端到端的层次。高层用户可以利用传输层提供的服务进行端到端的数据传输,传输层对高层用户起屏蔽作用。报文是传输层的单位。由于网络层的数据传送单位是分组,报文大于分组时候将报文划分为数个分组再交由网络层进行传输。 高层用户请求建立一条传输虚通信连接时,传输层就通过网络层在通信子网中建立一条独立的网络连接。需要较高吞吐量时就建立多条网络连接来支持一条传输连接,起到分流作用;反之,节省通信开销,就多条传输连接合用一条网络连接,达到复用的作用。 5. 会话层 会话层为端系统的应用程序之间提供了对话控制机制,允许不同主机上的各种进程之间进行会话,并参与管理。是一个进程到进程的层次。会话层及以上层的数据传送单位统称为报文。 6. 表示层 表示层主要为上层用户解决用户信息的语法问题。为了让不同的计算机采用不同的编码方式,来表示用户的抽象数据类型和数据结构,并管理这些抽象的数据结构,把计算机内部的表示形式转换成网络中采用的表示形式。 7. 应用层 应用层为特定类型的网络应用提供了访问OSI环境的手段。应用层包括一些管理功能以及支持分布式应用的常用机制,还有诸如文件传送,电子邮件和远程访问等通用的应用协议。 ##### TCP/IP模型 TCP/IP模型由四个层次组成,自下而上分别是链路层、互联网层、传输层和应用层 1. 链路层 不是真正意义上的层次,是端系统和通信子网之间的逻辑接口,实现端系统和其相连的网络进行数据交换。 2. 互联网层 是TCP/IP模型中的`关键层次`,功能对应OSI的网络层。 3. 传输层 功能对应OSI的传输层。 4. 应用层 TCP/IP模型中没有会话层和表示层,由应用简单包含了所需的会话和表示功能。 虽然OSI存在很多问题,但理念清除,理论完整。虽然OSI模型相关的协议已经很少使用,但是由于本身的通用性,每一层特性仍然非常重要,用来讨论计算机网络非常有用。 与此相反TCP/IP模型的使用价值不高,但是协议却得到了广泛使用。从某种意义上来说TCP/IP协议簇已经称为了“事实上的工业标准”。 所以在学习计算机的原理时,综合OSI和TCP/IP的优点,可以采用五个层次的体系结构:物理层,数据链路层,网络层,传输层,应用层。 ##### 进程间通信 ![](https://img.kancloud.cn/a0/25/a025105be03afd5b2e20c69db5d158e2_872x465.png) 两个应用进程的通信 抽象的认为主机A与主机B之间层级一样的是对等层。它们分别把数据交给对方的对等层。但是复杂的是下层做了复杂的封装控制工作。 1. 主机A进程A将数据交给应用程 2. 主机A应用层加上自己的报文交给传输层 3. 主机A传输层加上自己的报文交给网络层 4. 主机A网络层加上自己的信息交给数据链路层 5. 主机A数据链路层的数据通过物理层的比特流发出 6. 经过交换结点时,交换结点进行从下到上的拆分和从上到下的组合再发送到A与B建立连接的通信子网中 7. 主机B物理层组装数据交给数据链路层 8. 主机B的数据链路层分解协议和数据交给网络层 9. 主机B的网络层分解协议和数据交给传输层 10. 主机B的传输层分解协议和数据交给应用层 11. 主机B的应用层将数据交给进程B 注意:5个层同时进行工作,经过复杂的分工协作。对等层之间必须遵守各对等层之间的协议。 ##### 实体、协议、服务和服务访问点 1. 实体 实体这一名词用来表示进行发送或接收信息的硬件或软件进程。每一层都可看作若干个实体组成。位于对等层的交互实体称为对等实体。OSI模型把对等层实体之间传送的数据单位称为协议数据单元。 2. 协议 协议是两个对等实体通信行为规则的集合。协议的语法规则定义了所交换信息的结构或格式,而格式的语义规则定义了源端与目的端所要完成的操作。在协议的控制下,两个对等实体间的通信使得本层能向上一层提供服务。当然,要实现本层的协议,还需要使用下一层提供的服务。 3. 服务 服务是同一开放系统中某一层向它的上一层提供的操作。下一层的实体是上一层实体的服务提供者,而上一层实体下一层实体的”服务用户“。 4. 服务访问点 服务访问点是本层实体向上一层实体提供服务的交互处。它位于相邻层的界面上,也是本层实体与上一层实体进行交互连接的逻辑接口。服务访问点有时也成为端口(port).每一个服务访问点都被赋予一个唯一的标识地址。同一个开放系统的相邻层之间允许存在多个服务访问点。本层一个实体通过多个服务访问点提供服务的情况,称为连接复用;上一层同一个实体使用多个服务访问点的现象,称为连接分用。一个服务访问点一次只能连接相邻层的两个实体。 ##### 面向连接服务与无连接服务 从通信的角度,服务可分为面向连接服务和无连接服务两大类。 1. 面向连接 面向连接指的是两个对等实体在进行数据交换之前必须先建立连接。当数据交换结束后应终止或释放这种连接关系。面向连接具有建立连接、数据交换和释放连接这三个阶段,以及按序传送数据的特点。虽面向连接因建立和释放连接增加了通信开销,却可提供可靠的有序传输服务。 2. 无连接服务 无连接服务是指两个对等实体间的通信无需先建立一个连接就可以进行数据交换。数据通信所需的资源可以动态分配,发、收两方不必同事处于激活状态。显示了灵活方便和传递迅速的优点,但存在报文丢失、重复、失序的可能性。特点是服务简单、通信开销少,发完就结束,不需要接收端做任何相应。 ##### 服务原语 一个服务可用一组“原语”来说明,`用户进程`通过这些原语来访问该服务。原语定义了该服务要执行的某个操作,或将对等实体所执行的操作告诉用户。多数协议栈位于操作系统内,因此这些服务原语是一些系统调用。就是说服务原语的具体实现是通过操作系统内核提供的进程管理机制(如系统调用)来完成的。 可用的原语取决于底层提供的服务。面向连接服务和无连接服务的原语是不相同的。 下面是客户/服务器环境下实现“请求-应答”交互式应用的原语。 1. LISTEN 等待一个连接,该原语具有阻塞作用 2. CONNECT 正在等待于对等实体建立连接 3. ACCEPT 接收来自对等实体的连接请求 4. RECEIVE 等待一个数据分组,该原语具有阻塞作用 5. SEND 向对等实体发送一个数据分组 6. DISCONNECT 终止一个连接,通常该原语具有阻塞作用