echo

任生命穿梭 时间的角落

0%

计算机网络(谢希仁)

计算机网络体系概述

计算机网络概述

计算机网络概念

  1)广义观点:只要是能实现远程信息处理的系统或能进一步达到资源共享的系统,都是计算机网络。

  2)资源共享观点:计算机网络是 “以能够共享资源的方式互联起来的自治计算机系统的集合” 。该定义包含三层含义: 1、目的:资源共享;2、组成单元:分布在不同地理位置的多台独立的 “ 自治计算机”;3、网络中的计算机额必须遵循统一的规则–网络协议。

  3)用户透明性观点:存在一个能够为用户自动管理的网络操作系统,它能够调用用户所需要的资源。  

计算机网络的组成

  1)从组成部分上来看:完整的计算机网络主要由硬件、软件、协议三大部分组成。硬件主要由主机、通信链路(双绞线、光纤)、交换设备(路由器、交换机)和通信处理机(网卡)等组成。软件主要是各种实现资源共享的软件和方便用户使用的各种工具软件(OS、FTP程序等),多属于应用层。协议规定了网络传输数据时所遵循的规范。

  2)从工作方式来看:计算机网络可分为边缘部分核心部分。边缘部分由供用户直接使用的主机使用,核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。

  3)从功能组成上看,计算机网络由通信子网和资源子网组成,通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络有数据传输、交换、控制和存储的能力。资源子网向网络用户提供共享其他计算机的资源的服务。

计算机网络的功能

  1)数据通信:实现联网计算机之间的各种信息的传输。

  2)资源共享:软件、硬件、数据的共享。

  3)分布式处理:当某个计算机系统负荷过重,将任务分配给其他计算机系统。

  4)提高可靠性。

  5)负载均衡: 将工作任务均衡地分配给计算机网络中的各台计算机。

计算机网络的分类

按分布范围分类

  1)广域网 WAN(Wide Area Network):广域网提供长距离通信。

  2)城域网 MAN(Metropolitan Area Network):大多采用以太网技术 覆盖城市或街区。

  3)局域网 LAN(Local Area Network):覆盖范围较小,传统上,局域网使用广播技术,广域网使用交换技术。

  4)个人区域网 PAN(Personal Area Network):覆盖范围最小。

  

按传输技术分类

  1)广播式网络:所有联网计算机共享一个公共通信信道。当一台计算机利用它发送报文分组时,其他的所有计算机都会接收到该分组,接收到的计算机会检查目的地址来判断是否为自己的分组,不是则丢弃。

  2)点对点网络:每条物理线路连接一对计算机。如果没有直接相连的线路,它们之间的分组就要通过中间节点的存储转发到达目的节点。

  是否采用分组存储转发与路由机制是点对点式网络与广播式网络的区别,广域网基本属于点对点网络。

按拓扑结构分类

  网络拓扑结构是指网络中结点(路由器、主机等)与通信线路(网线)之间的几何关系。

  img

  1)总线形: 建网方便,重负载时通信效率不高。

  2)星形:便于集中控制管理,成本高,中心结点对故障敏感。

  3)环形:所有计算机接口设备连成一个环。典型的令牌环局域网。环中信号单向传输。

  4)网状形:每个结点至少有两条路径与其他结点相连,多用在局域网,可靠性高,成本高。

按使用者分类

  1)公用网:电信公司出资建设的大型网络。

  2)专用网:某个单位自建的网络。

  

按交换技术分类

  交换技术时指各主机之间、各通信设备之间或主机与通信设备之间为交换信息之间所采用的数据格式和交换装置的方式。

  1)电路交换网络:在源结点和目的结点之间建立一条专用的通路用来传输数据,包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网是传统电话网络。

  2)报文交换网络:用户数据加上源地址、目的地址、校验码等辅助信息,封装成报文,利用中间结点存储转发到达目的结点。

  3)分组交换网络:将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址和辅助信息组成分组以存储-转发方式传输。

  

按传输介质分

  传输介质分为有线和无线两大类,因此网络可分为有线网络和无线网络。有线网络分为双绞线网络、同轴电缆网络等。无线网络又可分为蓝牙、微波、无线电等类型。

   

计算机网络标准化组织

  1)国际标准化组织(ISO):制定主要标准 OSI参考模型、HDLC。

  2)国际电信联盟(ITU)。

  3)国际电气电子工程师协会(IEEE)。

 

计算机网络性能指标

  1)带宽:网络通信线路所能传输数据的能力,是数字信道所能传输的 “最高数据率” 的同义词,单位 b/s。

  2)时延:数据(一个分组或报文)从网络(或链路)的一端传送到另一端所需要的总时间,它由4部分构成 发送时延、传播时延、处理时延、排队时延。

img

​ 3)时延带宽积:发送端发送的第一个比特即将到达终点时,发送端已经发出了多少个比特。

  时延带宽积 = 传播时延*信道带宽

  img

​ 4)往返时延(Round-Trip Time):从发送端发送数据开始,到发送端收到来自接收端的确认总共经过的时延。

  5)吞吐量:单位时间内通过某个网络的数据量

  6)速率:连接到计算机网络上的主机在数字信道上传送数据的速率,也称数据率,单位为b/s。通常把最高数据率称为带宽。

  7)信道利用率 某一信道有百分之多少的时间是有数据通过的 信道利用率 = 有数据通过时间/(有+无)数据通过时间。

计算机网络体系结构与参考模型

计算机网络分层结构

  img

 服务是垂直的,协议是水平的。

计算机网络协议、接口、服务的概念

  1. 协议:为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol),它是控制两个或多个对等实体进行通信的规则集合。协议由语法、语义和同步组成。语法规定了传输数据的格式。语义规定了所要完成的功能,即发出何种控制信息、完成何种动作和做出何种应答;同步规定了执行各种操作的条件、时序关系等。一个完整的协议通常具有线路管理、差错控制、数据转换等功能。

      2. 接口:接口是同一结点内相邻两层间交换信息的交换点。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。在典型的接口上,同一结点相邻两层的实体通过服务访问点(Service Access Point)进行交互。服务是通过SAP提供给上层使用的。

          3. 服务:服务是指下层为紧邻的上层提供的功能调用,它是垂直的。上层与下层交换一些命令使用服务原语。OSI将源语分为四类:请求,指示,响应,证实。

  img

 计算机网络提供的服务可按以下三种方式分类

  1)面向连接服务与无连接服务。

  面向连接服务分为连接建立、数据传输和连接释放三个阶段。例如TCP。

  无连接服务不需要建立连接,直接发送,尽最大努力交付,不保证通信的可靠性。例如IP,UDP

  2)可靠服务与不可靠服务

  可靠服务指网络具有纠错、检错、应答机制,确保数据正确可靠传送到目的地。

  不可靠服务是指网络只是尽量正确、可靠地传输,不能保证数据正确、可靠地传送到目的地。

  3)有应答服务和无应答服务

  有应答服务是指接收方在收到数据后向发送方给出相应的应答。例如文件传输服务。

  无应答服务是指接收方收到数据后不自动给出应答。

  

ISO/OSI 参考模型和TCP/IP模型

  img

img

img

img

img

本章小结及疑难点

计算机网络与分布式计算机系统的主要区别是什么?

​ 分布式系统最主要的特点是:整个系统中的各个计算机对用户都是透明的。用户通过输入命令就可以运行程序,用户并不知道是哪台计算机在为它运行程序。操作系统为用户选择一台最合适的计算机来运行其程序,并将运行的结果传送到合适的地方。

计算机网络则不同,用户必须先登录欲运行程序的计算机,然后按照计算机的地址,将程序通过计算机网络传送到该计算机上运行,最后根据用户的命令将结果传送到指定的计算机。两者的区别主要是软件的不同。

为什么一个网络协议必须考虑到各种不利的情况?

​ 因为网络协议如果不全面考虑不利的情况,那么当情况发生变化时,协议就会保持理想状况,一直等下去。

因特网使用的 IP 协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么当初为什么不把因特网传输设计为可靠的呢?

​ 传统电信网的主要用途使电话通信,并且普通电话机不是智能的,因此电信公司必须花费巨大的代价把电信网设计的非常好,以保证用户的通信质量。
计算机网络的先驱们认为,计算机网络和电信网的一个重大区别是终端设备的性能差别很大。于是,他们采用了 “端到端的可靠传输” 策略,即在传输层使用面向连接的 TCP 协议,这样既能使网络部分价格便宜且灵活可靠,又能保证端到端的可靠传输。

端到端通信和点到点通信有什么区别?

​ 由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务,而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信,它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机和目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程)之间的通信。“端” 是指用户程序的端口,端口号标识了应用层中不同的进程。

如何理解传输速率、带宽和传播速率?

​ 传输速率指主机在数字信道上发送数据的速率,也称数据率或比特率,单位是 b/s 。
带宽在计算机网络中指数字信道所能传送的“最高数据传输速率”,常用来表示网络的通信线路传送数据的能力。
传播速率是指电磁波在信道中传播的速率,单位是 m/s。

试从多个方面比较电路交换、报文交换和分组交换的优缺点。

​ 电路交换的主要特点:
1)通信一定由有三个阶段:建立连接、通信、释放连接。
2)在整个通信过程中,通信的双方自始至终占用着所使用的物理信道。
电路交换对通信线路的利用率比较低。静态分配传输带宽,当发生拥塞时通信质量不会下降。
目前常用的分组交换是使用无连接的 IP 协议。这种分组交换以分组作为传输的单位。采用存储转发技术,无连接建立和释放这两个阶段,传送数据较快。动态分配传输带宽,对通信链路是逐段占用的。分组在各路由器存储转发时需要排队,这就会造成一定的时延。
报文交换也采用存储转发技术,报文交换不再把 报文分割为更小的分组,而是把整个报文在网络的结点中存储下来,然后转发出去。传输数据的时延较大。

协议与服务有何区别?有何关系?

​ 协议是控制两个对等实体(或多个实体)进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。

网络协议的三个要素是什么?各有什么含义?

1)语法,即数据与控制信息的结构或格式。
2)语义,即需要发出何种控制信息、完成何种动作以及做出何种响应。
3)同步,即时间实现顺序的详细说明。

试述具有五层协议的网络体系结构的要点,包括各层的主要功能。

1)物理层。在物理层上传送数据的单位是比特。物理层的任务就是透明地传送比特流。
2)数据链路层。将网络层交下来地 IP 数据报组装成帧,在两个相邻结点间地链路上“透明”地传送帧中的数据。
3)网络层。负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把传输层产生的报文段或用户数据报封装成分组或包进行传送。
4)传输层。传输层的任务就是负责向两个主机中进程之间的通信提供服务。
5)应用层。直接为用户的应用进程提供服务。

物理层

通信基础

基本概念

数据、信号与码元

  1)数据:传送信息的实体。

  2)信号:数据的电气或电磁表现,是数据在传输过程中的存在形式。

  3)码元:用一个固定时长的信号波形表示一位k进制数字。

  

信源、信道与信宿

  1)信源:产生与发送数据的源头 。2)信道:信号的传输媒介。3)信宿:接收数据的终点。

  

速率、波特与带宽

  速率:单位时间传输的数据量。可以用码元传输速率和信息传输速率表示。

  1)码元传输速率:单位时间内传输的码元个数。单位为波特Baud。

  2)信息传输率:单位时间内传输的比特数,单位 b/s。

  

奈奎斯特定理和香农定理

  1)奈奎斯特定理:在理想低通信道中极限码元传输率为2W波特,其中W是理想低通信道的带宽单位为Hz。若用V来表示每个码元离散电平的数目,比如有16种不同的码元,采用NRZ码传输,发送一位需要1个信号周期,一个码元含有4bit信息量,若采用Manchester码 ,发送一位需要2个信号周期,一个码元含有2bit信息量。如果只有两种码元,采用NRZ,每个码元含有1bit信息量;采用Manchester,每个码元含有0.5bit信息量。

  极限数据传输率 = 2W*log2(V)

  2)香农定理:给出了带宽受限且有高斯白噪声干扰的信道的极限数据传输率

  信道的极限数据传输率 = W*log2(1+S/N)

 

编码与调制

  img

  归零编码(RZ):高电平为1,低电平为0,在每个时钟周期中间均跳变到低电平。

  非归零编码(NRZ):高电平为1,低电平为0,无法传递时钟信号难以同步。

  反转非归零码(NRZI):用信号的翻转代表0,信号保持不变代表1。

  曼彻斯特码(Manchester):10 表示高电平,01表示低电平。以太网使用。

  差分曼彻斯特码:若下一个电平为低,在码元边界反转,若为高电平则保持不变。

