计算机网络原理学习笔记

目录

一. 计算机网络概述

1.1 计算机网络基本概念

计算机网络起源: 从技术范畴来看,计算机网络是计算机技术与(通信)技术相互融合的产物。

计算机网络的定义: 计算机网络是互连的、自治计算机的集合。

“自治”:指互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。
“互连”:指利用通信链路连接相互独立的计算机系统。
计算机:计算机设备。

协议: 协议是网络通信实体之间在数据交换过程中需要遵循的规则或约定,是计算机网络有序运行的重要保证。
协议三要素:语义、语法、时序。

  1. 语法,语法是定义实体之间交换信息的格式与结构;
  2. 语义,语义就是定义实体之间交换的信息中需要发送控制信息;
  3. 时序,时序也称为同步,定义实体之间交换信息的顺序以及如何匹配或适应彼此的速度。

计算机网络的功能:

硬件资源共享:云计算,云存储

软件资源共享:SaaS

信息资源共享:信息检索

计算机网络的分类:

按覆盖范围分类:

  1. 个域网(PAN):随身穿戴设备、便携设备通过无线技术构成的小范围网络。
  2. 局域网(LAN):通常部署在办公室、办公楼、厂区、校区等局部区域内。
  3. 城域网(MAN):覆盖一个城市范围的网络。
  4. 广域网(WAN):覆盖范围在几十到几千千米,可以实现异地城域网或局域网的互连。

按拓扑结构分类:

  1. 星形拓扑结构

在这里插入图片描述
优点:易于监控与管理,故障诊断与隔离容易;
缺点:中央结点是网络的瓶颈,一旦故障,全网瘫痪,网络规模受限于中央结点的端口数量。

  1. 总线型拓扑结构
    在这里插入图片描述

    优点:结构简单,所需电缆数量少,易于扩展;
    缺点:是通信范围受限,故障诊断与隔离较困难,容易产生冲突。

    1. 环形拓扑结构
      在这里插入图片描述

    优点:所需电缆长度短,可以使用光纤,易于避免冲突;
    缺点:某结点的故障容易引起全网瘫痪,新结点的加入或撤出过程比较麻烦,存在等待时间问题。

    1. 网状拓扑结构
      在这里插入图片描述
      优点:网络可靠性高,一条或多条链路故障时,网络仍然可联通;
      缺点:网络结构复杂,造价成本高,选路协议复杂。

    2. 树形拓扑结构
      在这里插入图片描述
      优点:易于扩展,故障隔离容易;
      缺点:对根结点的可靠性要求高,一旦根结点故障,则可能导致网络大范围无法通信。

    3. 混合拓扑结构网络是由两种以上简单拓扑结构混合连接而成的网络。
      在这里插入图片描述

    优点:易于扩展,可以构建不同规模网络,并可根据需要优选网络结构;
    缺点:网络结构复杂,管理与维护复杂。

按交换方式分类:

电路交换网络

报文交换网络

分组交换网络

按网络用户属性分类:

  1. 公用网:公用网是指由国家或企业出资建设,面向公众提供收费或免费服务的网络。例如电信网络。
  2. 私有网:私有网是指由某个组织(如政府部门或企业等)出资建设,专门面向该组织内部业务提供网络传输服务,不向公众开放的网络。例如银行、军事,铁路专用网。
1.2 计算机网络结构

大规模现代计算机网络的结构包括网络边缘接入网络网络核心 3 部分。

一、网络边缘:连接到网络上的计算机、服务器、智能手机、智能传感器、智能家电等称为主机或端系统。

二、接入网络

  1. 电话拨号接入
  2. 非对称数字用户线路 ADSL
  3. 混合光纤同轴电缆 HFC 接入网络
  4. 局域网:典型的局域网技术是以太网、Wi-Fi 等
  5. 移动接入网络:移动接入网络主要利用移动通信网络,如 3G/4G/5G 网络,实现智能手机、移动终端等设备的网络接入。

三、网络核心

1.3 数据交换技术

一、电路交换

电路交换是最早出现的一种交换方式,电话网络则是最早、最大的电路交换网络。
利用电路交换进行通信包括建立电路、传输数据和拆除电路 3 个阶段。

特点: 在通信时需要先建立电路连接,在通信过程中独占一个信道,通信结束后拆除电路连接。

优点: 实时性高,时延较小;

缺点: 对于突发性数据传输,信道利用率低,且传输速率单一。电路交换主要适用于语音和视频这类实时性强的业务。

二. 报文交换

报文交换也称为消息交换。存储-转发式交换方式。适用于电报通信。

三. 分组交换

是目前计算机网络广泛采用的技术,也称包交换。分组交换需要将待传输数据(即报文)分割成较小的数据块,每个数据块附加上地址、序号等控制信息构成数据分组,每个分组独立传输到目的地,目的地将收到的分组重新组装,还原为报文。采取存储-转发交换方式。

优点:

  1. 交换设备存储容量要求低
  2. 交换速度快
  3. 可靠传输效率高
  4. 更加公平

缺点: 有效传输效率降低

分组长度的确定:

分组长度与延迟时间:在其他条件相同的情况下,分组长度越长,延迟时间越长,所以,对于实时交互通信,要求延迟时间段,分组长度应该尽可能短;对于诸如文件传送类的非实时数据通信,延迟要求不高,即使分组长度较长,也不致影响正常通信,分组长度可以适当长些。

分组长度与误码率:分组数据交换的规格和标准已由国际电信联盟以建议的形式制定出,分组长度以 16B(1B=8bit)到4096B 之间的 2^n B 为标准分组长度,如 32B、64B、256B、512B 和 1024B等。

1.4 计算机网络性能
1.4.1 速率与带宽

速率: 是指网络单位时间内传送的数据量,用以描述网络传输数据的快慢,也称为数据传输速率或数据速率。计算机网络传输的数据是以位为信息单位的二进制数据,速率的基本单位是 bit/s(位每秒),因此有时也称速率为比特率(bit rate)。

带宽: 带宽原本是指信号具有的频带宽度,即信号成分的最高频率与最低频率之差,单位为 Hz (赫兹)。
在计算机网络中,当描述一条链路或信道的数据传输能力时,经常使用“带宽”一词表示链路或信道的最高数据速率,单位也是 bit/s。由于带宽具有不同的含义与单位,所以有时需要明确说明或者根据上下文判断其具体含义和单位。

1.4.2 时延
  1. 时延是评价计算机网络性能的另一个重要的性能指标,也称为延迟。时延是指数据从网络中的一个结点(主机或交换设备等)到达另一结点所需要的时间。

  2. 在计算机网络中,通常将连接两个结点的直接链路称为一个“跳步”,简称“跳”。

  3. 分组的每跳传输过程主要产生 4 类时间延迟:结点处理时延、排队时延、传输时延和传播时延。

    结点处理时延 : 每个分组到达交换结点时,交换设备通常可能需要验证分组是否有差错,根据分组携带的信息检索转发表,确定如何转发该分组,还有可能修改分组的部分控制信息等。针对分组进行这些操作所消耗的时间总和,构成了结点处理时延,记为 dc 。

    排队时延 : 分组在缓存中排队等待的时间就是排队时延,记为 d q 。

    传输时延 : 当一个分组在输出链路发送时,从发送第一位开始,到发送完最后一位为止,所用的时间,称为传输时延,也称为发送时延,记为 d t 。假设分组长度为 Lbit,链路带宽(即速率)为Rbit/s,则分组的传输时延为 d t =L/R。

    传播时延 : 信号从发送端发送出来,经过一定距离的物理链路到达接收端所需要的时间,称为传播时延,记为 d p 。显然,若物理链路长度为 D(m),信号传播速度为 V(m/s),则传播时延为 d p =D/V

    跳步时间 : 一个分组经过一个跳步所需时间d h =d c +d q +d t +d p 。 如果一个分组从源主机到达目的主机经过n个交换结点,即经过的跳步数为(n+1)

1.4.3 时延带宽积

一段物理链路的传播时延与链路带宽的乘积,称为时延带宽积,记为 G,于是 G=d p *R,G的单位是位。
时延带宽积的物理意义在于:如果将物理链路看作一个传输数据的管道的话,时延带宽积表示一段链路可以容纳的数据位数,也称为以位为单位的链路长度。

1.4.4 丢包率

当网络拥塞特别严重时,新到达的分组甚至已无缓存空间暂存该分组,此时交换结点会丢弃分组,就会发生“丢包”现象。丢包率常被用于评价和衡量网络性能的指标,在很大程度上可以反映网络的拥塞程度,因为引发网络丢包的主要因素是网络拥塞。

1.4.5 吞吐量

吞吐量表示在单位时间内源主机通过网络向目的主机实际送达的数据量,单位为 bit/s 或 B/s(字节每秒),记为 Thr。吞吐量经常用于度量网络的实际数据传送(通过)能力,即网络实际可以达到的源主机到目的的主机的数据传送速率。吞吐量受网络链路带宽、网络连接复杂性、网络协议、网络拥塞程度等因素影响。

1.5 计算机网络体系结构
1.5.1 计算机网络分层体系结构
  1. 按照分层的思想,计算机网络完成的所有功能可以划分为若干层,每层完成一部分子功能,每层在完成相应功能时与另一通信实体的相同层按照某种协议进行信息交换,这样,计算机网络所划分的层次以及各层协议的集合称为计算机网络体系结构。
  2. 体系结构应当具有足够的信息,以便软件设计人员为每层编写实现该层协议的有关程序,即协议软件。
  3. 分层体系结构通常是按功能划分的。
  4. 目前,典型的层次化体系结构有 OSI 参考模型TCP/IP 参考模型两种。
1.5.2 OSI 参考模型

负责制定国际标准的国际标准化组织 ISO 参考了 IBM 的 SNA 和其他计算机厂商的网络体系结构,提出了开放系统互连参考模型,简称 OSI 参考模型,按照这个标准设计建成的计算机网络中的设备都可以相互通信。
在这里插入图片描述
OSI 参考模型采用分层结构化技术,将整个计算机网络的通信功能分为 7 层,由低至高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

OSI 参考模型的物理层、数据链路层和网络层称为结点到结点层,传输层、会话层、表示和应用层称为端到端层。

物理层: 物理层的主要功能是在传输介质上实现无结构比特流传输。物理层的另一项主要任务就是规定数据终端设备(DTE)与数据通信设备(DCE)之间接口的相关特性,主要包括机械、电气、功能和规程 4 个方面的特性。

数据链路层: 数据链路层的主要功能是实现相邻结点之间数据可靠而有效的传输。

网络层: 网络层解决的核心问题是如何将分组通过交换网络传送至目的主机,因此,网络层的主要功能是数据转发与路由。

传输层: 传输层的功能主要包括复用/分解(区分发送和接收主机上的进程)、端到端的可
靠数据传输、连接控制、流量控制和拥塞控制机制等。

会话层: 会话层是指用户与用户的连接,通过在两台计算机间建立、管理和终止通信来完成对话。会话层的主要功能:在建立会话时核实双方身份是否有权参加会话;确定双方支付通信费用;双方在各种选择功能方面取得一致;在会话建立以后,需要对进程间的对话进行管理与控制。

表示层: 表示层主要用于处理应用实体间交换数据的语法,其目的是解决格式和数据表示的差别,从而为应用层提供一个一致的数据格式,使字符、格式等有差异的设备之间相互通信,表示层还可以实现文本压缩/解压缩、数据加密/解密、字符编码的转换等功能。

应用层: 应用层与提供给用户的网络服务相关,这些服务非常丰富,包括文件传送、电子邮件、P2P 应用等。

1.5.3 OSI 参考模型有关术语

数据单元: 在层的实体之间传送的比特组称为数据单元。

服务访问点: 相邻层间的服务是通过其接口面上的服务访问点(SAP)进行的,N 层 SAP 就是(N+1)层可以访问 N 层的地方。每个 SAP 都有一个唯一的地址号码。

服务原语
请求: 用户实体请求服务做某种工作。
指示: 用户实体被告知某件事发生。
响应: 用户实体表示对某件事的响应。
证实: 用户实体收到关于它的请求的答复。

面向连接的服务和无连接的服务

在分层的体系结构中,下层向上层提供服务通常有两种形式:面向连接的服务和无连接的服务。

面向连接的服务以电话系统最为典型。
无连接的服务没有建立和拆除链路的过程。

1.5.4 TCP/IP 参考模型

作为最大、最重要的计算机网络——因特网的体系结构则可以用TCP/IP参考模型进行描述。

在这里插入图片描述

  1. 应用层:TCP/IP 参考模型将 OSI 参考模型中会话层和表示层的功能合并到了应用层来实现。用户通过应用层来使用 Internet 提供的各种服务。每一种应用都使用了相应的协议来将用户的数据按照协议定义的格式进行封装,以便达到对应的控制功能,然后再利用下一层即传输层的协议进行传输,例如 WWW 服务的应用层协议为 HTTP、文件传输是 FTP、电子邮件包括 SMTP 和 POP3 等。每一个应用层协议一般都会使用到两个传输层协议之一进行数据传输:面向连接的传输控制协议 TCP 和无连接的用户数据报协议 UDP。

  2. 传输层:传输层的协议为运行在不同主机上的进程提供了一种逻辑通信机制。TCP/IP参考模型的传输层主要包括面向连接、提供可靠数据流传输的传输控制协议 TCP 和无连接不提供可靠数据传输的用户数据报协议 UDP。

  3. 网络互联层:网络互联层是整个 TCP/IP 参考模型的核心,主要解决把数据分组发往目的网络或主机的问题。在 TCP/IP 参考模型中,网络互联层的核心协议是 IP,负责定义分组的格式和传输。 网络互联层还包括互联网控制报文协议ICMP、互联网多播组管理协议IGMP以及路由协议,如 BGP、OSPF 和 RIP 等。

  4. 网络接口层:实际上,TCP/IP 参考模型没有真正描述这一层的实现,只是要求能够提供给其上层——网络互联层一个访问接口,以便在其上传递 IP 分组。由于这一层未被定义,所以其具体的实现方法将随着网络类型的不同而不同。实际上,这一层对应 OSI 参考模型中的数据链路层和 物理层,网络层IP分组在这一层被封装到底层网络的链路层数据帧中,并最终以比特流的形式在物理介质上进行传输。

1.5.5 五层参考模型

在这里插入图片描述

五层参考模型包括物理层、数据链路层、网络层、传输层与应用层,各层功能基本与 OSI参考模型对应,这是近年来,在描述计算机网络中最常用、最接近实际网络的参考模型。

1.6 计算机网络与因特网发展简史

作为 Kleinrock 同事的 Lawrence Roberts 领导了美国高级研究计划部署(ARPA)的一项计算机科学计划,并于 1967 年发布了一个称为 ARPAnet 的总体计划。ARPAnet 是第一个分组交换计算机互连的网络,也是当今因特网的祖先。得到美国国防部高级研究计划署(DARPA)支持的 Vinton Cerf 与 Robert Kahn 提出了互联网体系结构,即构建网络之网络,并发展了 3 个因特网核心协议,即 TCP、UDP 和 IP,奠定了因特网的协议基础。

二. 网络应用

2.1 计算机网络应用体系结构

计算机网络应用是运行在计算机网络环境下的分布式软件系统,计算机网络应用很多,从体系结构角度可以分为:客户/服务器(C/S)结构、纯 P2P(Peer to Peer)结构和混合结构 3 种类型。

2.1.1 客户端/ 服务器(C/S )结构网络应用

客户/服务器结构的网络应用是最典型的、最基本的网络应用。

C/S 网络应用最主要的特征是通信只在客户端与服务器之间进行,客户与客户之间不进行直接通信。事实上,在现代计算机网络中,网络应用程序之间通信的基本模式就是 C/S 方式通信。在 C/S 通信过程中,主动发起通信的一方就是客户,被动接受通信的一方就是服务器。

显然,服务器为了能被动接受通信,必须先运行,做好通信准备。

2.1.2 纯 P2P 结构网络应用

P2P 网络应用是近年来网络上发展比较快,并且表现出许多优良性能,深受用户青睐的一类网络应用,在文件分发、文件共享、视频流服务等应用中,P2P 表现出优越的性能。

在纯 P2P 网络应用中,没有一直在运行的传统服务器,所有通信都是在对等的通信方之间直接进行,通信双方没有传统意义上的客户与服务器之分,“地位”对等。

对等端软件通常运行在普通用户的计算设备上,可以动态地直接与其他对等端进行通信。

任何一个对等端既可以主动发起请求另一个对等端的服务,也可以被动地为其他对等端提供服务。因此,P2P 应用中的每个对等端都同时具备 C/S 应用的客户与服务器的特征,是一个服务器与客户的结合体。事实上,P2P 应用中的对等端软件包括服务器软件与客户端软件。

2.1.3 混合结构网络应用

混合结构网络应用将 C/S 应用于 P2P 应用相结合,既有中心服务器的存在,又有对等端间的直接通信。

在混合结构网络应用中,存在客户(即对等端)与服务器之间的传统 C/S 结构的通信,也存在客户之间的直接通信。

2.2 网络应用通信基本原理
2.2.1 网络应用的基本通信过程

网络应用的本质是运行在不同主机上的应用进程之间的通信。无论哪种类型的网络应用,基本通信方式都是 C/S 通信,因此,网络应用的基本通信过程就是运行在不同主机上的应用进程间以 C/S 方式进行的通信。

