1.1 计算机网络概述
1.1.1 计算机网络的概念
计算机网络是将一个分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
1.1.2 计算机网络的组成
(1)从组成部分看:
计算机网络主要由硬件、软件、协议三大部分组成。
硬件主要由主机(端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理器(如网卡)等组成。
软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发系统、FTP程序、聊天程序等)。
(2)从工作方式上看:
计算机网络(这里指因特网)可分为边缘部分和核心部分。
(3)从功能组成上看:
计算机网络由通信子网和资源子网组成。
1.1.3 计算机网络的功能
(1)数据通信
如文件传输、电子邮件等。
(2)资源共享
(3)分布式处理
当计算机网络中的某个计算机系统负荷过重时,可将其处理的某个复杂任务分配给网络中的其它计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。
(4)提高可靠性
计算机网络中的各台计算机可以通过网络互为替代机。
(5)负载均衡
将工作任务均衡地分配给计算机网络中的各台计算机。
1.1.4 计算机网络的分类
1. 按分布范围分类
(1)广域网(WAN)
主要用于长距离通信。广域网是因特网的核心部分,连接广域网的各交换机的链路一般都是高速链路,具有较大的通信容量。
(2)城域网(MAN)
可以覆盖整个街区甚至整个城市,大多采用以太网技术。城域网有时也常并入局域网的讨论范围。
(3)局域网(LAN)
局域网一般用微机或工作站通过高速链路相连,覆盖范围较小。局域网在计算机配置的数量上没有太多限制,可以只有两台,也可以多达几百台。传统上,局域网使用广播技术,广域网使用交换技术。
(4)个人区域网(PAN)
个人区域网是指在个人工作的地方将消费电子设备(如平板电脑、智能手机等)用无线技术连接起来的网络,也常称为无限个人区域网(WPAN),覆盖区域的直径约为10m。
2. 按传输技术分类
(1)广播式网络
所有联网的计算机都共享一个公共通信信道。当一台计算机利用共享通信信道发送报文分组时,所有其他的计算机都会“收听”到这个分组。接收到该分组的计算机将通过检查目的地址来决定是否接收该分组。
局域网基本上都采用广播式通信技术,广域网中的无线、卫星通信网络也采用广播式通信技术。
(2)点对点网络
每条物理线路连接一对计算机。若通信的两台主机之间没有直接连接的线路,则它们之间的分组传输就要通过中间节点进行接收、存储和转发,直至目的节点。
是否采用分组存储转发与路由选择机制是点对点式网络与广播式网络的重要区别,广域网基本都属于点对点网络。
3. 按拓扑结构分类
网络的拓扑结构主要指通信子网的拓扑结构。
(1)总线形网络
用单根传输线把计算机连接起来。
优点:建网容易、增/减节点方便、节省线路。
缺点:重负载时通信效率不高、总线任意一处对故障敏感。
(2)星形网络
每个终端或计算机都以单独的线路与中央设备相连。中央设备早起是计算机,现在一般是交换机或路由器。
优点:便于集中控制和管理(因为端用户之间的通信必须经过中央设备)。
缺点:成本高、中央设备对故障敏感。
(3)环形网络
所有计算机接口设备连接成一个环。例如令牌环局域网。环可以是单环,也可以是双环,环中心号是单向传输的。
(4)网状结构
一般情况下,每个节点至少有两条路径与其他节点相连,多用在广域网中。有规则型和非规则型两种。
4. 按使用者分类
(1)公用网
指电信公司出资建造的大型网络。“公用”的意思是指所有愿意按电信公司的规定缴纳费用的人都可以使用这种网络。
(2)专用网
指某个部门为满足本单位特殊业务的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如铁路、电力、军队等部门的专用网。
5. 按交换技术分类
交换技术指各台主机之间、各通信设备之间或主机与通信设备之间为交换信息所采用的数据格式或交换装置的方式。
(1)电路交换网络
在源节点和目的节点建立一条专用的通路用于传送数据,包括建立连接、传输数据、断开连接三个阶段。如传统电话网络。特点是整个报文的比特流连续地从源点直达终点。
优点:直接传送、时延小。
缺点:线路利用率低、不能充分利用线路容量、不便于进行差错控制。
(2)报文交换网络
用户数据加上源地址、目的地址、校验码等辅助信息,然后封装成报文。整个报文传送到相邻节点,全部存储后,再转发给下一个节点,重复这一过程直到到达目的节点。每个报文可以单独选择到达目的节点的路径。
优点:可以较为充分地利用线路容量,可以实现不同链路之间不同数据传输速率的转换,可以实现格式转换,可以实现一对多、多对一的访问,可以实现差错控制。
缺点:增加了缓冲时延,需要额外的控制机制来保证多个报文的顺序不乱序,缓冲区难以管理(因为报文的大小不确定,接收方在接收到报文之前不能预知报文的大小)。
(3)分组交换网络
其原理是将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址等辅助信息组成分组包,以存储转发方式传输。
其主要特点是单个分组传送到相邻节点,存储后查找转发表,转发到下一个节点。除具备报文交换网络的优点外,分组交换网络还具有自身的优点:缓冲易于管理;分组包的平均时延更小,网络占用的平均缓冲区更少;更易于标准化;更适合应用。现在的主流网络基本上都可视为分组价换网络。
6. 按传输介质分
(1)有线网络
有线网络还可分为双绞线网络、同轴电缆网络等。
(2)无线网络
无线网络又可分为蓝牙、微波、无线电等类型。
1.1.5 计算机网络的性能指标
(1)带宽
在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据传输速率”的同义语,单位:比特/秒(b/s)。(带宽本来表示通信线路允许通过的信号频带范围,单位是赫兹(Hz)。)
(2)时延
指数据从网络的一段到另一端所需要的总时间,它由4部分构成:发送时延、传播时延、处理时延、排队时延。
a. 发送时延
节点将分组的所有比特推向传输链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完所需的时间,也称传输时延。
发送时延=分组长度/信道宽度
b.传播时延
电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的一端传播到另一端所需的时间。计算公式为:
传播时延= 信道长度/电磁波在信道上的传播速率
c.处理时延
数据在交换节点为存储转发而进行的一些必要的处理所花费的时间。例如,分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等。
d.排队时延
分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发,这就产生了排队时延。
因此,网络在数据中心经历的总时延就是以上4部分之和。
(3)时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为单位的链路长度,即时延带宽积=传播时延*信道带宽。
(4)往返时延
只从发送端发出一个短分组,到发送端接收到来自接收端的确认总共经历的时延(接收端接收到数据后立即发送确认)。在互联网中,往返时延还包括中间节点的处理时延、排队时延、转发数据时的发送时延。
(5)吞吐量
指单位时间内通过某个网络(或信道或接口)的数据量。吞吐量受网络带宽或网络额定速率的限制。
(6)速率
网络中的速率是指连接到计算机网络上的主机在数字信道上传送数据的速率,也称数据传输速率、数据率或比特率,单位为b/s,bit/s,bps,都是比特/秒的意思。通常把数最高数据传输速率称为带宽。
(7)信道利用率
指出某一信道有百分之多少的时间是有数据通过的。
信道利用率=有数据通过时间/(有数据通过时间+无数据通过时间)
1.2 计算机网络体系结构与参考模型
1.2.1 计算机网络分层结构
为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以分层的方式进行建模。
我们把计算机网络的各层及其协议的集合称为网络的体系结构。计算机网络的体系结构通常都具有可分层的特性,它将复杂的大系统分成若干较容易实现的层次。
1. 分层原则
(1)每层都实现一种相对独立的功能,降低大系统的复杂度。
(2)各层之间界面自然清晰,易于理解,相互交流尽可能少。
(3)各层功能的精确定义独立于具体的实现方法,可以采用最合适的奇数来实现。
(4)保持下层对上层的独立性,上层单向使用下层提供的服务。
(5)整个分层结构应能促进标准化工作。
2. 结构单元
在分层结构中,第n层中的活动元素通常称为第n层实体。实体指任何可发送或接收信息的硬件或软件进程,通常是一个特定的软件模块。不同机器上的同一层称为对等层,同一层的实体称为对等实体。
在各个层次中,每个报文都分为两部分:一是数据部分(即SDU);另一部分是控制信息部分(即PCI),他们共同组成协议数据单元(PDU)。
服务数据单元(SDU):为完成用户要求的功能而应传送的数据。第n层的服务数据单元记为n-SDU。
协议控制信息(PCI):控制协议操作的信息。第n层协议控制信息记为n-PCI。
协议数据单元(PDU):对等层次之间传送的数据单位称为该层的PUD。第n层的协议数据单元记为n-PDU。在实际的网络中,每层协议数据单元都有一个通俗的名称,如物理层的PDU称为比特,数据链路层的PDU称为帧,网络层的PDU称为分组,传输层的PDU称为报文段。
3. 层次结构的含义
(1)本层实体不仅要使用下层的服务来实现自身定义的功能,还要想上层提供本层的服务,该服务是本层及下面各层提供的服务总和。
(2)最底层只提供服务,是整个层次结构的基础;中间各层既是下一层的服务使用者,又是上一层的服务提供者;最高层面向用户提供服务。
(3)上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其它层的服务;下一层所提供服务的实现细节对上一层透明。
(4)两台主机通信时,对等层在逻辑上有一条直接信道,表现为不经过下层就把信息传送到对方。
1.2.2 计算机网络中的协议、接口、服务
1. 协议
协议就是规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(简称协议)。
2. 接口
接口是同一节点内相邻两层交换信息的连接点,是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。
同一节点相邻两层的实体通过服务访问点(SAP)进行交互,服务是通过SAP提供给上层使用的。
3. 服务
a. 服务使用
服务是指下层为紧邻上层提供的功能调用,它是垂直的。对等实体在协议的控制下,使得本层能为上层提供服务,但要实现本层协议还需要使用下一层所提供的服务。
上层使用下层所提供的服务时必须与下层交换一些命令,这些命令在OSI参考模型中称为服务原语。OSI参考模型将原语划分为4类。
(1)请求
由服务用户发往服务提供者,请求完成某项工作。
(2)指示
由服务提供者发往服务用户,指示用户做某件事情。
(3)相应
由服务用户发往服务提供者,作为对指示的响应。
(4)证实
由服务提供者发往服务用户,作为对请求的证实。
这4类原语用于不同的功能,如建立连接、传输数据和断开连接等。有应答服务包括全部4类原语,而无应答服务则只有请求和指示两类原语。
b. 服务分类
(1)面向连接服务与无连接服务
在面向连接服务中,通信前双方必须先建立连接,分配相应资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输、连接释放三个阶段。例如TCP就是一种面向连接服务的协议。
(2)可靠服务和不可靠服务
可靠服务是指有网络有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
不可靠服务是指网络知识尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。
(3)有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答服务。
无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于www服务,客户端收到服务器发送的页面文件后不给出应答。
1.2.3 ISO/OSI参考模型