电路交换、报文交换与分组交换

  1)电路交换:在进行数据传输前,两个结点之间必须建立一条双方独占的物理通信路径。时延小,有序传输,无冲突,实时性强。建立连接时间长,线路独占,灵活性差,难以规格化。

  2) 报文交换:数据交换的单位是报文,报文携带有目标地址、源地址等信息。报文交换在交换结点采用存储转发的传输方式。无须建立连接,动态分配线路,提高线路可靠性提高线路利用率,提供多目标服务。转发时延大,需要较大缓存空间。

  3)分组交换:限制每次传送数据块大小上限,采用存储–转发方式。无建立时延,线路利用率高、简化存储管理,加速传输,减少出错概率和重发数据量。存在传输时延,需要传输额外的信息量,当分组交换使用数据报服务时会出现失序、丢失或者重复分组,需要重新排序分组。采用虚电路服务,无失序问题但有呼叫建立、数据传输和虚电路释放三个过程。

img

数据报和虚电路

  分组交换可分为面向连接的虚电路方式和无连接的数据报方式。这两种服务方式都由网络层提供。(IP分组)数据报方式和虚电路方式是分组交换的两种方式。

  1)数据报:高层协议先将报文拆成若干个带序号的数据单元,在网络层加上控制信息形成数据报分组。不同的分组可以走不同的路径,也可以按不同的顺序到达目的结点。

  2)虚电路:在发送发和接收方建立一条逻辑上相连的虚电路,连接一旦确立就固定了虚电路所对应的物理路径。与电路交换类似,分为虚电路建立、数据传输和虚电路释放。端系统每次建立虚电路时,选择一个未使用过的虚电路号分配给该虚电路。每个数据分组不仅要有分组号、校验和控制信息还要有它要通过的虚电路号。

img

传输介质

双绞线、同轴电缆、光纤与无线传输介质

  传输介质是发送设备和接收设备之间的物理线路。

  1)双绞线:由两根采用一定规则并排绞合的互相绝缘的铜导线组合而成,绞合可以减少对相邻导线的电磁干扰。模拟传输和数字传输都可使用。

  2)同轴电缆:由内导体、绝缘层、网状编织层和塑料外层构成。

  3)光纤:主要由纤心和包层构成,利用光的全反射。

  4)无线传输介质:无线电波 微光、红外光和激光。

  

物理层接口的特性

  1)机械特性:规定物理连接时所采用的规格、引线的数目、引脚的数量和排列情况。

  2)电气特性:规定传输二进制位时,线路上信号的电压高低、阻抗匹配、传输速率和距离限制等。

  3)功能特性:指明某条线上出现的某一电平的电压表示何种意义,接口部件的信号线用途。

  4)规程特性:定义各条物理线路的工作规程和时序关系。

物理层设备

中继器

  中继器又称转发器,主要功能是将信号整形并放大再转发出去,消除衰减,其原理是信号再生。有两个端口输入和输出端口。使用中继器连接的几个网段仍是一个局域网,它不能连接两个具有不同速率的局域网,它没有存储转发功能。中继器两端的网络部分是网段,而不是子网。

集线器

  集线器实质上是一个多端口的中继器工作在物理层。当Hub工作时,一个端口收到数据信号后,将其整形放大,使之再生然后转发到其他所有端口,Hub在网络中只起信号放大和转发作用,目的是扩大网络的传输范围,不具备信号的定向传输能力。Hub组成的网络是共享式网络,逻辑上仍是一个总线网,Hub只能在半双工状态下工作。集线器不能分割冲突域,例如一个带宽为10Mbps 的集线器上连接了8台计算机,8台计算机同时工作时,每台计算机真正拥有的带宽时1.25Mbps。

本章小结及疑难点

奈式准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么?

​ 奈式准则指出了,码元传输的速率是受限的,不能任意提高,否则在接收端就无法正确判断码元是 1 还是 0(因为有码元之间的相互干扰)。

​ 奈式准则是在理想条件下推导出的。在实际条件下,最高码元传输速率要比理想条件下得出的数值还要小些。奈式准则并没有对信息传输速率给出限制,要提高信息传输率就要提高每个码元所含的信息量。

​ 香农公式给出了信息传输率的极限,即对于一定的传输带宽(Hz)和一定的信噪比,信息传输率的上限就确定了。要想提高信息的传输速率,必须设法提高传输线路的带宽或提高所传信号的信噪比。

同步通信和异步通信的区别是什么?

​ “异步通信”是一种很常用的通信方式。接收端必须时刻做好接收准备。发送端可以在任意时刻发送字符。异步通信可以用字符和帧作为发送单位,但必须注意字符或帧的开始和结束标识。

​ “同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地接收连续的同步比特流。

位同步和帧同步的区别是什么?

​ 位同步是指接收端时钟已经调整到和发送端时钟完全一样,因此接收端收到比特流后,就能在每一位的中间位置进行判决。位同步的目的是为了将发送端发送的每一个比特都正确的接收下来。仅仅有位同步还不够,因为数据以帧为单位进行发送。一个帧必须有明确的界限,也就是有帧定界符。接收端在收到比特流后,必须能够正确地找出帧定界符,以便知道哪些比特构成一个帧。接收端确定了帧的准确位置就是完成了帧同步。

image-20200427161642085

image-20200427161701168

image-20200410102252708

数据链路层

数据链路层的功能

为网络层提供服务

  对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。

  1)无确认的无连接服务。源机器发送数据帧时不需要先建立链路连接,目的机器收到数据帧时无需发回确认,对于丢失的帧交给上层处理适用于实时通信或误码率较低的通信信道,如以太网

  2)有确认的无连接服务。源机器发送数据帧时不需要先建立链路连接,目的机器收到数据帧时必须发回确认。源机器在规定的时间内未收到确认信号时就重传丢失的帧。适用于误码率较高的通信信道,如无线通信。

​ 3)有确认的面向连接服务。帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。目的机器对收到的每一帧都要给出确认,源机器收到确认后才能发送下一帧。适用于通信要求(可靠性、实时性)较高的场合。

  

链路管理

  数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。链路两端的结点要通信必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,在传输过程中能要维持连接,传输完成后要释放该连接。

  

帧定界、帧同步与透明传输

  两个工作站之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。将一段数据的前后分别添加首部和尾部就构成了帧。首部和尾部含有很多控制信息,它们的一个重要作用是确定帧的边界,即帧定界。帧同步指的是接收方应能从收到的二进制比特流中区分帧的起始和终止。如在 HDLC 通信规程中用标识位F(01111110)来标识帧的开始和结束。检测到帧标识位 F 即认为是帧的开始,然后一旦检测到帧标识位 F 即表示帧的结束。

img

 如果在数据中刚好出现 01111110 的序列会误认为是帧的结束而抛弃后面的数据,要采取有效的措施解决这个问题,即透明传输。透明传输就是不管所传送数据是什么样的比特组合,都应当能在链路上传送。

 

流量控制

  由于收发双发各自的工作速率和缓存空间的差异可能发送方的发送能力大于接受方的接收能力的现象,流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。

  流量控制并不是数据链路层特有的功能,许多高层协议也提供此功能,只不过控制的对象不同而已。对于数据链路层来说,控制的是相邻两节点之间数据链路上的流量,对于传输层来说,控制的则是源端口到目的端口之间的流量。

img

差错控制

  由于信道噪声等原因,帧在传输过程中可能会出现错误。用以使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。通常,这些错误可分为位错和帧错。

  位错指帧中某些位出现了差错。通常采用循环冗余校验(CRC)方式发现位错,通过自动重传请求(Automatic Repeat reQuest,ARQ)方式来重传出错的帧。发送方将数据帧加CRC校验码一起发送,接收方根据检错码对数据帧进行错误检测,若发现错误则丢弃,发送方超时重传该数据帧。ARQ法只需返回很少的控制信息就可有效确认所发数据帧是否被正确接收。

  帧错指帧的丢失、重复或失序等错误在数据链路层引入定时器和编号机制,能保证每一帧最终都能有且仅有一次正确地交付给目的结点。

组帧

  数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只重发出错地帧,而不必重发全部数据,从而提高数据。为了接收方能正确地接收并检查所传输地帧,发送方必须依据一定地规则把网络层递交地分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步、透明传输等问题。

  组帧既要加首部又要加尾部。 接收方依靠帧中地定界符来区分帧地开始和结尾。分组(IP数据报)仅是包含在帧中的数据部分。

字符计数法

  字符计数法是指在帧的头部使用一个计数字段来标明帧内字符数。如果计数字段出错后面的全部出错。

img

 

字符填充法的首尾定界符法

  字符填充法使用一些特定的字符来定界一帧的开始(DLE STX)与结束(DLE ETX)。为了使信息位中出现的特殊字符不误认为帧的首尾定界符,可以在特殊字符前面填充一个转义字符(DLE)来加以区分(转义字符使ASCII 码中的控制字符,是一个字符 DLE只是一个代号),以实现数据的透明传输。

img

上图中信息部分含有一个转义字符DLE,因此在传输过程中添加一个转义字符,接收方将其去掉。

  

零比特填充的首尾标志法

  使用 01111110 来标志一帧的开始和结束。在信息位中遇到连续的5个1则自动在后面添加一个0。性能优于字符填充法。

img

违规编码法

  在物理层进行比特编码时,通常采用违规编码。例如曼彻斯特码。可以借用违规编码序列来定界帧的起始和终止。

  目前较常用的组帧方法是比特填充法和违规编码法。

差错控制

 比特传输是传输差错的一种,这里仅讨论比特差错。通常利用编码技术来进行差错控制,主要有两类:自动重传请求ARQ前向纠错FEC在ARQ方式中,接收端检测出差错时通知发送端重发,直到收到正确的码字。在FEC 方式中,接收端不但能发现差错还能确定出错位置纠错。差错控制可分为检错编码和纠错编码。

检错编码

  1)奇偶校验码。在信息位后添加一位校验,以传输11100101 为例,如果是奇校验码 信息位中有5个1 为奇数则信息位为0,11100101 0 。如果是偶校验码 校验位为1 11100101 1。“奇”(“偶”)代表加上信息位之后的 “1” 的个数为 奇(偶)。它分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。

  2)循环冗余码。又称多项式码,任意一个由二进制数位串组成的代码都可以与一个只含有0和1两个系数的多项式建立一一对应关系。

  给定一个 m bit 的帧或报文,发送器生成 r bit 的序列称为帧检验序列(FCS)。形成的帧将由m+r bit 组成。发送方和接收方事先商定一个多项式 G(x) (最高位和最低位必须为1),使这个带校验码的帧刚好能被预先确定的多项式 G(x) 整除。接收方用同样的多项式去除收到的帧,如果无余数,认为无差错。

  假设一个帧有 m 位,对应的多项式为 M(x),计算冗余码的步骤如下;

  a. 加0。假设G(x)的阶为 r ,在帧的低位端加上 r 个0。

  b. 模2除(不涉及借位,0-1=1) 用帧的数据串除G(x)的数据串得到的余数为冗余码(共 r 位,前面的 0 不可以省略)。

img

纠错编码

  以下海明码编码原理与过程。

img

 

流量控制与可靠传输机制

流量控制、可靠传输与滑动窗口机制

  流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧。

  流量控制的基本方法是由接收方控制发送方的速率,常见的方式有两种:停止-等待协议滑动窗口协议

停止-等待流量控制基本原理

  发送方每发送一帧,都要等待接收方的应答信号才能发送下一帧,效率很低。

滑动窗口流量控制基本原理

  在任意时刻,发送发都维持一组连续的允许发送的帧的序号,称为发送窗口。同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送方每接收到一个确认帧,发送窗口就向前滑动一个帧的位置。

  滑动窗口特性:

  a.只有接收窗口向前滑动(同时接收方发送了确认帧时),发送窗口才有可能向前移动(发送发接收到了确认帧)。

  b.从滑动窗口概念上看,停止-等待协议、后退 N 帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:

  停止-等待协议:发送窗口大小 = 1,接收窗口大小 = 1

  后退 N 帧协议:发送窗口 > 1,接收窗口大小 = 1

  选择重传协议:发送窗口 > 1,接收窗口大小 > 1

  c.接收窗口大小为 1 时,可保证帧的有序接收。

  d.数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的,传输层的滑动窗口会改变。

可靠传输机制

  数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。确认是一种无数据的控制帧,这种控制帧使得接收方知道哪些内容被正确接收。有时候为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是发送方在发送数据帧后一段时间内没有收到确认帧,重新发送该数据帧。

  自动重传请求(ARQ)通过接收方请求发送方重传出错的数据帧来恢复出错的帧。传统的自动重传请求分三种,停止-等待 ARQ,后退N帧 ARQ ,选择性重传 ARQ。

  停止等待 ARQ:发送一帧,确认一帧。超时重传。

  后退 N 帧 ARQ:可以连续发送窗口内的帧,接收方接收窗口为 1 可以保证按序接收数据帧。如果采用 n 比特对帧编号, 则其发送窗口W的大小应满足 1 <= W <= 2^n-1 。如果发送方窗口大于上限就会造成无法分辨新帧和旧帧。

