1.计算机网络的特点
连通性
- 使得上网用户之间可以非常便捷、非常经济地交换各种信息
- 好像这些用户终端彼此直接连通一样
资源共享
- 实现信息共享、软件共享、硬件共享
- 由于网络的存在,这些资源好像就在用户身边一样地方便使用
2. 互联网发展的三个阶段
- 第一阶段是从单个网络
ARPANET
向互联网发展的过程。
最初的ARPANET
只是一个单个分组交换网络,所有必要连接在ARPANET
上的主机都直接与就近的节点交换机相连。1983年,TCP/IP
协议成为ARPANET
上的标准协议。使得所有使用TCP/IP
协议的计算机都能利用互联网相互通信。人们把1983年作为互联网诞生的时间
关于Internet和internet的区别
Internet
:是指当前全球最大的、开放的、由众多网络相互连接而成的特定互联网,它采用TCP/IP
协议族作为通信的规则,其前身是美国的ARPANET
internet
:它是一个通用名词,它泛指由多个计算机网络互联而成的计算机网络。在这些网络之间的通信协议(通信规则)
,可以任意选择,不一定要选择TCP/IP
协议族。
- 第二阶段建立了三级结构的互联网
国家科学基金网NSFNET
,三级结构:主干网
、地区网
、校园网(或企业网)
,覆盖了全美国主要的大学和研究所,并且称为互联网中的主要组成部分。
地区网:可以完成本地区管辖范围内各校园网或者企业网之间的相互通信
主干网:可以使得不同地区之间的用户相互通信
- 第三阶段全球范围的多层次
ISP
结构的互联网
逐渐形成了全球范围内的多层次ISP
结构的互联网,NSFNET
逐渐被若干个商用的互联网主干网
替代,而政府机构不再负责互联网的运营,这样就出现了一个新的名词互联网服务提供者ISP(Internet Service Provider)
,ISP
提供了接入到互联网的服务,需要收取一定的费用。
同时形成了多层次的ISP结构
主干ISP、地区ISP、和本地ISP,覆盖面积大小和所拥有的IP
地址数目都有所不同。
主干ISP:由几个专门的公司创建和维护,服务面积最大
地区ISP:是一些较小的ISP
,这些地区ISP
通过一个或者多个主干ISP
连接起来
本地ISP:给用户提供直接的服务,这些用户有时候称为端用户,强调的是末端的用户,本地ISP
可以连接到地区ISP
,也可以连接到主干ISP
,绝大多数用户都是连接到本地ISP
的。
互联网交换节点(Internet eXchange Point)
:允许两个网络直接相连并快速交换分组,常采用工作在数据链路层的网络交换机,世界上较大的IXP
的峰值吞吐量都在Tbit/s
量级,如图所示,右边的那两个地区ISP就可以通过IXP
直接交换分组而不需要经过主干ISP
,在这种情况下, 主机A和主机B交换分组的时候,就不必再经过最上层的主干ISP
,而是直接在两个地区ISP
之间用高速链路交换分组,这样就使得互联网上的数据流量分布更加合理。
内容提供者(content provider)
:在互联网上向所有用户提供视频文件的公司。不向用户提供互联网的转接服务。
万维网(World wide web)
:万维网是一种服务, 由欧洲原子核研究组织开发,称为互联网指数级增长的主要驱动力。
3. 互联网的组成
从其工作方式上看,互联网可以划分为两大块
- 边缘部分:由所有连接在互联网上的主机组成,由用户
直接使用
,用来进行通信(传送数据、音频、视频)
和资源贡献。
处在互联网边缘的部分就是连接在互联网上的所有的主机,这些主机又称为端系统
,边缘部分利用核心部分所提供的服务,使得众多主机之间能够互相通信并交换或者共享信息。
计算机之间的通信:主机A上的某个进程和主机B上的另一个进程进行通信。
客户-服务器方式
(C/S方式)
客户(client)
和服务器(server)
是指通信中所设计的两个应用进程,客户-服务器方式所描述的是进程之间的服务和被服务的关系。客户是服务的请求方,而服务器是服务的提供方。客户与服务器的通信关系建立后,通信可以是双向的, 客户和服务器都可以发送和接收数据。客户程序:被用户调用后运行,需要主动地向远程服务器发送通信(请求服务),必须要知道服务器程序的地址,不需要特殊的硬件和很复杂的操作系统
服务器程序:专门用来提供某种服务的程序,可以同时处理多个客户的请求,一直不断地运行着,被动地等待并接收来自各地的客户的通信请求,不需要知道客户程序的地址,一般需要强大的硬件和高级的操作系统支持。
对等连接方式:peer-to-peer,简写为
P2P
,是指两台主机在通信的时候,并不区分这两者哪一个是服务请求方和哪一个是服务提供方,只要两台主机都运行了对等连接软件P2P软件
,它们就可以以这种平等的方式进行对等连接通信
- 核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的
(提供连通性和交换)
网络的核心部分是互联网中最为复杂的部分,因为网络中的核心部分要向网络边缘部分中的大量主机提供连通性,使得边缘部分中的任何一台主机都能够与其他主机通信。
在网络核心部分起特殊作用的是路由器(router)
,它是一种专用计算机(但是不叫做主机)
,路由器是实现分组交换(packet switching)
的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的内容。
- 电路交换
(circurit switching)
从通信资源的分配角度上看,交换(switching)
就是按照某种方式动态地分配传输线路的资源。
转接
:把一条电话线转接到另一条电话线,使得他们连通起来
以打电话为例子,在使用电路交换进行通信之前,必须先拨号请求建立连接,当被叫用户听到交换机送来的信号并摘机之后,从主叫段到被叫端就建立了一条连接。这时候就建立了专用的物理通路
,这条连接保证了双方通话所需要的通信资源,而这些资源在双方通信的时候是不会被其他用户所占用的
。此后主叫和被叫双方就能够互相通电话,通信完毕挂机后,交换机释放刚才使用的这条专用物理通路(把刚才占用的所有通信资源还给电信网)
。
这种必须通过建立连接(占用通信资源)
->通话(一直占用通信资源)
->释放连接(归还通信资源)
三个步骤的交换方式称为电路交换。
电路交换的特点:通话的双方始终占用端到端的通信资源
分析电路交换的缺点
计算机数据具有
突发性
,这是因为数据是突发式地出现在传输线路上的,因此线路上真正用来传送数据的时间往往不到10%甚至不到1%,已被用户占用的通信线路资源在绝大部分时间里都是空闲的。
- 分组交换
分组交换采用的是存储转发技术
。
通常我们将要发送的整块数据称为一个报文(message)
,在发送报文之前,先要把较长的报文划分一个个更小的等长数据段。在每一个数据段的前面,加上一些必要的控制信息组成的首部(header)
后,就构成了一个分组(packet)
,分组又称为包,而分组的首部也可以叫做包头
,分组是互联网中传送的数据单元,实质上是采用了在数据通信过程中断续(或者动态)
分配传输带宽的策略。
分组交换的过程
主机
:为用户进行信息处理的
路由器
:转发分组,进行分组交换
路由器在收到一个分组之后,先暂时存储一下,检查其首部转发表
按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器,每一个分组在互联网中独立选择传输路径
位于网络核心部分的路由器负责转发分组,也就是进行分组交换
这样一步步地
(有时会经过几十个不同的路由器)
,以存储转发的方式,把分组交付最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表
应当注意:分组交换在传送数据之前不必先占用一条端到端的通信资源,分组在哪段链路上传送的时候才占用那段链路的通信资源。分组到达一个路由器之后,先暂时存储下来,查找转发表,然后从另一条合适的链路转发出去。分组在传输的时候是逐段地断续占用通信资源。
分组交换的优点:
优点 | 所采用的手段 |
---|---|
高效 | 在分组传输的过程中动态分配带宽,对通信链路是逐段占用的 |
灵活 | 为每一个分组独立地选择最合适的转发路径 |
迅速 | 以分组作为传送单位,不先建立连接就能够向其他主机发送分组 |
可靠 | 保证可靠性的网络协议;分布式多路由的分组交换网,使得网络具有很好的生存性 |
分组交换的问题:
- 分组在各路由器存储转发的时候需要排队,这就会导致一定的时延
- 无法确保通信时端到端的带宽
(因为没有建立连接来保证通信时所需的各种资源)
- 各分组必须携带的头部等信息也造成了一定的开销
- 报文交换
(message switching)
这种交换信息的方式也是基于存储转发
执行的,整个报文先传送到邻居节点,全部存储下来之后查找转发表,转发到下一个节点。
可以看出,基于存储转发技术的报文交换和分组交换,其主要区别在于数据传输单位的问题,报文交换的数据传输单位是一整段报文,而分组交换的数据传输单位是由报文切割而成的分组。
- 若要传送大量的数据,而且传送时间远大于连接建立的时间,那么电路交换的传输速率较快
- 报文交换和分组交换不需要预先分配带宽,在传送突发数据的时候可以提高整个网络的信道利用率。
4. 计算机网络的分类
计算机网络的参考定义
计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特点目的。这些可编程的硬件能够用来传送多种不同类型的数据,并且能够支持广泛的和日益增长的应用。
- 可编程的硬件:这种硬件一定包含有中央处理器
CPU
计算机网络可以按照如下进行分类
- 按照网络的作用范围进行分类
- 广域网
WAN(Wide Area Network)
:是互联网的核心部分 - 城域网
MAN(Metropolitan Area Network)
:城域网的作用范围一般是一个城市,用来将多个局域网进行互联 - 局域网
LAN(Local Area Network)
:局域网一般用微型计算机或者工作站通过高速通信线路相连 - 个人局域网
PAN(Personal Area Network)
:无线个人区域网
- 广域网
- 按照网络的使用者进行分类
- 公用网
public network
:按规定缴纳费用的人都可以使用的网络 - 专用网
private network
:为特殊业务工作的需要而建造的网络
- 公用网
- 用来把用户接入到互联网的网络
- 接入网
AN(Access Network)
- 称为本地接入网或者居民接入网
- 其作用是用来将用户接入互联网
- 实际上就是本地
ISP
所拥有的网络,它既不是互联网的核心部分,也不是互联网的边缘部分 - 接入网是由某个端系统连接到本地
ISP
的第一个路由器,也称为边缘路由器之间的一些物理链路所组成的。 - 接入网只是起到让用户起到能够与互联网连接的
桥梁
的作用
- 接入网
5. 计算机网络的性能
5.1 速率
速率
是最重要的一个性能指标,它指的是数据的传送速率
,也称为数据率(data rate)
或者比特率(bit rate)
单位有bit/s或者kbit/s,Mbit/s,Gbit/s
速率往往是额定速率或者标称速率而不是实际运行速率。
5.2 带宽
带宽具有以下两分钟不同的意义:
从频域的角度上看
它是指某个信号所具有的频带宽度,单位是赫、千赫、兆赫、吉赫
某信道允许通过的信号频带范围就叫做该
信道的带宽(或者同频带)
这是因为在过去很长一段时间内,通信的主干线路传送的是模拟信号,带宽越大,代表能够通过此信号的信号范围越大。
从时域的角度上看
在计算机网络中,它指的是网络中某通道传送数据的能力,表示在单位时间内网络中某信道所能通过的
最高数据率
,单位就是数据率的单位bit/s
两者的本质是相同的,一条通信链路的带宽越宽,其所能传输的最高数据率也越高。
5.3 吞吐量
吞吐量(throughput)
:表示的是在单位时间内通过某个网络(或信道、接口)
的实际数据量。
显然,它是受网络的带宽或者网络的额定速率的限制
- 额定速率是绝对上限值
- 可能会远小于额定速率,甚至下降到0
有时候也可以用每秒传送的字节数或者帧数来表示
5.4 时延
时延(delay)
:是指数据(一个报文或者分组,甚至是一个比特)
从网络或者链路中一端传送到另外一段所需要的时间,时延是一个很重要的性能指标,它有时候也称为延迟或者迟延。
需要注意的是,网络中的时延是由以下几个不同的部分组成的
- 发送时延:是主机或者路由器发送数据帧所需要的时间,也就是说从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间。发送时延的计算公式是:
- 传播时延:是电磁波在信道中传播一定的距离需要花费的时间,计算公式是:
发送时延发生在及其内部的发送器中,一般就是网络适配器中,和传输信道的长度或者信道传输的距离是没有任何关系的。但是传播时延发生在及其外部的传输信道媒体上,与信号的发送速率没有关系,信号传送的距离越远,传播时延就越大。
处理时延:主机或者路由器在收到分组的时候,为处理分组
(比如说分析首部,提取首部,差错检验或者查找路由)
所花费的时间排队时延
分组在经过网络传输的时候,要经过许多路由器,但在分组进入路由器后,还需要在输入队列中排队等待处理
在路由器确定了转发端口之后,还要在输出队列中排队等待转发,这就产生了排队时延。
当网络的通信量很大的时候会发生队列溢出使得分组丢失,这就相当于排队的时延为无穷大。
数据在网络中经历的总实验就是以上四种时延之和
总时延 = 发送时延
+ 传播时延
+ 处理时延
+ 排队时延
一般说来,小时延的网络要优于大时延的网络。但是在某些情况下,一个低速率、小时延的网络很可能要优于高速率但大时延的网络。
- 对于高速网络链路,我们提高的仅仅只是数据的发送速率,而不是比特在链路上的传播速率
- 提高数据的发送速率只是减小了数据的发送时延
- 数据的发送速率是指每秒发送多少个比特,这是指在某个点或者某个接口上的发送速率
- 而传播速率的单位是指每秒传播多少公里
5.5 时延带宽积
时延带宽积 = 传播时延 * 带宽
这是一个代表链路的圆柱形管道,管道的长度是链路的传播时延,而管道的截面积是链路的带宽,因此时延带宽积就表示这个管道的体积,表示这样的链路可以容纳多少个比特,假设某段链路的传播时延是20ms
,而带宽是10Mbit/s
,这就表明如果发送端连续发送数据,那么在发送的第一个比特在即将到达终点的时候,发送端就已经发送了20万个比特,而且这20万个比特都在链路上向前移动。
因此,链路的时延带宽积也叫做以比特为单位的链路长度。
只有代表链路的管道都充满比特的时候,链路才得到了最充分的利用。
5.6 往返时间RTT
往返时间(Round-Trip Time)
:双向交互一次所需要的时间
例如,A向B发送数据,如果数据长度是100MB
,发送速率是100Mbit/s
那么发送时间 =数据长度/发送速率
= (100*(2^20)*8)/(100*(10^6))
假设B正确收到100MB
的数据后,就马上向A发送确认,再假定A只有在收到B的确认信息后,才能继续向B发送数据,显然,这时候就要等待一个往返时间RTT
。
RTT = 节点A到B的传播时延(注意这里是不包含发送时延的)
+节点B处理时延和排队时延+节点B的发送时延+节点B到A的传播时延
= 2* 传播时延Tp+节点B处理和排队时延Tpqb+节点B的发送时延
这里的有效数据率指的是A发送完数据,A收到来自B确认的整个过程的数据率
数据率的公式是数据大小/整个过程的耗时
因此有效数据率=(100*(2^20)*8)/(8.39+2)
5.7 利用率
利用率
有信道利用率
和网络利用率
两种,信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)
,完全空闲的信道利用率是0,网络利用率是全网络的信道利用率的加权平均值
,信道利用并非越高越好。
当某信道的利用率增大的时候,该信道引起的时延也就会迅速增加,也就是说当信道容量达到了负载极限的时候,这时候可能会导致路由器处理分组的队列不断增长,导致排队时延增长,在这种情况下,时延也就迅速增加了。
如果令D0
表示网络空闲的时候的时延,D
表示网络当前的时延,设当前的网络利用率为U
,那么在适当的假定条件下,就可以使用下面的公式来表示:
D=(D0)/(1-U)
注:U是当前网络的利用率,数值在0到1之间
6. 计算机网络的非性能特征
费用
:网络的价格(设计和实现的费用)质量
:网络的质量取决于网络中所有构件的质量以及这些构件是如何组成网络的。标准化
:网络的硬件和软件的设计可以按照通用的国际标准,也可以遵循特定的专用网络标准可靠性
:可靠性与网络的质量和性能都有密切关系可扩展性
和可升级性
:在构造网络时就应该考虑到今后可能会需要扩展和升级- 易于管理和维护
7. 计算机网络体系结构
如果两台计算机要互相传送文件,需要解决的基本问题如下:(了解)
- 发起通信的计算机必须将数据通信的通路
激活(activate)
,所谓激活就是要发出一些指令,保证要传送的计算机数据能在这条通路上正确发送和接收 - 告诉网络如何识别接收数据的计算机
- 发起通信的计算机必须要知道对方计算机是否已经开机,并且与网络连接正常
- 发起通信的计算机中的应用程序必须弄清楚对方的计算机中的文件管理程序是否已经做好了接收文件和存储文件的准备
- 如果计算机的文件格式不兼容,那么至少一台计算机应该要完成格式的转换功能
- 对出现的各种差错和意外事故,比如说数据传送
错误
、丢失
、重复
,网络中的某个节点交换机出现故障等,都应该有可靠的措施保证对方计算机最终能够收到正确的文件。
开放系统互连参考模型
ISO(国际标准化组织)
提出的OSI/RM(Open Systems Interconnection Reference Model)
:是使得各种计算机在世界范围内互连成网的标准框架
,OSI/RM
是抽象的概念
什么是网络的体系结构?
计算机网络的各层及其协议的集合就是体系结构,计算机网络的体系结构是这个计算机网络及其构件所应该完成的功能的精确定义
8. 协议与划分层次
在计算机网络中要做到有条不紊地交换数据,就必须遵守一些实现约定好的规则,这些规则明确规定了所交换的数据格式以及有关的同步问题,同步含有时序的意思,这些为进行网络中的数据交换而建立的规则、标准或者约定称为网络协议(network protocol)
,网络协议也可以简称为协议
- 语法:
数据与控制信息
的结构或者格式 - 语义:也就是需要发出
何种控制信息
,完成何种动作
以及做出何种响应
- 同步:
事件实现顺序
的详细说明
- 文件传输模块:发送端的文件传送应用应该确信接收端的文件管理程序做好接收和存储文件的准备
- 通信服务模块:保证文件和文件传送命令
可靠地
在两个系统之间交换 - 网络接入模块:向上层提供服务,使得上面的通信服务模块能够完成可靠通信的服务
体系结构是抽象的,但是实现是具体的,是真正运行的计算机硬件和软件
各层之间是独立的
:各层之间是独立的,某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层高通过层间的接口所提供的服务。灵活性好
:只要层间接口关系保持不变,那么在这层以上或者以下的各层都不受影响结构上可分割开
:各层都可以采用最合适的技术来实现易于实现和维护
:这种结构使得实现和调试一个庞大而又复杂的系统变得更加容易能促进标准化工作
:每一层的功能以及所提供的服务都有了明确的说明
OSI/RM把对等层次之间传送的数据单位称为该层的协议数据单元
PDU(Protocol Data Unit)
所提到的各层协议,实际上就是在各个对等层之间传递数据的时候的各项规定。
9. 实体、协议、服务和服务访问点
实体(entity)
:任何可发送或者接收信息的硬件或者软件进程协议
:控制两个对等实体(或者多个实体)
进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下面一层所提供的服务。
协议和服务的关系
- 使用
本层服务的实体
只能看到服务而无法看见下面的协议
,也就是说下面的协议对上面的实体是透明的
- 协议是水平的,协议是控制对等实体之间通信的规则,但是服务是垂直的,也就是说服务是由下层向上层通过层间接口提供的,并非在一个层内完成的全部功能都叫做服务,只有那些能够被高一层实体看得见的功能才叫做服务。
上层使用下层所提供的服务必须通过下层交换一些命令,这些命令在OSI中叫做服务原语
- 在同一系统中相邻两层的实体进行交互
交换信息的地方
,通常称为服务访问点(Service Access Point)
,它实际上就是一个逻辑接口,OSI
把层与层之间交换的数据的单位称为服务数据单元SDU(Service Data Unit)
SDU和PDU可以不一样,可以是多个
SDU
合并为一个PDU
,也可以是一个SDU
划分为几个PDU
第n层的两个实体(n)通过协议(n)进行通信,而第n+1层的两个实体(n+1)之间则通过另外的协议(n+1)进行通信,第n层向上面的第n+1层提供的服务实际上已经包括了它一下各层所提供的服务
10. TCP/IP体系结构
课后习题复习
解答:这道题考察的是我们对分组交换的电路交换的原理是否理解,我们可以通过假定不同的情景下,来计算时延
对于电路交换而言:
电路交换的整个流程为,建立连接:t1=s
,
然后发送报文,因此发送时延是t2=(x)/(C)
,
而传输时延是t3=k*d
由于排队等待时间可以忽略不计,因此对于电路交换,一次通信耗费的时间是
tcs = t1+t2+t3=s+(x/C)+kd
对于分组交换而言:
分组交换不需要提前建立连接,但是在每个节点接收到分组后,需要进行分组的发送,因此每经过一个节点,就会产生一次发送时延,因此我们需要计算出有多少个节点,这次分组交换的总耗时就是:发送时延+最后一个分组从源点到达终点。这是因为如果没有所有分组都到达终点,传输就不算完成,然后由于最后一个分组是最晚发送出去的,假设过程没有差错,那么如果最后一个分组都到达了,那么前面的肯定都到达了。(由于题目说首部都很短,因此我们可以假设所有分组加起来的总bit数依然是x)
当源点发送完最后一个bit的时候,这时候在源点产生的发送时延是t4=(x/p)*(p/C)
,注意这个(x/p)要向上取整
接下来,分组在网络节点中进行转发
根据画图,每个节点将会经过k-1
个网络节点,最后一个节点也不例外,而每次转发的时候,将会产生发送时延,也就是p/C
,同时在链路上传播还会产生传播时延
那么最后一个分组到达终点的时候,是t5=(k-1)*(p/C)+kd
最终计算得到的分组交换的总时延就是tps = (x/p)*(p/C)+(k-1)(p/C)+kd
列不等式:tps<tcs
最终即可解得答案。
注意:答案这里有一个当x>>p
的时候,会使得向上取整的那个数值约等于x/p
**当s>(k-1)/(p/c)**的时候,这时候就会使得分组交换的时延比电路交换的时延要小