1. 物理层
物理层的传输单位是比特,功能是在物理媒体上为数据端设备透明地传输原式比特流。
物理层主要定义数据终端设备(DTE)和数据通信设备(DCE)的物理与逻辑连接方法,所以物理层协议也称物理层接口标准。
两个通信结点及它们间的一段通信线路:

物理层的主要研究内容:
(1)通信链路与通信结点的连接需要一些电路接口,物理层规定了这些接口的一些参数,如机械形状和尺寸,交换电路的数量和排列等。如笔记本电脑上的网线接口。
(2)物理层也规定了通信连路上传输信号的意义和电气特征。例如物理层规定信号A代表数字0,那么当节点要传输数字0时,就会发出信号A,当节点接收到信号A时,就知道自己接受的实际上是数字0。
注意:传输信息所利用的一些物理媒体,如双绞线、光缆、无线信道等,并不在物理层协议之内而在物理层协议下面。因此,有人把物理媒体当作第0层。
2. 数据链路层
数据链路层的传输单位是帧,任务是将网络层传来的IP数据报组装成帧。数据链路层的功能可以概况成封装成帧、差错控制、流量控制、传输管理。
由于外界噪声的干扰,原始的物理连接在传输比特流时可能发生错误。如0变1,或1变0。两个节点之间如果规定了数据链路层协议,那么可以检测出这些差错,然后把收到的错误信息丢弃,这就是差错控制功能。
在两个相邻结点之间传送数据时,由于两个结点性能的不同,可能结电A发送数据的速率会比结点B接受数据的速率快,如果不加以控制,那么结点B就会丢弃很多来不及接收的正确数据,造成传输速率的下降。流量控制可以协调两个节点的速率,使结点A发送数据的速率刚好是结点B可以接收的速率。
广播式网络在数据链路层还要处理新的问题,即如何控制对共享信道的访问。数据链路层的一个特殊的子层——介质访问子层,就是专门处理这个问题的。
典型的数据链路层协议有SDLC、HDLC、PPP、STP、帧中继等。
3. 网络层
网络层的传输单位是数据报,它关心的是通信子网的运行控制,主要任务是把网络层的协议数据单元(分组)从原端传送到目的端,为分组交换网上的不同主机提供通信服务。关键问题是对分组进行路由选择,并实现差错控制、流量控制、拥塞控制、网际互联等功能。
某网络结构图:

结点A向结点B传输一个分组时,既可以经过acg,也可以经过b、h,有很多条可以选择的路由,而网络层的作用就是根据网络的情况,利用相应的路由算法计算出一条合适的路径,使这个分组可以顺利到达结点B。
流量控制与数据链路层的流量控制含义一样,都是协调A的发送速率和B的接收速率。
差错控制是通信两节点之间约定的特定检错规则,如奇偶校验码,接收方根据这个规则检查接收到的分组是否出现差错,如果出现了差错,那么能纠错就纠错,不纠错就丢弃,确保向上层提交的数据都是无误的。
如果图中的节点处于都来不及接收分组而要丢弃大量分组的情况,那么网络就处于拥塞状态,拥塞状态使得网络中的两个节点无法正常通信。网络层要采取一定的措施来缓解这种拥塞,这就是拥塞控制。
因特网是一个很大的互联网,它由大量异构网络通过路由器相互连接起来。因特网的主要网络层协议是无连接的网际协议(IP)和许多路由选择协议,因此网络层也叫网际层或IP层。
网络层的协议有IP、IPX、ICMP、IGMP、ARP、RARP、和OSPF等。
4. 传输层
传输层的单位是报文段(TCP)或用户数据包(UDP),传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端连接提供差错控制、流量控制、服务质量、数据传输管理等服务。
数据链路层提供的是点到点的通信,传输层提过的是端到端的通信,两者不同。通俗地说,点到点可以理解为主机到主机之间的通信,一个点是指一个硬件地址或IP地址,网络中参与通信的主机是通过硬件地址或IP地址来标识的;端到端的通信时指运行在不同主机内的两个进程之间的通信,一个进程有一个端口来标识,所以称为端到端通信。
使用传输层的服务,高层用户可以直接进行端到端的数据传输,从而忽略通信子网的存在。通过传输层的屏蔽,高层用户看不到子网的交替和变化。由于一台主机可以同时运行多个进程,因此传输层具有复用和分用的功能。
复用是指多个应用层进程可同时使用下面传输层的服务,分用是指传输层把收到的信息分别交付给上面应用层中相应的进程。
5. 会话层
会话层允许不同主机上的各个进程进行会话。会话层利用传输层提供的端到端的服务。向表示层提供它的增值服务。这种服务主要为表示层实体或用户进程建立连接并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)。
会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的会话。会话层可以使用校验点使通信会话在通信失效时从校验点恢复通信,实现数据同步。
6. 表示层
表示层主要处理在两个通信系统中交换信息的表示方式。不同机器采用的编码和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据和信息之间能互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式。数据压缩、加密和解密也是表示层可提供的数据表示变换功能。
7. 应用层
应用层是OSI参考模型的最高层,是用户与网络的界面。应用层为特定类型的网络应用提供访问OSI参考模型环境的手段。因为用户的实际应用多种多样,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,因此应用层是最复杂的一层,使用的协议也最多。
典型的协议有用于文件传输的FTP、用于电子邮件的SMTP、用于万维网的HTTP。
1.2.4 TCP/IP模型