img

 2 号帧出错,丢弃窗口内所有帧。

  选择重传 ARQ:设法只重传出现差错的数据帧或计时器超时的帧,必须加大接收窗口,接收发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺失的帧后一起交给主机。若采用 n 比特对帧编号则满足发送窗口W1 + W2 <= 2^n 。接收窗口不应超过发送窗口 。一般情况下 W1=W2 = 2^(n-1)

img

GBN 和选择重传 都使用累计确认 收到 3 号帧的确认说明 接收方已经收到 0 - 3 号帧。 

  信道效率:发送方在一个发送周期的时间内,有效地发送数据所需要地时间占整个发送周期的比率。

  例如,发送方从开始发送数据开始到收到第一个确认帧为止,称为一个发送周期,设为T,发送方在这个周期内共发送L比特的数据,发送方的数据传输率为C,则发送方用于发送有效数据的时间为L/C,在这种情况下 信道利用率为 (L/C)/T。

  信道吞吐率 = 信道利用率 * 发送方的发送速率。

介质访问控制

  介质访问控制所要完成的任务是,为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control, MAC)子层。

信道划分介质访问控制

  信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔开,把时域和频域资源合理地分配给网络上地设备。在一条介质上同时携带多个传输信号的方法来提高系统的利用率,这就是多路复用。

  1)频分多路复用(FDM):将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路服用技术。

  2)时分多路复用(TDM):将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。每个时间片由复用的一个信号占用。

  3)波分多路复用(WDM):在一根光纤中传输多种不同波长的光信号。

  4)码分多路复用(CDM):采用不同的编码来区分各路原始信号。

  码分多址(Code Division Multiple Access ,CDMA)是码分复用的一种方式。每比特时间分成 m 个更短的时间槽,称为码片。当两个或多个站点同时发送时,各路数据在信道中线性相加。为从信道中分离出各路信号,要求各个站点的码片序列相互正交

  可以把多个站点发送的数据看作多个向量,这些向量都是两两正交的。发送方和接收方都有相同的、独一无二的码片序列。在信道中多个向量线性相加,在接收端用码片序列和信道中多个向量的和做规格化内积(点乘后取平均值)我们知道正交的向量点乘的结果为0,其他的向量可以忽略掉。只有发送方的向量做规格化内积。结果为 1 则代表 发送1 ,结果为 -1 代表发送0.。

  

随机访问介质访问控制

  当有两个或多个用户同时发送信息时,就会产生帧的冲突。为了解决帧的碰撞,每个用户须按照一定的规则重传它的帧,知道该帧无碰撞地通过。常用的协议有 ALOHA 协议、CSMA 协议、CSMA/CD协议、CSMA/CA协议等,他们的核心思想是:胜利者争用获得信道,从而获得信息的发送权。随机介质访问控制机制实质上是将一种广播信道转化为点到点信道的行为。

ALOHA 协议

  a. 纯 ALOHA 协议 :不检测信道状态 直接发送 ,一段时间没收到确认 等待一段随机的时间后再发送,直到成功。假设网络负载(T 时间内所有站点发送的所有帧数)为G,纯ALOHA吞吐量(T时间内发送成功的平均帧数)为 S = Ge^(-2G) 。当G=0.5时。 S = 0.184

img

  b.时隙 ALOHA 协议 :把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙,规定只能在每个时隙开始才能发送一个帧。在一个时隙内又两个或以上的帧到达时在下一个时隙产生碰撞碰撞后重传策略与纯 ALOHA 协议相似。网络吞吐量S与网络负载关系是 S = G*e^(-G) 。当G=0.5时。 S = 0.368

CSMA 协议(Carrier Sense Multiple Access,载波监听多路访问)

img

CSMA/CD 协议 (Carrier Sense Multiple Access with Collision Detection, 载波监听多路访问/碰撞检测)有线局域网–以太网

  CSMA/CD 是 CDMA 的改进,CSMA/CD 适用于总线型网络或半双工网络。“载波监听”指发送前前检测总线上是否有其他站点在发送数据,若有则暂时不发送数据,等待信道变为空闲再发送。”碰撞检测“ 就是边发送边监听,即适配器边发送边监听信道上信号电压的变化情况,判断是否有其他站点是否也在发送数据。

  CSMA/CD 的工作流程可概括为 “先听后发,边听边发,冲突停发,随机重发”。

  采用CSMA/CD 协议的以太网不可能进行全双工通信,只能进行半双工通信。

img

 为了确保发送站在发送数据的同时能检测到可能存在的冲突,需要在发送完帧之前就能收到自己发送出去的数据,帧的传输时延至少要两倍于信号在总线中的传播时延,所以CSMA/CD 总线网中所有数据帧必须要大于一个最小帧长。最小帧长 = 总线传播时延*数据传输率*2。以太网最小帧长64B 最大帧长1500B。

  

  二进制退避算法:确定基本退避时间,一般取两倍的总线端到端传播时延 2r 。定义参数 k ,它等于重传次数 k=min(重传次数,10)。从离散的整数集合 0 ~ 2^k -1 中随机取出一个数n,重传所需要退避的时间就是n倍的基本退避时间 2nr。当重传16次仍不成功抛弃此帧,向上层报告。

CSMA/CA 协议 (Carrier Sense Multiple Access with Collision Avoidence)无线局域网

  无线局域网环境下,不能简单地搬用CSMA/CD 协议,特别是碰撞检测部分。主要有两个原因 a.接收信号的强度会远小于发送信号地强度,无线介质上信号强度的动态变化范围很大,若要实现碰撞检测,硬件上的花费就会过大。b.在无线通信中,并非所有站点都能听见对方,即存在“隐蔽站”问题。  

  CSMA/CA 采用二进制指数退避算法。任何一个站要发送数据帧时,不仅要等待一个时间间隔,还要进入争用窗口,并计算随机退避时间以便再次试图接入信道。

  CSMA/CA 还使用预约信道、ACK帧、RTS/CTS 帧等三种机制来实现碰撞避免:

  预约信道:发送方在发送数据的同时向其他站点通知自己传输数据需要的时间长度,以便让其他站点在这段时间内不会发送数据,从而避免碰撞。

  ACK帧:所有站点在正确接收到发给自己的帧(除广播帧和组播帧)后,都需要向发送方发回一个ACK帧。

  RTS/CTS 帧:可选的碰撞避免机制,主要解决无线网中的 “屏蔽站”问题。

  CSMA/CD 与 CSMA/CA 区别:

  CSMA/CD 可以检测冲突但无法避免;CSMA/CA 发送包的同时不能检测信道上有无冲突,只能尽量避免。

  CSMA/CD 用于总线形以太网, CSMA/CA用于无线局域网 802.11 a/b/g/n等。

  CSMA/CD 通过电缆中的电压变化来检测;CSMA/CA 采用能能量检测、载波检测、和能量载波混合检测三种检测信道空闲的方式。

  总结:CSMA/CA 在发送数据前广播告知其他结点,让其他结点不要发送数据。CSMA/CD 发送前侦听,边发送边侦听,一旦出现碰撞停止发送。

  

轮询访问介质访问控制:令牌传递协议

  在轮询访问中,用户不能随机地发送消息,而是要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。典型的轮询访问介质访问控制协议是令牌传递协议,主要用在令牌环局域网中。当环上一个站希望传送帧时,必须等待令牌。一旦收到令牌,站点便可启动发送帧。帧在环上传送时,不管该帧是否是发给本站点的,所有站点都进行转发,直到该帧回到它的始发站,并由始发站撤销该帧。帧的目的站除转发帧外,应针对该帧维持一个副本。当计算机都不需要发送数据时,令牌在环形网上游荡。数据链路层研究的是点到点之间的通信。

局域网

局域网的基本概念和体系结构

  局域网(LAN)是指在一个较小的物理范围内,将各种设备通过双绞线等连接介质互相连接起来组成资源和信息共享的计算机互联网络。

  局域网的特性主要由三个要素决定:拓扑结构、传输介质、介质访问控制方式,最重要的是介质访问控制方式,决定局域网的技术特性。

  常见的局域网拓扑结构:星形、环形、总线形和星形总线形复合型结构。

  局域网的介质访问控制方式有 CSMA/CD、令牌总线和令牌环,其中前两种方法主要用于总线形局域网,令牌环主要用于环形局域网。

  三种特殊的局域网拓扑实现如下:

  以太网:逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构。

  令牌环:逻辑拓扑是环形结构,物理拓扑是星形结构。

  FDDI(光纤分布数字接口):逻辑拓扑是环形结构,物理拓扑是双环结构。

  IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层,将数据链路层拆分成两个子层:逻辑链路控制(LLC)子层和媒体接入控制(MAC)子层。与接入传输媒体有关的内容都放在MAC子层,主要功能包括:组帧和拆帧、比特传输差错检测、透明传输。LLC子层与传输媒体无关,它向网络层提供无确认无连接、面向连接、带确认无连接、告诉传送4种不同的连接服务类型。

以太网与IEEE 802.3

以太网的传输介质与网卡

  IEEE 802.3 标准是一种基带总线形的局域网标准。

img

 网卡工作在数据链路层和物理层。出厂时自带MAC地址。

以太网的MAC帧

img

 由于总线上使用的是广播通信,因此网卡从网络上每收到一个MAC帧,首先用硬件检查MAC帧中的MAC地址,如果是发往本站的帧就留下否则丢弃。

  以太网帧结构:

  前导码:使接收端与发送端时钟同步。第一个字段7B,是前同步码,用来快速实现MAC帧的比特同步。第二个字段是帧开始定界符,1B。

  注意:MAC帧并不需要帧结束符,在以太网传输帧时,各帧之间必须有一定的间隙。但不要误以为以太网帧不需要尾部,在数据链路层上帧既要加首部又要加尾部。

  地址:通常使用MAC地址,6B。

  类型:2B,指出数据域中携带的数据应交给哪个协议实体处理。

  数据:46~1500B,包含高层的协议信息。由于CSMA/CD 限制,以太网帧必须满足最小长度64B

  校验码(FCS):4B,采用32位循环冗余校验码(CRC),不但需要校验MAC帧的数据部分还要校验目的地址、源地址和类型字段,但不校验前导码

高速以太网

  a. 100BASE-T 以太网:100Mb/s 星形拓扑结构以太网,半双工使用 CSMA/CD,全双工不使用CSMA/CD。

  b. 吉比特以太网:1Gb/s 半双工使用 CSMA/CD,全双工不使用CSMA/CD。

  c.10吉比特网:10Gb/s 只使用光纤作为传输媒体,只工作在全双工方式,没有争用问题,不使用CSMA/CD。

  

IEEE 802.11

  IEEE 802.11 是无线局域网的一系列协议标准,包括 802.11a 和802.11b等。它们制定了MAC 层协议,运行在多个物理层标准上。

  802.11 的MAC 层采用CSMA/CA 协议进行介质访问控制。

  无线局域网可分为两大类:固定基础设施无线局域网和无固定基础设施无线局域网自组织网络。

  a. 有固定基础设施无线局域网:802.11标准规定无线局域网的最小构件是基本服务集(BSS)。一个基本服务集包括一个基站和若干移动站。BSS内可直接通信,与BSS外的站点通信时要通过本BSS的基站。基本服务集中的基站也称接入点,其作用和网桥相似。

  b. 无固定基础设施无线局域网自组织网络

  自组织网络没有上述基本服务集的接入点,而是由一些平等状态移动站相互通信组成的临时网络。各站点之间地位平等,中间结点都为转发结点,这些结点都具有路由器功能。

令牌环网的基本原理

  令牌环网的每一站通过电缆与环接口干线耦合器(TCU)相连。TCU 的主要作用是,传递所有经过的帧,为接入站发送和接收数据提供接口。TCU 的状态有收听和发送状态。在令牌环网中有一个令牌沿着环形总线在入网结点计算机间依次传递,令牌实际上是一个特殊格式的MAC控制帧,它本身不包含信息,仅控制信道的使用,确保在同一时刻只有一个结点能够独占信道。

  令牌环网物理上采用星形拓扑结构,逻辑上仍是环形拓扑结构。

广域网

广域网基本概念

  广域网通常指覆盖范围很广的长距离网络。广域网是因特网的核心部分,其任务是长距离运送主机所发送的数据。

  广域网由一些结点交换机几连接这些交换机的链路组成。结点交换机的功能是将分组存储并转发。局域网使用的协议主要在数据链路层,而广域网使用的协议主要在网络层。

img

 广域网一个重要问题是路由选择和分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构造路由表,然后从路由表再构造出转发分组的转发表。分组通过转发表转发。PPP 协议和HDLC 协议是目前最常用的两种广域网数据链路层控制协议。

PPP 协议

  PPP(Point-to-Point Protocol)是使用串行线路面向字节的协议,该协议应用再直接连接两个结点的链路上。设计的目的只要是用来通过拨号或专线方式建立点对点发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同解决方案。

  PPP协议有三个组成部分

  1)链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。

  2)网络控制协议(NCP)。PPP协议采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

  3)一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传输单元(MTU)的限制。