2.2.2 网络应用于传输层服务

无论是服务器进程还是客户进程无论是服务器进程还是客户进程,当其遵循应用层协议组织好应用层报文后,需要通过层间接口(如应用编程接口 API)将报文传递给相邻的传输层,请求传输层协议提供的端到端传输服务,如图所表示的报文 M 通过接口传递给传输层(或从传输层接收 M)。
在这里插入图片描述

2.2.3 网络应用编程接口

典型的网络应用编程接口是套接字(Socket)。应用进程可以通过创建套接字实现与底层协议接口,并可以进一步通过套接字实现应用进程与底层协议之间的报文交换。因此,套接字是每个应用进程与其他应用进程进行网络通信时,真正收发报文的通道。

2.2.4 网络应用进程的标识

一个应用进程可以创建多个套接字与同一个或不同的传输层协议进行接口,对于一个传输层协议,需要为与其接口的每个套接字分配一个编号,标识该套接字,该编号称为端口号(port number)。通常服务器进程套接字会分配特定的端口号,而客户进程的套接字会绑定一个随机的唯一端口号。

一个主机上可能同时运行多个网络应用进程,每个应用进程通过一个或多个套接字与传输层协议进行接口,因此,通过进程运行的主机 IP 地址以及其套接字所绑定的端口号可以标识应用进程。IP 地址是 Internet 的网络层地址,用于唯一标识一个主机或路由器接口。

2.3. 域名系统(DNS )

DNS 是一个重要的基础应用,因为任何一个需要使用域名进行通信的网络应用,在应用通信之前首先需要请求 DNS 应用,将域名映射为 IP 地址。实现将域名映射为 IP 地址的过程,称为域名解析。DNS 为了实现域名解析,需要建立分布式数据库,存储网络中域名与 IP 地址的映射关系数据,这些数据库存储在域名服务器,域名服务器根据用户的请求提供域名解析服务。

2.3.1 层次化域名空间

DNS 为了实现域名的有效管理与高效查询,DNS 服务器按层次结构进行组织,并且该层次结构与域名的结构相对应。
1、国家顶级域名 nTLD:如 cn 表示中国,us 表示美国,uk 表示英国等。
2、通用顶级域名 gTLD:最早的顶级域名是 com(公司和企业)、net(网络服务机构)、org(非盈利性组织)、edu(专用的教育机构)、gov(专用的政府部门)、mil(专用的军事部门)、int(国际组织)。
3、基础结构域名:这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。

2.3.2 域名服务器

一个服务器所负责管辖的(或有权限的)范围叫做区。每个区设置相应的权威域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。

域名服务器根据其主要保存的域名信息以及在域名解析过程中的作用等,可以分为根域名服务器、顶级域名服务器、权威域名服务器、中间域名服务器 4 类。

1、根域名服务器:根域名服务器是最重要的域名服务器,是主机进行域名查询过程中首先被查询的域名服务器。

2、顶级域名服务器:即 TLD 服务器,负责管理在该顶级域名服务器注册的所有二级域名。

3、权威域名服务器:负责一个区的域名服务器,保存该区中的所有主机的域名到 IP 地址的映射。

4、中间域名服务器:在层次域名结构中,有时还存在一些既不是根域名服务器,又不是顶级域名服务器,也不是权威域名服务器的域名服务器,这些域名服务器通常称为中间域名服务器。

2.3.3 域名解析过程

域名解析分为递归解析迭代解析。提供递归查询服务的域名服务器,可以代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果发送给查询主机或服务器;

提供迭代查询的服务器,不会代替查询主机或其他域名服务器,进行进一步的查询,只是将下一步要查询的服务器告知查询主机或服务器(当然,如果该服务器拥有最终解析结果,则直接响应解析结果)。

在这里插入图片描述
在这里插入图片描述

2.4. 万维网应用
2.4.1 万维网应用结构
  1. Web 应用主要包括 Web 服务器、浏览器与超文本传输协议(HTTP)等部分。浏览器就是 Web 应用的客户端软件,即 Web 应用的客户代理,运行在用户计算机上。Web 服务器是Web 应用的服务器软件,存储并管理供用户请求浏览的 Web 页面或称为 Web 文档。Web应用是典型的客户/服务器网络应用,客户与服务器之间的交互基于应用层协议 HTTP。
  2. Web 页面是由对象组成的。一个对象通常分别存储为一个文件。在 Web 应用中,通过一个 URL 地址来寻址一个 Web 页或 Web 对象,HTML 基本 Web 页也是通过 URL 地址引用页面中的其他对象。每个 URL 地址主要由两部分组成:存放对象的服务器主机域名和对象的路径名。
2.4.2 HTTP
2.4.2.1 HTTP概述

HTTP 是 Web 应用的应用层协议,定义浏览器如何向 Web 服务器发送请求以及 Web 服务器如何向浏览器进行响应。目前以 HTTP/1.1 为主流。

2.4.2.2 HTTP连接

HTTP 基于传输层的 TCP 传输报文。浏览器在向服务器发送请求之前,首先需要建立 TCP连接,然后才能发送 HTTP 请求报文,并接收 HTTP 响应报文。根据 HTTP 在使用 TCP 连接的策略不同,可以分为非持久连接的 HTTP 和持久连接的 HTTP。

1.非持久连接
非持久连接是指 HTTP 客户端与 HTTP 服务器建立 TCP 连接后,通过该连接发送 HTTP 请求报文,接收 HTTP 响应报文,然后断开连接。

请求传输过程如下:

(1)HTTP 客户进程向服务器 www.abc.edu.cn 的 80 号端口,请求建立 TCP 连接。
(2)HTTP 客户进程基于已建立的 TCP 连接向服务器发送一个 HTTP 请求报文。
(3)HTTP 服务器进程接收该请求报文,从指定的路径中检索出 index.html 文件,并封装到一个 HTTP 响应报文中,发送给客户进程。
(4)HTTP 服务器进程通知 TCP 断开该 TCP 连接。
(5)HTTP 客户接收响应报文,断开 TCP 连接。浏览器从响应报文中提出 HTML 文件,进行解析显示,并获知还有 3 个 JPEG 图片的引用。
(6)对每个引用的 JPEG 图片,重复前 4 个步骤。

典型优化技术包括以下两种:

  • 并行连接,通过建立多条并行的 TCP 连接,并行发送 HTTP 请求和并行接收 HTTP 响应。

  • 持久连接,重用已建立的 TCP 连接发送新的 HTTP 请求和接收 HTTP 响应,从而消除新建TCP 连接的时间开销。

在这里插入图片描述
2. 持久连接

客户端请求了 Web 页后,继续传输引用的图像文件,这些图像文件多数情况下位于与 Web页所在的服务器相同的服务器,即具有站点局部性特点。这种情况下,可以不断建立的 TCP连接,而是利用该连接继续请求传输后续的 JPEG 小图像,这种 TCP 连接称为持久连接。

根据使用持久连接传输多个对象的策略不同,持久连接又分为两种工作方式:非流水方式持久连接和流水方式持久连接。

(1) 非流水方式持久连接:也称为非管道方式持久连接,客户端在通过持久连接一个响应报文后,才能发出对下一个对象的请求报文。

(2) 流水方式持久连接:也称为管道方式持久连接,客户端在通过持久连接收到前一个对象的响应报文之前,连续依次发送对后续对象的请求报文,然后再通过该连接依次接收服务器发回的响应报文。

使用持久连接的主要约束与规则如下:
(1) 如果客户端不期望在连接上发送其他请求,则应该在最后一条请求报文中包含connection:close 首部行。
(2) 如果客户端在收到的响应报文中包含 connection:close 首部行,则客户端不能再在这条连接上发送更多的请求。
(3) 每个持久连接只适用于一跳传输,HTTP/1.1 代理必须能够分别管理与客户端和服务器的持久连接。
(4) HTTP/1.1 代理服务器不应该与 HTTP/1.0 客户端建立持久连接。

2.4.2.3 HTTP报文

HTTP 报文由 4 个部分组成:起始行、首部行、空白行和实体主体。

HTTP 报文可以分为两类:请求报文和响应报文,请求报文由浏览器(客户端)发送给 Web服务器,响应报文由 Web 服务器发送给浏览器。

请求报文与响应报文最主要的区别是起始行不同

请求报文起始行为
方法 URL 协议版本

响应报文起始行为
协议版本 状态码 短语

每部分之间由空格分离,起始行最后是 CRLF。

HTTP 典型的请求方法有 GET、HEAD、POST、OPTION、PUT 等。

1、GET:请求读取由 URL 所标识的信息,是最常见的方法。
2、HEAD:请求读取由 URL 所标识的信息的首部,即无须再响应报文中包含对象。
3、POST:给服务器添加信息(例如,注释)
4、OPTION:请求一些选项的信息。
5、PUT:在指明的 URL 下存储一个文档。

2.4.2.4 HTTP状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

分类分类描述
1xx信息,服务器收到请求,需要请求者继续执行操作
2xx成功,操作被成功接收并处理
3xx重定向,需要进一步的操作以完成请求
4xx客户端错误,请求包含语法错误或无法完成请求
5xx服务器错误,服务器在处理请求的过程中发生了错误
2.4.3 Cookie

1、Cookie 中文名称为小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。

2、Cookie 技术主要包括 4 部分内容。
HTTP 响应报文中的 Cookie 头行:Set-Cookie。
用户浏览器在本地存储、维护和管理的 Cookie 文件。
HTTP 请求报文中的 Cookie 头行:Cookie。
网站在后台数据库中存储、维护 Cookie 信息,包括已分配给用户 ID、每个 ID 用户在本网站的访问特征等。

Cookie 的工作原理如图:
在这里插入图片描述

2.5 Internet 电子邮件
2.5.1 电子邮件系统结构

电子邮件系统主要包括邮件服务器、简单邮件传输协议、用户代理和邮件读取协议等。

邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等),是电子邮件体系结构的核心。

2.5.2 SMTP
2.5.2.1 SMTP邮件发送过程

SMTP 是 Internet 电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。SMTP 使用传输层 TCP 实现可靠数据传输,从发送方向接收方发送邮件。在发送邮件时,SMTP 客户端首先请求与服务器端的 25 号端口建立 TCP 连接,连接一旦建立,便开始进行 SMTP 应用层交互,实现邮件的发送。当 TCP 连接建立成功后,SMTP通过 3 个阶段的应用层交互完成邮件的传输,分别是握手阶段、邮件传输阶段和关闭阶段。SMTP 客户首先主动请求与 SMTP 服务器(25 号端口)建立 TCP 连接,一旦 TCP 连接建立成功,就开始了下列交互过程。
在这里插入图片描述

2.5.2.2 SMTP特点

1、SMTP 只能传送 7 位 ASCⅡ码文本内容,包括 SMTP 命令、应答消息以及邮件内容。
2、SMTP 传送的邮件内容中不能包含“CRLF.CRLF”,因为该信息用于标识邮件内容的结束。
3、SMTP 是“推动”协议。当客户端有邮件发送给服务器时,客户主动与服务器请求建立 TCP连接,然后将邮件“推送”给服务器。
4、SMTP 使用 TCP 连接是持久的。

2.5.2.3 电子邮件格式与 MIME

大部分邮件本身并不是一段文本内容,而是按着一定格式结构进行组织的。一份邮件包括首部、空白行、主体 3 部分。

由于 SMTP 只能传输 7 位 ASCⅡ码文本内容,所以在传输非 7 位 ASCⅡ码文本内容时,必须依据一个标准将非 7 位ASCⅡ码文本内容转换为 7 位 ASCⅡ码文本内容,然后再利用SMTP 进行传输。解决这一问题的具体方案就是多用途互联网邮件扩展(MIME)。MIME 已经广泛应用于互联网的邮件之中。

MIME 主要包括 3 个部分:

1、5 个 MIME 邮件首部字段,可包含在邮件首部中。这些字段提供了有关邮件主体的信息。
2、定义了多种邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
3、定义了邮件传送编码,可对任何内容格式进行转换,从而适合通过 SMTP 进行传送。

2.5.2.4 邮件读取协议
  1. POP3

    POP3 是一个简单的邮件读取协议,因此其功能很有限。为了保证读取邮件过程的可靠性,POP3 协议使用传输层 TCP。POP3 客户端运行在用户代理中,POP3 服务器运行在邮件服
    务器上,默认熟知端口号为 110。用户读取邮件中的邮件时,用户代理中的 POP3 客户首先请求与 POP3 服务器进行交互,实现对邮箱的操作。POP3 协议交互过程可以分为 3 个阶段:授权、事务处理和更新。

  2. IMAP

    IMAP 服务器将每个邮件与一个文件夹进行关联,当邮件第一次到达服务器时,与收件人的INBOX 文件夹相关联。通过 IMAP,收件人可以在服务器上创建新的文件夹,并可以对邮
    件进行移动、查询、阅读、删除等操作。

  3. HTTP

    HTTP 是 Web 应用的应用层协议。当使用基于 Web 的邮件时,HTTP 便被用于邮件的读取,此时,HTTP 也作为邮件读取协议使用。

2.6 FTP

1、文件传送协议是在互联网的两个主机间实现文件互传的网络应用,其应用层也称为 FTP。FTP 的服务器进程由两大部分组成:一部分为主进程,负责接受新的客户请求;另一部分为若干从属进程,负责处理单个客户请求,与具体客户进行交互。

2、FTP 的特点

(1)FTP 在传输文件内容时,需要新建一个数据连接,专用于文件传输,文件传输结束后,数据连接即关闭。也就是说,FTP 应用使用两个“并行”的 TCP 连接:控制连接和数据连接

(2)FTP 服务器必须在整个会话期间保留用户的状态,即 FTP 是有状态的。

(3)FTP 会话形式是客户向服务器发送命令,服务器发送状态码和短语作为应答。

2.7 P2P应用

P2P 体系结构对服务器的依赖很小,甚至对于纯 P2P 来说,整个应用几乎不依赖某个集中服务器,应用都是动态地在对等方之间进行。在 P2P 应用中,对等方随时可能加入应用,也可能随时离开应用,具有很强的应用规模伸缩性。P2P 应用充分聚集利用了端系统(对等方主机)的计算能力以及网络传输带宽,代表了全新的网络应用架构与理念。

2.8 Socket 编程基础

1、网络应用进程通信时需要通过 API 接口请求底层协议的服务,如传输层服务,目前在Internet 中应用最广泛的网络应用编程接口就是 Socket API。无论是客户进程还是服务器进程,都需要创建 Socket,实现与底层协议接口,从而可以通过 Socket 将数据发送出去或接收进来。

2、网络应用进程可以创建 3 种类型的 Socket:数据报类型套接字 SOCK_DGRAM、流式套接字 SOCK_STREA 和原始套接字 SOCK_RAM。

3、Socket API 函数调用过程

在这里插入图片描述

三. 传输层

3.1 传输层的基本服务
3.1.1 传输层功能

传输层的核心任务是为应用进程之间提供端到端的逻辑通信服务。

为此,传输层主要实现如下功能:

传输层寻址;
对应用层报文进行分段和重组;
对报文进行差错检测;
实现进程间端到端可靠数据传输控制;
面向应用层实现复用与分解;
实现端到端的流量控制;
拥塞控制等。

当然,并不是所有传输层协议都要实现所有这些功能,通常大部分传输层协议只实现其中一部分功能。不同传输层协议提供的服务也不同,例如,Internet 的传输层主要有两个协议:面向连接的 TCP 和无连接的 UDP,前者提供可靠数据传输服务,而后者则不提供可靠数据传输服务。

3.1.2 传输层寻址与端口

传输层为了支持运行在不同主机、不同操作系统上的应用进程之间的通信,必须用统一的寻址方法对应用进程进行标识。TCP/IP 体系结构网络的解决方法就是在传输层使用协议端口号(protocol port number),通常简称为端口(port),在全网范围内利用 “IP 地址+端口号” 唯一标识一个通信端点。IP 地址唯一标识进程运行在哪个主机上,同一主机上传输层协议端口号则可以唯一对应一个应用进程。

传输层端口号为 16 位整数,其中 0〜1023 为熟知端口号1024〜49151 为登记端口号,为没有熟知端口号的应用程序(服务器)使用,必须在互联网数字分配结构(The Internet Assigned Numbers Authority, IANA)登记,以防止重复; 49152~65535 为客户端口号或短暂端口号,留给客户进程或用户开发的非标准服务器暂时使用。 另外,端口号只本地有效,只是标 识了本计算机应用层中的各应用进程在与传输层交互时的层间接口,在 Internet 不同计算机中 运行的网络应用进程可能使用相同的端口号。

3.1.3 无连接服务与面向连接服务

传输层提供的服务可以分为无连接服务和面向连接服务两大类。

无连接服务是指数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送;

面向连接服务是指在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,数据传输结束后还需要再拆除连接。

Internet 网络提供无连接服务的传输层协议是 UDP,提供面向连接服务的传输层协议是 TCP。

3.2 传输层的复用与分解

支持众多应用进程共用同一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程,是传输层需要实现的一项基本功能,称为传输层的多路复用与多路分解,简称为复用与分解,也称为复用与分用。实现复用与分解的关键是传输层协议能够唯一标识一个套接字。

3.2.1 无连接的多路复用与多路分解

Internet 传输层提供无连接服务的传输层协议是 UDP。

