参考书目:《计算机网络(第7版)》:谢希仁——电子工业出版社 《精通Windows Sockets网络开发--基于Visual C++实现》:孙海民——人民邮电出版社
一、计算机网络
1.计算机网络的定义
-
计算机网络:由若干结点(node)和连接这些结点的链路(link)组成。
最简单的计算机网络:两台计算机通过一条双绞线连接 -
互连网/连网:网络与网络可通过路由器互连,构成一个覆盖范围更大的网络(网络的网络)。
互连网:指在局部范围互连起来的计算机网络。 -
互联网/因特网
互联网:指当今世界上最大的计算机网络–Internet。 -
互联网+
互联网+各个传统行业:利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展生态。注:网络把许多计算机连接在一起,互联网则把许多网络连接在一起。
2.计算机网络的发展
- 以单计算机为中心的联机系统
- ARPANET
ARPANET的成功使计算机网络的概念发生根本变化。- 第一个采用存储-转发方式的分组交换网。
- TCP/IP成为ARPANET上的标准协议。
- 大发展时期
ARPANET兴起后,计算机网络迅猛发展,各公司推出自己的网络体系结构及实现这些体系结构的软硬件产品。如:IBM公司的SNA(System Network Architecture);DEC公司的DNA(Digital Network Architecture)。
70年代中期及80年代,局域网兴起和迅猛发展时期。如:Xerox(施乐)公司的以太网;英国剑桥大学的剑桥环;IBM公司的令牌环等。 - 标准化阶段
1984年,ISO颁布“开放系统互连参考模型(OSI)”。
1974年,推出TCP/IP参考模型(事实上的国际标准。 - Internet
3.计算机网络的分类
不同作用范围的网络
- 广域网 WAN (Wide Area Network)
- 几十到几千km
- 互联网的核心部分
- 城域网 MAN (Metropolitan Area Network)
- 5-50km
- 局域网 LAN (Local Area Network)
- 1km左右
- 个人区域网 PAN (Personal Area Network)
- 10m左右
- 无线连接
- 接入网AN(Access Network)
- 本地接入网或居民接入网
- 提供高速接入互联网的“桥梁”作用
从网络的使用者进行分类
- 公用网 (public network)
- 专用网 (private network)
4.计算机网络的性能指标
1.速率:速率指数据的传送速率,也称为数据率(data rate)或比特率(bit rate)。
- 指主机在数字信道上传送数据的速率
- 是计算机网络中最重要的一个性能指标
- 速率的单位是 bit/s,或kb/s, Mb/s, Gb/s 等
2.带宽:带宽指数字信道/通信线路所能传送的“最高数据率”。
- 反映通信线路传送数据的能力
- 比特每秒,即 b/s (bit/s)
3.吞吐量:吞吐量指在单位时间内通过某个网络(或信道、接口)的实际数据量。
注:吞吐量受网络的带宽或网络的额定速率的限制:吞吐量<=额定速率
4.时延:时延指数据从网络(链路)的一端传送到另一端所需时间。
- 传输时延(发送时延 ):主机或路由器发送数据所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
- 传播时延:电磁波在信道中需要传播一定的距离而花费的时间。
- 处理时延:交换结点为存储转发而进行一些必要的处理所花费的时间。
- 排队时延:结点缓存队列中分组排队所经历的时延。
5.时延带宽积
- 链路的时延带宽积又称为以比特为单位的链路长度
- 表示从发送端发出但尚未到达接收方的比特数
6.往返时间RTT
- 表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时延。
- 往返时间带宽积:当发送方连续发送数据时,在及时收到对方确认前,已经发送的数据(bit)
7. 利用率
- 信道利用率指出某信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道的利用率是零。
- 网络利用率则是全网络的信道利用率的加权平均值。
二、互联网
1.互联网的发展
-
第一阶段:1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
-
第二阶段:1985年起,建立三级结构的互联网 。
-
第三阶段:1993年起,逐渐形成了多层次 ISP 结构的互联网。
注:根据提供服务的覆盖面积大小以及所拥有的IP 地址数目的不同,ISP 也分成为不同的层次。 大致上可将互联网分为以下接入级: 1)国家主干网(主干 ISP) 2)地区 ISP 3)本地 ISP 4)校园网、企业网或 PC 机上网用户
2.互联网的组成
从工作方式上划分:
边缘部分
- 由所有连接在因特网上的主机组成。
- 用户直接使用,用来进行通信(传送数据、音频或视频)和资源共享。
核心部分
- 由大量网络和连接这些网络的路由器组成。
- 为边缘部分提供服务(提供连通性和交换)。
- 路由器对分组进行存储转发,即进行分组交换,最后把分组交付目的主机。
互联网的边缘部分
主机间的通信方式
- 客户服务器方式(C/S 方式)
- 对等方式(P2P 方式)
客户-服务器方式
- 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
- 客户服务器方式所描述的是进程之间服务和被服务的关系。
- 客户是服务的请求方,服务器是服务的提供方。
-
服务器程序
- 一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
- 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。不需要知道客户程序的地址。
- 一般需要强大的硬件和高级的操作系统支持。
-
客户程序
- 被用户调用后运行,必须要知道服务器程序的地址。
- 不需要特殊的硬件和很复杂的操作系统。
对等连接方式
- 两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
- 只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
- 从本质上,仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
互联网的核心部分
- 由许多网络和把它们互连起来的路由器组成,向处在互联网的边缘部分的主机提供连通性
- 路由器之间:高速链路相连接。
- 主机到核心部分:相对较低速率的链路相连接。
- 主机是为用户进行信息处理的,并向网络发送分组,从网络接收分组。
- 路由器对分组进行存储转发,即进行分组交换(packet switching) ,最后把分组交付目的主机。
电路交换
- 电路交换必定是面向连接的。
- 电路交换必定经过的三个阶段。
- 建立连接—占用通信资源
- 通信—占用通信资源
- 释放连接—释放通信资源
分组交换
存储转发技术步骤:
-
发送端:先把较长的报文划分成较短的、固定长度的数据段;每一个数据段前面添加上首部构成分组。
注:分组交换网以“分组”作为数据传输单元。 1)每一个分组的首部都含有地址等控制信息。 2)分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。 3)用这样的存储转发方式,最后分组就能到达最终目的地。
-
接收端:收到分组后剥去首部还原成报文。
分组交换网的示意图
注:分组在哪段链路上传送,才占用这段链路的通信资源。
路由器
- 在路由器中的输入和输出端口之间没有直接连线。
- 路由器处理分组的过程是:
- 把收到的分组先放入缓存(暂时存储);
- 查找转发表,找出到某个目的地址应从哪个端口转发;
- 把分组送到适当的端口转发出去。
分组交换的优点
- 高效:动态分配传输带宽,对通信链路是逐段占用
- 灵活:以分组为传送单位和查找路由。
- 迅速:不必先建立连接就能向其他主机发送分组。
- 可靠:保证可靠性的网络协议;分布式的路由选择协议使网络有很好的生存性。
分组交换的不足
- 分组在各结点存储转发时需要排队,这就会造成一定的时延。
- 分组必须携带的首部造成了一定的开销。
电路交换 VS 分组交换
三、计算机网络的体系结构
- 不同的系统,通过计算机网络进行通信,必须高度协调工作。
- 网络协议为进行网络中的数据交换而建立的规则、标准或约定计算机网络中的数据交换必须遵守事先约定好的规则。
- 三个要素
- 语法:数据与控制信息的结构或格式 。
- 语义:表明信息要表达的内容;需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步:事件实现顺序的详细说明。
- 时序例
- 整个计算机网络的功能实现体现为协议的实现。
- 为了保证网络的各个功能的相对独立性,以及便 于实现和维护,通常将协议划分为多个子协议,子协议的集合通常称为协议簇。
ARPNET多年研究表明:对于非常复杂的计算机网络协议,其结构应该是层次式的—分层—可将庞大而复杂的问题,转化为若干较简明且有利于处理的局部问题,比较易于研究和处理。
网络分层主要是将复杂的通信问题分成不同的功能块,由不同的层次通过本层的协议来执行某个功能块。即:每一层只完成一定的功能,每一层又都建立在它的下层之上。每一层都是通过层间接口向上一层提供服务的,同时把这种服务实现的细节对上层加以屏蔽。
注:
1)计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。
2)体系结构是这个计算机网络及其部件所应完成的功能的精确定义。
3)体系结构是抽象的,可用硬件或软件具体实现这些功能
通用的协议分层思想
- 第N层实体在实现自身定义的功能时,只使用N-1层提供的服务。
- N层向N+1层提供服务,此服务不仅包含N层本身所具有的功能,还包括由下层提供的功能总和。
- 最低层只提供服务;最高层只是用户;中间各层既是下一层的用户,又是上一层服务的提供者。
- 仅在相邻层间有接口,且下层服务的实现细节对上层完全透明。
分层的好处
- 独立性强:各层之间是独立的,把网络操作分成低复杂性单元,分而治之,上层只需了解下层通过层间接口提供什么服务。
- 灵活性好:只要服务和接口不变,某一层变化不会影响到别层,设计者可专心设计和开发模块功能。
- 有利于网络的互联,进行协议转换时可能只涉及某一个或几个层次而不是所有层次。
- 结构上可分割开,易于实现和维护。
- 有利于促进标准化工作:因为每一层的功能及其所提供的服务都有精确的说明,允许各个供应商进行开发。
划分层次的必要性
各层中实现的主要功能
- 寻址
- 差错控制:使对等层的通信更加可靠
- 流量控制:控制发送端的速率,使接收端能来得及接收
- 分段和重装:发送端将数据块分成更小的单位,并在接收端重新组合
- 复用和分用:多个高层的对等层通信会话复用一条低层连接
- 建立连接和释放连接
- …
网络体系结构的产生
- 1974年,IBM—系统网络体系结构SNA。
- 1977年,国际标准化组织ISO开始研究互连标准框架—开放系统互连基本参考模型OSI/RM。
- 1983年,形成OSI/RM正式文件—七层协议的体系结构。
事与愿违,OSI失败了!
- OSI的专家们在完成 OSI 标准时没有商业驱动力;
- OSI的协议实现起来过分复杂,且运行效率很低;
- OSI标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
- OSI的层次划分并也不太合理,许多功能在多个层次重复;各层功能分配不均匀(链路、网络层任务重,会话层任务轻)
- 功能和服务定义复杂,很难产品化,实际应用中几乎没有按OSI七层模型设计的产品
糟糕的提出时机、糟糕的技术、糟糕的策略、糟糕的实现!
两种国际标准
OSI/RM–法律上的国际标准
非国际标准 TCP/IP --事实上的国际标准
- 相似
- 层的功能划分相似
- 差别
- OSI:从概念模型到协议实现。
- TCP/IP:从协议实现到概念描述。
- TCP/IP开始就考虑到多种异网互连问题,并将IP协议TCP/IP的重要组成部分。
- TCP/IP开始就对面向连接服务和无连接服务并重;OSI只重面向连接的服务。
- TCP/IP有较好的网络管理功能。
- 结论
- OSI概念模型好,协议实现不好。
- TCP/IP协议实现好,模型不好。
OSI参考模型
注:1.OSI模型每层都有自己的功能集2.层与层之间相互独立又相互依靠3.上层依赖于下层,下层为上层提供服务
网络设备传输数据的过程是按照OSI参考模型来运动的。
-
应用层
- 提供网络与用户应用进程之间的接口,使用户的应用进程能享用网络服务。
- 提供各种不同的应用协议以满足应用进程的需求:HTTP/SMTP/FTP。
- 识别并证实目的通信方的可用性。
- 使协同工作的应用进程之间进行同步。
- 为通信过程申请资源。
- PDU:报文
- 提供网络与用户应用进程之间的接口,使用户的应用进程能享用网络服务。
-
表示层
- 关心所传输信息的语法和语义,屏蔽不同体系结构的计算机在数据表示上的差异。
- 数据的解码和编码
- 数据的加密和解密
- 数据的压缩和解压缩
- 关心所传输信息的语法和语义,屏蔽不同体系结构的计算机在数据表示上的差异。
-
会话层
- 建立、维护、管理应用程序之间的会话。
- 对话控制,提供往数据流中插入检查点功能
- 同步:如何开始,控制,结束对话。对话层确认对话的顺序,确保每一个步骤按顺序进行
- PDU:报文
- 建立、维护、管理应用程序之间的会话。
-
运输层
- 在源端与目的端进程之间提供可靠的透明数据传输,使上层服务用户不必关心通信子网的实现细节。
- 隔离上三层和下三层,屏蔽连网细节,建立端到端的连接,负责数据在端到端之间的传输
- PDU:报文
- 运输层的特点
- 以上各层:面向应用;本层及以下各层:面向传输。
- 与网络层的部分服务有重叠交叉,功能取舍取决于网络层功能的强弱。
- 只存在于端主机中。
- 实现源主机到目的主机“端到端”的连接。
- 网络层:为主机之间提供逻辑传输
- 运输层:为应用进程之间提供逻辑传输
- 运输层的主要功能
- 服务点编址:源端进程地址映射到网络地址
- 复用与分用
- 多个传输连接共用一条网络连接;
- 一条传输连接使用多个网络连接;
- 连接控制
- 流量控制
- 差错控制
- 拥塞控制
-
网络层
- 为分组交换网上的不同主机提供通信服务
- 为网络设备提供逻辑地址。
- 负责数据从源端发送到目的端
- 负责数据传输的寻径和转发。
- PDU:分组(packet)
- 逻辑地址
- 路由选择
- 为分组交换网上的不同主机提供通信服务
-
数据链路层
- 任务:在两个相邻节点间传输数据。
- PDU:帧(frame)
- 功能与服务
- 建立与拆除数据链路连接(逻辑通道)。
- 组帧:帧封装,按顺序传送,处理返回的确认帧。
- 定界与同步:产生/识别帧边界。
- 差错检测/恢复:可靠的传输。
- 流量控制:抑止发送方的传输速率,使接收方来得及接收。
- 广播网络需控制对共享信道的访问。
-
物理层
- 物理层的主要作用是负责二进制信号在物理线路上正确地、透明地传输。
- 物理层是不提供数据的纠错服务的,但是在物理层上能对数据的传输速度作一定的控制,并能监测数据的出错率。
- 在物理层传输电气信号的载体我们称之为位流或比特流。
- 物理层关心的是以下的一些内容:
- 机械特性:定义连接器形式以及插针位置。
- 电气特性:定义接口电路的电气参数。
- 规程特性:定义信号线的操作规程。
- 传输媒体:传输媒体位于物理层以下。
总结
链路层的任务:两节点间可靠的数据传输。
网络层的任务:沿两端点间的最佳路由传输数据(主机间的逻辑通信)。
传输层的任务:两端点间可靠的透明数据传输(应用进程间的逻辑通信)。
各层间的解释
各层间的联系
实体、协议、服务和服务访问点
- 实体:任何可以发送或接收信息的硬件/软件进程。
- 对等层:两个不同系统的同级层次。
- 对等实体:分别位于不同系统对等层中的两个实体。
- 服务:某一层及其以下各层的一种能力,通过接口提供给其相邻上层。
- 协议:通信双方在通信中必须遵守的规则。
- 接口:相邻两层之间交互的界面,定义相邻两层之间的操作及下层对上层的服务。
- 同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
TCP/IP的体系结构
协议栈:利用一组协议完成OSI所实现的功能。
TCP/IP协议栈:是一组由不同的协议组合在一起构成的协议栈。
TCP/IP沙漏模型
TCP/IP 分层模型中的两个边界 - 操作系统边界:将操作系统与应用程序分开的边界。
- 协议地址边界:将高层互联网地址与低层物理网卡地址分开的边界。