img

 标志字段F 仍为01111110 前后各占1B若它出现在信息字段中,必须做字节填充,使用的控制转义字符为 7D 。在PPP中,地址字段A占1B,规定为0xFF,控制字段C占1B,规定为0x03,两者的内容始终不变。PPP是面向字符的,因而所有PPP帧的长度都是整数个字节。协议字段占2B,说明信息段中运载的是什么种类的分组,以比特0开始的是诸如IP、IPX这样的网络层协议;以比特1开始的用来协商其他协议。信息段长度是可变的,大于等于0且小于等于1500B。FCS 检验地址字段、控制字段、协议字段和信息字段。

  PPP提供差错检测但不提供纠错功能,只保证无差错接收。是不可靠的传输协议,也不使用序号和确认机制。仅支持点对点的链路通信。PPP只支持全双工链路。PPP的两端可以运行不同的网络协议。

HDLC 协议

  高级数据链路控制(High-level Data Link Control)协议是ISO 制定的面向比特的数据链路层协议。

  1)站。HDLC 有3种站类型:主站、从站和复合站。主站负责控制链路的操作,主站发出的帧成为命令帧。从站受控于主站,按主站的命令进行操作,发出的帧称为响应帧。有些站既有主站的功能又有从站的功能,称为复合站,可以发出两种帧。

  2)数据操作方式

  a. 正常相应方式。非平衡结构操作方式。主站向从站传输数据,从站响应传输,从站只有收到主站的许可后,才可进行响应。

  b. 异步平衡方式。平衡结构操作方式。每个复合站都可以进行对另一站的数据传输。

  c. 异步响应方式。非平衡结构操作方式。从站即使未收到主站的允许也可以传输。

  3)HDLC 帧

img

 标志段F:8 bit,01111110。采用比特填充的首尾标志法实现透明传输。地址字段A:8 bit 使用非平衡方式传送数据时,站地址写入从站的地址,使用平衡方式传送数据时,站地址写入应答站的地址。控制字段C:根据其第一位或第一第二位的取值可以将HDLC 帧分为三类:

  1)信息帧,第一位为0,用来传输数据信息,或使用捎带技术对数据进行确认。

  2)监督帧,第一二位为10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能。 

  3)无编号帧,低一二位为11,用于提供对链路的建立、拆除等多种控制功能。

   PPP与HDLC区别:

  1)PPP面向字节,HDLC 面向比特

  2)PPP帧比HDLC帧多一个2B的协议字段,当协议字段为0x0021时,表示信息字段是IP数据报。

  3)PPP不使用序号和确认机制,只保证无差错接收,端到端差错检测由高层负责。HDLC信息帧使用了编号和确认机制,能够提供可靠传输。

数据链路层设备

网桥的概念及其基本原理

  两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,原来的以太网称为一个网段。网桥工作在链路层的MAC子层,可以使以以太网各网段成为隔离开的碰撞域。网桥处理数据是帧它工作在数据链路层,中继器放大器处理的对象是信号,它工作在物理层。

  网桥的基本特点:

  1)具备寻址和路径选择的能力,以确定帧的传输方向

  2)从源网络接收帧,以目的网络的介质访问控制协议向目的网络转发该帧

  3)网桥在不同或相同类型的LAN之间存储并转发帧,必要时还进行链路层上的协议转换。

  4)网桥对接收到的帧不做任何修改,或只对帧的封装格式做很少的修改。

  5)网桥可以通过帧翻译互联不同类型的局域网,即把原协议的信息段内容作为另一种协议的信息部分封装在帧中。

  6)网桥应有足够大的缓冲空间。

  网桥的优点:

  1)能过滤通信量;2)扩大了物理范围;3)可使用不同的物理层;4)可互联不同类型的局域网;5)提高了可靠性;6)性能得到改善

  网桥的缺点:

  1)增大了时延;2)MAC子层没有流量控制功能(流量控制在LLC子层);3)不同MAC子层的网桥接在一起时,需要进行帧格式的转换;4)网桥只适合用户数不多和通信量不大的局域网,否则广播信息太多引起广播风暴。

  网桥必须具有路径选择的功能,接收到帧后要决定正确的路径,将该帧转送到响应的目的局域网站点。根据路径算法的不同,可将网桥分为透明网桥和源路由网桥。

  1.透明网桥(选择的不是最佳路由)

  接收与之连接的所有LAN传送的每一帧,到达帧的路由选择取决于源LAN 和目的LAN 。1)如果源LAN和目的LAN相同则丢弃;2)如果源LAN和目的LAN不同则转发此帧;3)如果目的LAN未知,那么扩散此帧。(网桥自学习算法)

  2.源路由网桥(选择的是最佳路由)

  路由选择由发送数据帧的源站负责,网桥只根据真正的路由信息对帧进行接收和转发。为了找到最佳的路由,源站以广播方式向目的站发送一个发现帧作为探测用。目的站也将一一发送应答帧;每个应答帧将通过原路径返回,途径的网桥把自己的标志记录在应答帧中;源站选出最佳路由。

  3.两种网桥的比较

  使用源路由网桥可以利用最佳路由,若两个以太网之间使用并联的路由器还可以是通信量较平均的分配给每个网桥。采用透明网桥时,只能使用生成树,而生成树并不能保证所有路由是最佳的,也不能在不同的链路中进行负载均衡。

  透明网桥和源路由网桥中提到的最佳路由并不是经过路由器最少的路由,而是可以发送帧往返时间最短的路由。

局域网交换机及其工作原理

局域网交换机

  以太网交换机是一个多端口的网桥,它工作在数据链路层。交换机能将网络分成更小的冲突域,为每个工作站提供更高的带宽。利用交换机还可以实现虚拟局域网(VLAN)不仅可以隔离冲突域还能隔离广播域。

原理

  以太网交换机的原理是,检测以太端口来的数据帧的源和目的地的MAC地址,然后与系统内部的动态查找表进行比较,若数据帧的MAC地址不在查找表中,则将该地址加入查找表,并将数据帧发送给响应的目的端口。

特点

  a.交换机的每个端口都直接与单台主机相连,工作在全双工方式。

  b.以太网交换机能同时连通许多对端口,使每对相互通信的主机都能像独占通信媒体那样无碰撞地传输数据。

  c.即插即用。

  d.交换速率高。

  e.独占传输媒体地带宽

两种交换方式

  a.直通式交换机只检查帧地目的地址,帧在接收后几乎马上就能被传出去。

  b.存储转法式交换机先将接收到地帧缓存到高速缓冲器中,检查并转发。

img

本章小结及疑难点

“链路” 和 “数据链路” 有何区别?

​ 链路指从一个结点到相邻结点的一段物理线路,其中间没有任何其他任何的交换结点。在进行数据通信时,两台计算机之间的通信路径往往要通过许多段这样的链路。

​ 数据链路则是另一个概念,要在一条线路上传送数据,除了必须要有一条物理线路外,还必须有一些通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

为什么 PPP 协议不使用帧的编号和确认机制来实现可靠传输?

​ PPP 不使用序号和确认机制出于以下考虑:

​ 若使用能够实现可靠传输的数据链路层协议(如 HDLC ),开销就会增大。当数据链路层出现差错的概率不大时,使用简单的 PPP 较为合理。

​ 在因特网环境下, PPP 的信息字段放入的数据是 IP 数据报。假定数据链路层实现了非常可靠的传输协议,但在上升到网络层后仍可能由于网络拥塞而被丢弃。数据链路层的可靠传输并不能保证网络层的传输也是可靠的。

​ PPP 在帧格式中有帧校验序列 FCS 字段。对于每个接收到的帧, PPP 都要使用硬件进行 CRC 校验若发现有差错,则丢弃该帧(只要是上交到上一层的帧都是无差错的)。端到端的差错控制由高层协议负责。

交换机和网桥的不同之处。

​ 1)网桥的端口一般连接局域网,而交换机的端口一般直接与局域网的主机相连。

​ 2)交换机允许多对计算机同时通信,而网桥仅允许每个网段上的计算机同时通信。

​ 3)网桥采用存储转发方式进行转发,而以太网交换机还可以采用直通方式进行转发,且以太网交换机采用了专用的交换结构芯片,转发速度比网桥快。

局域网的主要特点是什么?为什么局域网采用广播通信方式而广域网不采用呢?

​ 局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数量有限。局域网的地理范围较小,且为一个单位所拥有,采用广播通信方式十分方便。但广域网的地理范围很大,如果采用广播通信方式势必造成通信资源的极大浪费。

image-20200410134049382

网络层

网络层的功能

异构网络互联

  网络互联:将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(中间设备)连接起来。

  中继设备分以下四种:

  1)物理层中继设备:中继器,集线器。

  2)数据链路层中继设备:网桥或交换机。

  3)网络层中继设备:路由器。

  4)网络层以上的中继设备:网关。

  使用物理层的中继设备时,只是把一个网络扩大了,从网络层的角度看仍是同一个网络。网络互联通常指用路由器进行网络互联和路由选择。

  TCP/IP 体系在网络互联上采用的做法是在网络层采用标准化协议,相互连接的网络可以是异构的。

  

路由与转发

  路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时采取的动作)。前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关地队列管理和任务调度等。

  1)路由选择:按照复杂的分布式算法,根据相邻路由器所得到地关于整个网络拓扑的变化情况,动态地选择路由。

  2)分组转发:指路由器按照转发表将用户的 IP 数据报从合适的端口转发出去。

  

拥塞控制

  因出现过量的分组而引起网络性能下降的现象称为拥塞。拥塞控制的作用是确保子网能够承载所达到的流量。

  流量控制:抑制发送端的发送数据速率。

  拥塞控制方法:

​ 1)开环控制。在设计网络时事先将有关发生拥塞的因素考虑到。

​ 2)闭环控制。采用检测系统监视。

路由算法

静态路由与动态路由

​ 静态路由算法(非自适应路由算法)。指由网络管理员手工配置的路由信息。

​ 动态路由算法(自适应路由算法)。路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。

  

距离-向量路由算法

  在距离-向量路由算法中所有结点定期地将它们的整个路由选择表传送给所有与之相连的结点。这种路由表包含:1)每条路径的目的地(另一结点);2)路径的代价(也称距离)。RIP中将距离定义为跳数–从源端口到目的端口的路由器个数。“好消息传的快,坏消息传的慢”

  

链路状态路由算法

  链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息。它们执行下述两项任务:1)主动测试所有邻接结点的状态。2)定期地将链路状态传播给所有其他结点。典型的链路状态算法是OSPF算法。

  链路状态路由算法有3个特征:

  1)向本自治系统中所有路由器发送信息,治理使用的方法是洪泛法,路由器通过所有端口向所有相邻的路由器发送信息。每个相邻的路由器又将信息发往所有其他的路由器。

  2)发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

  3)只有当链路状态发生变化时,路由器才向所有路由器发送此消息。

层次路由

  因特网把路由选择协议分为两大类:

  1)一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称域内路由选择,具体的协议有RIP 和OSPF 等。

  2)自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称域间路由选择,用在不同自治系统的路由器之间交换路由信息。具体的协议有BGP。

IPv4

IPv4分组

img

 一个IP分组由首部和数据两部分组成。首部前一部分长度固定,共20B。

  1)版本。占4位。IP版本,目前使用4。

  2)首部长度。占4位。以4B为单位,最大值为60B(4位最多表示15),最常用20B。

  3)总长度。占16位。指首部和数据部分的总长度,单位为字节,所以最长65535B。

  4)标识。占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。

  5)标志。占3位。X DF MF 共三位。DF=0表示可以分片。MF=1表示后面还有分片

  6)片偏移。占13位。它指出较长的分组在分片后,某片在原分组中的相对位置。以8B为单位。每个分片的长度一定是8B的整数倍。

  7)首部校验和。占16位。只校验分组的首部,不校验数据部分。

  8)生存时间(TTL)。占8位。数据段在网络中可通过的路由器的最大值。

  9)协议。占8位指出分组携带的数据使用何种协议,6 代表 TCP,17 代表UDP。

  10)源地址字段。占4B,标识发送方的IP地址。

  11)目的地址字段。占4B,标识接收方的IP地址。

  

  分片例子:

img

 网络层转发分组的流程:

  1)从首部中取出目的主机的IP地址 D,得出目的网络地址N。

  2)若网络N与此路由器直接相连,把数据报直接交付给目的主机D。否则间接交付执行3。

  3)若路由表中有目的地址为D的特定主机路由,把数据报传到下一跳路由器。否则执行4。

  4)若路由表中有到达网络N的路由器,传给下一跳路由器,否则执行5。

  5)若路由表中有一个默认路由,把数据报传给默认路由,否则执行6。

  6)报告转发分组出错。

  总结:检查接收主机是否与发送主机在同一局域网内–》 检查是否可以通过下一跳路由器直达接收主机 –》 检查是否可以通过下一跳路由器到达另一个路由器(可到达目的主机)–》报错。

  注意:得到下一跳路由器IP地址后不是直接将下一跳路由器的IP之间填入IP数据报首部。而是将其封装在帧中,改变帧的接收MAC地址。通过这个MAC地址找到下一跳路由器。在不同网络中传送时,MAC帧中的源地址和目的地址要发生变化,网桥在转发帧时,不改变帧的源地址。

  