UDP 套接字的端口号是 UDP 实现复用与分解的重要依据。下面结合图 3.3 所示的例子来解释 UDP 如何实现分解。假设在主机B 上同时运行两个服务器进程 P2, P2 均 使用无连接服务,P1WUDP 套接字端口号是 37568,P2WUDP 套接字端口号是 26478;在 主机 A 上运行两个客户进程,分别与 P1和 P2 通信,在主机 C 上运行一个客户进程,与 P2 通信。当客户进程向服务器进程发送一个应用程序数据块时,主机 A 或主机 C 中的 UDP 将 应用层数据块封装成一个 UDP 报文段,其中包括应用数据、源端口号、目的端口号等,然后,将得到的报文段传递给网络层。网络层将报文段封装到一个 IP 数据报中,并传送给主机 B(当然,IP 并不能确保 IP 数据报被送达)。

如果 IP 数据报到达主机 B,则主机 B 的网络层(IP)提取 IP 数据报中封装的 UDP 报文段,交付给主机 B 的传输层协议(即 UDP), 主机 B 传输层检查报文段中的目的端口号(37568或 26478)。如果报文段的目的端口号为 37568,则将其封装的应用层数据通过 37568 号套接字交付给 P1;如果报文段的目的端口号为 26478,则将其封装的应用层数据通过 26478 号套接字交付给P2。显然,尽管主机B可能同时运行多个使用传输层无连接服务的应用进程,但每个进程有自己的 UDP 套接字及相应的(唯一)端口号,当主机 B 的传输层从网络层接收到 UDP 报文段时,通过检索该报文段中的目的端口号,便可以将每个报文段分解(交付)到相应的套接字,从而将应用数据交付给正确的应用进程。
在这里插入图片描述

3.2.2 面向连接的多路复用与多路分解

Internet 传输层提供面向连接服务的是 TCP。TCP 服务器可以同时支持多个 TCP 套接字,每个套接字与一个进程(或线程)相关联,并由一个四元组来标识每个套接字。当一个 TCP报文段到达主机时,4 个字段都被用来将报文段分解到相应的套接字。需要再次说明的是,四元组中的源端口号和目的端口号是 TCP 报文段首部字段,而源 IP 地址和目的 IP 地址则是封装 TCP 报文段的 IP 数据报的首部 字段。图 3.4 为运行在主机 B 的 Web 服务器实现TCP 多路分解的例子。图 3.4 中主机 C 向 主机 B 发起了两个 HTTP 会话(需要建立两条TCP 连接),主机 A 向主机 B 发起了一个 HTTP 会话。主机 A、主机 B 和主机 C 都有自己唯一的 IP 地址,分别是 A、B、C 。主机 C 为其两个 HTTP 连接(即 TCP 连接)的客户端套接字分别分配了不同的源端口号: 7532 和 26145。由于客户端套接字端口号的选择通常是确保本地唯一、随机选择,因此,主机 A 选择源端口号时也可能将源端口号 26145 分配给其 HTTP 连接(图3.4 所示场景)。但这并不会产生问题,即主机 B 的传 输层(即 TCP)仍然能够正确分解这两个具有相同源端口号的连接,因为这两条连接的源 IP 地址不同。

在这里插入图片描述
概括来说,在 Internet 网络中,唯一标识套接字的基本信息是 IP 地址和端口号UDP 基于目的 IP 地址和目的端口号二元组唯一标识一个 UDP 套接字,从而可以实现精确分解

TCP则需要基于源 IP 地址、目的 IP 地址、源端口号和目的端口号四元组唯一标识一个 TCP 套接字(即一个 TCP 连接),从而实现精确分解。

3.3 停- 等协议与滑动窗口协议

Internet 传输层主要有两个协议:UDP 和 TCP,其中 TCP 就可以提供可靠数据传输服务。

3.3.1 可靠数据传输基本原理

实现可靠数据传输的措施主要包括以下几种:

1、差错检测:利用差错编码实现数据包传输过程中的比特差错检测(甚至纠正)。
2、确认:接收方向发送方反馈接收状态。
3、重传:发送方重新发送接收方没有正确接收的数据。
4、序号:确保数据按序提交。
5、计时器:解决数据丢失问题。

3.3.2 停- 等协议

基于重传机制的可靠数据传输协议称为自动重传请求(Automatic Repeat reQuest, ARQ)协议。最简单的 ARQ 协议就是停-等协议。

3.3.3 停等 协议的特点和基本工作过程

停-等协议的主要特点就是每发送一个报文段后就停下来等待接收方的确认,这也是该协议名称的基本含义。停-等协议的基本工作过程是:发送方发送经过差错编码和编号的报文段,等待接收方的确认;接收方如果正确接收报文段,即差错检测无误且序号正确,则接收报文段,并向发送方发送 ACK,否则丢弃报文段,并向发送方发送 NAK;发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段。

3.3.4 仍需 讨论的细节和变化

停-等协议虽然简单,但在应用实现可靠数据传输的各种措施时,仍然存在许多的变化或细节需要讨论。

1、关于差错检测。对于底层传输信道可能产生比特差错的情况下,不仅报文段的传输可能发生比特差错,ACK 或 NAK 数据包在通过底层信道传输时同样可能会发生比特差错,因此对报文段和 ACK 或 NAK 数据包均需进行差错编码以便进行差错检测。

2、关于序列号。对于停-等协议,序列号字段只需要 1 位就足够了,因为在停-等协议中,只需利用报文段的序号区分是新发的报文段还是重传的报文段。接收方根据报文段的序号就可以知道发送方是否正在重传前一个报文段(即接收到的报文段序号与最近收到的报文段序号相同),还是一个新报文段(即序号变化了,用模 2 运算“前向”移动了)。

3、关于 ACK 和 NAK。如前所述,在停-等协议中,接收端可以利用 ACK 进行肯定确认,利用 NAK 进行否定确认。但在实际的协议设计过程中,通常不使用 NAK,而只使用 ACK进行确认,这样可以减少数据包的种类,降低协议的复杂性。这会带来一个新的问题,那就是当接收端接收到的报文段出现差错时,如何向发送端进行确认呢?显然,如果只简单地发送 ACK 是肯定不行的,那会被发送方误解接收端已经正确接收了刚刚发送的报文段。为此,需要对 ACK 做细微的改进,即在 ACK 数据包中带上所确认的报文段序列号。例如,接收端当前正期望接收 0 号报文段,接收方收到报文段后首先进行差错检测,如果未发生差错,且报文段序号为 0,贝幡收报文段,并向发送方发送 ACK0,对 0 号报文段进行确认;如果检测到报文段有差错,或报文段不是 0 号报文(即 1 号报文段,为重复报段),则丢弃该报文段,并向发送方发送 ACK1,进行确认,相当于对上一个正确接收的 1 号报文段再次进行肯定确认。当发送方再次收到 ACK1 时,即收到重复的 ACK1,则表明刚刚发送的 0 号报文 段没有被接收方正确接收,所以需要重发。也就是说,利用重复 ACK 替代了 NAK。

4、关于 ACK 或 NAK 差错。在 ACK 或 NAK 数据包中增加了差错编码后,发送方可以检测出 ACK 或 NAK 是否发生差错。如果发送方检测出 ACK 或NAK 差错,则不能准确判断接收方是否已正确接收报文段或者没有接收报文段。在这种情况下,为了确保可靠传输,发送方采取“有错推断”'原则,即推断接收方没有正确接收相应的报文段。因此,当发送方检测到收到的 ACK 或 NAK 有差错时,便重传刚刚发送的报文段。当然,这可能带来一个新问题,就是接收方可能重复接收到同一个报文段,但接收方可以通过报文段的序号判断是 否是重复的报文段,对于重复到达的报文段进行丢弃并确认即可。

3.3.5 滑动窗口协议

如果发送方可以在等待确认之前连续发送 3 个分组,则协议的信道利用率相对于停-等协议就提高到 3 倍。在这种可靠数据传输协议中,从发送方向接收方传送的系列分组可以看成是填充到一条流水 线(或一条管道)中,故称这种协议为流水线协议或管道协议。相对于停-等协议,流水线协议实现可靠数据传输时,需要做如下的改进。

1、必须增加分组序号范围。必须确保每个正在传送中、未被确认的分组有一个唯一的 序号(重传的分组除外),以便准确区分每一个未被确认的分组。因此,在流水线可靠传输 协议中,分组中的序号字段需要多位,而不能像停-等协议那样只使用 1 位序号。

2、协议的发送方和(或)接收方必须缓存多个分组。发送方最低限度应当能缓冲那些已发送但没有确认的分组,一旦其中任何一个或多个分组丢失或错误,发送方可以从缓存中取出相应的分组,重发这些分组进行纠错。类似地,接收方或许也需要缓存那些已正确到达 但不是按序到达的分组,以便等缺失的分组到达后一并按序向上层提交数据。最典型的流水线可靠传输协议是滑动窗口协议。

3.4 用户数据报协议 (UDP)

1、用户数据报协议 UDP 是 Internet 传输层协议,提供无连接、不可靠、数据报尽力传输服务。UDP 是一种轻量级传输层协议,只提供最基本的传输层服务。UDP 是无连接的,因此在支持两个进程间通信时,没有握手过程。UDP 提供一种不可靠数据传送服务,也就是说,当应用进程将一个报文发送进 UDP 套接字时,UDP 并不保证将该报文送达到目的接收程。不仅如此,在发送方依次发送的报文段,UDP 即便将这些报文段送达到接收进程,也可能是乱序到达的。UDP 没有拥塞控制机制,所以 UDP 发送端可以用任何速率向其下层(即网络层)注入数据。当然,实际端到端吞吐量可能小于这种速率,这可能是因为中间链路的带宽受限或因为网络拥塞而造成的。

2、使用 UDP 的原因
1) 应用进程更容易控制发送什么数据以及何时发送。
2) 无需建立连接。
3) 无连接状态。
4) 首部开销小。

3.4.1 UDP 数据报结构

在这里插入图片描述

3.4.2 UDP 校验和

UDP 校验和提供了差错检测功能。

UDP 在计算校验和时,对所有参与运算的内容(包括 UDP 报文段)按 16 位(16 位对齐)求和,求和过程中遇到的任何溢出(即进位)都被回卷(即进位与和的最低位再加)。 最后得到的和取反码,就是 UDP 的校验和,填入 UDP 数据报的校验和字段。UDP 在生成校验和时,校验和字段取全 0。参与 UDP 校验和计算的内容包括 3 部分:UDP 伪首部、 UDP首部和应用层数据。

3.5 传输控制协议 (TCP)

传输控制协议(TCP)是 Internet 一个重要的传输层协议。TCP 提供面向连接、可靠、 有序、字节流传输服务。为了提供可靠数据传输,TCP 采用了前面所讨论的许多措施,其中包括差错检测、重传、累积确认、定时器以及序号和确认序号等。

3.5.1 TCP 报文段结构

TCP 报文段由首部字段和一个数据字段组成。

在这里插入图片描述
1) 源端口号与目的端口号字段分别占 16 位,标识发送该报文段的源端口和目的端口, 用于多路复用/分解来自或送到上层应用的数据。

2) 序号字段与确认序号字段分别占 32 位。

3) 首部长度字段占 4 位,指出 TCP 段的首部长度,以 4 字节为计算单位,例如该字段值为 5 时,表示 TCP 段的首部长度为 20 字节。由于 TCP 选项字段的原因,TCP 首部的长度是可变的。当该字段取最大值 15 时,表示 TCP 段的最大首部长度,即 60 字节。可见,TCP段的选项字段最多为 40 字节。

4)保留字段占 6 位,保留为今后使用,目前值为 0。

5)URG、ACK、PSH、RST、SYN 和 FIN 字段各占 1 位,共占 6 位,为 6 位标志位 (字段)。

6)接收窗口字段占 16 位,用于向对方通告接收窗口大小(单位为字节),表示接收方愿意(或还可以)接收的应用层数据字节数量,其值是本端接收对方数据的缓存剩余空间, 用于实现 TCP 的流量控制。

7)校验和字段占 16 位,校验和字段检验的范围类似于 UDP,包括 TCP 伪首部、TCP 首部和应用层数据 3 部分,计算方法与 UDP 校验和的计算方法相同。

8)紧急指针字段占 16 位,该字段只有 URG=1 时才有效。

9)选项字段的长度可变。T

10)填充字段,长度为 0〜3 字节,取值全 0,其目的是为了使整个首部长度是 4 字节的整数倍。

3.5.2 TCP 连接管理

TCP 连接管理包括连接建立与连接拆除。TCP 连接建立通过“三次握手”过程。假设主机A 上的一个进程想与主机 B 上的一个进程建立一条 TCP 连接,主机 A 应用进程首先通知主机 A 的 TCP,它想建立一个与主机 B 上某个进程之间的连接,主机 A 中的 TCP 会通过以下过程与主机 B 中的 TCP 建立一条 TCP 连接。

1) 主机 A 的 TCP 向主机 B 发出连接请求段(第一次握手)。

2) —旦包含 SYN 报文段的 IP 数据报到达主机 B,SYN 报文段被从该数据手艮中提取出来。主机 B 的 TCP 收到连接请求段后,如同意,则发回确认报文段(第二次握手)。

3)主机 A 收到 SYNACK 报文段后,也要给该连接分配缓存和变量,并向主机 B 发送确认报文段(第三次握手),该报文段是对主机 B 的同意连接报文段进行确认,其中 ACK=i,SYN=0 (因为连接已建立),seq=x+l,ack_seq=^l。第三次握手的 ACK 报文段可以携带从主机 A 到主机 B 的应用层数据。

3.5.3 三次握手

第一次握手:客户端作为连接建立发起端,选择客户端初始序列号X,向服务器发送 (SYN=1,seq=x)的 SYN 段。客户状态由 LISTEN 进入 SYN_SEND 状态,等待服务器确认。

第二次握手:服务器收到客户发送的SYN段后,选择服务器初始序列号向客户发送 (SYN=1,ACK=1, seq=y, ack_seq=x+1)的 SYNACK 段。同时,服务器状态由 LISTEN 进 入SYN_RCVD 状态。

第三次握手:客户端收到服务器 SYNACK 段后,向服务器发送(ACK=1, seq=x+1,ack_seq=y+1)的 ACK 段,同时,客户端进入 ESTABLISHED 状态,客户端确认连接已建立;

当服务器收到 ACK 段后,也进入 ESTABLISHED 状态,也确认连接已建立。至此,双方均确认连接建立成功。

3.5.4 四次挥手

1)当客户向服务器发送完最后一个数据段后,可以发送一个 FIN 段(FIN=1, seq=M), 请求断开客户到服务器的连接,其状态由 ESTABLISHED 进入 FIN_WAIT_1,在这一状态 下,只能接收服务器发送过来的数据,而不再发送数据。需要注意的是,FIN 段不封装应用层数据,但是也要消耗掉 1 个序列号(类似于 SYN 段)。

2) 服务器收到客户的 FIN 段后,向客户发送一个 ACK 段(ACK=1,seq=v, ack_seq=w+1),ACK 段可以封装应用层数据(如果有)。服务器状态由 ESTABLISHED 进入 CLOSE_WAIT,在这一状态下,服务器仍然可以发送数据,但不再接收数据。当客户收到 ACK 段后,其状态由FIN_WAIT_1 进入 FIN_WAIt3-仍然可以接收来自服务器的数据。此时的 TCP 连接已经关闭了客户向服务器方向的数据传输,故也称为半关闭。

3) 当服务器向客户发送完最后一个数据段后,服务器向客户发送FIN 段(FIN=1, ACK=1,seq=w, ack_seq=w+l),同样,该 FIN 段也不携带应用层数据。服务器状态则由 CLOSE_WAIT进入 LAST ACK,此时服务器也不再发送数据。

4) 当客户收到服务器发送的 FIN 段后,向服务器发送 ACK 段(ACK=1,seq=w+1,ack_seq=w+1),其状态由 FIN_WAIT_2 进入 TIME_WAIT,等待 2MSL(Maximum Segment Lifetime)时间,然后进入 CLOSED 状态,最终释放连接;服务器在收到最后一次 ACK 段后,状态由 LAST__ACK 进入 CLOSED,最终释放连接。

3.5.5 TCP 可靠数据传输

TCP 能够提供可靠的数据传输服务,是通过以下工作机制来实现的。

1) 应用数据被分割成 TCP 认为最适合发送的数据块(通常是 MSS),封装成 TCP 段,传递给 IP。

2) 当 TCP 发出一个段后,启动一个计时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,则认为该报文段丢失,将重发这个报文段。当 TCP 收到发自 TCP 连接另一端的数据,将发送一个确认段。

3) TCP 首部中设有校验和字段,用于检测数据在传输过程中是否发生差错。如果收到的报文段通过校验和检测,发现有差错,TCP 将丢弃这个报文段和不确认收到此报文段(希望发送端超时并重发),而将已连续接收到的应用层数据的最后一个字节的序号加 1,作为确认序号,向发送方发送确认段。

4) 由于 TCP 报文段封装到 IP 数据报中传输,而 IP 数据报的到达可能会经过不同的路径从而造成顺序的错乱,因此 TCP 报文段的到达也可能会失序。如果必要,TCP 将根据序号对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

5) 由于存在网络延迟和重传机制,TCP 的接收端有可能会收到多个重复的报文段,这时接收端需要根据序号把重复的报文段丢弃。

