1 计算机网络体系结构
1.1 计算机网络概述
1.1.1 计算机网络概念
计算机网络︰是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机网络是互连的、自治的计算机集合。
互连:通过通信链路互联互通
自治:无主从关系
网络把许多计算机连接在一起,而互联网则把许多网络连接在一起因特网是世界上最大的互联网。
1.1.2 计算机网络的功能
数据通信:用来实现联网计算机之间各种信息的传输,并将分散在不同地理位置的计算机联系起来,进行统一的调配、控制和管理
资源共享:同一个计算机网络上的其他计算机可使用某台计算机的计算机资源的行为,可共享硬件、软件、数据。
分布式处理:当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络重的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率
提高可靠性:计算机网络重的各台计算机可以通过网络互为替代机
负载均衡:将工作任务均衡地分配给计算机网络中的各台计算机
1.1.3 计算机网络的组成
从组成部分上看,一个完整的计算机网络主要由硬件、软件、协议三大部分组成,缺一不可。硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP程序、聊天程序等)。软件部分多属于应用层。协议是计算机网络的核心,协议规定了网络传输数据时所遵循的规范。
从工作方式上看,计算机网络(这里主要指Internet,即因特网)可分为边缘部分和核心部分。边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享,有两种方式,C/S(Client/Server)方式和P2P(peer-to-peer)方式;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
从功能组成上看,计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。
1.1.4 计算机网络的分类
1.1.4.1 按分布范围分
广域网(WAN)。广域网的任务是提供长距离通信,运送主机所发送的数据,其覆盖范围通常是直径为几十千米到几千千米的区域,因而有时也称远程网。广域网是因特网的核心部分。连接广域网的各结点交换机的链路一般都是高速链路,具有较大的通信容量。
城域网(MAN)。城域网的覆盖范围可以跨越几个街区甚至整个城市,覆盖区域的直径范围是5一50km。城域网大多采用以太网技术,因此有时也常并入局域网的范围讨论。
局域网(LAN)。局域网一般用微机或工作站通过高速线路相连,覆盖范围较小,通常是直径为几十米到几千米的区域。局域网在计算机配置的数量上没有太多的限制,少的可以只有两台,多的可达几百台。传统上,局域网使用广播技术,而广域网使用交换技术。
个人区域网(PAN)。个人区域网是指在个人工作的地方将消费电子设备(如平板电脑、智能手机等)用无线技术连接起来的网络,也常称为无线个人区域网(WPAN),覆盖区域的直径约为10m.
1.1.4.2 接使用者分
公用网(Public Network)。指电信公司出资建造的大型网络。“公用”的意思是指所有愿意按电信公司的规定交纳费用的人都可以使用这种网络,因此也称公众网。
专用网(Private Network)。指某个部门为满足本单位特殊业务的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如铁路、电力、军队等部门的专用网。
1.1.4.3 按交换技术分
电路交换网络。在源结点和目的结点之间建立一条专用的通路用于传送数据,包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网是传统电话网络。该类网络的主要特点是整个报文的比特流连续地从源点直达终点,好像是在一条管道中传送。优点是数据直接传送、时延小。缺点是线路利用率低、不能充分利用线路容量、不便于进行差错控制。
报文交换网络。用户数据加上源地址、目的地址、校验码等辅助信息,然后封装成报文。整个报文传送到相邻结点,全部存储后,再转发给下一个结点,重复这一过程直到到达目的结点。每个报文可以单独选择到达目的结点的路径。报文交换网络也称存储-转发网络,主要特点是整个报文先传送到相邻结点,全部存储后查找转发表,转发到下一个结点。优点是可以较为充分地利用线路容址,可以头现个问链路之间不同数据传输速率的转换,可以实现格式转换,可以实现一对多、多对一的w问,可以实现差错控制。缺点是增大了资源开销(如辅助信息导致处理时间和存储资源的开销),增加了缓冲时延,需要额外的控制机制来保证多个报文的顺序不乱序,缓冲区难以管理(因为报文的大小不确定,接收方在接收到报文之前不能预知报文的大小)。
分组交换网络,也称包交换网络。其原理是,将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址等辅助信息组成分组(包),以存储-转发方式传输。其特点是单个分组(报文的一部分)传送到相邻结点,存储后查找转发表,转发到下一个结点。除具备报文交换网络的优点外,分组交换网络还具有自身的优点:包的平均时延更小,网络占用的平均缓冲区更少,更易于标准化;更适合应用。现在的主流网络基本上都可视为分组交换网络。
1.1.4.4 按拓扑结构分
网络拓扑结构是指由网中结点(路由器、主机等)与通信线路(网线)之间的几何关系(如总线形、环形)表示的网络结构,主要指通信子网的拓扑结构。按网络的拓扑结构,主要分为总线形、星形、环形和网状网络等,星形、总线形和环形网络多用于局域网,网状网络多用于广域网。
1.1.4.5 按传输技术分
广播式网络。所有联网计算机都共享一个公共通信信道。当一台计算机利用共享通信信道发送报文分组时,所有其他的计算机都会“收听”到这个分组。接收到该分组的计算机将通过检查目的地址来决定是否接收该分组。局域网基本上都采用广播式通信技术,广域网中的无线、卫星通信网络也采用广播式通信技术。
点对点网络。每条物理线路连接一对计算机。若通信的两台主机之间没有直接连接的线路,则它们之间的分组传输就要通过中间结点进行接收、存储和转发,直至目的结点
1.1.5 计算机网络的性能指标
1.1.5.1 带宽
“带宽”原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)
计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
链路带宽=1Mb/s 即主机在1us内可向链路发1bit数据
1.1.5.2 吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。吞吐量受网络的带宽或网络的额定速率的限制。
1.1.5.3 速率
网络中的速率是指连接在计算机网络上的主机在数字信道上传送数据位数的速率。单位是b/s, kb/s,Mb/s,Gb/s,Tb/s
1.1.5.4 时延
指数据(报文/分组/比特流〉从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延。单位是s。时延的组成可以分为以下几种
发送时延(传输时延):从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间
发送时延=\frac{分组长度}{信道宽度(发送速率)}
传播时延:电磁波在信道中一定的距离所需要花费的时间
传播时延=\frac{信道长度}{电磁波在信道上的传播速率}
处理时延:数据在交换结点为存储转发而进行的一些必要的处理所花费的时间,如检错、找出口等
排队时延:分组在进入路由器后要先在输入队列中排队等待处理,路由器确定转发端口后,还要再输出队列中排队等待转发
因此,数据在网络中经历的总时延就是以上四部分时延之和
总时延=发送时延+传播时延+处理时延+排队时延
除题目有说明外,排队时延和处理时延一般可忽略不计。另外,对于高速链路,提高的仅是数据发送速率而非比特在链路上的传播速率。提高数据的发送速率只是为了减少数据的发送时延
1.1.5.5 时延带宽积
时延带宽积又称为以比特为单位的链路长度。即“某段链路现在有多少比特”。指发送端发送的第一个比特即将到达终点时,发送端已经发出了多少个比特。
时延带宽积=传播时延×信道带宽
1.1.5.6 往返时延
往返时延(RTT)指从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。RTT越大,在收到确认之前,可以发送的数据越多,包括往返传播时延(=传播时延*2)和末端处理时间(一般忽略不计)
1.1.5.7 信道利用率
信道利用率指出某一信道有百分之多少的时间是有数据通过的
信道利用率=有数据通过时间/(有+无)数据通过时间
网路利用率即信道利用率的加权平均值
1.2 计算机网络体系与参考模型
1.2.1 计算机网络的分层结构
分层的基本原则:
各层之间相互独立,每层只实现一 种相对独立的功能。
每层之间界面自然消晰,易千理解,相互交流尽可能少。
结构上可分割开。每层都采用最合适的技术来实现。
保待下层对上层的独立性,上层单向使用下层提供的服务。
整个分层结构应该能促进标准化工作。
计算机网络的概念:
实体:第n层中的活动元素称为n层实体。同一 层的实体叫对等实体。
协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。 【水平】
语法:规定传输数据的格寸
语义:规定所要完成的功能
同步:规定各种操作的顺序
接口(访问服务点SAP):上层使用下层服务的入口。
服务:下层为相邻上层提供的功能调用。 【垂直】
在计算机网络体系结构的各个层次中,每个报文分为两个部分:一是数据部分,即SDU;二是控制信息部分,即PCI,它们共同组成PDU
SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
PCI协议控制信息:控制协议操作的信息。
PDU协议数据单元:对等层次之间传送的数据单位。
1.2.2 ISO/OSI参考模型和TCP/IP模型
1.2.2.1 ISO/OSI参考模型
国际标准化组织(ISO)提出的网络体系结构模型,称为开放系统互连参考模型(OSI RM),通常简称为OSI参考模型。OSI参考模型有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能;高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能。传输层承上启下。OSI参考模型的层次结构如图所示。
应用层:应用层是OSI参考模型的最高层,是用户与网络的界面。应用层为特定类型的网络应用提供访问OSI参考模型环境的手段。因为用户的实际应用多种多样,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,因此应用层是最复杂的一层,使用的协议也最多。典型的协议有用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP等。
表示层:表示层主要处理在两个通信系统中交换信息的表示方式。不同机器采用的编码和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据和信息之间能互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式。数据压缩、加密和解密也是表示层可提供的数据表示变换功能。
会话层:会话层允许不同主机上的各个进程之间进行会话。会话层利用传输层提供的端到端的服务,向表示层提供它的增值服务。这种服务主要为表示层实体或用户进程建立连接并在连接上有序地传输数据,这就是会话,也称建立同步(SYN).会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的会话。会话层可以使用校验点使通信会话在通信失效时从校验点继续恢复通信,实现数据同步。
传输层也称运输层,传输单位是报文段(TCP)或用户数据报(UDP),传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。使用传输层的服务,高层用户可以直接进行端到端的数据传输,从而忽略通信子网的存在。通过传输层的屏蔽,高层用户看不到子网的交替和变化。由于一台主机可同时运行多个进程,因此传输层具有复用和分用的功能。复用是指多个应用层进程可同时使用下面传输层的服务,分用是指传输层把收到的信息分别交付给上面应用层中相应的进程。
网络层:网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。它的功能有路由选择(最佳路径)、流量控制、差错控制和拥塞控制。若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
数据链路层:数据链路层的主要任务是把网络层传下来的数据报组装成帧。数据链路层/链路层的传输单位是帧。它的功能有成帧(定义帧的开始和结束)、差错控制(帧错+位错)、流量控制和访问(接入)控制控制对信道的访问
物理层:物理层的主要任务是在物理媒体上实现比特流的透明传输。物理层传输单位是比特。透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。它的功能有定义接口特性、定义传输模式(单工、半双工、双工)、定义传输速率、比特同步和比特编码
1.2.2.2 TCP/IP参考模型
ARPA在研究ARPAnet时提出了TCP/IP模型,模型从低到高依次为网络接口层(对应OSI参考模型中的物理层和数据链路层)、网际层、传输层和应用层(对应OSI参考模型中的会话层、表示层和应用层)。TCP/P由于得到广泛应用而成为事实上的国际标准。
TCP/IP模型与OSI参考模型有许多相似之处。
二者都采取分层的体系结构,将庞大且复杂的问题划分为若干较容易处理的、范围较小的问题,而且分层的功能也大体相似。
二者都是基于独立的协议栈的概念。
二者都可以解决异构网络的互联,实现世界上不同厂家生产的计算机之间的通信。
两个模型除具有这些基本的相似之处外,也有很多差别。
OSI参考模型的最大贡献就是精确地定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。而TCP/P模型在这三个概念上却没有明确区分,不符合软件工程的思想。
OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,通用性良好。但设计者在协议方面没有太多经验,不知道把哪些功能放到哪一层更好。TCP/P模型正好相反,首先出现的是协议,模型实际上是对已有协议的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合于任何其他非TCP/IP的协议栈。
TCP/IP模型在设计之初就考虑到了多种异构网的互联问题,并将网际协议(IP)作为一个单独的重要层次。OSI参考模型最初只考虑到用一种标准的公用数据网将各种不同的系统互联。OSI 参考模型认识到P的重要性后,只好在网络层中划分出一个子层来完成类似于TCP/IP模型中的P的功能。
OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/P模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式.但传输层支持无连接和面向连接两种模式。这个不同点常常作为考查点。
1.2.2.3 5层参考模型
学习计算机网络时,我们往往采取折中的办法,即综合OSI参考模型和TCP/P模型的优点,采用一种如图所示的只有5层协议的体系结构,即我们所熟知的物理层、数据链路层、网络层、传输层和应用层。
应用层:支持各种网络应用(FTP、SMTP、HTTP)
传输层:进程-进程的数据传输(TCP、UDP)
网络层:源主机到目的主机的数据分组路由与转发(IP、ICMP、OSPF等)
数据链路层:把网络层传下来的数据报组装成帧(Ethernet、PPP)
物理层:比特传输
2 物理层
2.1 通信基础
通信的目的是传送消息(消息:语音、文字、图像、视频等)。
2.1.1 基本概念
2.1.1.1 数据、信号和码元
数据(data):传送信息的实体,通常是有意义的符号序列。
信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。
数字信号/离散信号:代表消息的参数的取值是离散的。
模拟信号/连续信号:代表消息的参数的取值是连续的。
码元是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。1码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表0状态,另一种代表1状态。
2.1.1.2 信源、信道与信宿
信源:产生和发送数据的源头。
信宿:接收数据的终点。
信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。
从通信双方信息的交互方式看,可以有三种基本方式:
单工通信:只有一个方向的通信而没有反方向的交互,仅需要一条信道。
半双工通信/双向交替通信:通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道。
全双工通信/双向同时通信:通信双方可以同时发送和接受信息,也需要两条信道。
数据传输方式有串行传输和并行传输:
串行传输:将表示一个字符的8位二进制数按由低位到高位的顺序依次发送。速度慢,费用低,适合远距离
并行传输:将表示一个字符的8位二进制数同时通过8条信道发送。速度快,费用高,适合近距离
数据传输方式还可以分为:
同步传输:在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。在传送数据时,需先送出1个或多个同步字符,再送出整批的数据。
异步传输:异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达。传送数据时,加一个字符起始位和一个字符终止位。
2.1.1.3 速率、波特与带宽
速率也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
码元传输速率:别名码元速率、波形速率、调制速率、符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数),单位是波特(Baud)。1波特表示数字通信系统每秒传输一个码元
数字信号有多进制和二进制之分,但码元速率与进制数无关,只与码元长度T有关,即
信息传输速率:别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特/秒(b/s)。
若一个码元携带n bit的信息量,则M Baud的码元传输速率所对应的信息传输速率为M×n bit/s。
例:若2秒内传4800个码元,码元传输速率是多少?
答:2400B
带宽:
模拟信号系统中:当输入的信号频率高或低到一定程度,使得系统的输出功率成为输入功率的一半时(即-3dB),最高频率和最低频率间的差值就代表了系统的通频带宽,其单位为赫兹(Hz)。
数字设备中:表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”/单位时间内通过链路的数量,常用来表示网络的通信线路所能传输数据的能力。单位是比特每秒(bps)。
2.1.2 奈奎斯特定理与香农定理
发送信号波形收到现实中的信道(带宽受限、有噪声、干扰)而接收端无法识别的现象称为失真
影响失真程度的因素:
码元传输速率
信号传输距离
噪声干扰
传输媒体质量
信道带宽是信道能通过的最高频率和最低频率之差。如下图信道带宽=3300Hz-300Hz=3000Hz
码间串扰:失真的一种现象,即接收端收到的信号波形失去了码元之间清晰界限的现象。
2.1.2.1 奈奎斯特定理
奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为2W Baud,W是信道带宽,单位是Hz。若用V标识每个码元离散电平的数目,则极限数据率为
理想低通信道下的极限数据传输率()
根据奈氏准则,可以得到以下结论:
在任何信道中,码元传输的速率是有上限的。若传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的完全正确识别成为不可能。
信道的频带越宽(即能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输。
奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元能携带更多个比特的信息量,这就需要采用多元制的调制方法。
2.1.2.2 香农定理
噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。
信噪比=信号的平均功率/噪声的平均功率,常记为S/N,并用分贝(dB)作为度量单位,即:
信噪比()
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。
信道的极限数据传输速率()
对于香农定理,有以下结论:
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了。
只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输。
香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比它低不少。
从香农定理可以看出,若信道带宽W或信噪比S/N没有上限(不可能),那么信道的极限信息传输速率也就没有上限。
2.1.3 编码和调制
信道上传送的信号可以分为基带信号和宽带信号
基带信号:将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)。来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号。
宽带信号:将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输(宽带传输)。把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)
在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)
2.1.3.1 数字数据编码为数字信号
归零编码:在归零编码(RZ)中用高电平代表1、低电平代表0(或者相反),每个时钟周期的中间均跳变到低电平(归零),接收方根据该跳变调整本方的时钟基准,这就为传输双方提供了自同步机制。由于归零需要占用一部分带宽,因此传输效率受到了一定的影响。
非归零编码(NRZ)与RZ编码的区别是不用归零,一个周期可以全部用来传输数据。但NRZ编码无法传递时钟信号,双方难以同步,因此若想传输高速同步数据,则需要都带有时钟线。
反向非归零编码:反向非归零编码(NRZI)与NRZ编码的区别是用信号的翻转代表0、信号保持不变代表1。翻转的信号本身可以作为一种通知机制。这种编码方式集成了前两种编码的优点,既能传输时钟信号,又能尽量不损失系统带宽。USB 2.0通信的编码方式就是NRZI编码。
曼彻斯特编码:将一个码元分成两个相等的间隔,前一个间隔为低电平后一个间隔为高电平表示码元1;码元0则正好相反。也可以采用相反的规定。该编码的特点是在每一个码元的中间出现电平跳变,位中间的跳变既作时钟信号(可用于同步),又作数据信号,但它所占的频带宽度是原始的基带宽度的两倍。每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。
差分曼彻斯特编码:常用于局域网传输,其规则是:若码元为1,则前半个码元的电平与上一个码元的后半个码元的电平相同,若为0,则相反。该编码的特点是,在每个码元的中间,都有一次电平的跳转,可以实现自同步,且抗干扰性强于曼彻斯特编码
4B/5B编码:比特流中插入额外的比特以打破一连串的0或1,就是用5个比特来编码4个比特的数据,之后再传给接收方,因此称为4B/5B。编码效率为80%。只采用16种对应16种不同的4位码,其他的16种作为控制码(帧的开始和结束,线路的状态信息等)或保留。
2.1.3.2 数字数据调制为模拟信号
数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。
调幅+调相(QAM)
某通信链路的波特率是1200Baud,采用4个相位,每个相位有4种振幅的QAM调制技术,则该链路的信息传输速率是多少?
2.1.3.3 模拟数据编码为数字信号
计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化)。最典型的例子就是对音频信号进行编码的脉码调制(PCM),在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。它主要包括三步:抽样、量化、编码。
抽样:对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。为了使所得的离散信号能无失真地代表被抽样的模拟数据,要使用采样定理进行采样:采样频率信号最高频率
量化: 把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转换为离散的数字量。
编码:把量化的结果转换为与之对应的二进制编码。
2.1.3.4 模拟数据调制为模拟信号
为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式;模拟的声音数据是加载到模拟的载波信号中传输的。
2.1.4 数据交换方式
2.1.4.1 电路交换(Circuit Exchanging)
电路交换:在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。因此,电路交换技术分为三个阶段:连接建立、数据传输和连接释放。特点:独占资源,用户始终占用端到端的固定传输带宽。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。
电路交换优点:
传输时延小
数据顺序传送,无失序问题
实时性强,双方一旦建立物理通路,便可以实时通信,适用于交互式会话类通信。
全双工通信,没有冲突,通信双方有不同的信道,不会争用物理信道
适用于模拟信号和数字信号
控制简单,电路的交换设备及控制较简单
电路交换缺点:
建立连接时间长
线路独占,即使通信线路空闲,也不能供其他用户使用,信道使用效率低。
灵活性差,双方连接通路中的任何一点出了故障,必须重新拨号建立新连接,不适应突发性通信。
无数据存储能力,难以平滑通信量。
电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信
无法发现与纠正传输差错,难以在通信过程中进行差错控制。
2.1.4.2 报文交换(Message Exchanging)
报文:报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文交换无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发方式。
报文交换优点:
无需建立连接,无建立连接时延,用户可随时发送报文。
动态分配线路,动态选择报文通过的最佳路径,可以平滑通信量。
提高线路可靠性,某条传输路径发生故障,可重新选择另一条路径传输。
提高线路利用率,通信双方在不同的时间一段一段地部分占有这条物理通道,多个报文可共享信道。
提供多目标服务:一个报文可同时发往多个目的地址。
在存储转发中容易实现代码转换和速率匹配,甚至收发双方可以不同时处于可用状态。这样就便于类型、规格和速度不同的计算机之间进行通信。
报文交换缺点:
实时性差,不适合传送实时或交互式业务的数据。数据进入交换结点后要经历存储转发过程,从而引起转发时延。
只适用于数字信号。
由于报文长度没有限制,而每个中间结点都要完整地接收传来的整个报文,当输出线路不空闲时,还可能要存储几个完整报文等待转发,要求网络中每个结点有较大的缓冲区。为了降低成本,减少结点的缓冲存储器的容量,有时要把等待转发的报文存在磁盘上,进一步增加了传送时延。
2.1.4.3 分组交换(Packet Exchanging)
分组:大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet)。分组交换与报文交换的工作方式基本相同,都采用存储转发方式,形式上的主要差别在于,分组交换网中要限制所传输的数据单位的长度,一般选128B。发送节点首先对从终端设备送来的数据报文进行接收、存储,而后将报文划分成一定长度的分组,并以分组为单位进行传输和交换。接收结点将收到的分组组装成信息或报文。
分组交换优点:
无建立时延,无需为通信双方预先建立一条专用通信线路,用户可随时发送分组。
线路利用率高,通信双方在不同的时间一段一段地部分占有这条物理通道,多个分组可共享信道。
简化了存储管理。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。
加速传输,后一个分组的存储可以和前一个分组的转发并行操作;传输一个分组比一份报文所需缓冲区小,减少等待发送时间。
减少出错几率和重发数据量,提高可靠性,减少传输时延。
分组短小,适用于计算机之间突发式数据通信。
分组交换缺点:
尽管分组交换比报文交换的传输时延少,但仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。
每个分组都要加控制信息,一定程度上降低了通信效率,增加了处理的时间。
当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。
传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
从信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。
2.1.5 数据报与虚电路
2.1.5.1 数据报方式
源主机(A)将报文分成多个分组,依次发送到直接相连的结点(A)。
结点A收到分组后,对每个分组差错检测和路由选择,不同分组的下一跳结点可能不同。
结点C收到分组P1后,对分组P1进行差错检测,若正确则向A发送确认信息,A收到C确认后则丢弃分组P1副本。
所有分组到达主机B
数据报方式的特点:
数据报方式为网络层提供无连接服务1。发送方可随时发送分组,网络中的结点可随时接收分组。
同一报文的不同分组达到目的结点时可能发生乱序、重复与丢失。
每个分组在传输过程中都必须携带源地址和目的地址,以及分组号。
分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。
网络具有冗余路径,当某一交换结点或一段链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强,适用于突发性通信,不适于长报文、会话式通信。
2.1.5.2 虚电路方式
虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输和虚电路释放
虚电路建立:源主机发送“呼叫请求”分组并收到“呼叫应答”分组后才算建立连接。
数据传输:每个分组携带虚电路号,分组号、检验和等控制信息。
虚电路释放:源主机发送“释放请求”分组以拆除虚电路。
虚电路方式的特点:
虚电路方式为网络层提供连接服务2。源节点与目的结点之间建立一条逻辑连接,而非实际物理连接。
一次通信的所有分组都通过虚电路顺序传送,分组不需携带源地址、目的地址等信息,包含虚电路号,相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。
分组通过虚电路上的每个节点时,节点只进行差错检测,不需进行路由选择。
每个节点可能与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务。
致命弱点:当网络中的某个结点或某条链路出故障而彻底失效时,则所有经过该结点或该链路的虚电路将遭到破坏
2.2 传输介质
传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路。
传输媒体并不是物理层。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。但物理层规定了电气特性,因此能够识别所传送的比特流。传输介质可以分为导向性传输介质和非导向性传输介质
导向性传输介质:电磁波被导向沿着固体媒介(铜线/光纤)传播。
非导向性传输介质:自由空间,介质可以是空气、真空、海水等。
2.2.1 导向性传输介质
2.2.1.1 双绞线
双绞线是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成,绞合可以减少对相邻导线的电磁干扰。
为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP),无屏蔽层的双绞线就称为非屏蔽双绞线(UTP)。
双绞线价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几公里到数十公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号;对于数字传输,要用中继器将失真的信号整形。
2.2.1.2 同轴电缆
同轴电缆由导体铜质芯线、绝缘层、网状编织屏蔽层和塑料外层构成。按特性阻抗数值的不同,通常将同轴电缆分为两类:50Ω同轴电缆和75Ω同轴电缆。其中,50Ω同轴电缆主要用于传送基带数字信号,又称为基带同轴电缆,它在局域网中得到广泛应用;75Ω同轴电缆主要用于传送宽带信号,又称为宽带同轴电缆,它主要用于有线电视系统。
由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
2.2.1.3 光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频率大约是108MHz,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。
光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲;在接收端用光电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲。
光纤主要由纤芯(实心的)和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射,即光线碰到包层时候就会折射回纤芯、这个过程不断重复,光也就沿着光纤传输下去。
光纤可以分为单模光纤和多模光纤,其对比如下表
光纤的特点:
传输损耗小,中继距离长,对远距离传输特别经济。
抗雷电和电磁干扰性能好。
无串音干扰,保密性好,也不易被窃听或截取数据。
体积小,重量轻。
2.2.2 非导向性传输介质
无线电波:信号向所有方向传播,具有较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)。
微波:信号固定方向传播,微波通信频率较高、频段范围宽,因此数据率很高。
地面微波接力通信
卫星通信
红外线、激光:信号固定方向传播,把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再在空间中传播。
2.2.3 物理层接口特性
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理主要任务:确定与传输媒体接口有关的一些特性:
机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
电气特性:规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。
功能特性:指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
过程特性:定义各条物理线路的工作规程和时序关系。
2.3 物理层设备
2.3.1 中继器
中继器主要功能是功能对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。(再生数字信号)
中继器的两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。两端可连相同媒体,也可连不同媒体。中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。中继器两端的网段一定要是同一个协议。
网络标准中都对信号的延迟范围作了具体的规定(5-4-3规则3),因而中继器只能在规定的范围内进行,否则会网络故障。
2.3.2 集线器(多口中继器)
集线器的功能:对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一个共享式设备。集线器不能分割冲突域,连在集线器上的工作主机平分带宽
[1] 无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
[2] 连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接
[3] 在采用粗同轴电缆的10BASE5以太网规范中,互相串联的中继器个数不能超过4个,而且用4个中继器串联的5段通信介质中只有3段可以挂接计算机,其余两段只能用作扩展通信范围的链路段,不能挂计算机
3 数据链路层
3.1 数据链路层的功能
3.1.1 数据链路层基本概念
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
3.1.2 数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
为网络层提供服务。无确认无连接服务(适用于实时通信或误码率较低的通信信道,如以太网),有确认无连接服务(适用于误码率较高的通信信道,如无线通信),有确认面向连接服务(适用于通信要求较高的场合)。有连接一定有确认,即不存在无确认的面向链接的服务
链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
组帧。
流量控制。
差错控制(帧错/位错)。
3.1.3 帧定界、帧同步与透明传输
3.1.3.1 封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:
字符计数法:帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
字符(节)填充法:当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。
零比特填充法:在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。其保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
违规编码法:可以用“高-高”,“低-低”来定界帧的起始和终止。由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
3.1.3.2 透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
3.2 差错控制
概括来说,传输中的差错都是由于噪声引起的。
由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。解决办法:通常利用编码技术来解决。
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
冗余编码:在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
差错控制具体编码见计组2.1
3.3 流量控制与可靠传输机制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
滑动窗口有以下重要特性:
停止-等待协议:发送窗口大小=1,接收窗口大小=1;
后退N帧协议:发送窗口大小>1,接收窗口大小=1;
选择重传协议:发送窗口大小>1,接收窗口大小>1;
若采用n个比特对帧编号,那么发送窗口的尺寸WT应满足:。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
3.3.1 停止-等待流量控制
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
除了比特出差错,底层信道还会出现丢包1问题
“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。其操作简单,但信道利用率较低
信道利用率
信道利用率是指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。即
例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为( )。
L=960bit
3.3.2 后退N帧协议(GBN)
GBN发送方:
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方:
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
因连续发送数据帧而提高了信道利用率,重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。
1.数据链路层采用了后退N帧(GBN)协议,发送方已经发送了编号为0~7的帧。当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是( )。
重新发送4、5、6、7帧,即重发的帧数为4
2.主机甲与主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲、乙之间的单向传播时延是50ms,则甲可以达到的最大平均数据传输率约为( )。
若甲全发但没有接收到确认帧,则发送全部需要
甲发送第一个帧收确认帧的时间
3.3.3 选择重传协议(SR)
设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
SR发送方:
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR接收方:
SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。其他情况,就忽略该帧。
发送窗口最好等于接收窗口。(大了会溢出,小了没意义),即
数据链路层采用了选择重传(SR)协议,发送方已经发送了编号为0~3的帧。现已收到1号帧的确认,而0、2号帧依次超时,则发送方需要重传的帧数是( )。
重新发送0、2号帧
3.4 介质访问控制
传输数据使用的两种链路
点对点链路:两个相邻节点通过一个链路相连,没有第三者,应用:PPP协议,常用于广域网
广播式链路:所有主机共享通信介质,应用:早期的总线以太网、无线局域网,常用于局域网
3.4.1 信道划分介质访问控制
信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备。
当传输介质的带宽超过传输单个信号所需的带宽时,人们就通过在一条介质上同时携带多个传输信号的方法来提高传输系统的利用率,这就是所谓的多路复用,也是实现信道划分介质访问控制的途径。多路复用技术把多个信号组合在一条物理信道上进行传输,使多个计算机或终端设备共享信道资源,提高了信道的利用率。信道划分的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个结点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。
3.4.1.1 频分多路复用FDM
频分多路复用是一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。在物理信道的可用带宽超过单个原始信号所需带宽的情况下,可将该物理信道的总带宽分割成若千与传输单个信号带宽相同(或略宽)的子信道,每个子信道传输一种信号,这就是频分多路复用。
每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽。在实际应用中,为了防止子信道之间的千扰,相邻信道之间需要加入“保护频带”。频分多路复用的优点在于充分利用了传输介质的带宽,系统效率较高;由于技术比较成熟,实现也较容易。
3.4.1.2 时分多路复用TDM
时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。每个时间片由复用的一个信号占用,而不像FDM那样,同一时间同时发送多路信号。这样,利用每个信号在时间上的交叉,就可以在一条物理信道上传输多个信号。
就某个时刻来看,时分多路复用信道上传送的仅是某一对设备之间的信号:就某段时间而言,传送的是按时间分割的多路复用信号。但由于计算机数据的突发性,一个用户对已经分配到的子信道的利用率一般不高。统计时分多路复用(STDM,又称异步时分多路复用)是TDM 的一种改进,它采用STDM帧,STDM帧并不固定分配时隙,面按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片,因此可以提高线路的利用率。例如,线路传输速率为8000b/s,4个用户的平均速率都为2000b/s,当采用TDM方式时,每个用户的最高速率为2000b/s.而在STDM方式下,每个用户的最高速率可达8000b/s.
3.4.1.3 波分多路复用WDM
波分多路复用即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用
3.4.1.4 码分多路复用CDM
码分多路复用是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和 TDM不同,它既共享信道的频率,又共享时间。下面举一个直观的例子来理解码分复用。
实际上,更常用的名词是码分多址(Code Division Multiple Access.CDMA),1个比特分为多个码片/芯片( chip),每一个站点被指定一个唯一的m位的芯片序列,发送1时发送芯片序列(通常把o写成-1) 。发送1时站点发送芯片序列,发送o时发送芯片序列反码。
多个站点同时发送数据的时候,要求各个站点芯片序列相互正交,规格化内积为0。
两个向量到了公共信道上,线性相加。
数据分离:合并的数据和源站规格化内积。,
3.4.2 随机访问介质访问控制
3.4.2.1 ALOHA协议
纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想发就发
如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。超时后等一随机时间再重传。
时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
3.4.2.2 CSMA协议
载波监听多路访问协议CSMA(carrier sense multiple access)协议思想:发送帧之前,监听信道。
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
3.4.2.2.1 1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则一直监听,直到空闲马上传输。
如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
3.4.2.2.2 非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
3.4.2.2.3 p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。
忙则持续监听直到信道空闲再以p概率发送。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
3.4.2.3 CSMA/CD协议
载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上——总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据——半双工网络
CSMA/CD的工作流程:
适配器从网络层获得一个分组,封装成以太网帧,放入适配器的缓存,准备发送。
如果适配器侦听到信道空闲,那么它开始发送该帧。如果适配器侦听到信道忙,那么它持续侦听直至信道上没有信号能迓,然后开始发送该帧。
在发送过程中,适配器持续检测信道。若--直未检测到碰撞,则顺利地把这个帧发送完毕。若检测到碰撞,则中止数据的发送,并发送一个拥塞信号,以让所有用户都知道。
在中止发送后,适配器就执行指数退避算法,等待一段随机时间后返回到步骤2。
由图可知,至多在发送帧后经过时间就能知道所发送的帧有没有发生碰撞。因此把以太网端到端往返时间为称为争周期(也称冲突窗口或碰撞窗口)。
截断二进制指数规避算法:
确定基本退避(推迟)时间为争用期2𝜏。
定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。
从离散的整数集合中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即。
当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
第一次重传,k=1,r从{0,1}选; 重传推迟时间为0或2𝜏,在这两个时间中随机选一个; 若再次碰撞,则在第二次重传时,k=2,r从{0,1,2,3}选; 重传推迟时间为0或2𝜏或4𝜏或6𝜏,在这四个时间中随机选一个; 若再次碰撞,则第三次重传时,k=3,r从{0,1,2,3,4,5,6,7}选……
若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
最小帧长问题:帧的传输时延至少要两倍于信号在总线中的传播时延。
帧长()数据传输速率
最小帧长总线传播时延数据传输速率数据传输速率
3.4.2.4 CSMA/CA协议
载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)其工作原理如下
发送数据前,先检测信道是否空闲。
空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
接收端收到RTS后,将响应CTS(clear to send)。
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
CSMA/CD与CSMA/CA的异同点:
相同点:CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。
不同点:
传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。
载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。
3.4.3 轮询访问介质访问控制
轮询协议:主结点轮流“邀请”从属结点发送数据。
令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
轮询访问MAC协议/轮流协议/轮转访问MAC协议:基于多路复用技术划分资源。
网络负载重:共享信道效率高,且公平
网络负载轻:共享信道效率低
随机访问MAC协议: 用户根据意愿随机发送信息,发送信息时可独占信道带宽。会发生冲突
网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
网络负载重:产生冲突开销
信道划分介质访问控制(MAC Multiple Access Control )协议:既要不产生冲突,又要发送时占全部带宽。
3.5 局域网
3.5.1 局域网基本概念和体系结构
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。其特点有
覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。
通信延迟时间短,误码率低,可靠性较高。
各站为平等关系,共享传输信道。
多采用分布式控制和广播式通信,能进行广播和组播。
决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。
网络拓补
星型拓扑:中心节点是控制中心,任意两个节点间的通信最多只需两步,传输速度快,并且网络构形简单、建网容易、便于控制和管理。但这种网络系统,网络可靠性低,网络共享能力差,有单点故障问题。
环形拓扑:系统中通信设备和线路比较节省。有单点故障问题;由于环路是封闭的,所以不便于扩充,系统响应延时长,且信息传输效率相对较低。
总线型拓扑:网络可靠性高、网络节点间响应速度快、共享资源能力强、设备投入量少、成本低、安装使用方便,当某个工作站节点出现故障时,对整个网络系统影响小。
树型拓扑:易于拓展,易于隔离故障,也容易有单点故障。
传输介质
有线局域网:常用介质:双绞线、同轴电缆、光纤
无线局域网:常用介质:电磁波
介质访问控制方法
CSMA/CD:常用于总线型局域网,也用于树型网络
令牌总线:常用于总线型局域网,也用于树型网络,它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
令牌环:用于环形局域网,如令牌环网
局域网的分类
以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD.
令牌环网:物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。
FDDI(Fiber Distributed Data Interface)网:物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
ATM(Asynchronous Transfer Mode)网:较新型的单元交换技术,使用53字节固定长度的单元进行交换。
无线局域网(Wireless Local Area Network;WLAN):采用IEEE 802.11标准。
IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
3.5.2 以太网
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。以太网只实现无差错接收,不实现可靠传输。
以太网两个标准:
DIX Ethernet V2:第一个局域网产品(以太网)规约。
IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。
以太网提供无连接、不可靠的服务
无连接:发送方和接收方之间无“握手过程”。
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
3.5.2.1 10BASE-T以太网
10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T 采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。
物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。
采用曼彻斯特编码。
采用CSMA/CD介质访问控制。
3.5.2.2 适配器与MAC地址
计算机与外界有局域网的连接是通过通信适配器的。
网络接口板
网络接口卡NIC(network interface card)
NOW,不再使用单独网卡。
适配器上装有处理器和存储器(包括RAM和ROM)。
ROM上有计算机硬件地址MAC地址。
在局域网中,硬件地址又称为物理地址,或MAC地址。MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。
最常用的MAC帧是以太网V2的格式。
3.5.2.3 高速以太网
100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。支持全双工和半双工,可在全双工方式下工作而无冲突
吉比特以太网:在光纤或双绞线上传送1Gb/s信号。支持全双工和半双工,可在全双工方式下工作而无冲突。
10吉比特:10吉比特以太网在光纤上传送10Gb/s信号。只支持全双工,无争用问题。
3.5.3 IEEE 802.11
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
3.5.3.1 802.11的MAC帧头格式
3.5.3.2 无线局域网的分类
有固定基础设施无线局域网
无固定基础设施无线局域网的自组织网络
3.6 广域网
3.6.1 广域网的基本概念
广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
3.6.2 PPP协议
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。只支持全双工链路。
PPP协议应满足的要求
简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
封装成帧:帧定界符
透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
多种网络层协议:封装的IP数据报可以采用多种协议。
多种类型链路:串行/并行,同步/异步,电/光….
差错检测:错就丢弃。
检测连接状态:链路是否正常工作。
最大传送单元:数据部分最大长度MTU。
网络层地址协商:知道通信双方的网络层地址。
数据压缩协商
PPP协议的三个组成部分
一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
链路控制协议LCP:建立并维护数据链路连接。身份验证
网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
3.7 数据链路层设备
以太网交换机
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。
以太网交换机的两种交换方式:
直通式交换机:查完目的地址(6B)就立刻转发。延迟小,可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机:将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。延迟大,可靠性高,可以支持具有不同速率的端口的交换。
[1] 丢包:物理线路故障、设备故障、病毒攻击、路由信息
4 网络层
4.1 网络层的功能
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
路由选择与分组转发:选择最佳路径
异构网络互联:将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备相互连接起来,以构成更大的网络系统。
拥塞控制:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
4.2 IPv4
4.2.1 IPv4分组
4.2.1.1 IPv4分组的格式
首部长度:单位是4B,最小为5。
区分服务:指示期望获得哪种类型的服务。
总长度:占16位,首部+数据,单位是1B。
生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃。
协议:数据部分的协议。
协议:数据部分的协议。
首部检验和:只检验首部。
源IP地址和目的IP地址:32位。
可选字段:0~40B ,用来支持排错、测量以及安全等措施
填充:,全0,把首部补成4B的整数倍。
TCP的字段值为6,UDP字段值为173
4.2.1.2 IP数据报切片
链路层数据帧可封装数据的上限称为最大传送单元MTU
标识:同一数据报的分片使用同一标识。
中间位DF(Don’t Fragment):
DF=1,禁止分片
DF=0,允许分片
最低位MF(More Fragment):
MF=1,后面“还有分片”
MF=0,代表最后一片/没分片
片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位。除了最后一个分片,每个分片长度一定是8B的整数倍。
首部(20B) 数据部分(3800B)需要分片为长度不超过1420B的数据报片。
4.2.2 IPv4地址与NAT
4.2.2.1 IPv4地址
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。IP地址::={<网络号>,<主机号>}
有一些IP地址是不能用的,有其特殊的作用,如:
4.2.2.2 网络地址转换(NAT)
网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
此外,为了网络安全,划分出了部分IP地址和私有IP地址,私有IP地址网段如下:
路由器对目的地址是私有IP地址的数据报一律不进行转发。
分类的IP地址的弱点:
IP地址空间的利用率有时很低
两级IP地址不够灵活。
4.2.3 子网划分与子网掩码、CDR
4.2.3.1 子网划分
某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
4.2.3.2 子网掩码
路由器转发分组的算法:
提取目的IP地址
是否直接交付
特定主机路由
检测路由表中有无路径
默认路由0.0.0.0
丢弃,报告转发分组出错
4.2.3.3 无分类编址CIDR
无分类域间路由选择CIDR:
消除了传统的A类,B类和C类地址以及划分子网的概念。
CIDR记法:IP地址后加上“/”,然后写上网络前缀(可以任意长度)的位数。e.g. 128.14.32.0/20
融合子网地址与子网掩码,方便子网划分。
CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。
使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。方法:将网络前缀缩短(所有网络地址取交集)。
4.2.4 ARP、DCHP、ICMP
4.2.4.1 ARP协议
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。
ARP协议:完成主机或路由器IP地址到MAC地址的映射。
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封
装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源
主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。
ARP协议4种典型情况:
主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
4.2.4.2 DHCP协议
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
DHCP工作流程如下:
主机广播DHCP发现报文:试图找到网络中的服务器,服务器获得一个IP地址。
DHCP服务器广播DHCP提供报文:服务器拟分配给主机一个IP地址及相关配置,先到先得。
主机广播DHCP请求报文:主机向服务器请求提供IP地址。
DHCP服务器广播DHCP确认报文:正式将IP地址分配给主机。
4.2.4.3 ICMP协议
ICMP协议支持主机或路由器:包括差错(或异常)报告和网络探询,分部发送特定ICMP报文
ICMP差错报告报文(5种):
终点不可达(无法交付):当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
源点抑制(拥塞丢数据):当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
时间超过(TTL=0):当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
参数问题(首部字段有问题):当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
改变路由(重定向)(值得更好的路由):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
不应发送ICMP差错报文的情况:
对ICMP差错报告报文不再发送ICMP差错报告报文。
对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
对具有组播地址的数据报都不发送ICMP差错报告报文。
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
ICMP询问报文:
回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
掩码地址请求和回答报文
路由器询问和通告报文
ICMP的应用:
PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
4.3 IPv6
32位IPv4地址空间已分配殆尽,这时,可以采用更大地址空间的新版本的IPv6,从根本上解决地址耗尽问题
IPv6快速处理/转发数据报且支持QoS
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。
IPv6数据报格式如下图
版本:指明了协议版本,总是6。
优先级:区分数据报的类别和优先级。
流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。
下一个首部:标识下一个扩展首部或上层协议首部。
跳数限制:相当于IPv4的TTL。
IPv6的主要特点如下:
IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
IPv6支持即插即用(即自动配置),不需要DHCP协议。
IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
ICMPv6:附加报文类型“分组过大”。
IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
Pv6取消了协议字段,改成下一个首部字段。
IPv6取消了总长度字段,改用有效载荷长度字段。
IPv6取消了服务类型字段。
IPv6地址表示形式:
一般形式:冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
压缩形式:4BF5:0000:0000:0000:BA 5F:039A:000A:2176→4BF5:0:0:0:BA5F:39A:A:2176。
零压缩:一连串连续的0可以被一对冒号取代。双冒号表示法在一个地址中仅可出现一次。
IPv6基本地址类型:
单播:一对一通信,可做源地址+目的地址
多播:一对多通信,可做目的地址
任播:一对多中的一个通信,可做目的地址
IPv6向IPv4过渡的策略:
双栈协议:双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。
隧道技术:通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。
4.4 路由算法与路由协议
4.4.1 路由算法的分类
R1的路由表/转发表如下:
最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
路由算法可分为
静态路由算法(非自适应路由算法):管理员手工配置路由信息。优点:简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。缺点:路由更新慢,不适用大型网络。
动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项。优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。缺点:算法复杂,增加网络负担。
链路状态路由算法OSPF(全局性):所有路由器掌握完整的网络拓扑和链路费用信息。
距离向量路由算法RIP(分散性):路由器只掌握物理相连的邻居及链路费用。
4.4.2 分层次的路由选择协议
由于因特网规模很大且许多单位不想让外界知道自己的路由选择协议,但还想连入因特网,可以采用自治系统来解决
自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
路由选择协议
内部网关协议IGP:一个AS内使用的,如RIP、OSPF
外部网关协议EGP:AS之间使用的,如BGP
4.4.3 RIP协议及距离向量算法
4.4.3.1 RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离1记录(即一组距离)。RIP协议只适用于小互联网。
RIP是应用层协议,使用UDP传送数据。一个RIP报文最多可包括25个路由,如超过,必须再用一个RIP报文传送。
RIP协议的交换
仅和相邻路由器交换信息。
路由器交换的信息是自己的路由表。
每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟) 才能将此信息传送到所有的路由器,“慢收敛”。
4.4.3.2 距离向量算法
修改相邻路由器发来的RIP报文中所有表项
对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。
对修改后的RIP报文中的每一个项目,进行以下步骤:
R1路由表中若没有Net3,则把该项目填入R1路由表
R1路由表中若有Net3,则查看下一跳路由器地址:
若下一跳是X,则用收到的项目替换源路由表中的项目;
若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理。
若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。
返回
[图片上传失败...(image-b8a60f-1631929751814)]
考虑如图所示的子网,该子网使用了距离-向量算法,下面的向量刚刚到达路由器C:来自B的向量为(5,0,8,12,6,2);来自D的向量为(16,12,6,0,9,10);来自E的向量为(7,6,3,9,0,4)。经过测量,C到B、D和E的延迟分别为6,3和5,那么C到达所有结点的最短路径是( )。 A.(5,6,0,9,6,2) B.(11,6,0,3,5,8)C.(5,11,0,12,8,9)D.(11,8,0,7,4,9)
C到B:(11,6,14,18,12,8) C到D:(19,15,9,3,12,13) C到E:(12,11,8,14,5,9)
4.4.4 OSPF协议及链路状态算法
4.4.4.1 OSPF协议
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。OSPF最主要的特征就是使用分布式的链路状态协议。OSPF直接用IP数据报传送。
OSPF的特点:
使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。最终整个区域内所有路由器都得到了这个信息的一个副本。
发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等)。
只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
每隔30min,要刷新一次数据库中的链路状态。
由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议RIP 好得多。
OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
为了使OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。每一个区域都有一个32 位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过200 个。
4.4.4.2 链路状态路由算法
每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。
设置到它的每个邻居的成本度量metric。
构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息。
收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。
更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。只要一个路由器的链路状态发生变化:
泛洪发送【LSU链路状态更新分组】进行更新。
更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。
使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。
4.4.5 BGP协议
BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当BGP 发言人互相交换了网络可达性的信息后,各BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各AS 的较好路由。
与其他AS的邻站BGP发言人交换信息。
交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
发生变化时更新有变化的部分。
一个BGP 发言人与其他自治系统中的BGP 发言人要交换路由信息,就要先建立TCP 连接,即通过TCP传送,然后在此连接上交换BGP 报文以建立BGP 会话(session),利用BGP 会话交换路由信息。BGP是应用层协议,借助TCP传送。
BGP协议特点:
BGP 支持CIDR,因此BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
在BGP 刚刚运行时,BGP 的邻站是交换整个的BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
BGP-4的四种报文
OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。
UPDATE(更新)报文:通告新路径或撤销原路径。
KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。
NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。
4.4.6 各路由协议的比较
4.5 IP组播
4.5.1 IP数据报的三种传输方式
单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
广播:广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
组播:当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。
组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。
4.5.2 IP组播地址
IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。
组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
对组播数据报不产生ICMP差错报文。
并非所有D类地址都可以作为组播地址。
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的。
TCP/IP 协议使用的以太网多播地址的范围是:从01-00-5E-00-00-00到01-00-5E-7F-FF-FF .
收到多播数据报的主机,还要在IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
4.5.3 网际组管理协议IGMP
ICMP和IGMP都使用IP数据报传递报文。组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
IGMP工作的两个阶段:
某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。
只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。
4.5.4 组播路由选择协议
组播路由协议目的是找出以源主机为根节点的组播转发树。构造树可以避免在路由器之间兜圈子。对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。
组播路由选择协议常使用的三种算法:
基于链路状态的路由选择
基于距离-向量的路由选择
建立在任何路由器协议之上,称为协议无关的组播(PIM)
4.6 移动IP
4.6.1 移动IP的概念
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点:具有永久IP地址的移动设备。
归属代理(本地代理):一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
转交地址(辅地址):可以是外部代理的地址或动态配置的一个地址。
4.6.2 移动IP的通信过程
A刚进入外部网络:
获得外部代理的转交地址(外部代理广播报文)。
移动节点通过外部代理发送注册报文给归属代理(包含永久地址&转交地址)。
归属代理接收请求,并将移动节点的永久地址和转交地址绑定(以后到达该归属代理的数据报且要发往移动节点的数据报将被封装并以隧道方式发给转交地址),并返回一注册响应报文。
外部代理接收注册响应,并转发给移动节点
A移动到了下一个网络:
在新外部代理登记注册一个转交地址。
新外部代理给本地代理发送新的转交地址(覆盖旧的)。
通信
A回到了归属网络:
A向本地代理注销转交地址。
按原始方式通信。
4.7 网络层设备
4.7.1 路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
路由选择也称控制部分,根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
交换结构:根据转发表(路由表得来)对分组进行转发。
若收到RIP/OSPF分组等,则把分组送往路由选择处理机;若收到数据分组,则查找转发表并输出。
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
路由器(网络层)可以互联两个不同网络层协议的网段。 网桥(链路层)可以互联两个物理层和链路层不同的网段。 集线器(物理层)不能互联两个物理层不同的网段。
4.7.2 路由表与路由转发
路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。
[1] 距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
5 传输层
5.1 传输层概述
5.1.1 传输层的功能
传输层为应用层提供通信服务,使用网络层的服务,它是只有主机才有的层次
传输层的功能:
传输层提供进程和进程之间的逻辑通信。
复用1和分用2
传输层对收到的报文进行差错检测。
传输层的两种协议。
5.1.2 传输层的两个协议
面向连接的传输控制协议TCP
传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。
可靠,面向连接,时延大,适用于大文件。
无连接的用户数据报协议UDP
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
不可靠,无连接,时延小,适用于小文件。
5.1.3 传输层的寻址与端口
端口是传输层的SAP,标识主机中的应用进程。端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。端口号长度为16bit,能表示65536个不同的端口号。
服务端使用的端口号。它有分两类,最重要的一类是熟知端口号,数值为0-1023,给TCP/IP最重要的一些应用程序,让所有用户都知道。另一类是登记端口号,数值为1024-49151
客户端使用的端口号,数值为49152-65535,仅在客户进程运行时才动态选择。
5.2 UDP协议
5.2.1 UDP数据报
5.2.1.1 UDP概述
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点:
UDP是无连接的,减少开销和发送数据之前的时延。
UDP使用最大努力交付,即不保证可靠交付。
UDP是面向报文的,适合一次性传输少量数据的网络应用。
UDP无拥塞控制,适合很多实时应用。
UDP首部开销小,8B,TCP20B。
应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。
5.2.1.2 UDP首部格式
分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。
5.2.2 UDP校验
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。
17:封装UDP报文的IP数据报首部协议字段是17。
UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。
在发送端:
填上伪首部
全0填充检验和字段
全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
伪首部+首部+数据部分采用二进制反码求和
把和求反码填入检验和字段
去掉伪首部,发送
在发送端:
填上伪首部
伪首部+首部+数据部分采用二进制反码求和
结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。
5.3 TCP协议
5.3.1 TCP协议的特点
TCP是面向连接(虚连接)的传输层协议。
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
TCP提供全双工通信。
发送缓存:准备发送的数据&已发送但尚未收到确认的数据
接收缓存:按序到达但尚未被接受应用程序读取的数据&不按序到达的数据
TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流3。
5.3.2 TCP报文段
序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B位单位,即1个数值是4B。
紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。
复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。
同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。
终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。
检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6。
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认…
5.3.3 TCP连接管理
TCP连接传输三个阶段:连接建立、数据传送、连接释放
5.3.3.1 TCP连接的建立
TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。
假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器)上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与服务器上某个进程之间的连接,客户中的TCP会用以下步骤与服务器中的TCP建立一条TCP连接:
客户端发送连接请求报文段,无应用层数据。SYN=1,seq=x(随机)
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。SYN=1,ACK=1,seq=y(随机),ack=x+1
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。SYN=0,ACK=1,seq=x+1,ack=y+1
服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于收到SYN洪泛攻击
SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。
5.3.3.2 TCP连接的释放
参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)将被释放
客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。FIN=1,seq=u
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了——半关闭状态。ACK=1,seq=v,ack=u+1
服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。FIN=1,ACK=1,seq=w,ack=u+1
客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。ACK=1,seq=u+1,ack=w+1
5.3.4 TCP可靠4传输
TCP实现可靠传输的机制包括校验、序号、确认和重传,其中校验与UDP校验一样,增加伪首部
序号
一个字节占一个序号。序号字段指的是一个报文段第一个字节的序号。
确认
TCP首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号。如果接收方B已收到第一个报文段,此时B希望收到的下一个报文段的数据是从第3个字节开始的,那么B发送给A的报文中的确认号字段应为3。发送方缓存区会继续存储那些已发送但未收到确认的报文段,以便在需要时重传。TCP默认使用累计确认
重传
确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。超时重传
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。
冗余ACK(冗余确认):每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。
发送方已发送1,2,3,4,5报文段 接收方收到1,返回给1的确认(确认号为2的第一个字节) 接收方收到3,仍返回给1的确认(确认号为2的第一个字节) 接收方收到4,仍返回给1的确认(确认号为2的第一个字节) 接收方收到5,仍返回给1的确认(确认号为2的第一个字节) 发送方收到3个对于报文段1的冗余ACK:认为2报文段丢失,重传2号报文段快速重传
5.3.5 TCP流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
TCP利用滑动窗口机制实现流量控制。发送窗口大小可以动态变化
A向B发送数据,连接建立时,B告诉A:“我的rwnd=400(字节)”,设每一个报文段100B,报文段序号初始值为1。
TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段。接收方收到探测报文段时给出现在的窗口值。
若窗口仍然是0,那么发送方就重新设置持续计时器。
5.3.6 TCP拥塞控制
拥塞控制是指防止过多的数据注入网络,保证网络中的路由器或链路不至过载。
出现拥塞的条件:对资源需求的总和>可用资源
网络中有许多资源同时呈现供应不足→网络性能变坏→网络吞吐量将随输入负荷增大而下降
发送方在确定发送报文段的速率时,既要根据接收方的接收能力,又要从全局考虑不要使网络发生堵塞,因此,TCP协议要求发送方维护以下两个窗口:
接收窗口rwnd:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
拥塞窗口cwnd:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
发送窗口的上限值应取接收窗口rwnd和拥塞窗口较小的一个,即
发送窗口的上限值
5.3.6.1 慢开始和拥塞避免
一个传输轮次:指发送了一批报文段并收到它们的确认的时间。或一个往返时延RTT。或开始发送一批拥塞窗口内的报文段到开始发送下一批拥塞窗口内的报文段的时间。
5.3.6.2 快重传和快恢复
[1] 复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
[2] 分用:传输层从网络层收到数据后交付指明的应用进程。
[3] 流:流入到进程或从进程流出的字节序列。
[4] 可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。
6 应用层
6.1 网络应用模型
应用层对应用程序的通信提供服务。
应用层的功能:
文件传输、访问和管理
电子邮件
虚拟终端
查询服务和远程作业登录
应用层的重要协议:
FTP
SMTP、POP3
HTTP
DNS
网络应用模型分为客户/服务器(Client/Server)模型和P2P(Peer-to-Peer)模型
6.1.1 客户/服务器(C/S)模型
服务器:提供计算服务的设备。
永久提供服务
永久性访问地址/域名
客户机:请求计算服务的主机。
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不与其他客户机直接通信
应用:Web,文件传输FTP,远程登录,电子邮件
6.1.2 P2P模型
P2P模型的思想是整个网络中的传输内容不再保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权力和义务都是大体对等的
不存在永远在线的服务器
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
每个主机既可以提供服务,也可以请求服务
可扩展性好
网络健壮性强
6.2 域名解析系统DNS
DNS服务的作用:将域名解析成IP地址。
6.2.1 层次域名空间
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,而各标号之间用点(“.”)隔开。一个典型的例子如图6.3所示,它是王道论坛用于提供WWW服务的计算机( web服务器)的域名,它由三个标号组成,其中标号com是顶级域名,标号cs.kaoyan是二级域名,标号www是三级域名。
6.2.2 域名服务器
根域名服务器:根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的.P地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。
顶级域名服务器:这些域名服务器负贵管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址
权限域名服务器:每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。
本地域名服务器::当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
6.2.3 域名解析过程
6.3 文件传输协议FTP
文件传送协议FTP(File Transfer Protocol)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。FTP使用TCP实现可靠传输。
FTP是基于客户/服务器(C/S)的协议。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP 协议提供服务,进行文件传送的计算机就是FTP 服务器。连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
控制连接始终保持
数据连接保持一会
是否使用TCP 20端口建立数据连接与传输模式有关
主动方式使用TCP 20端口
被动方式由服务器和客户端自行协商决定(端口>1024)
FTP传输模式
文本模式:ASCII模式,以文本序列传输数据;
二进制模式:Binary模式,以二进制序列传输数据。
6.4 电子邮件
6.4.1 电子邮件的信息格式
6.4.2 电子邮件的组成结构
电子邮件收发过程如下:
发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP把邮件传送给发送端邮件服务器。
发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
运行在发送端邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起建立TCP连接。
TCP连接建立后,SMTP客户进程开始向远程SMTP服务器进程发送邮件。当所有待发送邮件发完后,SMTP就关闭所建立的TCP连接。
运行在接收端邮件服务器中的 SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱,等待收信人在方便时进行读取。
收信人打算收信时,调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。
6.4.3 简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。建立在TCP连接之上,端口号为25,基于C/S模型负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
SMPT分为三个阶段
连接建立
SMTP服务器若有能力接收邮件,回答“250 OK”,否则,回答“421 Service not available”
邮件发送
建立连接后,就可以开始传送邮件,邮件的传送从MAIL命令开始,MAIL命令后有发件人的地址。每发送一个PCRT命令,都应该有响应的信息从SMPT服务器返回,如250 OK或500 No such user here(无此用户)
连接释放
邮件发完,SMTP客户发送QUIT命令,SMTP服务器返回“221”,表示同意释放TCP连接。
6.4.4 多用途国际邮件扩充(MIME)
SMTP的缺点:
SMTP不能传送可执行文件或者其他二进制对象。
SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
SMTP服务器会拒绝超过一定长度的邮件。
通过MIME可以使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。使得传输内容丰富多彩
6.4.5 POP3和IMAP
邮局协议POP3基于TCP连接,端口号为110应用C/S模型
POP3工作方式有两种
下载并保留(在服务器)
下载并删除
网际报文存取协议IMAP
IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)。
6.5 万维网(WWW)
6.5.1 WWW的概念与组成结构
万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
统一资源定位符URL唯一标识资源(文字、视频、音频…)用户通过点击超链接(http://www.baidu.com)获取资源,这些资源通过超文本传输协议(HTTP)传送给使用者。
万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
6.5.2 超文本传输协议HTTP
6.5.2.1 HTTP的操作过程
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
具体过程:
浏览器分析URL
浏览器向DNS请求解析IP地址
DNS解析出IP地址
浏览器与服务器建立TCP连接
浏览器发出取文件命令
服务器响应
释放TCP连接
浏览器显示
6.5.2.2 HTTP特点
HTTP协议是无状态的。但是在实际工作中,一些万维网站点常常希望能够识别用户。HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。
Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456”)的访问记录。提供个性化服务
HTTP的连接方式:
持久连接Keep-alive
非流水线
流水线
非持久连接Close
6.5.2.3 HTTP的报文结构
HTTP是面向文本的,因此报文中的每个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。有两类HTTP报文:
请求报文:从客户向服务器发送的请求报文
响应报文:从服务器到客户的回答
开始行:区分是请求报文还是响应报文。
首部行:用来说明浏览器、服务器或报文主体的一些信息
实体主体:在请求报文中一般不用这个字段、响应报文也可能没用这个字段
状态码:
1xx表示通知信息的,如请求收到了或正在处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须采取进一步的行动。
4xx表示客户的差错,如请求中有错误的语法或不能完成。
5xx表示服务器的差错,如服务器失效无法完成请求。