IPv4地址与NAT

IPv4 地址

  连接到因特网上的每台主机或路由器都分配一个32比特的全球唯一标识符,即IP地址。传统的IP地址是分类的地址,分为A,B,C,D,E五类。

img

  IP地址=网络号+主机号

   特殊用途的IP地址:

  a.主机号全0表示网络本身。

  b.主机号全1表示网络的广播地址。

  c. 127.0.0.0 保留为环路自检地址,此地址表示任意主机本身。

  d.32位全为0,0.0.0.0表示本网络上的本主机

  e.32位全为1 255.255.255.255 表示整个TCP/IP网络的广播地址,又称受限广播地址。

img

网络地址转换

  网络地址转换(NAT)是指将专用网络地址(如Internet)转换为公用地址( 如Internet)。它使整个专用网只需一个全球IP地址就可以与因特网连通。工作在传输层。

  一个典型NAT 转换表 WAN 138.76.29.7:5001 ;LAN 192.168.0.2:2233。NAT 工作在传输层。

  私有IP地址只用于LAN,不用于WAN连接。私有IP网段如下:

  A类:1个A类网段,10.0.0.0 ~ 10.255.255.255.255

  B类:16个B类网段,172.16.0.0 ~ 172.31.255.255

  C类:256个C类网段,192.168.0.0~192.168.255.255

子网划分与子网掩码、CIDR

子网划分

  子网划分纯属一个单位内部的事情,对外仍然表现为没有划分子网的网络。仅仅是把主机号这部分再进行划分。

子网掩码

  子网验码是一个与IP地址相对应的、长32bit的二进制串,由一串1和一串0组成。1对应网络号和子网号,0对应主机号。

  

  使用子网验码的分组转发如下:

  a.从首部中取出目的主机的IP地址 D。

  b.对路由器直接相连的网络逐个检查,用各网络的子网验码和D逐位做与操作,如果结果等于该网络的网络号,直接交付,否则间接交付执行c。

  c.若路由表中有目的地址为D的特定主机路由,把数据报传到下一跳路由器。否则执行d。

  d.检查路由表中每一行,如果子网掩码与D的与操作结果与目的网络地址网络号相同则传给下一跳路由器,否则执行e。

  e.若路由表中有一个默认路由,把数据报传给默认路由,否则执行f。

  f.报告转发分组出错。

  总结:检查接收主机是否与发送主机在同一局域网内–》 检查是否可以通过下一跳路由器直达接收主机 –》 检查是否有默认路由–》报错。

无分类域间路由选择(CIDR)

  CIDR使用“网络前缀”的概念代替子网的概念。

  CIDR使用斜线计法 IP地址/网络前缀占用比特数。

ARP、DHCP与ICMP

  1)IP地址与硬件地址

  IP地址由于路由器的隔离不能进行广播,这时候就只能通过数据链路层的MAC地址以广播方式寻址。

  2)地址解析协议(ARP)

  IP到MAC地址的映射,这就是地址解析协议(Address Resolution Protocol,ARP)。

  ARP工作在网络层,先查看ARP缓存,如果没有目的IP对应的MAC地址则使用目的MAC地址为ff-ff-ff-ff-ff-ff的帧来封装并广播ARP请求分组。目的主机收到该 ARP 请求后向源主机发出 ARP 响应分组。

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

  动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)常用于给主机动态地分配IP地址,提供了即插即用地机制,允许一台计算机加入新的网络和获取IP地址。DHCP是应用层协议,它是基于UDP的。

  4)网际控制报文协议(ICMP)

  为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)来让主机或路由器报告差错和异常情况。ICMP报文作为IP数据报的数据,加上数据报的首部,组成IP数据报发送出去。

  ICMP报文有两种 ICMP差错报文和ICMP询问报文。

  ICMP差错报文5种类型:

  1)终点不可达。路由器或主机不能交付数据报。

  2)源点抑制。路由器或主机由于拥塞丢弃数据报。

  3)时间超过。路由器收到TTL=0的数据报。

  4)参数问题。路由器或主机收到数据报中首部字段值不正确。

  5)改变路由(重定向)。路由器把改变路由报文发送给主机。

  不发送ICMP 差错报文的情况:

  1)对ICMP 差错报文不发送。

  2)对第一个分片的数据报片后续所有数据报片都不发送。

  3)对组播地址的数据报不发送。

  4)对具有特殊地址的数据报不发送。

  

  ICMP询问报文有4种类型:回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文。

  ICMP的常见应用是分组间探测PING,PING使用了ICMP会送请求和回答报文。PING工作在应用层,直接使用网络层的ICMP回送请求和回答报文。

IPv6

IPv6 特点

  1)IPv6共128位,2)简化了IP分组头3)更好地支持选项

  

IPv6 地址

  IPv6 数据报的目的地址可以是 单播、多播和组播。

  IPv4 向IPv6 过渡可以采用双协议栈和隧道技术两种策略。双协议栈是指在一台设备上同时装有IPv4 和IPv6 协议栈。隧道技术是将整个IPv6数据报封装到IPv4的数据部分。

路由协议

自治系统

  自治系统(Automatic System,AS)单一技术管理下的一组路由器。

  

域内路由和域间路由

  1)内部网关协议(Internal Gateway Protocol,IGP):在一个自治系统内部使用的路由选择协议。如 RIP、OSPF。

  2) 外部网关协议(External Gateway Protocol,EGP):自治系统之间的路由选择协议。如BGP-4。

  

路由信息协议(RIP)

  网络中的每个路由器维护从它自身到每个目的网络的距离记录。RIP距离最大为15,超过15代表不可达。RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表。RIP中每个网络的子网掩码必须相同。

  RIP 的特点:

  1)仅和相邻路由器交换信息。

  2)路由器交换的信息是当前路由器所知道的全部信息,即自己的额路由表。

  3)按固定的时间间隔交换路由器信息,如每隔30秒。

  

  距离向量算法:

  每个路由表都有三个关键数据:<目的网络N,距离d,下一跳路由器X>

  1)对每个相邻路由器中发过来的RIP报文,先修改所有的项目,把“下一跳”字段中的地址都改为 X,并把所有“距离”字段加1。

  2)对修改后的RIP报文中的每个项目,执行如下步骤。

  a.当原来的路由表中没有目的网络N时,把该项目添加到路由表中。

  b.当原来的路由表中有目的网络N,且下一跳路由器地址是X时,用收到的项目替换原路由表中的项目。

  c.当原来的路由表中有目的网络N,且下一跳地址不是X时,选择距离较小的更新。

  3)如果180 秒(RIP 默认超时时间为 180秒)还没有收到相邻路由器的更新路由器,那么把此相邻路由器记为不可达路由器。

  

  RIP最大优点是实现简单、开销小、收敛过程较快。

  RIP缺点如下:

  a.限制了网络的规模

  b.路由器之间交换的是路由器中的完整路由表因此网络规模越大,开销也越大。

  c.网络出现故障时,会出现慢收敛现象(需要较长时间才能将此信息传到所有路由器)俗称坏消息传的慢。

  

开放最短路径优先(OSPF)协议

OSPF 和 RIP 的区别。

  a.OSPF 向本自治系统中的所有路由器发送信息,使用的是洪泛法。RIP仅向临近的路由器发送信息。

  b.发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是部分信息。RIP发送整个路由表。

  c.只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

  d.OSPF是网络层协议,它不使用UDP或TCP,而直接使用IP数据报传送(其IP数据报首部协议字段为89).RIP是应用层协议,它在传输层使用UDP。

OSPF 基本工作原理

  各个路由器之间频繁地交换链路状态信息,所有路由器最终都能建立一个链路状态数据库。这个数据库就是全网的拓扑结构,它在全网范围内是一致的。每个路由器根据这个全网拓扑结构图,使用Dijkstra 最短路径算法计算从自己到各目的网络的最优路径,以此构造自己的路由表。当链路状态更新时需要重新计算。

  注意:虽然使用Dijkstra算法能计算出完整的最优路径,但路由表中不会存储完整的路径,而只存储“下一跳”(只有到了下一跳路由器才能再知道下一跳怎样走)。

  

  OSPF 的五种分组类型:

  a.问候分组,用来维持临站的可达性。

  b.数据库描述分组,向临站给出自己的链路状态数据库中所有链路状态的摘要信息。

  c.链路状态请求分组,向对方请求发送某些链路状态项目的详细信息。

  d.链路状态更新分组,用洪泛法对全网更新链路状态。

  e.链路状态确认分组,对链路更新分组的确认。

  通常每隔10秒,每两个相邻路由器都要交换一次问候分组,以便知道哪些站可达。OSPF 还归档每隔一段时间就刷新数据库中的链路状态。

  

边界网关协议(BGP)

  边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。只能尽力寻找一条能够到达目的网络且比较好的路由,而非寻找一条最佳路由。BGP 是应用层协议,它是基于TCP的。

  BGP的工作原理如下:每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP”发言人。一个BGP发言人要与其他自治系统中的BGP发言人交换路由信息,就要先建立TCP连接。在此连接上交换BGP报文以建立BGP会话,在利用BGP会话交换路由信息。

  BGP特点:1)BGP 交换路由信息的结点数量级是自治系统的数量级。2)每个自治系统中的BGP发言人数目是很少的。

  BGP共使用4种报文:

  1)打开报文。用来与相邻的另一个BGP发言人建立关系。

  2)更新报文。用来发送某一路由的信息,以及要撤销的多条路由。

  3)保活报文。用来确认打开报文并周期性地证实临站关系。

  4)通知报文。用来发送检测到地差错。

img

IP 组播

组播的概念

  人们所需要的组播机制是让源计算机一次发送的单个分组可以抵达用一个组标识的若干目标主机,并被它们正确接收。

  组播一定仅应用于UDP。主机使用一个称为IGMP(因特网组管理协议)的协议加入组播组。主机在组播时仅发送一份数据,只有数据在传送路径出现分岔时才将分组复制后继续转发。组播需要路由器的支持。

IP 组播地址

  IP 组播使用 D类地址格式。D类地址前四位是1110,因此D类地址范围是 224.0.0.0 ~ 239.255.255.255.每个D类地址标志一个组播组。

  组播数据报与一般IP数据报的区别是,前者使用D类IP 地址作为目的地址,并且首部中的协议字段值是2,表明使用IGMP。需要注意的是:

  1)组播数据报也是“尽最大努力交付”,不提供可靠交付。

  2)组播地址只能用于目的地址,而不能用于源地址。

  3)对组播数据报不产生ICMP差错报文。

  4)并非所有D类地址都可以作为组播地址。

img

IGMP 与组播路由算法

  IGMP 应视为 TCP/IP 的一部分,其工作可分为两个阶段:

  1)当某台主机加入新的组播组时,该主机应向组播组地址发送一个IGMP 报文,声明自己要称为该组的成员。

  2)本地组播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否仍继续时组的成员。

  

移动IP

移动 IP 的概念

  支持移动性的因特网体系结构与协议共称移动IP。它是为了满足移动结点在移动中保持其连接性而设计的。

  基于IPv4 的移动IP定义三种功能实体:移动结点、本地代理和外部代理。本地代理和外部代理又称为移动代理。

  1)移动结点。具有永久IP地址的移动结点。

  2)本地代理。在一个网络环境中,一个移动结点的永久“居所”被称为归属网络,在归属网络中代表移动结点执行移动管理功能的实体称为本地代理。

  3)外部代理。在外部网络中帮助移动结点完成移动管理功能的实体称为外部代理。

移动IP通信过程

  移动IP为移动主机设置了两个IP地址,即主地址和辅地址。移动主机在本地网时,使用的是主地址。当移动到另一个网络时,需要获得一个临时的辅地址,但此时主地址仍不变,从外网移回本地网时,辅地址改变或撤销,主地址仍然保持不变。

网络层设备

路由器的组成和功能

  路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接异构网络并完成路由转发,在多个逻辑网络互联时必须使用路由器。如果源主机和目的主机在同一个网络上,那么直接交付而无需通过路由器。如果源主机和目的网络不在同一各网络上,路由器按照转发表指出的路由将数据报转发给下一个路由器,称为间接交付。

  路由器由路由选择和分组转发两部分构成。路由器是网络层设备,它实现了网络模型的下三层。如果一个存储转发设备实现了某个层次的功能,那么它就可以互联两个在该层次上使用不同协议的网段。例如网桥实现了物理层和数据链路,网桥就可以互联两个物理层和数据链路层不同的网段。

  路由选择部分也称控制部分,其核心构件是路由选择处理机。