6) TCP 能够提供流量控制。TCP 连接的每一方都在建立连接时分配一定大小的接收缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这可以防止较快主机发送数据太快,致使较慢主机的缓冲区溢出。

3.5.6 TCP 流量控制

流量控制(flow control)的目的是协调协议发送方与接收方的数据发送与接收速度,避免因发送方发送数据太快,超出接收方的数据接收和处理能力,导致接收方被数据“淹没”,即数据到达速度超出接收方的接收、缓存或处理能力,致使数据在接收方被丢弃。流量控制问题不仅存在于端到端的传输层,也存在于数据链路层。

3.5.7 TCP 拥塞控制

拥塞是指太多主机以太快的速度向网络中发送太多的数据,超出了网络处理能力,导致大量数据分组“拥挤”在网络中间设备(如路由器)队列中等待转发,网络性能显著下降的现象。

拥塞控制(congestion control)就是通过合理调度、规范、调整向网络中发送数据的主机数量、发送速率或数据量,以避免拥塞或尽快消除己发生的拥塞。

四. 网络层

4.1 网络层服务

1、网络层介于传输层和数据链路层之间,传输层提供端到端的进程间通信服务,数据链路层的功能则是实现物理链路直接相连的两个结点之间的数据帧传输服务,网络层关注的是如何将承载传输层报文段的网络层数据报从源主机送达目的主机。

2、网络层需要实现两项重要功能:转发(forwarding)和路由选择(routing)

1) 转发。当通过一条输入链路接收到一个分组后,路由器需要决策通过哪条输出链路将分组发送出去,并将分组从输入接口转移到输出接口。

2) 路由选择。当分组从源主机流向目的主机时,必须通过某种方式决定分组经过的路由或路径,计算分组所经过的路径的算法被称为路由选择算法,或称为路由算法。

3、转发与路由区别与联系:每个路由器上都有一张转发表(也称为路由表),其表结构类似于一种键值对的形式。当一个分组到达路由器时,路由器会以该分组的网络层首部地址字段的值(比如目的 IP 地址)作为键,去转发表中查询相应的表项,从而获知该分组应转发至哪条链路上。
在这里插入图片描述

4.2 数据报网络与虚电路网络
4.2.1 数据报网络

按照目的主机地址进行路由选择的网络称为数据报网络。

在数据报网络中,无连接的发送方和接收方之间不存在固定的连接(或路径),所以发送的分组和接收的分组次序不一定相同,每个分组被传送的路径也可能不一致。接收方收到分组后要根据相应的协议,对分组重新进行排序,从而生成原始的完整报文,这个任务通常由传输层来完成。如果分组在网络传输的过程中出现了丢失或者差错,数据报网络本身也不做处理, 可以由通信双方的传输层协议(如 TCP)来解决。虽然数据报网络不维护任何连接状态信 息,但仍然需要在转发表中维护转发信息,这些转发信息相比于虚电路网络中的连接状态信息其更新频率要慢很多。对于转发表中转发状态信息的更新是根据在网络中运行的路由选择算 法来进行的,通常需要 1〜5 min 的时间。

4.2.2 虚电路网络

虚电路网络在网络层提供面向连接的分组交换服务。

  1. 虚电路组成

    一条虚电路(VC)由 3 个要素构成。

  • 从源主机到目的主机之间的一条路径(即一系列的链路和分组交换机)。
  • 该路径上的每条链路各有一个虚电路标识(VCID)。
  • 该路径上每台分组交换机的转发表中记录虚电路标识的接续关系。
  1. 虚电路转发表

    虚电路网络设备的转发表需要记录或建立邻接链路的 VCID 间的接续关系。

  2. 虚电路工作原理

    虚电路分组交换的工作原理,如图 4.3 所 示。假设主机 A 请求与主机 B 之间建立一条 VC,该网络选定的路径为 A-PS1-PS2-B,为该 VC 在三条链路上分配的 VC 号分别为 12、22 和
    32。这样,当沿该 VC 传输的某个分组离开 主机 A 时,其 VCID=12;当它离开 PS1 时,VCID=22;当它离开 PS2 时,VCID=32。图 4.3 中 PS1 的各个链路上就近标注的数字是接
    口号。

在这里插入图片描述

  1. 虚电路分组交换分类

    虚电路分组交换有永久型和交换型两种。永久型虚电路(Permanent Virtual Circuit, PVC)是一种提前建立、长期使用的虚电路,虚电路的建立时间开销基本上可以忽略。

    交换型虚电路(Switch Virtual Circuit, SVC)是根据通信需要而临时建立的虚电路,通信结束后立即拆除,虚电路的建立和拆除时间开销有时相对影响较大。

4.2.3 虚电路交换与数据报交换的差别

虚电路交换与数据报交换的主要差别表现为:是将顺序控制、差错控制和流量控制等功能交由网络来完成,还是由端系统来完成。虚电路网络(如 ATM 网络)通常由网络完成这些功能,向端系统提供无差错数据传送服务,而端系统则可以很简单;数据报网络(如 Internet)通常网络实现的功能很简单,如基本的路由与转发,顺序控制、差错控制和流量控制等功能则由端系统来完成。
在这里插入图片描述

4.3 网络互连与网络互连设备
4.3.1 异构网络互连

异构网络主要是指两个网络的通信技术和运行协议的不同。实现异构网络互连的基本策略主要包括协议转换和构建虚拟互联网络。协议转换机制采用一类支持异构网络之间协议转换的网络中间设备,实现异构网络之间数据分组的转换与转发。

4.3.2 网络互连的基本方法

通过构建虚拟互联网络机制的异构网络互连是在现有异构网络基础上,构建一个同构的虚拟互联网络,异构网络均只需封装、转发虚拟互联网络分组,同时引入虚拟互联网中间设备互连异构网络,实现在异构网络间转发统一的虚拟互联网的数据分组

4.3.3 典型网络互连设备

用来连接网络的设备多种多样,包括中继器、集线器、交换机、网桥、路由器和网关等

4.3.4 路由器

路由器是一种具有多个输入端口和多个输出端口的专用计算机,主要任务是获取与维护路由信息以及转发分组。路由器是最典型的网络层设备。

4.3.5 路由器的体系结构

路由器从功能体系结构角度,可以分为输入端口、交换结构、输出端口与路由处理器。

1、输入端口负责从物理接口接收信号,还原数据链路层帧,提取 IP 数据报(或其他网络层协议分组),根据 IP 数据报的目的 IP 地址检索路由表,决策需要将该 IP 数据报交换到哪个输出端口。

2、当分组到达路由器后,通过在输入端口上的处理,分组将会被转发至哪个输出端口上已经确定,具体的转发工作则是由交换结构来完成。

3、 输出端口首先提供一个缓存排队功能,排队交换到该端口的待发送分组,并从队列中不断取出分组进行数据链路层数据帧的封装,通过物理线路端接发送出去。

4、路由处理器就是路由器的 CPU,负责执行路由器的各种指令,包括路由协议的运行,路由计算以及路由表的更新维护等。

4.4 网络层拥塞控制
4.4.1 网络层拥塞基本概念

在分组交换网中,由于众多的用户随机地将信息送入网络,使网络中需要传输的信息总量经常大于其传输能力,以至于某些网络结点(如路由器)因缓冲区已满,无法接收新到达的分组,此时就发生了所谓的拥塞现象。

4.4.2 拥塞控制

拥塞控制就是端系统或网络结点,通过采取某些措施来避免拥塞的发生,或者对已发生的拥塞做出反应,以便尽快消除拥塞。

4.4.3 流量控制

流量控制是发送数据一方根据接收数据一方的接收数据的能力,包括接收缓存、处理速度等,调整数据发送速率和数据量,以避免接收方被数据淹没;拥塞控制则是根据网络的通过能力或网络拥挤程度,来调整数据发送速率和数据量。

4.4.4 拥塞的主要原因

1、缓冲区容量有限。
2、传输线路的带宽有限。
3、网络结点的处理能力有限。
4、网络中某些部分发生了故障。

4.4.5 拥塞的解决方法

网络出现拥塞就意味着负载暂时大于网络资源的处理能力,因此对于拥塞的解决一般可从两个方面进行:增加网络资源或者是减小网络负载。增加网络资源,就是在网络出现拥塞前为网络中的各个结点分配更多可用的资源,从而降低拥塞出现的可能性,即拥塞预防;而减小网络负载,一般是指在网络中已经出现负载大于资源的情况下(即拥塞),通过减小当前网络的负载来实现对拥塞的消除,这种策略一般被称作拥塞消除

4.4.6 流量感知路由基本原理

如图 4.9 所示的网络,链路 CD 是连接两个区域的“最短”通搶链路(如带宽较大或传播延迟较小等),于是两个区域间的用户通信流量都会选择此链路。这样,这条链路的带宽将在极短 的时间内被耗尽,进而使得通信延迟增大。假设还有另一条非“最短”通信链路BE,同样 连接两个区域。如果此时两个区域间的一部分通信流量被转移至链路 BE 上,那么整个网络 的吞吐量将得到提升。可见,如果图中权值能够根据网络负载动态调整,则可以将网络流量引导到不同的链路上,均衡网络负载,从而延缓或避免拥塞的发生,这就是流量感知路由在拥塞控制中起到的作用。
在这里插入图片描述

4.4.7 准入控制

准入控制是一种广泛应用于虚电路网络的拥塞预防技术。准入控制的基本思想是对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立该新虚电路。对于一个处于拥塞边缘的虚电路网络来说,任何新虚电路的建立都会使得整个网络变得拥塞,因此,当判断网络处于即将发生拥塞的边缘时,拒绝新虚电路的建立将有效避免网络发生拥塞。准入控制实现的关键,在于当建立一条新虚电路会导致整个网络发生拥塞时,应该如何反应。常用的方法是基于平均流量和瞬时流量,来判断是否有能力接受新虚电路而不会发生拥塞。

4.4.8 流量调节

当某个网络结点(如路由器)感知到当前网络发生了拥塞时,可以通知其上游网络结点(或端系统)降低发送速率,从而逐渐消除拥塞。为此,需要解决两个基本问题。第一个问题,就是网络结点如何能够感知到网络已经发生了拥塞呢?第二个问题,就是当路由器感知到网络发生了拥塞时,应该如何将这个拥塞信息通知到 其上游结点,从而使之降低发送速率。解决这个问题的方法有几种。

  1. 抑制分组

    通知拥塞上游的最直接的方式是直接告知发送方。感知到拥塞的路由器选择一个被拥塞的数据报,给该数据报的源主机返回一个抑制分组,抑制分组的目的地址即从被拥塞数据报的源地址得到。同时,需要对选择的被拥塞数据报(该数据报可能继续向目的传送)的首部进行修改,即修改其首部中的一个标志位,从而使得该数据报在后续传输过程中,不会被后续的路由器再次选择来发送抑制分组。

  2. 背压

    如果因发送速率过快而导致网络拥塞的网络结点,与感知到拥塞发生的网络结点之间的距离(或是跳数)较远,那么,在抑制分组到达源结点的过程中,实际上又有很多新的分组进入网络,从而进一步加重了网络的拥塞程度。在这种情况下,需要另外采取某种策略来对网络中的拥塞进行消除。一种可行方案,就是让抑制分组在从拥塞结点到源结点的路径上的每一跳,都发挥抑制作用。当抑制分组从拥塞结点传输到上游的第一跳时,接收到抑制分组的结点便会立即降低其向拥塞结点发送分组的速率,从而在极短的时间内使得拥塞结点的拥塞状况得到缓解。但是,由于上游的第一跳的上游结点并没有降低发送速率(因为还没有收到抑制分组),而其向链路输出数据的速率却降低了,因此需要在其输出端口分配更多的缓冲区,当抑制分组到达拥塞结点上游的第二跳时,又能使得第一跳的拥塞状况立即得到改 善,以此类推。最终,直到抑制分组到达源结点(如某端系统),才使得造成网络拥塞的过快发送方的发送速率真正地降低下来。

  3. 负载脱落

    实施负载脱落时,应该丢掉哪些数据报成为首要关心的问题。例如,在文件传输应用中,一个大文件通常被分割为若千个小数据报进行传输,此时序号较小的数据报就比序号较大的数据报更有价值。假设文件传输应用的传输层使用 UDP,在应用层采用 GBN 协议实现 可靠数据传输。显然,每个小数据报一定会编号。进一步,假设接收方已经接收了前10个分组,如果某个中间路由器丢掉了第 11 号分组,那么,即使接收方接收到了后续的 12 号或 者其他分组,按 GBN 协议的工作原理,这些分组也仍然会被丢弃掉,后续仍然需要进行重传。相反,如果中间路由器选择丢弃掉第 12 号分组,而保留第 11 号分组,则将不会产生这些问题。因此,在这种情况下,选择丢弃掉较新的数据报结果更好。但是,并不是在所有的场景下,选择丢弃较新的数据报都是更好的选择。例如,对于诸如实时视频流应用(如网络直播),则选择保留较新的分组,而丢弃较老的分组却是更好的选择。因此,当网络发生拥塞,而需要采取负载脱落时,选择丢弃哪些数据报是关键,通常与上层应用有关。

4.5 Internet 网络层

Internet 网络层主要包括网际协议(Internet Protocol, IP)路由协议以及 互联网控制报文协议(Internet Control Message Protocol,ICMP) 等内容。

4.5.1 IP 数据报格式(IPv4)

在这里插入图片描述
在这里插入图片描述

4.5.2 数据报分片

一个数据链路层协议帧所能承载的最大数据量称为该链路的最大传输单元(Maximum Transmission Unit, MTU)。

4.5.3 分类寻址

在因特网刚开始发展的时期,IPv4 地址被设计为定长前缀,但考虑到不同组织所要使用到的地址数量是不同的,因此设计了 3 种长度的前缀,分别为 8、16、24 位,整个地址空间 被分为 5 类,A、B、C、D 和 E 类,并规定 A、B、C 三类可以分配给主机或路由器使用,D 类地址作为广播地址,E 类地址保留,该方案被称作分类寻址。具体分类方法是依次从最髙比特位逐步“二分”,如图 4.16 所示。

在这里插入图片描述
分类寻址中各类地址空间如表 4.5 所示
在这里插入图片描述
除了 D 类和 E 类地址外,占 IP 地址空间 87.5%的 A、B、C 类地址可以用于标识网络中的主机或路由器,但并不是所有地址都可用,因为有些地址有特殊用途,不能分配给主机或路由器。

4.5.4 动态主机配置协议(DHCP)

当一个组织分配到一个网络地址块后,就可以为该组织内的主机和路由器接口分配 IP 地址了。这个工作可以由网络管理员进行手动配置(静态分配),也可以通过动态主机配置协议(DHCP)来动态分配。事实上,很多实际网络都选择动态 IP 地址分配。DHCP 是在应用层实现的,传输层使用 UDP。提供动态 IP 地址分配的网络,需要运行 DHCP 服务器(端口号为67),并且配置其可以为其他主机进行动态地址分配的 IP 地址范围等。

4.5.5 网络地址转换(NAT的工作原理)

对于从内网出去,进入公共互联网的IP数据报,将其源 IP 地址替换为 NAT 服务器拥有的合法的公共 IP 地址,同时替换源端口号,并将替换关系记录到 NAT 转换表中;对于从公共互联网返回的 IP 数据报,依据其目的 IP 地址与目的端口号检索 NAT 转换表,并利用检索到的内部私有 IP 地址与对应的端口号替换目的 IP 地址和目的端口号,然后将 IP 数据报转发到内部网络。

4.5.6 ICMP(互联网控制报文协议)

主机或路由器在处理或转发 IP 数据报的过程中,由于种种原因可能导致异常发生,此时主机或路由器就可能需要将这些异常情况,及时地反馈给其他主机或路由器,而 IP 本身并没有这种功能。互联网控制报文协议(Internet Control Message Protocol,ICMP) 的主要目的,就是在这种情况下,在主机或路由器间,实现差错信息报告。

4.6 路由算法与路由协议
4.6.1 路由选择基本原理

当主机要与所处子网之外的主机进行通信时,分组首先被传送到其默认路由器,然后再转发到网络核心。显然,路由选择的关键,就是从源主机的默认路由器到目的主机的默认路由器之间的路径优选。于是,路由选择问题就可以简化为在路由器之间选择最佳路径问题。路由选择算法的目的,就是在给定一组网络中的路由器以及路由器间的连接链路的情况下,寻找一条从源路由器到目的路由器的最优路径。

4.6.2 路由算法分类

路由选择算法分为全局式路由选择算法和分布式路由选择算法。

1) 全局式路由选择算法。这类路由选择算法,需要根据网络的完整信息(即完整的网络拓扑结构,来计算最短路径。全局式路由选择算法并不是说路由计算只在某个路由器上进行,而是指每个路由器在计算路由时,都要获取完整的网络拓扑信息。最具有代表性的全局式路由选择算法是链路状态路由选择算法,简称 LS 算法

2) 分布式路由选择算法。在分布式路由选择算法中,结点不会(也不需要)尝试获取整个网络拓扑信息,结点只需获知与其相连的链路的“费用”信息,以及邻居结点通告的到达其他结点的最短距离(估计)信息,经过不断的迭代计算,最终获知经由哪个邻居可以具有到达目的结点的最短距离。最具有代表性的分布式路由选择算法是距离向量路由选择算法,简称 DV 算法