1. 网络接口层
网络接口层的功能类似于OSI参考模型的物理层和数据链路层。它表示与物理网络的接口,但实际上TCP/IP本身并未真正描述这一部分,知识指出主机必须使用某政协以与网络连接,以便在其上传递IP分组。具体的物理网络可以是各种类型的局域网,如以太网、令牌环网、令牌总线网等,也可以是诸如电话网、SDH、X.25、帧中继和ATM等公共数据网络。网络接口层的作用是从主机或结点接收IP分组,并把他们发送到指定的物理网络上。
2. 网际层
网际层(主机-主机)是TCP/IP体系结构的关键部分。它和OSI参考模型的网络层在功能上非常相似。网际层将分组发往任何网络,并为之独立地选择合适的路由,但它不保证各个分组有序得到达,各个分组的有序交付由高层负责。网际层定义了标准的分组格式和协议,即IP。当前采用的IP协议是第四版,即IPv4,它的下一版本是IPv6。
3. 传输层
传输层(应用-应用或进程-进程)的功能同样和OSI参考模型中的传输层类似,即使得发送端和目的主机端上的对等实体进行会话。传输层主要是用一下两种协议:
(1)传输控制协议(TCP):它是面向连接的,数据传输的单位是报文段。
(2)用户数据报协议(UDP):它是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付。只能“尽最大努力交付”。
4. 应用层
应用层(用户-用户)包含所有的高层协议,如虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)。
由图可见,IP协议是因特网中的核心协议;TCP/IP可以为各式各样的应用提供服务,同时TCP/IP也允许协议在由各种网络构成的互联网上运行(IP over everything)。
1.3 重难点
1. 端到端通信和点到点通信有什么区别?
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务,而传输层为网络中的主机提供端到端的通信。
直接相连的节点之间的通信称为点到点通信,它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程)之间的通信。“端”是指用户程序的端口,端口号标识了应用层中不同的进程。