img

路由表与路由转发

img

本章小结及疑难点

“尽最大努力交付”有哪些含义?

​ 1)不保证源主机发送的 IP 数据报一定无差错地交付到目的主机。

​ 2)不保证源主机发送的 IP 数据报都在某一规定 的时间内交付到目的主机。

​ 3)不保证源主机发送的 IP 数据报一定按发送时的顺序交付到目的主机。

​ 4)不保证源主机发送的 IP 数据报不会重复交付给目的主机。

​ 5)不故意丢弃 IP 数据报。丢弃 IP 数据报的情况是:路由器检测出首部校验和有错误;或由于网络中通信量过大,路由器或目的主机中的缓存已无存储空间。

交付目的主机的 IP 数据报都是 IP 数据报的首部没有出现差错或没有检测出来有差错的。

​ 总结:尽最大努力交付不保证 IP 数据报:无差错、准时到达、按序到达、不会重复交付。丢弃数据报的情况:缓存满。

在互联网中,能否使用一个很大的交换机来代替全部的路由器?

​ 不行。交换机和路由器的功能是很不一样的。交换机和在一个单个的网络中和若干个计算机相连,并且可以将一个计算机发送过来的帧转发给另一个计算机。从这点上看,交换机具有集线器的转发帧的功能。但交换机比集线器的功能强很多。集线器在同一时间只允许一个计算机和其他计算机进行通信,但交换机允许多个计算机同时进行通信。

​ 路由器连接两个或几个网络,路由器可在网络之间转发分组(即 IP 数据报)。这些互联的网络是异构的。如果存在异构网络互联,使用交换机是不行的。

当运行 PING 127.0.0.1 时,这个 IP 数据报将发给谁?

​ 127.0.0.1 是环回地址。主机将测试用的 IP 数据报发给本主机的 ICMP(而不是发送到互联网上)以便进行环回测试。

全 1 的 IP 地址是否是向整个互联网进行广播的一种地址?

​ 不是。在 IP 地址中的全 1 地址表示仅在本网络上(发送这个 IP 数据报的主机所连局域网)进行广播。这种广播叫做受限的广播。如果网络号是具体的网络号,主机号全 1 叫做定向广播,这是对某一个具体的网络(网络号指明的网络)上的所有主机进行广播的一种地址。

IP 协议有分片的功能,但广域网中的分组则不必分片。这是为什么?

​ IP 数据报可能要经过许多个网络,而源主机事先并不知道后面要经过的这些网络中分组的最大长度是多少,当超过某个网络的最大长度限制时就需要分片。

​ 广域网能够通过的分组的最大长度是该广域网中所有主机都事先知道的,源主机不可能发送网络不支持的过长分组。

链路层广播和 IP 广播有何区别?

​ 链路层广播使用数据链路层协议,在一个以太网史昂实现对该局域网上所有主机的 MAC 帧进行广播。

​ IP 广播则是用 IP 协议,通过互联网实现的对一个网络上的所有主机的 IP 数据报广播。

当路由器利用 IP 数据报首部中的 “首部校验和” 字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个 ICMP 报文给源主机呢?

​ IP 协议并不要求源主机重传有差错的数据报。保证无差错传输是由 TCP 协议完成的。另一方面,首部校验和只能校验出 IP 数据报的首部是否出现差错,但不知道首部中的源地址字段有没有出错,如果出错,将数据报传到错误的地址也是无意义的。

有人认为,不使用 CIDR 也行。例如,使用 CIDR 时,给某单位分配了一个地址块 /20,相当于 16 个 C 类地址块。如果不使用 CIDR ,而直接给该单位分配 16 个 C 类地址块,那么在效果上不是一样吗?

​ 如果不采用 CIDR ,而直接分配 16 个 C 类地址块,相当于给该单位分配了 16 个 C 类网络。这个单位对外界来说,是 16 个 C 类网络。每一个 C 类网络都要在本单位外面的路由表中占有一个表项,使得路由表更大了。当本单位内的许多主机相互通信时,由于跨越了不同的网络,都必须使用路由器来转发 IP 数据报,开销增大。

IP 数据报中的首部校验和并不检验数据报中的数据,这样做的优缺点是什么?计算首部校验和为什么不使用 CRC 校验码?

​ 优点是不校验数据部分可以加快分组转发的速度,缺点是数据部分出现差错不能及早发现,由上层检查数据是否出错。不使用 CRC 可减少路由器进行校验的时间。

image-20200411110119434

传输层

传输层提供的服务

传输层的功能

  传输层向它上面的应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最底层。

  传输层位于网络层上,它为运行在不同主机上的进程之间提供了逻辑通信,网络层提供主机之间的逻辑通信。即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复),传输层同样能为应用程序提供可靠的服务。

  传输层的功能如下:

  1)提供应用进程之间的通信(端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。

  2)复用和分用。复用是指发送方不同的应用进程都可以使用同一个传输层协议传输数据;分用指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的进程。

  注意:传输层的复用和分用与网络层复用分用功能不同。网络层的复用是指发送方不同协议的数据都可以封装成IP数据报发送出去,分用是指接收方的网络层在剥去首部后把数据交付给相应的协议。

  3)传输层还要对收到的报文进行差错检测(首部和数据部分)。而网络层只检测 IP 数据报的首部,不检验数据部分是否出错。

  4)提供两种不同的传输协议,即面向连接的 TCP 和面向无连接的 UDP。网络层无法同时实现两种协议(在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,不可能在网络层同时存在这两种方式)。

  当传输层采用 TCP 时尽管下面的网络是不可靠的,但这种逻辑通信通道就相当于一条全双工的可靠信道。当传输层采用 UDP 时,这种逻辑信道仍是一条不可靠信道。

img

传输层的寻址与端口

端口的作用

  端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道将其报文段中的数据向上交付给应用层相应的进程。端口是传输层服务访问点(TSAP),它在传输层的作用类似于 IP 地址在网络层的作用,或MAC地址在数据链路层的作用,只不过IP地址和MAC地址标识的是主机,而端口标识的是主机中的应用进程。

  数据链路层的SAP 是MAC地址,网络层的SAP是IP地址,传输层的SAP 是端口。

端口号

  应用进程通过端口号进行标识,端口号长16个比特,能够表示65536 个不同的端口号。

  端口号只具有本地意义,即端口号只标识本计算机应用层中的各进程,在因特网中不同计算机的相同端口号是没有联系的。根据端口号范围可将端口分为两类:

  1)服务端使用的端口号。这里分为两类,最重要的一类是熟知端口号,数值为0~1023,IANA(互联网地址指派机构)把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有用户都知道。另一类为登记端口号,数值为 1024~49151。它是供没有熟知端口的应用程序使用的,使用这类端口必须在IANA登记。

img

 2)客户端使用的端口号,数值为 49152~65535 ,这类端口号仅在客户进程运行时才动态地选择,因此又称短暂端口号(也称临时端口)。

套接字

  在网络中通过IP地址来区别不同地主机,通过端口号来标识和区分一台主机中不同应用进程。在网络中采用发送方和接收方地套接字(Socket)组合来识别端点。

  套接字 = (主机IP地址,端口号)

  它唯一地标识网络中的一台主机和其上的一个应用。

  

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

  面向连接服务就是在通信双方进行通信之前,必须先建立连接,在通信过程中,整个连接的情况一直被实时地监控和管理。通信结束后,应该释放这个连接。

  无连接服务是指两个实体之间地通信不需要先建立好连接,需要通信时,直接将信息发送到“网络”中,让该信息地传递在网上尽力而为地往目的地传送。

  TCP/IP 协议族 在 IP 上使用了两个传输协议:一个是面向连接的传输控制协议(Transmission Control Protocol,TCP),采用TCP时,传输层向上提供的是一条全双工的可靠逻辑信道;另一个是无连接的用户数据报协议(User Datagram Protocol,UDP),采用UDP时,传输层向上提供的是一条不可靠的逻辑信道。

  TCP 在传送数据之前必须先建立连接,数据传送后要释放连接。TCP 不提供广播或组播服务。由于TCP提供面向连接的可靠传输服务,不可避免地增加了许多开销,如确认、流量控制、计时器及连接管理等。TCP 更适合可靠性更重要地场合,如 FTP,HTTP,TELNET等。

  UDP 是一个无连接地非可靠传输层协议。它在IP之上仅提供两个附加服务:多路复用和对数据地错误检查。UDP 比较简单,执行速度快、实时性好。使用 UDP 的应用主要包括小文件传送协议(TFTP)、DNS、SMTP和实时传输协议(RTP)。

UDP 协议

UDP 数据报

UDP 概述

  UDP 具有如下优点:1) UDP 无须建立连接。2)无连接状态。3)分组首部开销小,TCP 有20B的首部开销,UDP 仅有8B的开销。4)应用层能更好地控制要发送的数据和发送时间。

  UDP 常用于一次性传输较少数据的网络应用如 DNS等。UDP 提供尽最大努力交付,不保证可靠交付。UDP 是面向报文的。报文不可分割,是UDP数据报处理的最小单位。

  

UDP的首部格式

img

  1)源端口。源端口号。在需要对方回信时选用,不用可为全0.

  2)目的端口。目的端口号。交付报文时必须使用到。

  3)长度。UDP 数据报的长度(包括首部和数据),其最小值是 8B。

  4)校验和。检测UDP数据报在传输中是否有错。有错就丢弃。

  当传输 层从IP 层收到 UDP 数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口上交给应用进程。如果接收方UDP发现收到的报文中目的端口号不正确,丢弃报文,并由ICMP发送“端口不可达”差错报文给发送方。

  

UDP 校验

  在计算校验和时要在UDP数据报之前增加12B的伪首部,仅仅是为了计算校验和。

  IP 数据报的校验和只检验IP数据报的首部,UDP的校验和则检查首部和数据部分。

TCP 协议

TCP 协议的特点

  TCP 是在不可靠的 IP 层上实现的可靠数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。

  TCP 协议的特点:

  1)TCP 是面向连接的传输层协议。

  2)每条TCP 连接只能有两个端点,每条TCP 连接只能是点对点的。

  3)TCP 提供可靠的交付服务,保证传输的数据无差错、不丢失、不重复且有序。

  4)TCP 提供全双工通信,允许双方的应用进程在任何时候都能发送数据,为此 TCP 连接的两端都设有发送缓存和接收缓存。

  5)TCP 是面向字节流的。

  

TCP 报文段

  TCP 传送的数据单元称为报文段。一个TCP 报文段分为 TCP 首部和TCP 数据两部分。整个TCP 报文作为 IP 数据报的数据部分封装在 IP 数据报中。其首部的前20B是固定的。TCP 报文段首部最短为20B,后面有4N字节是根据需要而增加的选项,通常长度是4B的整数倍。

  TCP 报文段既可以用来运载数据,又可以用来建立连接、释放连接和应答。

img

 1)源端口和目的端口 各占2B。端口是传输层和应用层的服务接口,运输层的复用和分用功能都通过端口实现。

  2)序号字段 占4B。TCP 是面向字节流的(TCP 传送时是逐个字节传送的),所以TCP连接传送得数据流中得每个字节都编上一个序号。序号字段得值指的是本报文段所发送的数据的第一个字节的序号

  3)确认号字段,占4B。是期望收到对方下一个报文段的数据的第一个字节的序号。若确认号为 N,则表明到序号 N-1 为止的所有数据都已正确收到。

  4)数据偏移(首部长度)占4位。表示首部的长度 以4B为单位。

  5)保留字段。占6位。

  6)紧急位URG。URG=1时,表明紧急指针字段有效。告诉系统报文段中有紧急数据。URG 要配合紧急指针使用,即数据从第一个字节到紧急指针所指字节就是紧急数据。

  7)确认位ACK。只有当ACK=1时确认号字段才有效。当ACK=0时确认号无效。TCP 规定,在连接建立后所有传送的报文段必须把ACK置1。

  8)推送位PSH。接收TCP 收到PSH=1的报文段,就尽快地交付给应用进程。

  9)复位位RST。当RST=1时表明TCP连接中出现严重错误,必须释放连接再重新建立运输连接。

  10)同步位SYN。同步SYN=1表示这是一个连接请求或连接接收报文。当SYN=1,ACK=0时表示这是一个连接请求报文,若对方同意建立连接,则在相应报文中使用SYN=1,ACK=1。

  11)终止位FIN。用来释放一个连接。FIN表明此报文段的额发送方的数据已发送完毕。

  12)窗口字段。占2B它指出现在允许对方发送的数据量。

  13)校验和。占2B。校验和字段检验的范围包括首部和数据两部分。计算校验和也要在TCP报文段前面加上12B的伪首部。

  14)紧急指针字段。占16位,指出本报文段中紧急数据有多少字节。

  15)选项字段。长度可变。TCP 只规定了一种窜巷,即最大报文长度MSS。MSS是TCP报文段中数据字段的最大长度。

  16)填充字段。使整个首部长度是4B的整数倍。