4.6.3 距离向量路由选择算法

距离向量路由选择算法是一种异步的、迭代的分布式路由选择算法。在距离向量路由选择算法中,没有任何一个结点掌握整个网络的完整信息。每个结点可以测得与所有邻居结点之间的直接链路代价,并将其到达每个目的结点的最短距离(可能是最短距离估计),以(目的,最短距离)的距离向量形式交换给所有的邻居结点。每个结点基于其与邻居结点间的直接链路距离,以及邻居交换过来的距离向量,计算并更新其到达每个目的结点的最短距离,然后将新的距离向量再通告给其所有邻居,直到距离向量不再改变。

4.6.4 层次化路由选择

层次化路由选择将大规模互联网的路由划分为两层:自治系统内路由选择和自治系统间路由选择。在层次化路由选择网络中,路由器的转发表由自治系统内路由选择协议和自治系统间路由选择协议共同设置。路由器运行自治系统内路由选择协议,在一个自治系统范围内,基于所在自治系统采用的路由选择算法,计算到达自治系统内的目的网络的路由,并存储到转发表中。每个自治系统的网关路由器,运行自治系统间路由选择协议,负责与其他自治系统交换跨越自治系统的路由可达性信息,并基于自治系统间路由选择协议,将跨自治系统的网络可达性信息,交换给其所在自治系统内的其他路由器,这些路由器进一步将这些路由信息也存储到转发表中。这样,自治系统内的路由器,收到一个网络层分组时,无论该分组去往的目的网络在自治系统内,还是在自治系统外,路由器都可以通过查找转发表,知道如何转发分组。

4.6.5 Internet 路由 选择协议
  1. RIP

    RIP 是一种基于距离向量路由选择算法的 IGP。RIP 协议在使用 DV 算法时,有其特性。首先,RIP 在度量路径时采用的是跳数,即每条链路的费用都为1。其次,RIP 的费用是定义在源路由器和目的子网之间的,最短路径的费用就是沿着从源路由器到目的子网的最短路径所经过的子网数量。第三,RIP 被限制在网络直径不超过 15 跳的自治系统内使用,即分组从一个子网到另一个子网穿越的最多的子网数目不超过 15,因此在 RIP 中一条路径的最大费用不会超过 15,在 RIP 中,路径费用 16 表示无穷大,即目的网络不可到达。在 RIP中,相邻的路由器 间通过 RIP 响应报文来交换距离向量,交换频率约为 30 s—次,RIP 响应报文中包含了从该路由器到达其他目的子网的估计距离的列表(即 DV), RIP 响应报文也称为 RIP 通告。

  2. OSPF的优点

    1)安全。所有 OSPF 报文(如链路状态分组)都是经过认证的,这样可以预防恶意入侵者将不正确的路由信息注入到路由器的转发表中。
    2) 支持多条相同费用路径。OSPF 允许使用多条具有相同费用的路径,这样可以防止在具有多条从源到目的的费用相同的路径时,所有流量都发往其中一条路径。这一特性有利于
    实现网络流量均衡。
    3) 支持区别化费用度量。OSPF 支持对于同一条链路,根据 IP 数据报的 TOS 不同,设置不同的费用度量,从而可以实现不同类型网络流量的分流。
    4) 支持单播路由与多播路由。OSPF 综合支持单播路由与多播路由,多播路由只是对OSPF 的简单扩展,使用 OSPF 的链路状态数据库就可以计算多播路由。
    5) 分层路由。OSPF 支持在大规模自治系统内进一步进行分层路由。

五. 数据链路层与局搣网

5.1 数据链路层服务

从数据链路层来看,无论是主机还是路由器等网络设备,都可以统称为结点,因为它们通常都是一条数据链路的端点。沿着通信链路连接的相邻结点的通信信道称为链路,数据链路层传输的数据单元称为帧。数据链路层通常提供的以下几点服务。
1)组帧。
2)链路接入。
3)可靠交付。
4)差错控制。

5.2 差错控制

典型的差错控制方式包括检错重发、前向纠错、反馈校验和检错丢弃 4 种基本方式。

5.2.1 检错重发

检错重发是一种典型的差错控制方式,在计算机网络中应用广泛。在检错重发方式中,发送端对待发送数据进行差错编码,编码后的数据通过信道传输,接收端利用差错编码检测数据是否出错,对于出错的数据,接收端请求发送端重发数据加以纠正,直到接收端接收到正确数据为止。

5.2.2 前向纠错

前向纠错(Forward Error Correction, FEC)是接收端进行差错纠正的一种差错控制方法。前向纠错机制需要利用纠错编码,即这类编码不仅可以检测数据传输过程中是否发生了错误,而且还可以定位错误位置并直接加以纠正。**在前向纠错机制中,发送端首先对数据进行纠错编码,然后发送包含纠错编码信息的帧,接收端收到帧后利用纠错编码进行差错检测,对于发生错误的帧直接进行纠错。**前向纠错机制比较适用于单工链路或者对实时性要求比较高的应用。

5.2.3 反馈校验

反馈校验方式的接收端将收到的数据原封不动发回发送端,发送端通过比对接收端反馈的数据与发送的数据可以确认接收端是否正确无误接收了已发送的数据。如果发送端发现有不同,则认为接收端没有正确接收到发送的数据,则立即重发数据,直到收到接收端反馈的数据与已发数据一致为止。反馈校验方式的优点是原理简单,易于实现,无须差错编码;缺点是需要相同传输能力的反向信道,传输效率低,实时性差

5.2.4 检错丢弃

不同网络应用对可靠性的要求不同,某些应用(如实时多媒体播报应用)可以采用一种简单的差错控制策略,不纠正出错的数据,而是直接丢弃错误数据,这种差错控制方式就是检错丢弃。显然,这种差错控制方式通常适用于容许一定比例的差错存在,只适用于实时性要求较高的系统。

5.3 多路访问控制协议
5.3.1 信道划分MAC协议

MAC 协议的根本任务是解决信道的共享问题。采用多路复用技术实现信道共享的 MAC 协议,称为信道划分 MAC 协议。多路复用主要包括频分多路复用(Frequency Division Multiplexing, FDM)、时分多路复用(Time Division Multiplexing, TDM)、波分多路复用(Wave DivisionMultiplexing, WDM)和码分多路复用(Code Division Multiplexing, CDM)。采用不同多路复用技术的 MAC 协议分别称为FDMA、TDMA、WDMA 和 CDMA。

频分多路复用(FDM)简称频分复用,是频域划分制,即在频域内将信道带宽划分为多个子信道,并利用载波调制技术,将原始信号调制到对应某个子信道的载波信号上,使得同时传输的多路信号在整个物理信道带宽允许的范围内频谱不重叠,从而共用一个信道。
在这里插入图片描述

时分多路复用(TDM)简称时分复用,是一种时域划分,即将通信信道的传输信号在时域内划分为多个等长的时隙,每路信号占用不同的时隙,在时域上互不重叠,使多路信号合用单一的通信信道,从而实现信道共享。
在这里插入图片描述
波分多路复用(WDM)简称波分复用,广泛应用于光纤通信中,其实质是一种频分多路复用,只是由于在光纤通信中,光载波频率很高,通常用光的波长来代替频率来讨论,所以
称为波分多路复用。
在这里插入图片描述
码分多路复用(CDM)简称码分复用,通过利用更长的相互正交的码组分别编码各路原始信息的每个码元(比如 1 位),使得编码后的信号(已调信号)在同一信道中混合传输,接收端利用码组的正交特性分离各路信号,从而实现信道共享。

5.3.2 随机访问 MAC 协议

随机访问 MAC 协议就是所有用户都可以根琚自己的意愿随机地向信道上发送信息,如果一个用户在发送信息期间没有其他用户发送信息,则该用户信息发送成功,如果两个或两个以上的用户都在共享的信道上发送信息,则产生冲突或碰撞(collision),导致用户信息发送失败,每个用户随机退让一段时间后,再次尝试,直至成功。可见,随机访问实际上就是争用接入,竞争胜利者可以暂时占用共享信道来发送信息,竞争失败者随机等待 一段时间,再次竞争,直至竞争成功。随机访问协议的特点是:站点可随时发送数据,争用信道,容易发生冲突,需要消解冲突的机制,但能够灵活适应站点数目及其通信量的变化。典型的随机访问协议有 ALOHA 协议、载波监听多路访问协议以及带冲突检测的载波监听多路访问协议等

  • ALOHA 协议

    ALOHA 协议是 20 世纪 70 年代在夏威夷大学由 Norman Abramson 及其同事提出的,也 是最早、最基本的无线数据通信协议。ALOHA 协议分为纯 ALOHA 和时隙 ALOHA 两种。

  • 载波监听多路访问协议

    根据监听策略的不同,CSMA 又可以细分为 3 种不同类型的 CSMA 协议。
    (1) 非坚持 CSMA
    (2) 1-坚持 CSMA
    (3) P-坚持 CSMA

  • 带冲突检测的载波监听多路访问协议

    CD 表示冲突检测(Collision Detection)。CSMA/CD 可以理解为“先听后说,边听边说”。

    SMA/CD 的工作状态可以分为传输周期、竞争周期和空闲周期。

    信道有 3 种状态。
    传输状态:一个通信站使用信道,其他站禁止使用。
    竞争状态:所有通信站都有权尝试对信道的使用权。
    空闲状态:没有通信站使用信道。

5.3.3 受控接入 MAC 协议

受控接入的特点是各个用户不能随意接入信道而必须服从一定的控制,又可分为集中式控制和分散式控制。

  • 集中式控制

    集中式控制接入方式中,系统中有一个主机负责调度其他通信站接入信道,从而避免冲突。主要方法是轮询技术,又分为轮叫轮询和传递轮询。

  • 分散式控制

    比较典型的分散式控制方法是令牌技术。令牌(Token)是一种特殊的帧,它代表了通信站使用信道的许可,在信道空闲时一直在信道上传输,一个通信站如果想发送数据就必须首先要获得令牌,然后在一定时间内发送数据,在发送完数据后重新产生令牌并发送到信道上,以便其他通信站使用信道。

5.4 局域网

局域网(LAN)是局部区域网络,其特点是覆盖面积较小,网络传输速率高,传输误码率低。局域网拓扑类型主要包括星形网络、总线型网络、环形网络等。

局域网 LAN 一般采用“广播”传输方式,局域网中的网络节点都简化为安装于主机或工作站中的网卡,即网络适配器。当某适配器要向某目的适配器发送一个帧时,发送适配器将目的适配器的 MAC 地址设为该帧的目的 MAC 地址,并将该帧发送到局域网上。

5.4.1 数据链路层寻址与 ARP
  • MAC 地址

    事实上,并不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口卡)具有链路层地址,或称为 MAC 地址、物理地址、局域网地址等,用来标识局域网中的结点或网络接口。因此,具有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址,就像与之相关联的多个 IP 地址一样,每个接口对应一个 MAC 地址。MAC 地址具有唯一性,即两块网络适配器必须具有不同的 MAC 地址。

  • 地址解析协议

    地址解析协议(Address Resolution Protocol,ARP),用于根据本网内目的主机或默认网关的 IP 地址获取其 MAC 地址。ARP 的基本思想:在每一台主机中设置专用内存区域,称为ARP 高速缓存(也称为 ARP 表),存储该主机所在局域网中其他主机和路由器(即默认网关)的 IP 地址与 MAC 地址的映射关系,并且这个映射表要经常更新。ARP 通过广播 ARP查询报文,来询问某目的 IP 地址对应的 MAC 地址,即知道本网内某主机的 IP 地址,可以查询得到其 MAC 地址。

5.4.2 以太网
  • 以太网帧结构

    以太网采用的是 CSMA/CD 协议,利用曼彻斯特编码发送,使用截断二进制指数后退算法来确定碰撞后重传的时机。
    在这里插入图片描述
    帧结构中包含两个地址:一个是目的地址,另一个是源地址,均为 48 位物理地址即 MAC地址。以太网向网络层提供的是无连接不可靠服务。

  • 以太网技术

    10Base-T

    10Base-以太网是替代同轴电缆以太网的产品,采用非屏蔽的双绞线(UTP)作为以太网传输介质,数据传输速率为 10Mbit/s,支持以太网结构化布线方式和集线器设备。

    快速以太网

    快速以太网是在传统以太网基础上发展起来的,保留了传统以太网的帧格式和 CSMA/CD介质访问控制方式,但数据传输速率提高到 100 Mbit/s。IEEE 在 1995 年正式公布了 IEEE 802.3u,即快速以太网(100Base-T)标准。100Base-T 标准定义了 3 种物理层规范以支持不同的物理介质:100Base-TX,采用两对 5 类 UTP; 100Base-T4,采用四对 3、4 或 5 类 UTP; 100Base-FX,采用光缆。

    千兆位以太网

    千兆位以太网涉及数据传输速率、是否支持全双工传送方式以及帧格式与以太网帧格式是否兼容等问题。千兆位以太网是建立在以太网标准之上的技术。千兆位以太网和大量使用的以太网与快速以太网完全兼容,并利用了原以太网标准所规定的全部技术规范,其中包括 CSMA/CD 协议、以太网帧、全双工、流量控制以及 IEEE 802.3 标准中所定义的管理对象。1000Base-T 使用普遍安装的 5 类 UTP,最长距离是 100 m,使用户可以在原来 100Base-T的基础上,平滑升级到 1000Base-T。 另外,1000Base-CX 采用的是 150Q 平衡屏蔽双绞线(STP),最大传输距离 25 m,使用 9 芯 D 型连接器连接电缆,适用于交换机之间的连接,尤其适用于主干交换机和主服务器之间的 短距离连接。

    万兆位以太网

    目前,IEEE 和各大生产厂商正在致力于研究 10 万兆位以太网的相关技术,已经推出了定义 10 万兆位以太网的标准 IEEE 802.3ba,给出了相关框架和接口的定义,但具体的细节还在进一步的研究中。以太网主要连接设备包括数据链路层(第二层)的以太网交换机和物理层(第一层)的集线器,其中集线器现在几乎不再使用。以太网的典型网络拓扑是星形网络,或者由多台以太网交换机级联构成的树形拓扑网络。

5.4.3 交换机

从工作原理角度看,交换机就是多端口的网桥,是目前应用最广泛的数据链路层设备。交换机与网桥的工作原理相同,可以依据接收到的链路层帧的目的 MAC 也址,选择性地转发到相应的端口,这就是交换机的转发与过滤功能。

  • 以太网交换机转发和过滤

    作为第二层设备的以太网交换机,可以实现帧的选择性转发,通过交换机互连的主机,不再属于一个冲突域,不会发生传统的冲突,交换机实现了冲突域的分割。如果以太网的主机全部通过交换机互连(即不使用集线器),则一个冲突域最多只有一台主机,传统的冲突便不会发生,这类以太网就是所谓的交换以太网。

  • 以太网交换机的自学习

在这里插入图片描述

  • 以太网交换机的优点

(1) 消除冲突。交换机分割了冲突域,所以使用交换机的局域网和使用集线器的局域网不同,不会因为产生冲突而浪费带宽。
(2) 支持异质链路。在使用交换机的局域网中,不同的链路可以使用不同的速率运行并且能够在不同的媒介上运行。
(3) 网络管理。交换机除了可以提供强化的安全性,还易于进行网络管理。

5.4.4 虚拟局域网

虚拟局域网是一种基于交换机(必须支持 VLAN 功能)的逻辑分割(或限制)广播域的局域网应用形式。虚拟局域网的设置是在交换机上,通过软件方式实现的。划分虚拟局域网的方法主要有 3 种。

1) 基于交换机端口划分:局域网的网络管理员可以按照以太网交换机的端口定义 VLAN成员,通常每个交换机端口属于一个 VLAN (也可以有同时属于所有 VLAN 的特殊端口,如 Trunk 端 口)。
2) 基于 MAC 地址划分:基于 MAC 地址划分虚拟局域网,是按每个连接到交换机的主机MAC 地址定义 VLAN 成员。
3)基于上层协议类型或地址划分:根据链路层帧所携带数据中的上层协议类型(如 IP)或地址(如 IP 地址)定义 VLAN 成员,这种方法的优点是有利于组成基于应用的 VLAN。

5.4.5 点对点链路协议
  • PPP

    现在全世界使用得最多的点对点链路的数据链路层协议是点对点协议(Point to Point Protocol, PPP)。PPP 处理错误检测、支持多种上层协议(即支持复用)、允许在连接时刻协商 IP 地址、允许身份认证等。PPP 主要提供 3 类功能。
    1) 成帧。确定一帧的开始和结束,帧格式支持错误检测。
    2) 链路控制协议(Link Control Protocol, LCP)用于启动线路、检测线路、协商参数及关闭线路。
    3) 网络控制协议(Network Control Protocol, NCP)。用于协商网络层选项,并且协商方法与使用的网络层协议独立。
    在实际情况中,PPP 的设计要困难得多,因此,有部分功能不要求其实现。
    1) 差错纠正。仅要求 PPP 能够进行比特差错检测,但不要求纠正它们。
    2) 流量控制。由较高层协议负责遏制分组交付给 PPP 的发送速率,即由较高层负责丢弃分组或者遏制位于较高层的发送方,而不是由 PPP 进行控制。
    3) 按序交付。PPP 不要求链路中发送方发送帧的顺序与接收方交付帧的顺序相同。但是工作于 PPP 之上的其他网络层协议需要有序地进行端到端分组交付。

  • HDLC 协议

    而高级数据链路控制(High-level Data Link Control,HDLC)协议则可以应用于点对点链路和点对多点链路。HDLC 协议是面向位的协议。
    在这里插入图片描述
    HDLC 有 3 种类型的帧:信息帧(I 格式)、管理帧(S 格式)和无序号帧(U 格式)。
    在这里插入图片描述
    HDLC 协议是面向位的协议,为确保数据的透明传输,HDLC 使用位填充。
    在这里插入图片描述
    采用位填充,可以传输任意组合的比特流,而不会对帧的边界产生错误的判断。