TCP 连接管理

  TCP 是面向连接的协议,因此每个TCP 连接都有三个阶段:连接建立、数据传送和连接释放

  TCP 连接建立过程中,要解决以下三个问题:

  1)要使每一方都能够确知对方的存在。

  2)要允许双方协商一些参数

  3)能够运输实体资源。

  TCP 把连接作为最基本的抽象,每条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端口称为套接字。端口拼接到IP地址即构成套接字。

  1、TCP 连接的建立:三次握手。

img

 服务端的资源是在第二次握手时分配的,客户端的资源是在第三次握手时分配的,使得服务器易收到SYN洪泛攻击。

为什么不采用“两次握手”建立连接?

  防止两次握手情况下将已经失效的连接请求报文突然又传到服务器而产生错误。以客户 A 向服务器 B 建立连接为例。A 向 B 先发送连接请求 ,但是网络拥堵没有及时到达,还没有到达 B ,A的就超时重传了,再次发送了一个连接请求。等第一个请求报文到达服务器时服务器给出确认报文。收到第二个报文服务器认为又要请求连接,又给出确认报文。在网络拥堵时就会浪费服务器资源。

  如果是三次握手,第二次的请求报文不是服务器想要的报文,连接建立失败。

  2、TCP 连接的释放:四次挥手。

img

为什么不采用“三次挥手”释放连接,且发送最后一次挥手报文要等待2MSL时间呢?

  1)确保A发送的 最后一个确认报文能够到达B,如果 A 不等待 2MSL, 若A返回的最后一个确认报文段丢失,B不能正常关闭,而此时A已经关闭,不可能再重传。

  2)防止出现“已失效的连接请求报文段”。A 在发送最后一个确认报文段之后,再经过2MSL可保证本连接持续的时间内产生的所有报文段从网络中消失。

  

TCP 可靠传输

  TCP 使用了校验、序号、确认和重传等机制来达到这一目的。

序号

  TCP 首部的序号字段用来保证数据能有序提交给应用层,TCP 把数据视为一个无结构但有序的字节流,序号建立在传送的字节流上,而不建立在报文段上。

  TCP 连接传送的数据流中的每个字节都编上一个序号。

img

  上图中第一个报文段序号为0,第二个为3。

确认

  TCP 首部的确认号是期望收到对方的下一个报文段的第一个字节的序号。

  TCP 默认使用累计确认,即TCP 只确认数据流中至第一个丢失字节为止的字节。

重传

  有两种事件会导致TCP 对报文段进行重传,超时和冗余 ACK。

  1)超时

  TCP 每发送一个报文段,就对这个报文段设置一次计时器。重传时间到期未收到确认则重传。

  2)冗余ACK(冗余确认)

  TCP 规定每当比期望序号大的失序报文到达时,就发送一个冗余ACK,指明下一个期望字节的序号。

TCP 流量控制

  TCP 提供流量控制服务来消除发送方使接收方缓冲区溢出的可能性,流量控制是一个速度匹配服务。

  TCP 提供一种基于滑动窗口协议的流量控制机制,这里介绍TCP如何使用窗口机制来实现流量控制。

  在通信过程中,接收方根据自己的接收缓存的大小,动态地调整发送方地发送窗口大小,这称为接收窗口 rwnd,即调整TCP首部中“窗口”字段值,来限制发送方向向网络注入报文地速率。同时发送方根据其对当前网络拥塞程序的估计而确定的窗口值,这称为拥塞窗口 cwnd

  例如,在通信中,有效数据只从A发往B,而B仅向A发送确认报文,这时B可通过设置确认报文段首部的窗口字段来将rwnd通知给A。rwnd即接收方允许连续接收的最大能力,单位是字节。

 传输层和数据链路层的流量控制的区别是:传输层定义端到端用户之间的流量控制、数据链路层定义两个中间结点的流量控制。另外,数据链路层的滑动窗口协议的大小不能动态变化,传输层的可以动态变化。

img

TCP 拥塞控制

  所谓拥塞控制,是为了防止过多的数据注入网络,保证网络中的路由器或链路不致过载。

  拥塞控制与流量控制的区别:拥塞控制是网络能够承受现有的网络复合,是一个全局性的过程,涉及所有主机、所有的路由器,以及与降低网络传输性能有关的所有因素。流量控制往往是指点对点 的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率。

  发送方在确定发送报文段的速率时,既要根据接收方的接收能力,又要从全局考虑不要使网络发生拥塞。因此,TCP 协议要求发送方维护以下两个窗口:  

  1)接收窗口cwnd,接收方根据目前接收缓存大小所许诺的最新窗口值,反映接收方的容量。由接收方根据其放在TCP报文首部的窗口值通知发送方。

  2)拥塞窗口cwnd,发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络的当前容量。

  发送窗口的上限值应取接收窗口 rwnd 和拥塞窗口 cwnd 中较小的一个。

  img

 接收窗口的大小可根据TCP报文的窗口字段通知发送方,发送方如何维护拥塞窗口呢?下面讲慢开始和拥塞避免算法。

慢开始和拥塞避免
慢开始算法

  在TCP 刚连接好并开始发送TCP 报文时,先令拥塞窗口 cwnd=1,即一个最大报文段长度MSS,每收到一个对新报文的确认后将 cwnd加1,即增大一个MSS。逐步加大发送方的拥塞窗口。

  例如,A 向 B 发送数据,发送时 A 的拥塞窗口为 2,那么 A 一次可以发送两个 TCP 报文段,经过一个 RTT 后,A 收到 B 对刚才两个报文的确认,于是把拥塞窗口调整为 4,下一次发送时就可以一次发送4个报文段。

  使用慢开始算法后,每经过一个传输轮次(一个RTT),拥塞窗口 cwnd 就会加倍,即cwnd 的大小指数式增长。这样慢开始一直把拥塞窗口 cwnd 增大到一个规定的慢开始门限 ssthresh(阈值),然后改用拥塞避免算法。

拥塞避免算法

  发送端的拥塞窗口 cwnd 每经过一个 RTT 就增加一个MSS的大小,而不是加倍,时cwnd按线性规律缓慢增长,当出现一次超时(网络拥塞)时,令慢开始门限 ssthresh 等于当前cwnd 的一半。

网络拥塞的处理

  网络出现拥塞时,无论是在慢开始阶段还是在拥塞避免阶段,只要对方检测到超时事件的发生,就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方 cwnd 值得一般 (但不能小于2).然后把拥塞窗口cwnd 重新设置为1,执行慢开始算法。这样做得目的是迅速减少主机发送到网络中得分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完。

  拥塞避免并不能完全避免拥塞。

 img

快重传和快恢复

   快重传和快恢复算法是对慢开始和拥塞避免算法的改进。

快重传

  快重传技术采用了冗余ACK来检测丢包的发生。同样,冗余 ACK 也用于网络拥塞的检测(丢了包意味着网络出现了拥塞)。快重传并非取消重传计时器,而是在某些情况下更早地重传丢失地报文段。

  当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。

快恢复

  发送端收到连续的三个冗余 ACK(即重复确认)时,执行“乘法减小”算法,把慢开始门限 ssthresh 设置为出现拥塞时发送方cwnd的一半。与满开始(慢开始算法将拥塞窗口cwnd设置为 1)的不同之处是,它把cwnd 的值设置为慢开始门限ssthresh 改变之后的值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。

  由于跳过了 cwnd 从1起始的慢开始过程,所以称为快恢复。快恢复算法实现的过程如下图。虚线为慢开始的处理过程。

img

 在流量控制中,发送方发送数据的量由接收方决定,在拥塞控制中,则由发送方自己通过检测 网络状况来决定。实际上,慢开始、拥塞避免、快重传和快恢复几种算法应是同时应用在拥塞控制机制中,当发送方检测到超时的时候,就开始慢开始和拥塞避免,当发送方接收发到冗余 ACK 时就采用快重传和快恢复。

img

image-20200507213947478

知识结构图

image-20200411154708823

应用层

网络应用模型

客户/服务器模型

  在客户/服务器模型(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。

  其工作流程如下:

  1)服务器处于接收请求的状态。

  2)客户机发出服务请求,并等待接收结果。

  3)服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。

  客户程序必须知道服务器程序的地址。常见的使用客户/服务器模型的应用包括 Web、文件传输协议(FTP)、远程登录和电子邮件等。

  客户/服务器模型的主要特点还有:

  1)网络中各计算机的地位不平等,服务器可以通过对用户权限的控制来达到管理客户机的目的。整个网络的管理工作由少数服务器担当。

  2)客户机之间不直接通信。

  3)可扩展性不佳,受服务器硬件和带宽的限制,服务器支持的客户机有限。

  

P2P模型

  在C/S 模型中,服务器性能的好坏决定了整个系统的性能。当大量的用户请求服务时,服务器必然成为系统的瓶颈。P2P 模型的思想是整个网络中的传输内容不再被保留在中心服务器上,每个结点都同时具有下载、上传的功能,其权利和义务都是大体对等的。

img

 与C/S 模型相比,P2P 模型的优点主要体现在:

  1)减轻服务器的计算压力,消除了对某个服务器的完全依赖。

  2)多个客户机之间可以直接共享文档。

  3)可扩展性好。

  4)网络健壮性强。

域名系统

层次域名空间

  因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域可以划分为子域,子域也能划分。这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,各标号之间用(“.”)隔开。

img

 域名中标号要注意:

  1)标号中的英文不区分大小写。

  2)标号中除连字符(-)外不允许使用其他的标点符号。

  3)每个标号不超过 63 个字符,多标号组成的完整域名最长不超过 255 个字符。

  4)级别最低的域名写在最左边,级别最高的域名写在最右边。

  

  顶级域名(Top Level Domain)分为如下三大类:

  1)国家顶级域名。国家和某些地区的域名,“.cn”表示中国。

  2)通用顶级域名。常见的“.com”(公司)、“.net”(网络服务机构)、“.org”(非盈利性组织)

  3)基础结构域名。 arpa 用于反向域名解析。

img

域名服务器

  域名到 IP 地址的解析是由运行在域名服务器上的程序完成的,一个服务器所管辖的范围称为区。每个域名服务器不但能够进行一些域名到 IP 地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到 IP 地址的转换时,能够知道到什么地方去找其他域名服务器。

  DNS 使用了大量的域名服务器,它们以层次方式组织。采用分布式设计的 DNS,是一个在因特网上实现分布式数据库的精彩范例。

  主要有 4 种类型的域名服务器:

  1)根域名服务器。根域名服务器是最高层次的服务器,所有根域名服务器都知道所有顶级域名服务器的 IP 地址。根域名服务器也是最重要的域名服务器。根域名服务器用来管理顶级域(如.com),通常它并不直接把待查询的域名直接转换为 IP 地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

  2)顶级域名服务器。负责管理在该顶级域名服务器注册的所有二级域名。收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的 IP 地址)。

  3)授权域名服务器(权限域名服务器)。授权域名服务器总能将其管辖的主机名转换为该主机的IP 地址。

  4)本地域名服务器。当一台主机发出 DNS 查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。我们在 Windows 系统中配置“本地连接” 时,就需要填写 DNS 地址,这个地址就是本地 DNS 的地址。

img

域名解析过程

  域名解析是指把域名映射成为 IP 地址或把 IP 地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的额DNS 客户端构造一个 DNS 的请求报文, 以 UDP 数据报方式发往本地域名服务器。域名解析有两种方式:递归查询和递归与迭代相结合的查询。递归查询给根服务器造成的负载过大,在实际中几乎不使用。

  常用递归与迭代相结合的查询方式如下图所示。

img

 假定客户机想获知域名为 y.abc.com主机地 IP 地址,域名解析地过程(用使用 8 个UDP 报文)如下:

  1)客户机向本地域名服务器发出 DNS 请求报文。

  2)本地域名服务器收到后查询本地缓存,若有记录直接返回。若没有记录,以 DNS 客户的身份向根域名服务器发起解析请求。

  3)根域名服务器收到请求后,判断该域名属于 .com 域,将对应的顶级域名服务器 dns.com 的 IP 地址返回给本地域名服务器。

  4)本地域名服务器向 顶级域名服务器 dns.com 发出解析请求报文。

  5)顶级域名服务器 dns.com 接收到请求后,判断该域名属于 abc.com域,因此将对应的授权域名服务器 dns.abc.com 的 IP 地址返回给本地域名服务器。

  6)本地域名服务器向 dns.abc.com 发起解析请求报文。

  7)授权域名服务器 dns.abc.com 收到请求后将 查询结果返回给本地域名服务器。

  8)本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。

  为了提高 DNS 的查询效率,并减少互联网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。当一个 DNS 服务器接收到 DNS 查询结果时,它能将该 DNS 信息缓存在高速缓存中。

  

文件传输协议(FTP)