六. 物理层

6.1数据通信基础
6.1.1 数据通信基本概念

消息与信息: 通常,将人类能够感知的描述称为消息,比如眼睛能看到文字和图像,耳朵能听到声音,鼻子能闻到气味等,这些声音、文字、图像、气味等统称为消息。信息是一个抽象的概念,可以理解为消息中所包含的有意义的内容,而消息是信息的载体。

通信: 现在讨论的通信,一般都是指电通信。能够实现通信功能的各种技术、设备和方法的总体,称为通信系统。

信号: 在通信系统,特别是电通信系统中,传递信息需要有适合的载体在传输通道中传播,这样的载体称之为信号,通常以电磁或光的形式存在,并利用电压、电流、频率、相位等物理量的变化来表示信息。信号有连续信号和离散信号之分,可以经过各种变换以提高传输的效率。

数据: 数据是对客观事物的性质状态以及相互关系等进行记载的符号及其组合,通常可以是数字、文字、图像等,也可以是其他抽象的符号。

信道: 信道是信号传输的介质,或信道是以传输介质为基础的信号通道。根据信道的定义,如果信道仅是指信号的传输介质,这种信道称为狭义信道。如果信道不仅是传输介质,而且包括通信系统中的一些转化装置,这种信道称为广义信道。

6.2 数据通信系统模型
6.2.1 数据通信系统的构成

计算机网络是一种典型的数据通信系统。首先了解通信系统的一般模型:通信系统的作用是将消息从信源传送到一个或多个目的地。人们把能够实现信息传输的一切技术设备和传输介质的集合称为通信系统。通信系统的组成根据通信业务、信道类型、信号种类、传输方式等可有多种形式,但不管其具体的应用和结构如何,任何一种通信系统的核心都应该包括信源、发送设备、信道、接收设备、信宿和噪声源等部分。

在这里插入图片描述
信源: 将消息转换为信号的设备,如电话机、摄像机、计算机等。
发送设备: 将信源产生的信号进行适当的变换的装置,使之适合于在信道中传输。变换的方式主要包括编码和调制。
信道: 信号传输的媒介,总体上可以分为有线信道和无线信道两大类,具体的类型包括双绞线、同轴电缆、光纤、大气层、外层空间等。
接收设备: 完成发送设备的反变换,即进行译码和解调,还原原始的发送信号。
信宿: 信号的终点,并将信号转换为供人们能识别的消息。
噪声: 自然界和通信设备中所固有的,对通信信号产生干扰和影响的各种信号。

6.2.2 模拟通信和数字通信

通信系统根据信号种类可分为模拟通信系统和数字通信系统,其区别在于信道中传输的是模拟信号还是数字信号。所谓模拟信号是指信号的因变量完全随连续消息的变化而变化的信号。模拟信号的自变量可以是连续的,也可以是离散的;但其因变量一定是连续的。数字信号是指表示消息的因变量是离散的,自变量时间的取值也是离散的信号。
在这里插入图片描述

6.2.3 数据通信方式

按数据传输的方向,可分为单向通信、双向交替通信和双向同时通信按二进制数据传输的时空顺序分为并行通信和串行通信按发送和接收方对数据保持步调一致的措施分为异步通信和同步通信

(1) 单向通信、双向交替通信和双向同时通信:单向通信又称单工通信,即任何时间都只能有一个方向的通信,而没有反方向的交互。无线电广播就属于这种类型。双向交替通信又称半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(或同时接收),这种通信方式往往是一方发送另一方接收,如无线对讲机系统。双向同时通信又称全双工通信,即通信双方可以同时发送和接收信息,电话网、计算机网络均属于全双工通信系统。

(2) 并行通信和串行通信:按传输二进制数时的时空顺序不同存在着并行通信和串行通信两种通信方式。并行通信是为一个字节的每一位(bit)都设置一个传输通道,全部位(bit)同时进行传送。并行通信模式传输速度快,但消耗材料多,造价高,所以不适用于长距离的传输。串行通信只为信息传输设置一条通道,数据的一个字节中每一位(bit)依次在这条通道上传输。串行通信节省设备线路开销,但速度相对并行通信慢,一般应用于长距离数据传输。

(3) 异步通信和同步通信:常用数据传输的同步方式有异步式同步(简称异步)和同步式同步(简称同步)。由此可见,通常所说的异步和同步本质上都属于同步技术。两者的区别在于发送端和接收端的时钟是独立的还是同步的。异步数据传输是以字符为单位独立进行发送,一次传输一个字符,每个字符用 5〜8 位来表示,在每个字符前面加一个起始位,以指明字符的开始,每个字符后面增加 1 个或 2 个停止位,以指明字符的结束;无字符发送时,发送方就一直发送停止位。接收方根据起始位和停止位判断字符的开始和结束,并以字符为单位接收数据。异步传输不需要在收发两端间传输时钟信号,所以实现起来比较简单;但是传输效率较低,只适用于低速数据传输系统。同步数据传输以数据块为单位进行发送。每个数据块内包含有多个字符,每个字符可用 5〜8 个位表示;在每个数据块的前面加一个起始标志,以指明数据块的开始,在其后面增加一个结束标志,以指明数据块的结束。接收方根据起始标志和结束标志以数据块为单位进行接收。同步传输方式的传输效率高,开销小,但收发双方需建立同步时钟,实现和控制比较复杂。同步传输方式适合于髙速数据传输系统。

6.2.4 数据通信系统的功能

在这里插入图片描述

6.3 物理介质

常用的物理介质分为导引型传输介质和非导引型传输介质。

6.3.1 引导型传输介质

导引型传输介质,又可称为有线信道,以导线为传输介质,信号沿导线进行传输,信号的能量集中在导线附近,因此传输效率高,但是部署不够灵活。这一类信道使用的传输介质包括用电线传输电信号的架空明线、双绞线电缆、同轴电缆、光纤等。

  • 架空明线

    架空明线是指平行且相互分离或绝缘的架空裸线线路,通常采用铜线或铝线等金属导线。架空明线的优点是传输损耗较低,但缺点是易受天气和外界电磁干扰,对外界噪声敏感,带宽有限。

  • 双绞线

    将两根相互绝缘的铜线并排绞合在一起可以减少对相邻导线的电磁干扰,这样的一对线称为双绞线。双绞线电缆封装时在护套与线对之间增加一层金属丝编制的屏蔽层,可以提高双绞线的抗电磁干扰能力,这类双绞线电缆称为屏蔽双绞线(STP) , 相应地,没有这层屏蔽层的双绞线电缆称为非屏蔽双绞线(UTP) 。
    在这里插入图片描述
    在这里插入图片描述

  • 同轴电缆

    同轴电缆由同轴的两个导体构成,外导体是空心圆柱形网状编织金属导体,内导体是金属导线(通常为铜线),两者之间填充绝缘实心介质。网状编织导体同时也起到屏蔽网的作用,可以有效抵抗电磁千扰。
    在这里插入图片描述

  • 光纤

    纤是由两种折射率不同的导光介质复合纤维制成,内层(纤维中心)称为纤芯,纤芯外包另一种折射率的介质,称为包层。由于纤芯的折射率大于包层的折射率,因此,进入纤芯的光波会在两层边界产生折射,折射的光会再次被折射,以此类推,经过多次反射,光波可以沿光纤传输到很远距离。如果纤芯和包层是两种均匀介质,折射率只在两种介质的边界发生突变,则光波只在边界发生折射,这种光纤称为阶跃(折射率)型光纤,这也是最早出现的光纤类型。如果光纤的折射率不是突变的,而是沿半径增大方向逐渐减小,光波在其中的传输路径是随折射率的变化而逐渐弯曲的,这种光纤称为梯度(折射率)型光纤
    在这里插入图片描述
    光纤与其他传输介质相比拥有很多优点。
    1) 光纤通信容量非常大,最高可达 100 Gbit/s。
    2) 传输损耗小,中继距离长,对远距离传输特别经济。
    3) 抗雷电和电磁干扰性能好。
    4) 无串音干扰,保密性好,也不易被窃听或截取数据。
    5) 体积小,重量轻。

    为了使光纤传输的衰减尽量小,以便传输更远的距离,在光纤通信中通常选择在光纤信道中传输损耗最小的波长光波。符合这一特性的光波波长主要有两个:1.31nm 和 1.55 nm,这两个波长是目前光纤通信中应用最广泛的。使用光纤通信需要将一般形式的电信号转换为光信号,然后在光纤上传输,在接收端还需要再将光信号还原为电信号。光纤信道主要包括光 源、光纤线路以及光检测器等
    在这里插入图片描述

6.3.2 非引导型传输介质

利用无线电在自由空间的传播就可以较快地实现多种通信。 由于这种通信方式不适用各种导引型传输媒介,因此就将自由空间称为“非导引型传输媒介”,又称为无线信道。

根据电磁波频率、通信距离与位置的不同,电磁波的传播可以分为地波传播、天波传播(或称电离层反射波)和视线传播。

  • 地波传播

    频率较低(2 MHz 以下)的电磁波趋于沿地球表面传播,有一定的绕射能力,这种传播方式称为地波传播。在低频和甚低频段,地波传播距离可以超过数百米或数千千米。

  • 天波传播

    利用电离层反射的传播方式称为天波传播。天波传播信道(或称电离层反射信道)是典型的随参信道。

  • 视线传播

    频率高于 30MHz 的电磁波将穿透电离层,不会被反射回来,并且沿地面绕射能力也很弱。因此,这类电磁波通常采用视线无障碍的点对点直线传播,称为视线传播或视距传播。

6.3.3 信道与信道容量
  • 信道分类与模型

    信道是通信系统中连接发送端与接收端的通信设备,实现从发送端到接收端的信号传送。信道的定义区分为广义信道和狭义信道。狭义信道即为信号传输介质;广义信道包括信号传输介质和通信系统的一些变换装置,如发送设备、接收设备、天线、调制器等。通常, 在讨论通信的一般原理时,采用广义信道;在研究信道的一般特性时,主要考虑狭义信道。 一般情况下,将广义信道简称为信道。

    广义的信道定义除了包括传输介质,还包括传输信号的相关设备。按照功能划分,可以将广义信道划分为调制信道和编码信道两类。

    在这里插入图片描述

  • 调制信道

    调制信道是指信号从调制器的输出端传输到解调器的输入端经过的部分。调制信道、输入信号、输出信号存在以下特点。

    1) 信道总具有输入信号端和输出信号端。
    2) 信道一般是线性的,即输入信号和对应的输出信号之间满足线性叠加原理。
    3) 信道是因果的,即输入信号经过信道后,相应的输出信号响应具有延时。
    4) 信道使通过的信号发生畸变,即输入信号经过信道后,相应的输出信号会发生衰减。
    5) 信道中存在噪声,即使输入信号为零,输出信号仍然会具有一定功率。
    如果信号通过信道发生的畸变是时变的,这种信道称为随机参数信道,简称为随参信道;
    如果畸变与时间无关,这种信道称为恒定参数信道,简称为恒参信道。

  • 编码信道

    编码信道是指数字信号由编码器输出端传输到译码器输入端经过的部分,包括其中的所有变换装置与传输介质。编码信道是包括调制信道及调制器、解调器在内的信道,与调制信道模型有明显的不同:调制信道对信号的影响是使调制信号发生“模拟”变化,而编码信道对信号的影响则是一种数字序列的变换,即把一种数字序列变换为另一种数字序列。编码信道可分为无记忆编码信道和有记忆编码信道。无记忆编码信道是指信道中码元的差错发生是相互独立的,即当前码元的差错与其前后码元的差错没有依赖关系;有记忆编码信道是指信道中码元差错的发生不是独立的,即当前码元的差错与其前后码元的差错是有联系的。

6.3.4 信道传输特性
  • 恒参信道传输特性

    理想的恒参信道是一个理想的无失真传输信道,其对信号传输的影响可以概括如下。
    1)对信号幅值产生固定的衰减。
    2)对信号输出产生固定的时延。
    满足上述特性的理想恒参信道的信号传输称为无失真传输。

  • 随参信道传输特性

    随参信道的传输特性随时间随机快速变化。随参信道的共同特点如下。
    1) 信号的传输衰减随时间随机变化。
    2) 信号的传输时延随时间随机变化。
    3) 存在多径传播现象。
    多径传播是指由发射天线发出的电磁波可能经过多条路径到达接收端,每条路径对信号产生的衰减和时延都随时间随机变化,因此,接收端接收的信号是经多条路径到达的衰减与时延随时间变化的多路信号的合成。多径传播对信号传输质量影响很大,这种影响称为多径效应。

6.3.5 信道容量

一般情况下,经常用信道容量来描述或衡量信道的传输能力。
信道容量是指信道无差错传输信息的最大平均信息速率。

  • 连续信道容量

    根据奈奎斯特第一准则,对于理想无噪声的基带传输系统,最大频带利用率为 2 Baud/Hz。显然,如果传输 M 进制基带信号,则理想无噪声信道的信道容量为
    在这里插入图片描述
    著名的香农(Shannon)公式给出了有噪声连续信道 的信道容量计算公式。
    假设带宽为 B5(Hz)的连续信道,输入信号的功率为 S,信道加性高斯白噪声的功率为 N,则著名的香农公式给出了该连续信道的信道容量为
    在这里插入图片描述

  • 离散信道容量

    离散信道容量可以用两种方式度量:一种是每个符号能够传输的最大平均信息量表示的信道容量 C;另一种是单位时间内能够传输的最大平均信息量表示的信道容量 Ct。

七. 无线与移动网络

7.1 无线网络
7.1.1 无线网络基本结构

1、无线主机。如同在有线网络中一样,主机是运行应用程序的端系统设备。无线主机(wireless host)可以是便携机、掌上机、智能手机或者桌面计算机。主机本身可能移动,也可能不移动。
2、无线链路。主机通过无线通信链路(wireless communication link)连接到一个基站或者另一台无线主机,不同的无线链路技术具有不同的传输速率和不同的传输距离。
3、基站。基站(base station)是无线网络基础设施的一个关键部分。基站在有线网络中没有明确的对应设备,负责向与之相关联的无线主机发送数据和接收主机发送的数据。基站通常负责协调与之相关联的多个无线主机的传输。
4、网络基础设施。通常是大规模有线网络,如 Internet、公司网络或电话网络等。

7.1.2 无线链路与无线网络特性

无线链路有别于有线链路的主要表现在以下方面。
1、信号强度的衰减(fading)。电磁波在穿过物体(如墙壁)时强度将减弱。即使在自由空间中,信号也会衰减,这使得信号强度随着发送方和接收方距离的增加而减弱,有时称其为路径损耗(pathloss)。
2、干扰。在同一个频段发送信号的电波源将相互干扰。除了来自发送源的干扰,环境中的电磁噪声(如附近的电动机、微波)也能形成干扰。
3、多径传播。多径传播使得接收方收到的信号变得模糊。位于发送方和接收方之间的移动物体还会导致多径效应随时间而改变。

7.2 移动网络
7.2.1 移动网络基本原理

无线网络不一定是移动网络,但移动网络一定是无线网络。移动网络中的移动结点是随时间改变其与网络连接位置的结点,并且一定采用无线通信术。

  • 从网络层的角度分析用户的移动性

    用户也许带着一台装有无线网络接口卡的便携机在一座建筑物内走动,从网络层的角度看,该用户并没有移动。而且,如果该用户不论在何处都与同一个接入点相关联,从链路层角度来看该用户甚至也没有移动。
    另一种情况,用户在一辆“奔驰”的轿车内以 120km/h 的速度沿高速公路行驶时穿过多个无线接入网,并希望在整个旅程中保持一个与远程应用的不间断的 TCP 连接。这个用户毫无疑问是移动的。介于以上两种情况之间的是,一个用户带着一台便携机从一个地方(如办公室)到另一个地方(如住所),并且想在新地方接入网络。该用户也是移动的,只不过不需要在网络接入点之间移动时维持一个不间断的连接。

  • 移动结点的地址始终保持不变的重要性

    对移动电话而言,当用户从一个电话网络移动到另一个电话网络的过程中,用户的电话号码(本质上是移动电话的网络层地址)始终保持不变。对便携机而言,在 IP 网络之间移动时,IP 地址是否必须保持不变很大程度上取决于所运行的应用程序。对于在高速公路上行驶,同时又希望维持对一个远程应用的不间断的 TCP 连接的用户而言,维持相同的 IP 地址将会带来便利。一个因特网应用程序需要知道它与之通信的远端实体的IP 地址和端口号。如果一个移动实体在移动过程中能够保持其 IP 地址不变,从应用的角度,移动性就变得不可见(透明)。这种透明性有十分重要的价值,即应用程序不必关心 IP 地址潜在的变化,并且同样的应用程序代码既可用于移动连接,又可用于非移动连接。在下面要介绍的移动 IP 网络提供了这种透明性,它允许移动结点在网络间移动的同时维持其永久的 IP 地址。对于一个下班后只想关闭办公室便携机,将其带回家,然后使用便携机在家中工作的用户而言。如果该用户只是将便携机作为一个客户,使用客户一服务器方式的应用(如发送/阅读电子邮件、浏览网页等),则使用特定的相同 IP 地址并不是那么重要。用户只要得到一个由服务于家庭的 ISP 临时分配的 IP 地址即可。

  • 可用的有线基础设施的支持

    在一个网络环境中,一个移动结点(如一台便携机或智能手机)的永久居所被称为归属网络(home network)或称为家网在归属网络中代表移动结点执行下面讨论的移动管理功能的实体叫归属代理(home agent)或称为家代理移动结点当前所在的非归属网络称为外部网络(foreign network)或被访网络(visited network)在外部网络中帮助移动结点做移动管理功能的实体称为外部代理(foreign agent),简称为外代理。对于移动用户而言,它们的归属网络可能就是其公司网络,而被访网络也许就是它们正访问的某同行所在的网络。一个通信者(correspondent)就是希望与该移动结点通信的实体。图展示了移动互联网体系结构,其中,代理被配置在路由器上(例如,路由器上运行的进程),但它们也能在网络中其他主机或服务器上执行。
    在这里插入图片描述

7.2.2 寻址

为了使用户移动性对网络应用透明,希望移动结点在从一个网络移动到另一个网络时保持其地址不变。当某移动结点位于一个外部网络时,所有指向此结点永久地址(parmanent address)的流量需要导向外部网络。下面讨论两种解决方案。这种方法解决了两个问题,且这样做不需对网络层基础设施做重大改动。其他网络知道该移动结点的位置,很容易将数据报路由到该移动结点,因为转发表将这些数据报导向外部网络。然而这个方案有一个很大的缺陷,即扩展性不好。如果移动性管理是网络路由器的责任的话,则路由器将必须维护可能多达数百万个移动结点的转发表项。显然,这一方案不适用于大规模网络。
2、将移动性功能从网络核心搬到网络边缘,由该移动结点的归属网络来实现。在移动结点的归属网络中的归属代理也能跟踪该移动结点的外部网络。这当然需要一个移动结点 (或一个代表该移动结点的外部代理)与归属代理之间的协议来更新移动结点的位置。实际移动网络采取这种方式。

7.2.3 移动结点的路由选择

在寻址中描述了一个移动结点如何得到一个 COA,以及归属代理又是如何被告知该地址的。接下来讨论数据报应怎样寻址并转发给移动结点。目前有两种不同的方法,间接路由选择与直接路由选择。

  • 移动结点的间接路由选择

    对于一个想给移动结点发送数据报的通信者,在间接路由选择(indirect routing)方法 ,通信者只是将数据报寻址到移动结点的永久地址,并将数据报发送到网络中去,完全不知道移动结点是在归属网络中,还是正在访问某个外部网络,因此移动性对于通信者来说是完全透明的。这些数据报首先被路由到移动结点的归属网络,如图中的步骤 1。
    在这里插入图片描述
    归属代理除了负责与外部代理交互以跟踪移动结点的 COA 外,还负责监视到达的数据报。这些数据报寻址的结点的归属网络与该归属代理所在的网络相同,但这些结点当前却在某个外部网络中。归属代理截获这些数据报,然后按步骤 2 的过程转发它们。通过使用移动结点的 COA,该数据报先转发给外部代理(图中的步骤 2),然后再从外部代理转发给移动结点(图中步骤 3)。
    归属代理需要用该移动结点的 COA 来设置数据报地址,以便网络层将数据报路由 选择到外部网络。另一方面,需要保持通信者数据报的原样,因为接收该数据报的应用 程序应该不知道该数据报是经由归属代理转发而来的。为此,归属代理将通信者的原始 完整数据报,封装在一个新的(较大的)数据报中,这个较大的数据报被路由并交付到 移动结点的 COA。“拥有”该 COA 的外部代理将接收并拆封该数据报,即从较大的封 装数据报中取出通信者的原始数据报,然后再向移动结点转发该原始数据报(图中的步骤 3)。接下来考某移动结点如何向一个通信者发送数据报。这相当简单,因为移动结点可直 接将其数据报寻址到通信者(使用自己的永久地址作为源地址,通信者的地址作为目的地 址)。因为移动结点知道通信者的地址,所以没有必要通过归属代理迂回传输数据报。如图中的步骤 4。

    下面列出支持移动性所需要的网络层新功能,对间接路由选择进行小结。
    1) 移动结点到外部代理的协议。
    2) 外部代理到归属代理的注册协议。
    3) 归属代理数据报封装协议。
    4) 外部代理拆封协议。

  • 移动结点的直接路由选择

    间接路由选择方法存在一个低效的问题,即三角路由选择问题(triangle routing problem)。该问题是指即使在通信者与移动结点之间存在一条更有效的路由,发往移动结点的数据报也要先发给归属代理,然后再发送到外部网络。
    直接路由选择(direct routing)克服了三角路由选择的低效问题,但却是以增加复杂性为代价的。在直接路由选择方法中,通信者所在网络中的一个通信者代理(correspondent agent)先获取该移动结点的 COA。这可以通过让通信者代理向归属代理询问得知,这里假设与间接路由选择情况类似,移动结点具有一个在归属代理注册过的最新的COA。与移动结点可以执行外部代理的功能相类似,通信者本身也可能执行通信者代理的功能。在图中显示为步骤 1 和步骤 2。通信者代理将数据报直接通过隧道技术发往移动结点的 COA,这与归属代理使用的封装/拆封技术相类似,参见图的步骤 3 和步骤 4。
    在这里插入图片描述

7.3 无线局域网 IEEE 802.11

在这里插入图片描述

7.3.1 IEEE 802.11 体系结构

基本构件由两部分组成:
1、基站(base station),又称为接入点(Access Point, AP)。
2、基本服务集(Basic Service Set, BSS)。一个 BSS 包含一个或多个无线站点和一个接入点的中央基站。
在这里插入图片描述
配置 AP 的无线局域网经常被称作基础设施无线局域网(infrastucture wireless LAN),其中的“基础设施”是指 AP 连同互联 AP 和一台路由器的有线以太网。IEEE 802.11 站点也能将它们自己组合在一起形成一个自组织网络,图展示了这个自组织网络,该自组织网络无中心控制并与“外部世界”无连接。
在这里插入图片描述
IEEE 802.11 标准规定,每个 AP 周期性地发送信标帧(beacon frame),每个信标帧包括该 AP的 SSID 和 MAC 地址。用户的无线站点,可以通过扫描 11 个 信道,获得正在发送信标帧的 AP。通过信标帧得到可用 AP 后,选择其中一个 AP 进行关联。发现 AP 的过程分为被动扫描(passive scanning)和主动扫描(active scanning)。被动扫描指的是无线主机扫描信道和监听信标帧的过程,其原理如图 7.12a 所示。无线主机也能够进 行主动扫描,主动扫描是指无线主机,通过向位于无线主机范围内的所有 AP 广播探测帧的过 程,其原理如图 7.12b所示。
在这里插入图片描述

7.3.2 IEEE 802.11 的 MAC 协议

多个站点(无线站点或 AP)可能同时经相同信道传输数据帧,因此需要一个多路访问控制协议来协调传输。IEEE 802.11 的 MAC 协议采用 CSMA/CA 协议,又称为带碰撞避免的 CSMA (CSMA with collision avoidance)。支持信道预约的 CSMA/CA 协议的原理如图 7.13 所示。源站在发送数据之前,必须先监听信道,若信道空闲,则等待一个分布式帧间间隔(Distributed Inter-Frame Space, DIFS)的短时间后,发送一个很短的请求发送(Request To Send, RTS)控制帧。RTS 帧包括源地址、目的地址和本次通信所需的持续时间等信息。若目的站正确收到源站发来的 RTS 帧,且物理介质空闲,则等待一个短帧间间隔(Short Inter-Frame Spacing,SIFS)时间后,发送一个很短的允许发送(Clear To Send, CTS)控制帧作为响应,其中包括本次通信所需的持续时间等信息。这样,源站和目的站周围的其他站点可以监听到两者要通信,其他站点在其持续通信时间
内不会发送,这个时间段称为网络分配向量(Network Allocation Vector, NAV)。NAV 是其他站根据监听到的 RTS 或 CTS 帧中的持续时间来确定数据帧传输的时间。源站收到 CTS 帧后,再等待一段 SIFS 时间后,即可发送数据顿,若目的站正确收到了源站发来的数据帧,在等待时间 SIFS 后,就向源站发送确认帧(ACK)。
在这里插入图片描述
CSMA/CA 通过 RTS 和 CTS 帧的交换,可以有效避免隐藏站问题,实现信道的预约占用,从而可以有效避免数据帧传输过程中的冲突,这也是该协议名称的含义。

7.3.3 IEEE 802.11 帧

IEEE 802.11 帧共有 3 种类型:控制帧、数据帧和管理帧。

7.4 蜂窝网络
7.4.1 蜂窝网络体系结构

蜂窝移动网络发展十分迅速,到目前为止,世界上已有超过 30 种不同的标准。第一代蜂窝移动通信(1G)是为语音通话设计的模拟 FDMA 系统。为了能够提供接入互联网服务,2G 蜂窝移动通信系统增加了如 GPRS 和 EDGE 等技术,这些技术是从 2G 到 3G 的一个过渡的衔接性技术。
在这里插入图片描述
2G蜂窝系统的GSM标准的空中接口使用了 FDMA/TDMA组合技术。在组合FDMA/TDMA系统中,信道被划分为若干子频带;对于每个子频带,时间又被划分为复用帧的时隙。因此,对于一个组合 FDMA/TDMA 系统,如果信道被划分为 F 个子频带,并且时间被划分为T 个时隙,那么该信道将能够支持 F*T 个并发的呼叫。一个GSM网络的基站控制器(Base Station Controller, BSC)通常服务于几十个收发基站,BSC的责任是为移动用户分配 BTS 无线信道,执行寻呼(paging) (找出某移动用户所在的小区),执行移动用户的切换。基站控制器及其控制的收发基站共同构成了 GSM 基站系统(Base Station System,BSS)。
移动交换中心(Mobile Switching Center,MSC)在用户鉴别和账户管理(决定是否允许 某个移动设备与蜂窝网络连接)以及呼叫建立和切换中起着决定性的作用。

7.4.2 蜂窝网络中的移动性管理

GSM 标准采用了一种间接路由选择方法管理移动性。移动用户向某个蜂窝网提供商订购了服务,该蜂窝网就成为了这些用户的归属网络。移动用户当前所在网络称为被访网络。GSM 的归属网络维护一个称作归属位置注册器(Home Location Register, HLR)的数据库,HLR 中包括每个用户的永久蜂窝电话号码、用户个人信息以及这些用户当前的位置信息。GSM 的被访网络维护一个称作访问者位置注册器(Visitor Location Register, VLR)的数据库。一个服务商的蜂窝网络将为其用户提供归属网络服务,同时为在其他蜂窝服务商订购服 务的移动用户提供被访网络服务。
结合图 7.17,呼叫过程中一些关键步骤介绍如下。
1、 通信者拨打移动用户的电话号码。
2、 归属 MSC 收到该呼叫,查询 HLR 来确定移动用户的位置。
3、 漫游号码确定后,归属 MSC 通过网络向被访网络的 MSC 呼叫,最后被访网络的 MSC呼叫移动用户。
在这里插入图片描述

7.4.3 移动通信 2G/3G/4G/5G 网络
  • 2G 网络

    GSM,全球移动通信系统,是由欧洲电信标准组织 ETSI 制定的一个数字移动通信标准。
    GSM 系统与第一代蜂窝系统相比,它的信令和语音信道都是数字式的,因此被看作是第二代(2G)移动电话系统的开端。
    GSM 系统的业务,即为用户提供的服务,可以分为承载业务、电信业务和附加业务三大类。GSM 系统采用的是 FDMA 和 TDMA 混合接入的方式。

  • 3G 网络

    第三代移动通信系统简称 3G,是将无线通信与互联网等多媒体通信结合的新一代移动通信系统,能处理图像、音频和视频流等多种媒体,提供包括浏览网页、电话会议和电子商务等多种信息服务。

    第三代移动通信系统的主要目标如下:全球统一频谱、统一标准,全球无缝覆盖;更高的频谱效率和更大的系统容量;能够提供优良的服务质量和保密性能;适应多种环境。第三代移动通信系统中最关键的技术是无线传输技术。

  • 4G/LTE 网络

    3GPP 组织从 2004 年开始了长期演进(Long Term Evolution, LTE)的标准化项目。相比传统的移动通信网络,LTE 系统在无线接入技术(空中接口)和网络结构方面都发生了巨大的变化。3GPP 选择了正交频分多路复用(OFDM)技术作为 LTE 下行空中接口的无 线传输技术,而采用单载波频分复用(Single Carrier Frequency Division Multiple Access, SC-FDMA)作为上行空中接口的无线传输技术。从网络结构上看,整个网络只包括两层,即接入层和核心网。网络结构将原来的基站控制器功能实体取消,使网络结构朝扁平化方向发展。LTE 系统要求基站(evolved Node B, e-NodeB)和接入网关在用户平面直接互联以降低接入时延,将 3G网中的无线网络控制器(Radio Network Controller,RNC)的底层 功能在基站实现,也就是e-NodeB 的高层功能在接入网关(Access Gateway, AGW)实 现,同时在核心网层面取消传统的电路交换而采用基于分组交换的核心网结构。

  • 5G 网络

    全球 5G 技术有望共用一个标准。5G 技术的目的是构建网络社会,意味着除满足超高速率传输需求外,还需满足超高容量、超可靠性、随时随地可接入性等要求,以解决未来移动互联网的流量风暴、网络拥塞等问题。

7.5 移动 IP 网络

移动 IP 标准由 3 部分组成:代理发现,向归属代理注册以及数据报的间接路由选择。

7.5.1 代理发现

移动 IP 定义了一个归属代理或外部代理来向移动结点通告其服务的协议,以及移动结点请求一个外部代理或归属代理的服务所使用的协议。
代理发现(agent discovery)指的是当某移动 IP 站点到达一个新网络时,不管是连到一个外部网络还是返回其归属网络,它都必须知道相应的外部代理或归属代理的身份。代理发现可以通过以下两种方式实现:代理通告或者代理请求。

1.代理通告(agent advertisement)
外部代理或归属代理使用一种现有路由器发现协议的扩展协议来通告其服务。该代理周期性地在所有连接的链路上广播一个类型字段为 9 (路由器发现)的 ICMP 报文。路由器发现报文也包含路由器(即该代理)的 IP 地址,因此允许一个移动结点知道该代理的 IP 地址。路由器发现报文还包括了一个移动性代理通告扩展,其中包含了该移动结点所需的附加信息。在移动性代理通告扩展中有以下一些较重要的字段。

2、代理请求(agent solicitation)
一个想知道代理的移动结点不必等待接收代理通告,就能广播一个代理请求报文,该报文只是一个类型值为 10 的 ICMP 报文。收到该请求的代理将直接向该移动结点单播一个代理通告,于是该移动结点将继续处理,就好像刚收到一个未经求的通告一样。

7.5.2 向归属代理注册

1) 当收到一个外部代理通告后,移动结点立即向外部代理发送一个移动 IP 注册报文。 注册报文承载在一个 UDP 数据报中,并通过端口 434 发送。注册报文携带以下内容:一个由外部代理通告的 C0A、归属代理的地址(HA)、移动结点的永久地址(MA)、请求的注册寿命(lifetime)和一个 64 位的注册标识(identification)。请求的注册寿命指示了注册有效的秒数。如果注册没有在规定的时间内在归属代理上更新,则该注册将变得无效。注册标识就像一个序号,用于匹配收到的注册应答与注册请求。
2) 外部代理收到注册报文并记录移动结点的永久 IP 地址。外部代理知道现在它应该查收这样的数据报,即它封装的数据报的目的地址与该移动结点的永久地址相匹配。然后外部代理向归属代理的端口 434 发送一个移动 IP 注册请求报文(同样封装在 UDP 数据报中),其中包括 COA、HA、MA、封装格式(encapsulation format)要求、请求的注册寿命以及注册标识。
3) 归属代理接收注册请求并检查真实性和正确性。
4) 外部代理接收注册应答,然后将其转发给移动结点。
在这里插入图片描述

7.6 其他典型无线网络简介
7.6.1 WiMax

全球微波互联接入(World Interoperability for Microwave Access, WiMax)又称为 IEEE 802.16标准,其目的是在更大范围内为用户提供可以媲美有线网络的无线通信解决方案。

7.6.2 蓝牙

IEEE 802.15.1 网络以小范围、低功率和低成本运行。它本质上是一个低功率、小范围、 低速率的“电缆替代”技术,用于互联笔记本、串行设备、蜂窝电话和智能手机,而 IEEE 802.11是一个大功率、中等范围、高速率的“接入”技术。为此,IEEE 802.15.1 网络优势被 称为无线个人区域网络(Wireless Personal Area Network, WPAN)标准。IEEE 802.15.1 的链路层和物理层基于早期用于个人区域网络的蓝牙(Bluetooth)规范,所以通常也将 IEEE 802.15.1 网络称为蓝牙网络。