FTP 的工作原理

  文件传输协议(File Transfer Protocol,FTP)是因特网上使用的最广泛的文件传输协议。FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,适合于在异构网络中的任意计算机之间传送文件。

  FTP 提供以下功能:

  1)提供不同种类主机系统之间的文件传输能力。

  2)以用户权限管理的方式提供用户对远程 FTP 服务器上的文件管理能力。

  3)以匿名 FTP 的方式提供公用文件共享的能力。

  FTP 采用 客户/服务器的工作方式,它使用 TCP 可靠的传输服务。一个 FTP 服务器可同时为多个客户机进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外由若干从属进程,负责处理单个请求。

  其工作步骤如下:

  1)打开熟知端口21(控制端口),使客户进程能够连接上。

  2)等待客户进程发连接请求。

  3)启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程处理完客户的请求后终止。

  4)回到等待状态。

  

控制连接与数据连接

  FTP 在工作时使用两个并行的 TCP 连接:一个控制连接(端口号21),一个是数据连接(端口号20)

  1)控制连接。服务器监听21端口,等待客户连接,控制连接用来传递控制信息 以7位 ASCII 格式传送。

  2)数据连接。服务器端接收到客户端发来的文件传输请求后,创建数据传送进程和数据连接。数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

电子邮件

电子邮件系统的组成结构

  一个电子邮件系统应具有三个最主要的组成构件,用户代理(User Agent)、邮件服务器和电子邮件使用的协议,如 SMTP、POP3(或 IMAP)等。

img

​ 用户代理(UA):用户与电子邮件系统的接口。通常情况下,就是一个运行在PC上的程序。

  邮件服务器:组成电子邮件系统的核心。邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件的传送情况。邮件服务器采用C/S方式工作,但是它能够同时充当客户和服务器。

  邮件发送协议和读取协议:邮件发送协议用于在用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,通常使用 SMTP;邮件读取协议用于用户代理从邮件服务器读取邮件,如 POP3;SMTP 主动将邮件推到服务器,POP3 向邮件服务器发出请求拉取用户邮箱的邮件。

img

电子邮件格式与MIME

  1、电子邮件格式

​ 一个电子邮件分为信封和内容两大部分,邮件内容又分为首部和主体两部分。To:为收件人,Subject:为主题。

  2、多用途网络邮件扩充 MIME

  SMTP 只能传送一定长度的 ASCII 码且无法传送可执行文件及其他二进制对象,因此提出了多用途网络邮件扩充(Multipurpose Internet Mail Extensions)。MIME 增加了邮件主体的结构,并定义了传送非ASCII 码的编码规则。并未改动SMTP 或取代它。

  MIME 主要包括以下三部分内容:

  1)5 个新的邮件首部字段,包括 MIME 版本、内容描述、内容标识、内容传送编码和内容类型。

  2)定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

  3)定义了传送编码,可对任何内容格式进行格式转换。

  

SMTP 和 POP3

SMTP

  简单邮件传输协议(Simple Mail Transfer Protocol)是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的 SMTP 进程交换信息。SMTP 使用 C/S 方式。使用 TCP 连接,端口号为25。SMTP 通信有以下三个阶段:

  1)连接建立

​ 发件人的邮件到达邮件服务器缓存之后,邮件服务器每隔一段时间对邮件缓存扫描一次。如果有邮件使用 SMTP 熟知端口(25)与接收方服务器 SMTP 服务器建立 TCP 连接。连接成功后接收方发出 220 Service ready 。发送方服务器向接收方发出 HELLO 命令,附上发送方的主机名。SMTP 不使用中间邮件服务器,TCP 总是在发送方和接收方这两个邮件服务器之间建立。

  2)邮件传送

  连接建立后,邮件的传送从 MAIL 命令开始,MAIL命令后面有发件人的地址。若接收方SMTP已经准备好接收 则回复 250 OK。接着发送一个或多个 RCPT命令给接收方服务器,每发送一个RCPT 命令都有相应的信息返回 250 OK 或 550 No such user here。RCPT的作用是检测接收方是否做好了接收邮件的准备。获取 OK 的答复之后客户端使用 DATA 命令,表示开始传输邮件的内容。

  3)连接释放

  邮件发送完后,SMTP 客户发送 QUIT 命令SMTP 服务器返回211(服务关闭)。

  

POP3

  邮局协议(Post Office Protocol,POP)是一个非常简单但功能有限的邮件读取协议。POP 也使用C/S 工作方式,在传输层使用 TCP,端口号为 110。POP 有两种工作方式:下载并保留,下载并删除。这里的保留和删除指是否保留服务器上的邮件。

  另一个邮件接收协议是因特网报文存取协议(IMAP),它比POP复杂得多,IMAP 为用户提供了创建文件夹等命令。

  

万维网(WWW)

WWW 的概念与组成结构

  万维网(Word Wide Web,WWW)是一个资料空间,在这个空间中:一样有用的事务称为一样资源,并由一个“全域统一资源定位符(URL)”标识。这些资源通过超文本传输协议(HTTP)传送给使用者。

  万维网的内核部分是由三个标准构成的:

  1)统一资源定位符(URL)。负责标识万维网上的各种文档。

  2)超文本传输协议(HTTP)。应用层协议,使用TCP连接进行可靠的传输。

  3)超文本标记语言(HTML)。一种文档结构的标记语言。

  URL 的一般形式是:<协议>://<主机>:<端口>/<路径>

  常见的协议有 http、ftp 等。

  万维网以C/S方式工作,浏览器是用户计算机上的万维网客户程序。

  

超文本传输协议(HTTP)

  HTTP 是面向事务的应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件的重要基础。

HTTP 的操作过程

  浏览器要访问 WWW 服务器时,首先要完成对 WWW 服务器的域名解析。一旦获得了服务器的 IP 地址,浏览器就通过TCP向服务器发送连接建立请求。

  每个万维网站点都有一个服务器进程,它不断地监听 TCP 的端口80(默认),当监听到连接请求后就向浏览器建立连接。TCP 连接建立后,浏览器就向服务器发送请求获取某个页面的 HTTP 请求。服务器收到 HTTP 请求后,将构件所请求 Web 页的必需信息,通过 HTTP 的响应返回给浏览器。浏览器再将信息进行解释,然后将Web 页显示给用户,最后TCP 连接释放。

  访问一个网站发生的事件,以访问清华网站为例。

  1)浏览器分析链接指向页面的 URL (http://www.tsinghua.edu.cn/chn/index.htm)。

  2)浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。

  3)域名系统 DNS 解析出清华大学服务器的 IP 地址。

  4)浏览器与该服务器建立 TCP 连接(默认端口号为 80)

  5)浏览器发出 HTTP 请求:GET/chn/index.htm。

  6)服务器通过 HTTP 响应把文件 index.htm 发送给浏览器。

  7)TCP 连接释放。

  8)浏览器解释文件 index.htm,并将Web 页显示给用户。

  总结:DNS 解析 IP 地址,建立 TCP 连接,客户端发送 HTTP 请求,服务端响应 HTTP,TCP 连接释放,浏览器渲染页面。

HTTP 的特点

  HTTP 是无状态的,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问的相同。因为服务器并不记得曾经访问过的这个用户,也不记得为该客户曾经服务过多少次。

  HTTP 的无状态设计使服务器更容易支持大量并发的 HTTP 请求。在实际应用中,通常使用 Cookie 加数据库的方式来跟踪用户的活动。Cookie 是一个存储在用户主机中的文本文件,里面有一串识别码,用于Web 服务识别用户。

  HTTP 既可以使用非持久连接,也可以使用持久连接(HTTP/1.1支持)。

  对于非持久连接,每个网页元素的传输都需要单独建立一个TCP连接(5 张图片 5 个 TCP 连接),请求一个万维网文档所需要的事件是该文档的传输时间加上两倍往返时间 RTT。(一个 RTT 用于 TCP 连接,另一个RTT 用于请求和接收文档。三次握手的第三次可以发送HTTP请求)。

  所谓持久连接,指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的 HTTP 请求与响应报文。

img

 持久连接又分为非流水线和流水线两种方式。对于非流水线方式,客户收到前一个响应后才能发出下一个请求。HTTP/1.1 默认方式是使用流水线的持久连接。

HTTP 报文结构

  HTTP 是面向文本的,因此报文中的每个字段都是一些 ASCII 码串,并且每个字段的长度都是不确定的。

  有两类 HTTP 报文:请求报文和响应报文。

img

img

知识结构图

image-20200507171655791

协议总结

应用层协议:(应用程序)

使用TCP

  HTTP(Hypertext Transfer Protocol )超文本传输协议 <端口号 80>, 面向事务的应用层协议。

  FTP(File Transfer Protocol )文件传输协议<端口号21>减少或消除不同操作系统下处理文件的不兼容性。

  TELNET 远程登录协议 <端口号23> 。

  SMTP (Simple Mail Transfer Protocol )简单邮件传输协议 <端口号25> 用于发送邮件。

  POP3 (Post Office Protocol 3) 即邮局协议的第3 个版本,用于接受邮件。

  IMAP4 (Internet Message Access Protocol 4) Internet 信息访问协议的第 4 版本 。

使用UDP

  DHCP(Dynamic Host Configuration Protocol)动态主机分配协议,使用 UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。实 现即插即用连网。

  DNS(Domin Name System) 域名系统协议,同时占用TCP和UDP的 53 端口。区域传送使用TCP,域名解析使用UDP。书上没有写区域传送的内容,只讲了域名解析,我将DNS归于UDP中,其实是不对的。

传输层协议:(进程/端口) 数据单元:数据段

  TCP (Transmission Control Protocol )传输控制协议提供可靠的面向连接的服务,传输数据前须先建立连接,结束后释放。可靠的全双工信道。可靠、有序、无丢失、不重复。

  UDP (User Datagram Protocol )用户数据报协议发送数据前无需建立连接,不使用拥塞控制,不保证可靠交付,最大努力交付。

  RTP(Real-time Transport Protocol )实时传送协议 。

网络层协议:(路由器)数据单元:数据报

  IP (IPv4 · IPv6) (Internet Protocol) 网络之间互连的协议。

  ARP (Address Resolution Protocol) 即地址解析协议,实现通过IP 地址得 知其物理地址。

  RARP (Reverse Address Resolution Protocol)反向地址转换协议允许局域 网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP地址。

   ICMP (Internet Control Message Protocol )Internet 控制报文协议。它是TCP/IP 协议族的一个子协议,用于在IP 主机、路由器之间传递控制消息。

   RIP (Router information protocol) 路由信息协议是一种在网关与主机之间交换路由选择信息的标准。

  OSPF (Open Shortest Path First)开放式最短路径优先,分布式链路状态协议。

数据链路层:(网卡、网桥、交换机)数据单元:帧

  ARQ(Automatic Repeat-reQuest )自动重传请求协议,错误纠正协议之一,包括停止等待ARQ 协议和连续ARQ 协议,错误侦测、正面确认、逾时重传与负面确认继以重传等机制。

  纯 ALOHA 协议 :不检测信道状态 直接发送 ,一段时间没收到确认 等待一段随机的时间后再发送,直到成功。

  时隙 ALOHA 协议 :把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙,规定只能在每个时隙开始才能发送一个帧。

   CSMA/CD(Carrrier Sense Multiple Access with Collision Detection)载波监听多点接入/碰撞检测协议。以太网,总线型网络,协议的实质是载波监听和碰撞检测。载波监听即发数据前先检测总线上是否有其他计算机在发送数据,如暂时不发数据,避免碰撞。碰撞检测为计算机边发送数据边检测信道上的信号电压大小。

  CSMA/CA(Carrier Sense Multiple Access with Collision Avoidence) 无线局域网,CSMA/CA 采用二进制指数退避算法。任何一个站要发送数据帧时,不仅要等待一个时间间隔,还要进入争用窗口,并计算随机退避时间以便再次试图接入信道。

  PPP(Point-to-Ponit Protocol)点对点协议,广域网,面向字节,由三部分组成:一个将IP 数据报封装到串行链路的方法;一个用于建立、配置和测试数据链路连接的链路控制协议。

  HDLC (High-Level Data Link Control )高级数据链路控制,广域网,面向比特,同步网上传输数据的数据链路层协议。

   ATM (Asynchronous Transfer Mode )异步传递方式,建立在电路交换和分组交换的基础上的一种面向连接的快速分组交换技术。 “异步”是指将ATM 信元“异步插入”到同步的 SDH 比特流中。如同步插入则用户在每帧中所占的时隙相对位置固定不变。“同步”是指网络中各链路上的比特流都是受同一非常精确的主时钟的控制。Wi-Fi 、WiMAX 、DTM 、令牌环、以太网、FDDI 、帧中继、 GPRS 、 EVDO 、HSPA 、L2TP 、ISDN 。

  

物理层:(中继器、集线器)数据单元:比特

img

参考:https://www.cnblogs.com/newsouls/p/5436266.html