7.6.3 ZigBee

IEEE 的第二个个人区域网络标准是 IEEE 802.15.4,被称为 ZigBee。ZigBee 主要以低功率、低数据速率、低工作周期应用为目标。ZigBee 网络结点可以分两类:“简化功能设备”和“全功能设备”。多个“简化功能设备”通常在单个“全功能设备”控制下,作为从设备运行,与蓝牙网络的从设备非常相似。一个 “全功能设备”能够作为一个主设备运行,就像在蓝牙中控制多个从设备那样,并且多个“全功能设备”还能够配置为一个网状(mesh)网络,其中“全功能设备”在它们之间发送帧。ZigBee 网络能够配置成许多不同的方式。考虑一种简单的场合,其中单一的“全功能设备”使用信标帧以一种时隙方式控制多个“简化功能设备”。图 7.23 显示了这种情况,其中ZigBee 网络将时间划分为反复出现的超帧,每个超帧以一个信标帧开始。每个信标帧将超帧划分为一个活跃周期(在这个周期内设备可以传输)和一个非活跃周期(在这个周期内所有 设备包括控制器能够睡眠进而保存能量)。活跃周期由 16 个时隙组成,其中一些由采用 CSMA/CA 随机接入方式的设备使用,另一些由控制器分配给特定的设备,因而为那些设备提供了保障信道。
在这里插入图片描述

八.网络安全基础

8.1 网络安全概述
8.1.1 基本概念

网络安全,也就是网络安全通信所需要的基本属性。
1) 机密性(confidentiality)。
2) 消息完整性(message integrity)。
3) 可访问与可用性(access and availability)o
4) 身份认证(authentication)。
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

8.1.2 网络安全威胁

1、首先,从报文传输方面,主要包括窃听、插入、假冒、劫持等安全威胁。窃听指的是在报文传输过程中窃听信息,获取报文信息。插入威胁指的是攻击者主动在连接中插入信息,混淆信息,让接收信息者收到虚假信息。假冒指的是可以伪造分组中的源地址(或者分组的任意其他字段)。劫持指的是通过移除/取代发送方或者接收方“接管”连接。
2、比较常见的网络攻击还包括拒绝服务 DoS 以及分布式拒绝服务 DDoS 等。 拒绝服务是指阻止服务器为其他用户提供服务。分布式拒绝服务 DDoS 是指利用多个源主机协同淹没接收方,DDoS 攻击过程如下:首先选择目标,然后入侵网络中主机,构造僵尸网络,然后再控制僵尸主机向目标发送分组。
3、Internet 中的有一类安全威胁叫作映射,其攻击原理如下:在发起攻击前先“探路”,找出网络上在运行什么服务,然后利用 ping 命令确定网络上的主机的地址,最后使用端口扫描的方法依次尝试与每个端口建立 TCP 连接。Nmap 就是国外广为使用的端口扫描工具之一。
4、还有一类安全威胁叫分组“嗅探”。“嗅探”通常发生在共享式以太网或者无线网络中,“嗅探”主机通过混杂模式网络接口卡,可以接收或记录所有广播介质上的分组/帧,可以读 到所有未加密数据,例如,口令等。当然,“嗅探”也并非都是安全威胁,“嗅探”也是协议分析或网络管理等所采用的技术手段,例如,Wireshark 就是一个典型的分组嗅探软件。
5、IP 欺骗也是属于网络安全威胁的一种,它可以直接由应用生成“原始” IP 分组,设置分组的源 IP 地址字段为任意值,接收方无法判断源地址是否被欺骗,可能导致错误数据的接收,或者隐藏网络安全攻击身份。

8.2 数据加密

密码技术是保障信息安全的核心基础,解决数据的机密性、完整性、不可否认性以及身份识别等问题均需要以密码为基础。简单来说,密码学(Cryptography)包括密码编码 学和密码分析学两部分。密码编码学是指将密码变化的客观规律应用于编制密码来保守通信秘密。
研究密码变化客观规律中的固有缺陷,并应用于破译密码以获取通信情报的,称为密码分析学。
如图 8.2 所示,是通信加密模型。一般来说,未加密消息在密码学中被称为明文,伪装消息以隐藏消息的过程称为加密,而被加密的消息称为密文,把密文转变为明文的过程称为解密。
在这里插入图片描述
根据密码体制的特点以及出现的先后时间可以将密码方式分类为传统密码算法、对称密钥算法、公开密钥算法。 同时,依据处理数据的类型可以划分为分组密码和序列密码。分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为 n 的组 (可看成长度为 n 的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。序列密码又称流密码,是利用密钥产生一个密钥流,然后对明文串分别加密的过程。

8.2.1传统加密方式

在历史上,加密方法被分为替代密码和换位密码两大类。两种技术的核心都是将明文通过一些算法加密,保证明文的安全性。替代密码是将明文字母替换为其他字母、数字或符号的方法,而换位密码是通过置换而形成新的排列。

8.2.2 对称密钥加密

现代密码又可以分为对称密钥密码和非对称密钥密码两大类,其中对称密钥密码的加密秘钥和解密秘钥是相同的,非对称密钥密码的加密秘钥与解密秘钥是不同。
对称密钥加密系统又可以分为分组密码和流密码。流密码又称序列密码,是通过伪随机数发生器产生性能优良的伪随机序列(密钥流),用该密钥流加密明文消息流,得到密文消息序列。解密时使用相同的密钥流,按加密的逆过程进行解密。分组密码,又称块密码,是将明文消息分成若干固定长度的消息组,每组消息进行单独加密/解密。计算机网络常用的对称密钥加密为分组密码。比较常见的分组密码有 DES、AES 和 IDEA 等。

8.2.3 非对称/公开密钥加密

非对称密钥密码,或称公开密钥密码(简称公钥密码),则便于解决密钥分问题。
在这里插入图片描述
比较典型的公开密钥加密算法有 Diffie-Hellman 算法和 RSA 算法。
RSA 算法是目前应用比较广泛的公开密钥算法,算法安全性高,但是计算量非常大,因此通常 RSA 会与对称密钥密码结合使用。公开密钥密码有一个重要特性:如果对报文 m 利用私钥加密,则可以利用其公钥进行解密。

8.3 消息完整性与数字签名

报文/消息完整性(message integrity),也称为报文/消息认证(或报文鉴别),其主要目标是:证明报文确实来自声称的发送方;验证报文在传输过程中没有被篡改;预防报文的时间、顺序被篡改;预防报文持有期被篡改;预防抵赖(如发送方否认已发送的消息或接收方否认己接收的消息)。

8.3.1 消息完整性检测方法

为了实现消息完整性检测,需要用到密码散列函数(Cryptographic Hash Function) H(m),表示对报文 m 进行散列化。密码散列函数应具备的主要特性如下。

  • 一般的散列函数具有算法公开。
  • 能够快速计算。
  • 对任意长度报文进行多对一映射均能产生定长输出。
  • 对于任意报文无法预知其散列值。
  • 不同报文不能产生相同的散列值。

同时,密码散列函数还应该具有单向性、抗弱碰撞性、抗强碰撞性。满足上述特性的典型散列函数有 MD5 和 SHA-1。

8.3.2 报文认证

消息完整性检测的一个重要目的就是要完成报文认证的任务。图 8.4 对报文 m 应用散列函数 H,得到一个固定长度的散列码,称为报文摘要(message digest),记为 H(m)。报文摘要可以作为报文 m 的数字指纹(fingerprint)„报文认证是使消息的接收者能够检验收到的消息是否是真实的认证方法。报文(消息) 认证的目的有两个:一个是消息源的认证,即验证消息的来源是真实的;另一个是消息的认 证,
即验证消息在传送过程中未被篡改。
在这里插入图片描述

  • 简单报文验证
    在这里插入图片描述

  • 报文认证码 MAC ( Message Authentication Code)
    在这里插入图片描述

    8.3.3 数字签名

    在报文完整性认证的过程中,亟待解决的问题有:发送方不承认自己发送过某一报文。接收方自己伪造一份报文,并声称来自发送方。某个用户冒充另一个用户接收和发送报文。接收方对收到的信息进行篡改。解决这些问题的有效技术手段是数字签名。在公钥密码体制中,一个主体可以使用他自己的私钥“加密”消息,所得到的“密文” 可以用该主体的公钥“解密”来恢复成原来的消息,如此生成的_“密文”对该“消息”提供认证服务。公钥密码提供的这种消息认证服务可以看成是对消息原作者的签名即数字签名。数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,特别是在大型安全通信中的密钥分配、认证以及电子商务系统中具有重要作用。数字签名是实现认证的重要工具。数字签名与消息认证的区别:消息认证使接收方能验证发送方以及所发消息内容是否被篡改过。当收发者之间没有利害冲突时,这对于防止第三者的破坏来说是足够了。但当接收者和发送者之间有利害冲突时,就无法解决他们之间的纠纷,此时须借助满足前述要求的数字签名技术。

    数字签名应满足以下要求。
    (1)接收方能够确认或证实发送方的签名,但不能伪造。
    (2)发送方发出签名的消息给接收方后,就不能再否认他所签发的消息。
    (3)接收方对已收到的签名消息不能否认,即有收报认证。
    (4)第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。

  • 简单数字签名

    在这里插入图片描述

  • 签名报文摘要
    在这里插入图片描述

8.4 身份认证

身份认证又称身份鉴别,是一个实体经过计算机网络向另一个实体证明其身份的过程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.5 密钥分发中心与证书认证机构
8.5.1 密钥分发中心

对称密钥分发的典型解决方案是,通信各方建立一个大家都信赖的密钥分发中心 (Key Distribution Center, KDC),并且每一方和 KDC 之间都保持一个长期的共享密钥。通信双方借助 KDC,在通信双方之间创建一个临时的会话密钥(Session Key)。在会话密钥建立之前,通信双方与 KDC 之间的长期共享密钥,用于 KDC 对通信方进行验证以及双方之间的验证。
基于 KDC 的密钥生成和分发方法可以有很多种。
方式一:通信发起方生成会话密钥
在这里插入图片描述
方式二:由 KDC 为 Alice、Bob 生成通信的会话密钥。
在这里插入图片描述

8.5.2 证书认证机构

要使公钥密码有效,需要能够证实你拥有的公钥,实际上就是要与你通信的实体(人员、路由器、浏览器等)的公钥。
将公钥与特定实体绑定,通常是由认证中心(Certification Authority, CA)完成的。CA 具有以下作用。
1) CA 可以证实一个实体(一个人、一台路由器等)的真实身份。
2) 一旦 CA 验证了某个实体的身份,CA 会生成一个把其身份和实体的公钥绑定起来的证书(Certificate),其中包含该实体的公钥及其全局唯一的身份识别信息(例如,人的姓名或IP 地址)等,并由 CA 对证书进行数字签名。

8.6 防火墙与入侵检测系统
8.6.1 防火墙基本概念

在众多网络安全防护措施里,防火墙(firewall)是比较有效并且被广泛部署使用的设施。如图8.16 所示,防火墙是能够隔离组织内部网络与公共互联网,允许某些分组通过,而阻止其他分组进入或离开内部网络的软件、硬件或者软件硬件结合的一种设施。
防火墙发挥作用的基本前提,是需要保证从外部到内部和从内部到外部的所有流量都经过防火墙,并且仅被授权的流量允许通过,防火墙能够限制对授权流量的访问。
在这里插入图片描述

8.6.2 防火墙分类

防火墙大致可以分为三类:无状态分组过滤器(stateless packet filters)、有状态分组过滤器(stateful packet filters)和应用网关(application gateway)。

  • 无状态分组过滤器

    无状态分组过滤器是典型的部署在内部网络和网络边缘路由器上的防火墙。一个机构网络通常都会有至少一个将其内部网络与外部 Internet 相连的网关路由器。所有进入和离开内部网络的流量都会经过网关路由器。分组过滤是网关路由器的重要功能之一,路由器逐个检查数据报,然后基于特定的规则对分组是通过还是丢弃进行决策。进行过滤时通常基于以下参数进行决策。

  1. IP 数据报的源 IP 地址和目的 IP 地址。
  2. TCP/UDP 报文段的源端口号和目的端口号。
  3. ICMP 报文类型。
  4. TCP 报文段的 SYN 和 ACK 标志位等。
    在路由器中通常使用访问控制列表(Access Control Lists, ACL)实现防火墙规则,每个路由器
    接口都有它自己的规则列表,自顶向下应用于到达的分组。
  • 有状态分组过滤器

    有状态分组过滤器会使用连接表跟踪每个 TCP 连接,如表 8.3 所示。分组过滤器跟踪连接建立 (SYN),拆除(FIN),根据状态确定是否放行进入或者外出的分组。对于超时的非活动连接,则不再允许分组通过。
    在这里插入图片描述

  • 应用网关

    为了进一步提高防火墙的安全性,防火墙还必须把分组过滤器和应用程序网关结合起来,图 8.17 所示的是应用网关实现授权用户通过网关访问外部网络的 Telnet 服务。首先,所有用户必须通过应用网关才能访问外部网络的 Telnet 服务,应用网关会进行身份鉴别,只有授权用户,应用网关代理用户与目的主机建立 Telnet 连接,并且在两个连接之间进行数据中继,而路由器会阻止所有不是应用网关发起的 Telnet 连接。所以,该 Telnet 应用网关不仅执行用户授权,同时也充当 Telnet 服务器和 Telnet 客户。尽管前面介绍了多种安全措施,防火墙和应用网关依然存在许多局限性。第一,路由器无法确定数据是否来自声称的源,攻击者会利用此进行 IP 欺骗。第二,应用网关通用性不好,如 果不同应用有不同需求,每个应用需要一个独立的应用网关,此外,客户软件需要知道如何连接网关。第三,针对 UDP 的流量经常全部通过或者全部不通过。通常,网络中防火墙的设置会进行折中,确定安全级别,不同安全级别对内部网络与外部网络的通信影响程度不同。

8.6.3 入侵检测系统 IDS

入侵检测系统(Intrusion Detection System,IDS)是当观察到潜在的恶意流量时,能够产生警告的设备或系统,IDS 不仅仅针对 TCP/IP 首部进行操作,而且会进行深度包检测, 并检测多数据之间的相关性。IDS 能够检测多种攻击,例如,网络映射、端口扫描、TCP 栈 扫描、DoS 拒绝服务攻击等。

8.7 网络安全协议
8.7.1安全电子邮件
  • 安全电子邮件基本原理

    作为一个网络应用,电子邮件对网络安全的需求主要有以下几个方面。
    1) 机密性:传输过程中不被第三方阅读到邮件内容,只有真正的接收方才可以阅读邮件。
    2) 完整性:支持在邮件传输过程中不被篡改,若发生篡改,通过完整性验证可以判断出该邮件被篡改过。
    3) 身份认证性:电子邮件的发送方不能被假冒,接收方能够确认发送方的身份。
    4) 抗抵赖性:发送方无法对发送的邮件进行抵赖。接收方能够预防发送方抵赖自己发送过的事实。

  • 安全电子邮件标准

    目前,安全电子邮件标准是 1991 年提出的 PGP (Pretty Good Privacy)标准。PGP 可以免费运行在各种操作系统平台之上,可用于普通文件加密以及军事目的,所使用的算法,例 如,公钥加密算法(如 RSA)、对称加密算法(如 3DES)、散列算法(如 SHA-1),都已被证明是安全可靠的。

    PGP 能够提供诸如邮件加密、报文完整性等安全服务,满足电子邮件对网络安全的需求。PGP 标准会对邮件内容进行数字签名,保证信件内容不被篡改。同时会使用公钥和对称密钥加密,保证邮件内容机密且不可否认,公钥的权威性由收发双方所信任的第三方签名认证,并且事先不需要任何保密信道来传递对称的会话密钥。

8.7.2 安全套接字层 SSL
  • SSL 简介

    安全套接字层 SSL 是由 NetScape 最先实现,并广泛部署的安全协议,几乎所有的浏览器和Web 服务器都支持。SSL 可以提供机密性、完整性、身份认证等安全服务。SSL 最初提出的目标是面向 Web 电子商务交易,尤其是加密信用卡号,提供 Web 服务器的认证、可选的客户认证,方便用户和新商户进行商务活动。HTTP 协议使用 SSL 进行安全通信时,称为安全 HTTP,简记为 HTTPS。

    简化的 SSL 主要包含 4 个部分。
    1)发送方和接收方利用各自的证书、私钥认证、鉴别彼此,并交换共享密钥。
    2)密钥派生或密钥导出,发送方和接收方利用共享密钥派生出一组密钥。
    3)数据传输,将传输数据分割成一系列记录,加密后传输。
    4)连接关闭,通过发送特殊消息,安全关闭连接,不能留有漏洞被攻击方利用。
    在这里插入图片描述

  • SSL 协议栈

    图 8.22 所示是 SSL 协议栈,可以看到 SSL 是介于 TCP 和 HTTP 等应用层协议之间的一个可选层,绝大多数应用层协议可以直接建立在 SSL 协议之上,SSL 不是单独的协议,而是两层协议。在介绍 SSL 各个具体协议之前先介绍一下 SSL 密码组。SSL 在安全加密/解密过程中,涉及多种密码,已介绍的密钥派生过程中的 4 种密码。同时 SSL 也会使用到多种加密算法,主要有以下几种。
    在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值