Appearance
计网
一、计算机网络体系结构
知识框架
- 概述:计算机网络的概念、组成与功能,计算机网络分类,计算机网络性能指标
- 体系结构与参考模型:网络协议、接口、服务的概念,ISO/OSI参考模型和TCP/IP模型
- https://zhuanlan.zhihu.com/p/665210369
一、计算机网络概述
计算机网络的概述
- 计算机网络是一些互联的的计算机系统组成的集合,通过通信设备与线路连接起来,实现资源共享和信息传递。
- 计算机网络发展过程中的三个分类
- 广义观点:低阶阶段,能实现资源共享就是计算机网络;
- 资源共享观点:目的是共享资源,由不同地理位置的多台计算机组成,网络中的计算机必须遵循统一准则--网络协议,这个定义符合目前计算机网络的基本特征;
- 用户透明观点:为用户自动管理资源的网络操作系统,整个网络就像一个大的计算机,使用网络就像使用一台超级计算机一样,这是描述了一个分布式系统,是网络未来发展追求;
计算机网络的组成
- 从组成部分上看,主要由硬件、软件、协议三大部分组成,缺一不可;
- 硬件主要由:主机、通信链路(双绞线、光纤)、交换设备(路由器、交换机)、通信处理机(网卡)组成;
- 软件主要包括:各种实现资源共享的软件、和各种工具软件(操作系统、聊天程序、邮件收发程序等),软件部分多属于硬件层;
- 协议:是计算机网络的核心,如同交通规则制约汽车驾驶一样。协议规定了网络传输数据时所遵循的规范;
- 从工作方式上看
- 核心部分:由大量的网络和连接这些网络的路由器组成,为边缘系统提供连通性和交换服务;
- 边缘部分:由连上因特网的主机组成,用来通信和资源共享;
- 从功能组成上看
- 通信子网:由各种传输介质、通信设备和相应的网络协议组成;
- 资源子网:实现资源共享功能的设备及其软件的集合;
- 从组成部分上看,主要由硬件、软件、协议三大部分组成,缺一不可;
计算机网络的五大功能
- 数据通信:最基本最主要的功能,用来实现计算机之间各种信息的传输;
- 资源共享:可以是软件、数据、硬件共享,使计算机网络中的资源互通有无,分工协作,提供软件、数据、硬件资源利用率;
- 分布式处理:分布式处理计算任务,提高整个系统利用率;
- 提高可靠性:网络中的各台计算机可以通过网络互为替代机;
- 负载均衡:将工作任务均衡地分配给计算机网络中的各台计算机;
计算机网络的分类
- 按分布范围分类
- 广域网(WAN):提供长距离通信,广域网是因特网的核心部分,连接广域网的各节点交换机的链路一般都是高速链路,有较大通信容量;
- 城域网(MAN):范围5-50km,城域网大多采用以太网技术,因此有时也常并入局域网的讨论范围;
- 局域网(LAN):传统上,局域网使用广播技术,而广域网使用交换技术;
- 个人局域网(PAN):用无线技术连接起来的网络,覆盖区域的直径为10m;
- 按传输技术分类
- 广播式网络:所有联网计算机都共享一个公共通信信道;局域网基本采用广播式通信技术。广域网中的无线、卫星通信网络采用广播式通信技术;
- 点对点网络:每条物理线路连接一对计算机。无直接连接的两台主机需要通过中间结点进行接收和转发,直到目的结点;
- 广域网基本采用点对点式网络。是否采用转发与路由选择机制是点对点式网络与广播式网络的主要区别;
- 按拓扑结构分类
- 网络拓扑结构是指由网中结点(路由器、主机)与通信线路(网线)之间的几何关系(如总线形、环形)表示的网络结构,主要指通信子网的拓扑结构;
- 总线型网络:用单根线把计算机连接起来。优点是增减结点方便,节省线路。缺点是高负载时通信效率不高;
- 星型网络:每个计算机都以单独的线路与中央设备(交换机或路由器)相连;
- 环形网络:所有计算机接口设备连成一个环,最典型的例子是令牌环局域网;
- 网状网络:每个结点至少有两条路径与其他结点相连,多用在广域网中;
- 按使用者分类
- 公用网:电信公司出资建造的大型网络,提供给缴纳费用的大众使用;
- 专用网:满足某部门需要而建设的专有网络,例如铁路、电力、军队等;
- 按交换技术分类
- 交换技术指各台主机之间为交换信息所采用的数据格式和交换方式;
- 电路交换网络:将整个报文以比特流连续的从源点直达终点,例如传统电话网络。优点是数据直接传输、时延小。缺点是线路利用率低;
- 报文交换网络:
- 用户数据加上源地址、目的地址、校验码等辅助信息,封装成报文,整个报文传送到相邻结点,在转发给下一个结点,重复这个过程直到目的结点;
- 优点是可是实现不同链路之间不同数据传输速率的转换,可以实现格式转换,可以一对多、多对一的访问。缺点是增大了资源开销;
- 分组交换网络(包交换网络):主流网络都是分组交换网络
- 将数据分成较短的固定长度的数据块,在每个数据块上加上源地址、目的地址、校验码等辅助信息组成分组,以存储-转发方式传输;
- 特点是单个分组只是报文的一部分,具备报文交换网络的优点,分组交换网络还具有自身的优点。包的平均延时更小,网络占用的平均缓冲区更少;
- 按传输介质分类
- 可分为有线和无限两大类
- 有线网络又分为:双绞线网络、同轴电缆网络
- 无限网络分为:蓝牙、微波、无线电等类型
- 按分布范围分类
计算机网络的标准化工作
- 因特网的所有标准都以RFC(Request For Comments)的形式在因特网上发布,但不是每个RFC都是因特网标准;
- 国际上三类制定相关网络标准的组织主要有如下3个:
- 国际标准化组织(ISO):制定的主要网络标准有OSI参考模型、HDLC等;
- 国际电信联盟(ITU):
- 国际电气电子工程师协会(IEEE):世界上最大的专业技术团体。IEEE在通信领域最著名的研究成果是802标准;
计算机网络的性能指标
- 性能指标从不同方面度量计算机网络的性能,常用指标如下:
- 带宽:本来是表示通信线路允许通过的信号频带范围,单位是赫兹(Hz)。而在计算机网络中表示网络通信线路所能传送数据的能力,是数字信道所能传送的最高数据传输速率,单位是比特/秒(b/s)
- 时延:指数据(一个报文或分组)从网络的一端传送到另一端所需要的总时间,由一下四个部分组成:
- 发送时延:从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕的时间,也称传输时间。
- 传播时延:电磁波在信道中传播一定的距离需要花费的时间,既一个比特从链路的一端传播到另一端所需的时间。
- 处理时延:数据在交换结点所进行的一些必要处理所花费的时间,包括进行差错检验和查找适当路由的时间;
- 排队时延:分组在进入路由器后要在输入队列中排队和输出队列中排队等待的时间;
- 处理时延和排队时延在做题时一般可忽略不计。提高数据的发送速率只是为了减少数据的发送时延;
- 时延带宽积:发送端发送的第一个比特即将达到终点时,发送端已经发送了多少个比特,也称以比特为单位的链路长度;用一个圆形管道举例,时延带宽积=管道中可以容纳的比特数、管道长度=传播时延、横截面积就是带宽;
- 往返时延(RTT):从发送端发出一个短分组,到发送端收到来自接收端的确认,总共经历的时延。包括经过中间结点的处理、排队及转发数据时的发送时延;
- 吞吐量:指单位时间内通过某个网络(或接口)的数据量。吞吐量受网络带宽速率的限制;
- 速率(数据传输速率):连接到计算机网络上的主机在数字信道上传送数据的速率,单位为b/s(比特/秒,也写为bps),数据率较高时可以是kb/Mb/Gb每秒,也称为带宽;
- 信道利用率:某一信道有百分之多少的时间是有数据通过的,信道利用率=有数据通过时间/(有无数据通过时间);
网络体系结构与参考模型
- 网络分层结构
- 网络协议、接口、服务的概念
- 协议:规则的集合,明确规定了所交换数据的格式及有关的同步问题。完整的协议通常具有线路管理(建立、释放连接)、差错控制、数据转换等功能;
- 接口:同一结点内相邻两层间交换信息的连接点,每层只能为相邻的层次之间定义接口;
- 服务:是指下层为紧邻的上层提供的功能调用,上层使用下层所提供的服务时必须与下层交换一下命令,这些命令在OSI模型中称为服务原语;
- 三者之间的关系:只有那些能够被高一层实体看得见的功能才称为服务。
- 计算机网络提供的三种服务分类
- 面向连接服务与无连接服务:
- 通信前双方必须先建立连接,分配相应的资源(如缓冲区),分为建立连接、数据传输和连接释放三个阶段;
- 无连接服务只保证尽最大努力交付,并不保证可靠性,需要发送数据时带上有目的地址的包(报文分组)传送到线路上,由系统选定线路传输;
- 可靠服务和不可靠服务
- 可靠服务具有纠错、检错、应答机制,能保证数据正确、可靠地送到目的地。
- 不可靠之网络只是尽量正确、可靠地传送,不保证数据正确、可靠地送到目的地,是一种尽力而为的服务。其网络的正确、可靠地由应用来保障;
- 有应答服务和无应答服务
- 有应答服务:指接收方在收到数据后向发送方给出相应的应答,改应答由传输系统内部自动实现,不由用户实现,例如文件传输服务就是应答服务。
- 无应答服务:指接收方在收到数据后不用向发送方给出相应的应答。例如www服务,客户端收到数据后无需回应服务端;
- 面向连接服务与无连接服务:
- ISO/OSI参考模型和TCP/IP模型
- OSI参考模型(开放系统互联),
- 由国际标准化组织(ISO)提出,共七层,第三层统称为
通信子网,高三层统称为资源子网。 - 物理层:
- 传输单位为比特,透明地传输原始比特流。定义物理终端和数据通信设备的物理与逻辑连接方法。接口标准有EIA-232C、CCITT等;
- 物理层主要涉及通信链路与通信结点的连接需要的一些电路接口,物理层规定了这些接口的参数,例如笔记本电脑上的网线接口。
- 物理层也规定了通信链路上传输的信号的意义和电气特征,例如规定信号A=0,当收到信号A时就知道接收到的是数字0。
- 传输信息利用的一些物理媒体,例如光缆、双绞线、无线信道不是物理层协议内的,有人把物理媒体当做第0层;
- 数据链路层:
- 传输单位是帧,任务是将网络层传来的IP数据报组装成帧,功能包括差错控制、流量控制、传输控制、封装成帧等;
- 协议有SDLC、HDLC、PPP、STP和帧中继等;
- 网络层
- 传输单位是数据报,关注的是通信子网和运行控制,主要是把网络层的协议数据单元(分组)从源端传到目的端。关键问题是对分组进行
路由选择,并实现流量控制、拥塞控制、差错控制和网络互联等功能; - 根据网络的情况,用相应的路由算法计算出一条合适的路径,使这个分组可以顺利到达目标结点;
- 流量控制和数据链路层的流量控制含义一样,都是协调A的发送率和B的接受率;
- 拥塞控制控制是结点来不及接收分组而要丢弃大量分组情况,那么网络就处于拥塞状态,网络层就要采取一定的措施来缓解这种拥塞;
- 互联网是有大量路由器相互连接起来的,互联网的主要网络层协议是无连接的网络协议和许多路由选择协议组成;
- 协议有IP、IPX、ICMP、ARP、RARP和OSPF等;
- 传输单位是数据报,关注的是通信子网和运行控制,主要是把网络层的协议数据单元(分组)从源端传到目的端。关键问题是对分组进行
- 传输层
- 传输单位是报文段(TCP)或用户数据报(UDP),负责主机两个进程之间的通信,功能是为端到端提供可控的传输服务,为端到端提供流量控制、差错控制、数据传输管理等服务;
- 传输层提供端到端的通信(端口),数据链路层提供点到点的通信(IP),两者不同;
- 使用传输层的服务,高层用户可以直接进行端到端的数据传输,从而忽略通信子网的存在;
- 由于传输层具有复用和分用的功能,多个应用层进程可同时使用下面传输层的服务;
- 协议有TCP和UDP;
- 会话层
- 负责管理主机间的会话进程,包括建立、管理、终止进程间的会话;
- 表示层
- 主要处理在两个通信系统中不同表示方法的数据和信息之间能互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式,加密、解密也是会话层提供的数据表示变换功能;
- 应用层
- 采用不同的应用协议来解决不同类型的应用要求,因此应用层是最复杂的一层,使用的协议也最多;
- 协议FTP、HTTP、SMTP
- 由国际标准化组织(ISO)提出,共七层,第三层统称为
- TCP/IP模型,得到广泛应用,是事实上的国际标准。
- 网络接口层:和OSI的物理层和数据链路层功能类似,它表示与物理网络的接口,只指出主机必须使用某种协议与网络连接,以便在其上传递IP分组,具体的物理网络可以是各种类型的;
- 网际层(主机-主机):是TCP/IP体系结构的关键部分,和OSI的网络层在功能上非常相似。定义了标准的分组格式和协议,即IP。
- 传输层(进程-进程):和OSI的传输层在类似;
- 应用层(用户-用户):包含所有高层协议;
- 两种模型的比较
- OSI模型符合面向对象的设计思想,TCP/IP在服务、协议和接口这三个概念上没有明确区分,不符合软件工程的思想;
- OSI模型没有偏向于任何特定的协议,通用性好。TCP/IP模型不适合与其它任何非TCP/IP的协议栈;
- OSI模型只是在网络层中划分出一个子层来完成TCP/IP模型中IP的功能,TCP/IP模型设计之处就将网际协议(IP)作为一个单独的重要层次;
- OSI模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,在网际层只有一种面向无连接的通信模式,
- 在传输层支持无连接和面向连接的通信,两者在网络层和传输层刚好相反;
- OSI模型和TCP/IP模型都有不完美,对二者的讨论和批评都很多。
- 学习计算机网络时,往往采用折中的办法,综合OSI模型和TCP/IP模型的优点,采用一种只有5层协议的体系结构;
- OSI参考模型(开放系统互联),
二、物理层
通信基础
- 基本概念
- 数据、信号与码元
- 数据:是指传送信息的实体;
- 信号:是数据的电气或电磁表现,是数据在传输过程中的存在形式;数据和信号都可以用“模拟的”或“数字的”来修饰;
- 数据传输方式可以分为串行和并行传输
- 串行传输:指1比特1比特的按照时间顺序传输;
- 并行传输:指若干比特通过多条通信信道同时传输;
- 码元:
- 是指用一个固定时长的信号波形表示一位k进制数字,代表不同数值的基本波形,是数字通信中数字信号的计量单位;
- 用二进制表示时只有两种码元,一种代表0状态,另一种代表1状态;一个码元对应的二进制位数是有限的;
- 信源、信道与信宿
- 一个数据通信系统主要划分为信源、信道与信宿这三部分;
- 信源:是产生和发送数据的源头;
- 信道:
- 信道是信号的传输媒介,发送端发出的信息需要通过变换器换成适合于在信道上传输的信号;
- 实际的通信系统大多是双向的,包含一条发送信道和一条接收信道,信道可以进行双向通信;
- 信道按传输信号形式的不同可以分为:模拟信号的模拟信道、传送数字信号的数字信道;
- 信道上传送的信号有:
- 基带信号:将数字信号1和0直接用两种不同的电压表示,然后送到数字信道上传输(称为基带传输);
- 宽带信号:将基带信号进行调制后形成频分复用模拟信号,然后送到模拟信道上传输(称为宽带传输);
- 信宿:是接收数据的终点;
- 通信双方信息交互的三种基本方式
- 单向通信
- 半双工通信
- 全双工通信
- 一个数据通信系统主要划分为信源、信道与信宿这三部分;
- 速率、波特与带宽
- 码元传输速率:也称波特率,表示单位时间内数字通信系统所传输的码元个数,单位是波特(Baud),1波特表示数字通信系统每秒传输一个码元;
- 信息传输速率:也称信息速率、比特率,表示单位时间内数字通信系统所传输的二进制码元个数(既比特数),单位是比特/秒(b/s);
- 波特和比特是两个不同的概念;
- 带宽:原指信号具有的频带宽度,单位是赫兹(Hz),带宽与数据率存在数值上的互换关系,因此带宽表示单位时间内两点之间网络能通过的最高数据率;此时单位是b/s;
- 数据、信号与码元
- 奈氏准则与香农定理
- 奈奎斯特定理,也称奈氏准则
- 规定再理想低通(没有噪声、带宽有限)的信道中,为了避免“码间干扰”,限制码元传输速率为2W波特,W是理想信道的带宽;
- 码间干扰:信道能通过的频率范围是有限的,信号中的许多高频分量往往不能通过信道,否则在传输中会衰减,导致接收端收到的波形失去码元之间的清晰界限;
- 对于奈氏准则有以下结论:
- 在任何信道中,码元传输速率是有上限的。超过这个上线就会出现“码间干扰”问题;
- 信道的频带越宽,就可以用更高的速率进行码元的有效传输;
- 码元传输受奈氏准则的制约,因为奈氏准则给出了码元传输速率的限制,但并未对信息传输给出限制;
- 香农定理
- 给出了带宽受限且有高于高斯白噪声干扰的信道的极限数据传输速率,用这个速率传输时,可以做到不产生误差;
- 香农定理有以下结论:
- 信道的带宽或信道中的信噪越大,信息的极限传输速录越高;
- 对一定的传输带宽和一定的信噪比,信息传输速率的上限是确定的;
- 只要信息传输速率低于信道传输速率,就能实现无差错的传输;
- 香农定理得出的是极限信息传输速率,实际信道能达到的传输速率要比它低不少;
- 奈奎斯特定理和香农定理的区别:
- 奈奎斯特定理:只考虑了带宽与极限码元传输速率的关系,香农定理考虑了带宽和信噪比;
- 奈奎斯特定理,也称奈氏准则
- 编码与调制
- 数据无论是数字的还是模拟的,为了传输都必须转变成信号;
- 把数据变为“模拟信号”的过程称为调制;
- 把数据变为“数字信号”的过程称为编码;
- 信号是数据的具体表现形式,它和数据有一定的关系,但又和数据不同,就形成了下列4种编码方式:
- 数字数据编码为数字信号
- 用什么样的数字信号表示0和1就是所谓的编码,编码的规则有多种,只要能有效的把0和1区分开就行,常用的数字数据编码有以下几种:
- 归零编码(RZ):用高电平表示1,低电平表示0(或者相反),每个时钟周期的中间均跳变到低电平(归零),接收双方根据跳变调整时钟,也有自动同步机制;
- 非归零编码(NRZ):
- 反向非归零编码(NRZI)
- 曼彻斯特编码(Manchester Encoding):
- 将一个码元分成两个相等的间隔,前一个为高电平,后一个为低电平码元1,码元0的表示方法则正好相反;
- 以太网使用的编码方式就是曼彻斯特编码;
- 查分曼斯特编码:常用于局域网传输,规则是若码元为1,则前半个码元的电平与上一码元的后半个码元的电平相同,若码元为0,则情况相反;
- 4B/5B编码:将准备发送数据流的每4位作为一组,按照4B/5B编码规则将其转换成相应的5位码;
- 数字数据调制为模拟信号
- 数字数据调制技术用于在接收端和发送端将数字信号转换成模拟信号,基本的调制方法有如下4种:
- 幅移键控(ASK):容易实现但抗干扰能力差,通过改变载波信号的“振幅”来表示数字信号1和0,而载波的“频率”和相位都不改变;
- 频移键控(FSK):容易实现但抗干扰能力强,通过改变载波信号的“频率”来表示数字信号1和0,而载波的“振幅”和相位都不改变。目前应用广泛;
- 相移键控(PSK):通过改变载波信号的“相位”来表示数字信号1和0,而载波的振幅和相位都不改变。又分为绝对调和和相对调和;
- 正交振幅调制(QAM):在频率相同的前提下,将ASK和PSK结合起来,形成叠加信号;
- 模拟数据编码为数字信号
- 这种编码方式最典型的例子就是用户对音频信号进行编码的脉码调试(PCM),主要包括三个步骤:采样、量化和编码;
- 采样定理:
- 在通信领域,带宽是指信号最高频与最底频之差,单位为Hz。采样定理也称为奈奎斯特定理;
- 采用是指对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号;
- 量化:是把采样取得的电平幅值按照一定的分级标度转换为对应的数字值并取整,采样和量化的实质就是分隔和转换;
- 编码:是把量化的结果转换为与之对应的二进制编码;
- 模拟数据调制为数字信号
- 电话机和本地交换机采用这种模拟数据调制为模拟信号的编码方式。这种方式可以使用频分复用技术(FDM),可以充分利用带宽资源;
- 数字数据编码为数字信号
- 数据无论是数字的还是模拟的,为了传输都必须转变成信号;
- 电路交换、报文交换与分组交换
- 在进行数据传输之前两个结点之间需要先建立一条专用的物理通信路径,该路径可能经过许多中间结点,这个路径结束后才被释放;
- 电路交换技术分为三个阶段:连接建立、数据传输、连接释放;在传输过程中始终占用端到端的固定传输带宽;
- 电路交换
- 优点:通信时延小、有序传输、没有冲突、适用性广、实时性强、控制简单;
- 缺点:建立链接时间长、线路独占、灵活性差、难以规格化;
- 电路建立后,除了源结点和目的结点外电路上的任何结点都采取直通方式接收数据和发送数据,不会存在转发所耗费的时间;
- 报文交换
- 数据交换的单位是报文,报文携带目标地址、源地址等信息,报文交换在交换结点采用的是存储转发的传输方式;
- 优点:无需建立连接、动态分配线路、提高线路可靠性、提高线路利用率、提供多目标服务;
- 缺点:数据进入交换结点会经理存储和转发,这一过程会引起转发时延、报文交换对报文的大小没有限制就要求网络结点需要较大的缓存空间;
- 分组交换
- 和报文交换一样,也采用存储转发方式,但解决了报文交换中大报文传输的问题,分组交换把大的数据块划分为合理的小数据块,再加上必要信息,构成分组传输;
- 优点:无建立时延、线路利用率高、简化了存储管理,加速传输、减少了出错概率和重发数据量;
- 缺点:存在存储转发时延、需要传输额外的信息量、当分组交换采用数据报服务时,可能出现失序和丢失或重复分组,分组到达目的结点时要对分组按编号进行排序等工作;
- 三种交换方式的比较:
- 要传送的数据量很大且传送时间远大于呼叫时间时,采用电路交换较为合适;
- 端到端的通路由多段链路组成时,采用分组交换传送数据较为合适。
- 从提高整个网络信道的利用率来看,报文交换和分组交换优于电路交换,分组交换比报文交换的时延小,适合计算机之间的突发式数据通信;
- 数据报与虚电路
- 分组交换根据通信子网向端点系统提供的服务,还可以进一步分为面向连接的虚拟电路方式和无连接的数据报方式,这两种方式都由网络层提供;
- 数据报方式
- 发送一个报文是,先把报文拆成若干带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层的PDU);
- 找到最佳的路由后,不同的分组可以走不同的路径,也可以按不同的顺序到达目的结点;
- 数据报服务的原理:
- 主机A先将分组逐个转发与自己直接相连的交换结点B,
- 交换结点缓存收到的数据后查找自己的转发表,将所有的分组转发给结点C;
- 网络中的结点收到分组数据后,类似的转发分组,直到分组最终到达目的主机;
- 虚拟电路方式
- 虚拟电路方式试图将数据报方式和电路交换方式结合起来,发挥两种方式的优点达到最佳的数据交换效果;
- 在分组发送之间,在发送方和接收方建立一条逻辑上相连的虚电路,连接建立后就固定虚电路所对应的物理路径;
- 在传送数据时,每个分组都要有分组号、校验和等控制信息。虚电路网络中的每个结点上都维持一张虚电路表,表中每项记录一个打开的虚电路信息;
- 数据的传输是双向进行的,虚电路方式的工作原理如下:
- 两端先建立一条逻辑通路,主机A发送一个特殊的呼叫请求分组,若主机B同意连接,则发送呼叫应答分组予以确认;
- 虚电路建立后,双方都可以在虚电路上发送数据;
- 传送结束后,主机A发送释放请求分组来拆除虚电路,逐段断开整个连接;
- 虚电路有一个致命弱点,当网络中的某个结点或某条链路出现故障而彻底失效时,所有经过该结点的虚电路都将遭到破坏;
- 虚电路传输的分组首部不包含目的地址,包含的是虚电路标识符,只在建立连接时使用目的地址。相对于数据报方式,开销小;
- 虚电路之所以是虚的,是因为这条电路不是专用的,链路可能同时有若干虚电路通过;
- 数据报服务与虚电路的比较
- 数据报不需要建立连接,虚电路必须要建立连接;数据报传送每个分组都有完整的目的地址,虚电路只有在建立连接时使用目的地址,之后只使用较短的虚拟电路号;
- 基本概念
传输介质
- 传输介质是数据传输过程中设备之间的物理通路。传输介质可分为导向传输介质和非导向传输介质(空气、真空或海水)。
- 双绞线:是古老的传输介质,由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。价格便宜,在局域网和传统电话网中普遍使用;
- 同轴电缆:由内导体、绝缘层、网状编织层和塑料外壳构成,主要用于有限电视,传输距离远,价格比双绞线贵;
- 光纤:
- 光波通过纤芯进行传导,光纤通信是利用光导纤维传递脉冲来进行通信,有光脉冲表示1,无光脉冲表示0,可见光的频率约为10^8MHz,带宽范围极大;
- 光纤具有通信容量非常大的优点,传输损耗小、抗电磁干扰性能好、保密性好不易窃听、体积小重量轻(这比电缆管道好多了);
- 无线传输介质
- 广泛应用于移动电话领域,构成蜂窝式无线电话网。随着便携式计算机的出现,现在无线局域网产品的应用已非常普遍;
- 无线电波:有较强的穿透能力,可以传输很长的距离,例如无线局域网(WLAN),向所有方向散播,在有效距离内的接收设备无须对准某个方向就可以与发射者进行通信连接;
- 微波、红外线和激光
- 这是目前高带宽的无线通信主要使用的三种技术。他们都需要发送方和接收方之间存在一条视线通路,有很强的方向性,都沿直线传播;
- 物理层接口的特性
- 物理层考虑的是如何在连接各种计算机的传输媒体上传输比特流,而不指具体的传输媒体;
- 网路中硬件和传输介质的种类繁多,通信方式也不同物理层应尽可能屏蔽这些差异,让“数据链路层”感觉不到这些差异,使数据链路层只需考虑如何完成本层的协议和服务;
- 物理层的主要任务可以描述为确定与传输媒体的接口有关的一些特性:
- 机械特性:指明接口所用接线器的形状和尺寸等;
- 电气特性:指明在接口电缆的各条线上出现的电压的范围;
- 功能特性:指明出现的某一电平的电压表示何种意义;
- 过程特性:指明不同功能的各种可能事件的出现顺序;
物理层设备
- 中继器:主要功能是将信号整形放大再转发出去,以消除传输过程产生的失真和衰减;
- 集线器:实际上是一个多端口的中继器。多台计算机必然会发生同时通信的情形,因此集线器不能分割冲突域,所有集线器的端口都属于同一个冲突域;
三、数据链路层(重点)
数据链路的功能
- 研究的是“点到点”之间的通信;
- 在物理层的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能;
- 为网络层提供服务
- 对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。本层可为网络层提供以下服务;
- 无确认的无连接服务
- 源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。对丢失的帧,数据链路层不负责重发而交给上层处理,适用于以太网;
- 有确认的无连接服务
- 源机器发送数据帧时不需先建立链路连接,但目的机器收到数据帧时需要发回确认。源机器在规定的时间内没有收到确认就重传丢失的帧,适用于无线通信;
- 有确认的面向连接服务
- 传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路;谜底机器对每一个收到的帧都要给出确认,源机器收到确认后才能发送下一帧,适用于可靠性高、实时性高的场合;
- 链路管理:数据链路层连接的建立、维持和释放过程称为链路管理,主要用于面向连接的服务;
- 帧定界、帧同步与透明传输
- 两台主机之间传输信息时,必须将网路层的分组封装成帧,以帧的格式进行传送。
- 将一段数据的前后分别添加首部和尾部,就构成了帧。接收端接收的是一串比特流,没有首部和尾部是不能正确区分帧的;
- 帧定界:首部和尾部有很多控制信息,他们的一个重要作用是确定帧的界限,即帧定界;
- 帧同步:指的是接收方应能从接收到的二进制比特流中区分帧的起始和终止,如HDLC协议中,用表示位F来标识帧的开始和结束;
- 透明传输:如果数据中恰好出现与帧界定符相同的比特组合,采取有效的措施就是用透明传输技术,透明传输就是不管所传数据是什么比特组合,都可以在链路上传送;
- 每种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元(MTU);
- 流量控制
- 由于收发双方各自的工作速率的差异,会出现发送方的发送能力大于接收方的情况,流量控制实际就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力;
- 数据链路层的流量控制是控制相邻两结点之间数据链路上的流量,而传输层的流量控制,控制的是从源端到目的端之间的流量;
- OSI体系结构中,数据链路层具有流量控制的功能。而在TCP/I体系结构中,流量控制在传输层;
- 差错控制
- 由于信道噪声等各种原因,帧在数据传输过程中可能会出现错误,用以使发送方确定接收方是否正确接收其发送的数据就是差错控制。
- 这些错误可分为位错和帧错;
- 位错指帧中通常某些位出现了差错:
- 通常采用循环冗余校验(CRC)方式发现错误;
- 通过自动重传请求(ARQ)方式来重传出错的帧;
- 具体做法是让发送方将要发送的数据帧附加一定的CRC荣誉检错码一并发送,接收方根据检错码对数据帧进行错误检测,
- 这种方式只需返回很少的控制就可以有效校验所发数据帧是否被正确接收;
- 帧错指帧的丢失、重复或失序等错误,在数据链路层引入定时器和编号机制,能保证每一帧最终都能有效有且仅有一次正确地交付给目的结点;
组帧
- 数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只发出错的帧,而不必重发全部的数据,从而提高效率;
- 为了检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(组帧),组帧主要解决帧定界、帧同步与透明传输等问题;
- 有以下四种方法组帧,常用的是零比特填充、违规编码法:
- 字符计数法:
- 是指在帧头使用一个计数字段来标明帧内字符数,目的结点的数据链路层收到字节计数时,就知道跟随的字节数可以确定帧结束的位置,计数字段占用1个字节;
- 这种方式的问题是如果计数字段出错,就失去了帧边界划分的依据;
- 字符填充的首尾定界符法:
- 使用特定字符来定界一帧的开始与结束。SOH放在帧的最前面,EOT表示帧的结束。信息位出现特殊字符在特殊字符前面填充转移字符来加以区分;
- 零比特填充的首尾标志法:使用一个特定的比特来标志一帧的开始和结束,数据中遇到相同的比特就自动在其后插入一个0,零比特填充法由硬件实现,性能优于字符填充法;
- 违规编码法:
- 不需要采用任何填充技术,便能实现数据透明传输,但只适用于采用荣誉编码的特殊编码环境;
- 在物理层进行比特编码时,通常采用违规编码法。例如曼彻斯特编码方法将数据比特1编码成“高-低”电平对,将0编码成“低-高”电平对,用“高-高”电平来定界帧的开始和结束;
差错控制
- 实际通信链路都不是理想的,比特在实际传输过程中可能会产差错,1可能变成0,0可能变成1,这就是比特差错;
- 有两类编码技术进行差错控制:自动重传请求ARQ(接收端检测出错后会反馈给发送方再发送,直到接收正确为止)、前向纠错FEC(接收端发现错误并确定错误位置并修正)。
- 检错编码
- 都采用冗余编码技术,核心思想就是在有效数据按某种关系附加一定的冗余位,构成一个符合某一规则的码字后再发送,当数据有效位发生变化时,对应的冗余位也会变化;
- 常见的检错编码有以两种:
- 奇偶校验
- 奇校验码和偶校验码的统称,是一种最基本的检错码,是由n-1位信息和1位校验元组成;
- 循环冗余码(CRC)
- 发送方和接收方事先商定一个多项式(最高位和最低位必须是1),接收方用相同的多项式去除收到的帧,如果无余数,那么认为无差错;
- 通过循环冗余码的检错技术,数据链路层做到了对帧的无差错接收。也就是说凡事接收端数据链路层接受的帧,都是没有产生差错的。而接收端丢弃的虽然也收到了,但是因为错误没有被接收;
- 循环冗余码也具有“纠错”功能,只是数据链路层仅使用了它的检错功能,检错到帧出错则直接丢弃,方便协议实现;
- 纠错编码
- 使接收方能够推到出实际发送方实际送出的应该是什么样的比特串,最常见的纠错编码是海明码;
- 海明码
- 实现原理是在有效位中加入几个检验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中;
- 当某一位出错后,就会引起有关的几个校验位的值发生变化,就能找到出错位的位置,并提供纠错依据;
- 海明码的编码原理和过程:以1010为例讲解
- 确定海明码的位数
- 确定校验位的分部
- 分组以形式校验关系
- 校验位取值
- 海明码的校验原理
流量控制与可靠传输机制
- 流量控制、可靠传输与滑动窗口机制
- 流量控制是对链路上的帧的发送速率的控制,让接收方有足够的缓冲空间来接收每个帧,基本方法是由接收方控制发送方发送数据的速率,常见的方式有以下两种:
- 停止-等待流量控制基本原理
- 发送方没发送一帧都要等待接收方的应答信号,之后才能发送下一帧,接收方没接收一帧,都要反馈一个应答信号表示可以接收下一帧,没有应答发送方就一直等待;
- 这种方式传输效率很低;
- 滑动窗口流量控制基本原理
- 在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口,同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口;
- 发送窗口用来对发送方进行流量控制,而发送窗口的大小代表还未收到确认信息的情况下发送方最多还可以发送多少个数据帧;
- 同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧,只有收到的数据帧的序号落在窗口内时,才允许接收该数据帧,否则丢弃;
- 发送窗口和接收窗口的工作原理见(73页);
- 发送端每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当窗口内的帧全部是已发送但未收到确认的帧时,发送方就会停止发送。收到确认帧后,窗口内有可以发送的帧后才可以继续发送;
- 接收端收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接收窗口之外,则一律丢弃;
- 滑动窗口的重要特性:
- 只有接收窗口向前移动时,发送窗口才有可能向前滑动;
- 接收窗口大小为1时,可保证帧的有序接收;
- 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(注意与传输层的滑动窗口协议的区别);
- 可靠传输机制
- 数据链路层的可靠传输通常使用确认和超时重传(启动一个定时器)两种机制来完成;
- 自动重传请求是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种:停止-等待ARQ、后退N帧ARQ、选择性重传ARQ,
- 后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称为连续ARQ协议;
- 数据链路层中流量控制机制和可靠传输机制是交织在一起的;
- 注意:现有实际有线网络的数据链路层很少采用可靠传输,大多数教材把这部分放在传输层中讨论;
- 单帧滑动窗口与停止-等待协议
- 在停止-等待协议中,源站发送单个帧后必须等待确认后才可以继续发送其它数据。停止-等待协议相当于发送窗口和接收窗口大小都为1的滑动窗口协议;
- 停止-等待协议通信信道的利用率很低。为了克服这一缺点,就产生了另外两种协议即退N帧协议和选择重传协议;
- 多帧滑动窗口与后退N帧协议(GBN)
- 在后退N帧ARQ中,发送方无须收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。
- 当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;
- 后退N帧支持连续发送数据帧提高了信道的利用率,但仅因为前面一个数据帧出错又必须重传传原来正确传送的数据帧,这种做法又使得传送效率降低,不一定优于停止-等待协议;
- 多帧滑动窗口与选择重传协议(SR)
- 为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,先接收那些发送序号不连续的数据帧,
- 等到所缺序号的数据帧收到后再一并送交主机,这就是选择重传ARQ协议;
- 在选择重传协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传;
- 选择重传协议可以避免重复传送那些本已正确到达接收端的数据帧,但在接收端要设置具有相当容量的缓冲区来暂存哪些为按序正确接收到的帧,缓冲区的数目等于窗口的大小,而不是序号的数目;
- 信道吞吐率=信道利用率*发送方的发送速率。一个发送周期=发送方开始发送数据到收到第一个确认帧为止;见(77页);
- 流量控制、可靠传输与滑动窗口机制
介质访问控制
- 介质访问控制要完成的任务是,使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以便协调活动结点的传输,
- 用来决定广播信道中信号分配的协议属于数据链路的一个子层,称为介质访问控制子层;
- 假设A/B/C/D/E共享一个广播信道,A和C两两通信,如果不加控制,两个结点间的通信可能会因为干扰而失败,介质控制就是采取一定的措施避免这种互相的干扰;
- 常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制、轮询访问介质访问控制。后两者是动态分配信道的方法,钱一个是静态划分的方法;
- 信道划分介质访问控制
- 使用介质的每个设备与来自同一信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备;
- 多路复用是实现划分介质访问控制的途径,多路复用技术把多个信号组合在一条物理信道上进行传输,使多个计算机共享信道资源,提高了信道的利用率;
- 采用多路复用技术可以把多个输入通道的信道整合到一个复用通道中,在接收端把收到的信息分离出来并传送到对应的输出信道;
- 划分信道的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个结点之间通信的互不干扰的子信道,实际是把广播信道转变为点对点信道;
- 信道划分介质访问控制分为以下4种:
- 频分多路复用(FDM)
- 是一种将多路基带信道“调制”到不同频率的载波上,再叠加形成一个复合信号的多路复用技术;
- 当物理信道的可用带宽超过单个原始信号所需带宽的情况下,可以将总带宽拆分成多个子信道分别传输一种信号,这就是频分多路复用;
- 每个子信道分配的带宽可不相同。频分多路复用的系统利用率较高,技术也比较成熟,也容易实现;
- 时分多路复用(TDM)
- 将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用;
- 统计时分多路复用(STDM),是TDM的改进,采用STDM帧并不固定分配间隙,而是按动态地分配时隙,可以提高线路的利用率;
- 波分多路复用(WDM)
- 即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长不同,各路光信号互不干扰,最后再用波长分解复用器将各段波长分解出来。
- 由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用;
- 码分多路复用(CDM)
- 采用不同的编码来区分各路原始信号的一种复用技术,与FDM和TDM不同,它即共享信道的频率(空间),又共享时间;
- 更常用的是码分多址(CDMA),其原理是每个比特时间再划分成m个短的时间槽,称为码片(Chip),通常m的值是64或128;
- 码分多路复用具有频谱利用率高、抗干扰能力强、保密性强、语音质量好等优点,还可以减少投资和降低运行成本,主要用于无线通信系统(移动通信系统);
- 频分多路复用(FDM)
- 随机访问介质访问控制
- 采用信道划分要么共享空间、要么共享时间、要么两者都共享。采用随机访问介质各结点之间的通信可都不共享。随机介质访问实质上是一种将广播信道转化为点到点信道的行为;
- 在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户都随机发送信息,占用信道全部速率。
- 在总线型网络中,有多个用户同时发送信息就会产生帧的冲突(互相干扰),冲突会导致所有都发送失败,为了解决这个问题,每个用户需要按照一定的规则重传帧;
- 这些规则就是随机访问控制协议,常用的有以下协议:
- ALOHA协议
- 夏威夷大学最早研制的随机接入系统称为ALOHA,分为以下两种:
- 纯ALOHA协议
- 当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突,就会继续发送;
- 纯ALOHA网络的吞吐量很低,在原始的纯ALOHA协议的基础上改进,产生了时隙ALOHA协议;
- 时隙ALOHA协议
- 把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。
- 从而避免发送数据的随意性,减少了冲突,提高了信道的利用率;
- 时隙ALOHA网络比纯ALOHA网络的吞吐量大了1倍;
- CSMA协议
- ALOHA协议每个站点都随意发送数据产生冲突的概率很大,只要在每个站点发送前都先监听一下公用信道,发送信道空闲再发送,就会大大降低冲突,CSMA载波监听多路访问协议依据就是这一思想;
- CSMA协议在ALOHA协议基础上改进的协议,主要区别是多了一个载波监听装置,CSMA协议分为以下三种:
- 1-坚持CSMA:
- 监听信号,信道忙就等待。发生冲突就随机等待一段时间后,再重新开始监听信道;
- 传播延迟对1-坚持CSMA协议影响较大,1-坚持的含义是,监听到信道忙后,继续坚持监听信道,监听到信道空闲后,发送帧的概率为1就立即发送数据;
- 1-坚持协议也可能产生冲突,当多个结点同时监听到空闲,多个结点就会同时发送数据,就会产生冲突;
- 非坚持CSMA
- 基本思想是一个结点要发送数据时,首先监听信道,如果信道空闲,那么立即发送数据,如果信道忙就放弃监听,等待一个随机的时间再重复这个过程;
- 放弃监听因此就降低了多个结点等待空闲后同事发送数据导致冲突的概率,但会增加数据在网络中的平均延迟。非坚持CSMA是以时间为代价减少冲突的;
- p-坚持CSMA
- 用于时分信道,其基本思想是一个结点要发送数据时,首先监听信道,如果信道空闲,那么立即发送数据,如果信道忙就继续监听,直至信道空闲;
- 检测到空闲后,以概率p发送数据,以概率1-p推迟到下一个时隙,目的是减少同时发送数据的冲突概率;
- 三种CSMA类型协议比较见(91页);
- CSMA/CD协议
- 载波监听多路访问/碰撞检测(CSMA/CD)协议是CSMA协议的改进方案,适用于总线型网络或半双工网络环境。由于全双工采用两条信道来发送和接收,不会产生冲突,因此不需要CSMA/CD协议;
- CSMA/CD协议的归纳如下(92页):
- 准备发送
- 检测信道
- 在发送过程中适配器仍持续检测信道;
- 发送成功,未检测到碰撞,这个帧就能发送成功了;
- 发送失败,在征用期内检测到碰撞,此时就立即停止发送,适配器执行指数避退算法,等待一段时候后再返回步骤2。最多重复16次不成功就向上报错;
- CSMA/CA协议
- 该协议已成功应用于使用有线连接的局域网,但在无线局域网环境下,却不能简单的搬用CSMA/CD协议,特别是碰撞检测部分;
- 802.11标准定义了广泛应用于无线局域网的CSMA/CA协议,它对CSMA/CD协议进行了修改,把碰撞检测改为碰撞避免。802.11无线局域网不使用碰撞检测,发送一个帧就完成发送该帧;
- 由于无线信道的通信质量远不如有线信道,802.11使用链路层确认/重传(ARQ)方案,每发送一帧等收到确认帧之后才能继续发送下一帧;
- CSMA/CA算法的4个归纳见(93页);
- CSMA/CD协议和CSMA/CA协议主要有以下区别:
- CSMA/CD可以检测冲突,但无法避免,只能劲量避免冲突;
- 传输介质不同,CSMA/CD用于总线以太网,CSMA/CA协议用于无线局域网802.11a/b/g/n等;
- 检测方式不同,CSMA/CD通过电缆中的电压变化来检测。CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式;
- 轮询访问:令牌传递协议
- 在轮询访问中,用户不能随机得发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个站点,再决定信道的分配;
- 典型的轮询访问介质控制协议是,令牌传递协议,它主要用在令牌环局域网中。在传递令牌协议中,一个令牌(Token)沿着环形总线在各结点计算机间依次传递。
- 令牌是一个特殊的MAC控制帧,它本身并不包含信息,仅控制信道的使用,确保同一时刻只有一个站点独占信道。环上的站点希望传递帧时,必须等待令牌,因此不会产生冲突;
- 令牌环网中令牌和数据的传递5个过程(95页);
- 轮询介质访问控制非常适合负载很高的广播信道。负载高指的是多个结点在同一时刻发送数据概率很大的信道。轮询介质访问不共享时间和空间;
- 即使是广播信道也通过介质访问控制机制使得广播信道逻辑上变为点对点的信道,所以说数据链路层研究的是“点到点”之间的通信;
局域网(LAN)
- 局域网的基本概念和体系结构
- 局域网的特性主要由三个要素组成:拓扑结构、传输介质、介质访问控制方式(这个最重要,它决定着局域网的技术特性);
- 常见的局域网拓扑有4大类:星形结构、环形结构、总线形结构、星形和总线形结合的复合型结构;
- 局域网的介质访问控制方法主要有CDMA/CD、令牌总线和令牌环,其中前两种方法主要用于总线形局域网,令牌环主要用于环形局域网;
- 三种特殊的局域网拓扑实现如下
- 以太网:使用范围最广的局域网,逻辑拓扑是总线形结构,物理拓扑是星形或拓扑星形结构;
- 令牌环(Token Ring,IEEE 802.5):逻辑拓扑是环形结构,物理拓扑是星形或拓展星形结构;
- FDDI(光纤分布数字接口,IEEE802.8):逻辑拓扑是环形结构,物理拓扑是双环结构;
- IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层;
- 由于以太网在局域网市场取得垄断地位,几乎称为局域网的代名词,现在网卡仅装有MAC协议;局域网和广域网的各类协议是考试重点;
- 以太网与IEEE 802.3
- IEEE 802.3标准是一种基带总线形的局域网标准,它描述物理层和数据链路层的MAC子层的实现方法。
- 通常将802.3局域网简称为以太网。以太网采用两项措施来简化通信
- 采用无连接的工作方式,不对发送的数据编码和校验;
- 发送的数据都使用曼彻斯特编码的信息;
- 以太网的传输介质与网卡
- 以太网常用的传输介质有4种:粗缆、细缆、双绞线、光纤;
- 以太网的MAC帧
- 每块网卡中的MAC地址也称物理地址,MAC地址长6个字节;
- 高速以太网
- 速率达到100Mb/s的以太网称为高速以太网;
- 100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星形拓扑结构以太网,使用CSMA/CD协议,这种协议支持全双工方式和半双工方式;
- 吉比特以太网:又称千兆以太网,允许在1Gb/s的下用全双工方式和半双工方式工作,使用802.3协议规定的帧格式。在半双工方式下使用CSMA/CD协议;
- 10吉比特以太网;与10Mb/s、100Mb/s、1Gb/s以太网的帧格式完全相同;
- IEEE802.11无限局域网
- 无限局域网分为两大类:
- 有固定基础设置无限局域网
- 无固定基础移动自组织网络
- 802.11局域网的MAC帧
- 802.11帧共有三种类型:数据帧、控制帧、管理帧;
- 802.11数据帧由以下三大部分组成
- MAC首部,共30字节,帧的复杂性都在MAC首部;
- 帧主体,既帧的数据部分,不超过2312字节;
- 帧检验序列FCS是尾部,共4字节;
- 无限局域网分为两大类:
- VLAN基本概念与基本原理
- 虚拟局域网,可以把一个较大的局域网分隔成一些较小的与地理位置无关的逻辑上的VLAN,而每个VLAN是一个较小的广播域;
- 一个以太网是一个广播域,当一个以太网包含的计算机太多时,就会出现大量的广播帧,对信息保密和安全不利;
- 虚拟局域网只是局域网给用户提供的一种服务,并不是一种新型局域网;
- 局域网的基本概念和体系结构
广域网
- 广域网的基本概念
- 覆盖范围很广的长距离网络。广域网是因特网的核心部分,任务是长距离发送数据。
- 广域网不等于互联网,互联网可以连接不同类型的网络,包括局域网、广域网,通常用路由器来连接。
- 广域网由一些结点交换机及连接这些交换机的链路组成。结点之间是点到点的连接;
- 从层次上考虑,广域网和局域网的区别很大,局域网使用的协议主要在数据链路层(少量在物理层),广域网使用的协议主要在网络层;
- 广域网中的一个重要问题是路由选择和分组转发,常见的两种广域网数据链路层协议是PPP和HDLC协议,PPP协议用的最广泛,HDLC很少用;
- PPP协议
- 点对点协议,使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。设计的目的主要用来拨号或专线方式建立点对点的连接发送数据;
- 使其成为各种主机、网桥、路由器之间简单连接的一种共同的解决方案;
- 三个组成部分
- 链路控制协议(LCP):一种扩展链路控制协议,用于建立、配置、测试和管理数据链路;
- 网络控制协议(NCP):PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接;
- 一个将IP数据报封装到串行链路的方法:IP数据报在PPP帧中就是其信息部分,这个部分的长度受最大传输单元(MTU)的限制;
- PPP帧的格式见图(117页);
- PPP协议的特点
- PPP提供差错检测但不提供纠错功能,只保证无差错接收,是不可靠的协议,也不使用序号和确认机制;
- 只支持点对点的链路通信,不支持多点线路;
- PPP只支持全双工链路;
- PPP的两端可以运行不同的网路层协议,但仍然可使用同一个PPP进行通信;
- PPP是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法。其中一种采用硬件来完成比特填充和HDLC的做法一样;
- HDLC协议
- 高级数据链路控制协议是面向比特的数据链路层协议,该协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的0比特插入法易于硬件实现;
- 全双工通信,有较高的数据链路传输效率,所有帧采用CRC检验,对信息帧进行顺序序号,可防止漏收或重发,传输可靠性高。传输控制功能和处理功能分离,灵活性好;
- HDLC的帧格式由:标志、地址、控制、信息和FCS等字段构成(119页);
- PPP和HDLC协议的比较
- PPP协议是面向字节的,HDLC协议是面向比特的;
- 广域网的基本概念
数据链路层设备
- 网桥的基本概念
- 两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就称为一个网段。
- 网桥工作在链路层的MAC子层,可以使以太网个网段成为隔离开的碰撞域(冲突域)。
- 网桥有路径选择功能,接收到帧后,要正确的将该帧传送到相应的目的局域网站点;
- 如果源站点和目的站处在同一个网段,接收帧就不需要借助网桥转发;
- 局域网交换机
- 交换机的原理和特点
- 局域网交换机也称以太网交换机,以太网交换机实质上就是一个多端口的网桥,工作在数据链路层。
- 以太网交换机的每个端口都直接与单台主机或另一个交换机相连,通常都工作在全双工方式。
- 以太网交换机的原理是,它检测以太端口来的数据帧的源和目的地的MAC(介质访问层)地址,然后查找表进行比较,若目的MAC地址不在查找表中就将该地址加入表中;
- 以太网交换机可以方便的实现虚拟局域网VLAN,VLAN不仅可以隔离冲突域,还可以隔离广播域;
- 传统共享以太网和以太网交换机的区别是,传统会把10Mb/s平均分给N个用户,以太网交换机每个端口到主机都是10Mb/s;
- 以太网交换机一般有多种速率的端口,可以大大方便各种不同情况的用户;
- 以太网交换机主要采用两种交换模式
- 直通式交换机:只检测帧的目的和端口,这种方式速度快;
- 存储转发式交换机:可靠性高,并支持不同速率端口间的转换,缺点是延迟较大;
- 交换机的自学习功能
- 过滤:决定一个帧是应该转发到某个端口还是应该将其丢弃称为过滤;
- 转发:决定一个帧是应该被移动到哪个接口称为转发。交换机的过滤和转发借助于交换表(switch table)完成;
- 交换表中的一个表项至少包含:
- 一个MAC地址
- 连通该MAC地址的交换机端口;
- A先向B发送一帧,从端口1进入交换机,交换机收到帧后,查找交换表,找不到MAC地址为B的表项,就将B的端口和源地址写入交换表;
- 这样转发任何主机的帧,都能很快地在交换表中找到对应的转发端口;
- 考虑到交换机所连的主机会随时变化,就需要更新交换表中的表项,为此交换表中每一个表项都设有一定的有效时间,过期就会自动删除;
- 这种写入和删除就是自学习,非常方便,不需要人工进行配置;
- 交换机的原理和特点
- 网桥的基本概念
四、网络层(重中之重)
网络层的功能
网络层的设计思路是向上只提供简单灵活的、无连接的数据报服务,传送过程会出错或丢失,这样设计的路由器就比较简单,造价低廉;
网络中进程之间的通信的可靠性由更高层的传输层来负责,采用这种思路的好处是造价低、运行方式灵活,能够适应多种应用,互联网的成功说明了这种设计思想的正确性;
异构网络互联
- 全球范围内数以百万计的网络互联起来并且通信,是一项非常复杂的任务,要结局很多问题,比如不同的网络接入机制、不同的路由选择机制等等;
- 网络层要完成的任务之一就是使这些异构的网络实现互联。通过一些中间设备相互连接起来,构成更大的网络系统;
- 中继系统分为以下4类:
- 物理层中继系统:转发器、集线器;
- 数据链路层中继系统:网桥或交换机;前两层的中继系统只是把一个网络扩大了,从层网络层角度看它们任然是一个网络,不称为网络互联;
- 网络层中继系统:路由器;
- 网络层以上的中继系统:网关;
- TCP/IP体系在网络互联上采用的做法是在网络层采用标准化协议,但相互连接的网络可以是异构的;
- 虚拟IP网络:
- 虚拟互联网络也称逻辑互联网络,通过IP协议使这些异构的、性能各异的网络在网络层上看起来好像一个统一的网络,这种使用IP协议的网络简称为IP网络;
- 许多计算机通过一些路由器进行互联,参加互联的计算机网络都使用相同的IP协议,可以把这些互联后的网络视为一个虚拟IP网络;
- 使用IP网络的好处是,看不见互连的各个网络的具体异构细节,例如具体的编址方案、路由选择协议等;
路由与转发
- 路由器主要的两个功能:一选择哪一条路径、二是分组转发,前者根据路由表选择,后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等;
SDN的基本概念
- 网络层的主要任务是转发和路由选择。软件定义网络(SDN)是近年流行的一种创新网络架构;
- 路由器的工作很单纯,即收到分组、查找转发表、转发分组;
- 这样网络又变成集中控制的,本来互联网是分布式的。SDN的可编程性为开发者提供了强大的编程接口,使得网络具有编程性;
- 对应用开发者来说,SDN提供的编程接口称为“北向接口”。SDN控制器和转发设备建立双向会话的接口称为“南向接口”,通过这个接口SDN控制器可以兼容不同的硬件设备;
- 一些大型的数据中心之间的广域网,使用SDN模式来建造,就可以使网络的运行的效率更高;
- SDN的优点:集中控制和分布式高速转发,灵活可编程,降低成本;
- SDN的问题:安全风险集中管理容易收到攻击,瓶颈问题,集中化规模变大之后控制器可能成为网络性能的瓶颈;
拥塞控制的两种方法
- 在通信子网中,因出现过量的分组而引起的网络性能下降称为拥塞;
- 流量控制和拥塞控制的区别:
- 流量控制要做的是抑制发送端发送数据的速率,以便接收端能来得及接收;
- 拥塞控制必须确保通信子网能够传送待传送的数据,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素;
- 拥塞控制的方法有两种:
- 开环控制:这是一种静态的预防方法,在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞;
- 闭环控制:是一种动态的方法,事先不考虑有关发生拥塞的各种因素,采用检测网络系统去监视,及时监测哪里发生了拥塞,然后将拥塞信息传到合适的地方;
路由算法
- 静态路由与动态路由
- 路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的,路由算法可以分为以下两大类:
- 静态路由算法,也称非自适应路由算法:指由网络管理员手工配置路由信息,适用于小型网络。开销小;
- 动态路由,也称自适应路由算法:指路由器上的路由表是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。网络负担重,算法复杂;
- 距离-向量路由算法
- 所有结点都定期将他们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含每条路径的目的地,路径的代价;
- 链路状态路由算法
- 要求每个参与该算法的结点都具有完全的网络拓扑信息,它执行两项任务,1主动测试所有邻接结点的状态,2定期地将链路状态传播给所有其它结点,典型算法是OSPF;
- 链路状态路由算法有三个特征:
- 向本自治系统所有路由器发送信息,这是泛洪法;
- 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息;
- 只有当链路状态发生变化时,路由器才向所有路由器发送此消息;
- 层次路由
- 当网络规模扩大时,路由器的路由表成比例增大,这不仅会消耗很多的路由器缓冲区,也需要更多的CPU时间来扫描路由表,用更多的带宽来交换路由状态;
- 因此路由选择必须按照层次的方式来划分,因特网将整个互联网划分为许多较小的自治系统,因此因特网把路由选择协议划分为两大类:
- 内部网关协议(IGP):RIP和OSPF等;
- 外部网关协议(EGP):具体的协议有BGP;
- 使用层次路由时,OSPF将一个自治系统在划分为若干区域,每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不知道其他区域的内部结构;
- 采用层次划分区域的方法虽然会使交换信息的种类增多,也会使OSPF协议更加复杂。但却能使每个区域内部交换路由信息的通信量大大减小,适用规模很大的自治系统中;
- 静态路由与动态路由
IPv4
- IPv4分组
- 是现在普遍使用的IP协议,IP协议定义数据传送的基本单元---IP分组及其确切的数据格式。IP协议也包括一套规则,指明分组如何处理、错误怎样控制;
- IPv4分组的格式
- IP分组由首部和数据部分组成,首部前一部分是长度固定的,共20B,首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测和安全等机制;
- IP首部的部分重要字段如下:
- 版本:当广泛使用的版本号为4;
- 首部长度:占4位
- 总长度:占16位
- 标识:占16位,它是一个计数器,没产生一个数据报就加1;
- 标志:占3位
- 片偏移:占13位
- 生存时间(TTL):占8位
- 协议:占8位,指出分组携带的数据使用何种协议,如TCP、UDP,值为6是TCP,值为17表示UDP;
- 首部校验和:占16位;
- 源地址字段:占4B;
- 目的地址字段:占4B;
- IP数据报分片
- 一个链路层数据报能承载的最大数量量称为最大传送单元(MTU);
- IPv4地址与NAT
- IPv4地址
- 连接到因特网上的每台主机或路由器都分配一个32比特的全球唯一标识符,即IP地址,由ICANN机构进行分配;
- 互联网早期采用的分类的IP地址:A类(1-126)、B类(128-191)、C类(192-223)、D类(224-239)、E类(240-255)
- 网络地址转换(NAT)
- 是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,NAT大大节省了IP地址的消耗;
- IPv4地址
- 子网划分与子网掩码、CIDR
- 子网划分
- 两级IP地址的缺点:IP地址空间的利用率很低,给每个物理网络分配一个网络号会使路由表变大,两级的IP地址不够灵活;
- 从1985年起,在IP地址中增加了一个“子网号字段”,使两级IP地址变成了三级IP地址,这种做法称为子网划分;
- 子网划分的基本思路如下(147页)
- 子网掩码
- 为了告诉主机或路由器对一个A类、B类、C类网络进行了子网划分,使用子网掩码来表达对原网络中主机的错位;
- 子网掩码是一个与IP地址相对应的长32bit的二进制串,它由一串1和跟随一串0组成;
- 在使用子网掩码的情况下:
- 一台主机在设置IP地址信息的同时,必须设置子网掩码;
- 同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码;
- 路由器的路由表中,所包含信息的主要内容有目的网络地址、子网掩码、下一跳地址;
- 无分类编址CIDR
- 无分类域间路由选择CIDR是在变长子网掩码的基础上提出的一种消除传统A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种IP地址的划分方法;
- 网络层转发分组的过程
- 分组转发都是基于目的主机所在网络的,这是因为互联网上的网络数远小于主机数,可以极大地压缩转发表的大小;
- 转发表还可以增加两种特殊的路由:
- 主机路由
- 默认路由
- 路由器执行的分组转发算法如下(150页);
- 子网划分
- ARP、DHCP、ICMP
- IP地址与硬件地址
- IP地址是网络层使用的地址,它是分层次等级的。
- 硬件地址是数据链路层使用的地址(MAC地址),它是平面式的。
- 地址解析协议(ARP)
- 无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址,所以需要完成IP地址到MAC地址的映射,这就是ARP地址解析协议;
- 动态主机配置协议(DHCP)
- 常用于给主机动态地分配IP地址,它提供了即插即用的联网机制,允许一台计算机加入新的网络和获取IP地址而不用手工参与,DHCP是应用层协议,基于UDP的;
- DHCP的工作原理如下(152页)
- 网际控制报文协议(ICMP)
- 为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(ICMP),来让主机或路由器报告差错和异常情况。
- ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去,ICMP是网络层协议;
- ICMP报文有两种类型:ICMP差错报告报文和ICMP询问报文;
- ICMP差错报告报文用于目标主机路径上的路由器向源主机报告差错和异常情况,共有以下有五种类型
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由(重定向)
- 不应发送ICMP差错报告报文的几种情况如下(153页);
- ICMP的两个常见应用是:
- 分组网间探测PING两台主机之间的连通性,PING使用了ICMP回送请求和回答报文,
- 和Tranceroute用来跟踪分组经过的路由,Tranceroute使用了ICMP时间超过报文;
- IP地址与硬件地址
- IPv4分组
IPv6
- IPv6的主要特点
- 解决IP地址耗尽问题的措施有以下三种
- 采用无类别编址CIDR,使IP地址的分配更加合理;
- 采用网络地址转换(NAT)方法以节省全球IP地址;
- 采用具有更大地址空间的新版本的IPv6;
- IPv6的主要特点如下:
- 更大的地址空间,IPv6从32位增大到了128位,IPv6的字节数是16B是IPv4字节数4B的平方;
- 扩展的地址层次结构;
- 灵活的首部格式;
- 改进的选项;
- 允许协议继续扩充;
- 支持即插即用(即自动配置)
- 支持资源的预分配;
- IPv6只有在包的源站点才能分片,是端到端的,传输路径中的路由器不能分片,所以从一般意义上来说,IPv6不允许分片;
- IPv6首部长度必须是8B的整数倍,而IPv4首部是4B的整数倍;
- 增大了安全性,身份验证和保密功能是IPv6的关键特征;
- 虽然IPv6和IPv4不兼容,但总体而言它与所有其他的因特网协议兼容,包括TCP、UDP、ICMP、IGMP、OSPF、BGP、DNS,只在少数地方做了必要修改(处理长度);
- 解决IP地址耗尽问题的措施有以下三种
- IPv6数据报的目的地址可以是以下三种类型地址之一
- 单播:点对点通信;
- 多播:一点多多点通信,分组被交付到一组计算机的每台计算机;
- 任播:这是IPv6增加的一种类型,任播的目的站是一组计算机,但数据报在交付时只交付其中的一台计算机,通常是距离最近的一台计算机;
- IPv6地址不是用IPv4的点分十进制,IPv6用的是一种紧凑的表示法,即把地址中的每4位用一个十六进制数表示,并用冒号分隔每16位;
- IPv6还可以进一步的缩写;
- 从IPv4向IPv6过渡可以采用双协议栈和隧道技术两种策略:
- 双协议栈:是指一台设备上同时装有IPv4向IPv6协议栈;
- 隧道技术:要点是在IPv6数据报就好像在IPv4网络中的隧道中传输;
- IPv6的主要特点
路由协议
自治系统(Autonomous System)
- 单一技术管理下的一组路由器;
- 一个自治系统内的所有网络都由一个行政单位(如一所大学、一家公司)管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的;
域内路由与域间路由
- 自治系统内部的路由选择称为域内路由选择,自治系统系统之间的路由选择称为域间路由选择,因此有以下两大类路由选择协议;
- 内部网关协议
- 在一个自治系统内部使用的路由协议,这些选择协议使用最多若RIP和OSPF;
- 外部网关协议
- 源站点和目的站点处在不同的自治系统中,将路由选择信息传递到另一个自治系统中,这样的协议就是外部网关协议EGP,使用最多的外部网关协议是BGP-4;
- 每个自治系统自己决定在本自治系统内部运行哪个内部路由协议(例如RIP或OSPF)。每个自治系统都有一个或多个路由器;
路由信息协议
- 路由信息协议是内部网关协议(IGP)中最广泛应用的协议,RIP是一种分布式的基于距离向量的路由选择协议,最大的优点是简单;
- RIP规定
- 网络中的每个路由器都要维护从自身到目的网络的距离网络,这是一组距离,称为距离向量;
- 距离也称调数,每经过一个路由器跳数加1;
- RIP认为好的路由就是它通过的路由器数目少,即优先选择跳数少的路径;
- RIP允许一条路径最多只能包含15个路由器,即最多允许15跳;
- RIP默认咋任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表;
- 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同。但在新的RIP2中,支持变长子网掩码和CIDR;
- RIP特点
- 仅和相邻路由器交换信息;
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表;
- 按固定的时间间隔交换路由信息,每隔30秒,每交换一次信息知道相邻路由器中的信息,经过若干RIP广播后,所有路由器都将知道整个IP网络的路由表,即收敛过程;
- 距离向量算法
- 每个路由表都有三个关键数据:目的网络N、距离d、下一跳路由器地址X。对每个相邻路由器发送过来的RIP报文执行以下步骤(181页):
- RIP的优点是:实现简单、开销小、收敛过程较快。
- RIP的缺点是:
- RIP限制了网络的规模、
- 路由器中的路由表网路规模越大,开销也越大、
- 网络出现故障时,会出现慢收敛现象,俗称坏消息传的慢,使得更新过程的收敛时间长;
- RIP是应用层协议,使用UDP传输数据,端口520,RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径;
开放最短路径优先(OSPF)协议
- OSPF协议的基本特点
- 使用分布式链路状态路由算法典型代表,也是内部网关协议(IGP)的一种,
- OSPF与PIP相比有以下4个主要区别:
- OSPF向本自制系统中的所有路由器发送信息,这里使用的方法是洪泛法。而RIP仅向自己相邻的几个路由器发送信息;
- 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息;
- 只有当链路状态发生变化时,路由器采用洪泛法向所有路由器发送此信息,并且更新过程收敛得快,不会出现RIP收敛慢的问题;
- OSPF是网络层协议,它不使用UDP或TCP,而直接使用IP数据报传送;
- OSPF有以下特点:
- OSPF对不同的链路可根据IP分组的不同服务类型(TOS)而设置成不同的代价。OSPF可根据不同类型的业务可计算出不同的路由,十分灵活;
- 如果到同一个目的网络欧多条相同代价的路径,那么可以将通信量分配给这几条路径。这称为多路径间的负载均衡;
- 所有在OSPF路由器之间交换的分组都具有鉴别功能;
- 支持可变长度的子网划分和无分类编址CIDR;
- 每个链路状态都带上一个32位的序号,序号越大,状态越新;
- OSPF协议的基本工作原理
- 由于各个路由器之间频繁的交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图;
- 每个路由器根据这个全网的拓扑结构图,使用Dijkstra迪杰斯特拉最短路径算法计算从自己到各目的网络的最优路径,不存完整路径,只存下一跳;
- 为了使OSPF能够用于规模很大的网络,OSPF划分了区域,交换链路状态信息的范围仅在每个区域,减少了整个网络上的通信量;
- 处在上层的域称为主干区域,负责连通其它下层的区域,并且连接其它自制域;
- OSPF的五种分组类型
- 问候分组:用来发现和维持邻站的可达性;
- 数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息;
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息;
- 链路状态更新分组:用洪泛对全网更新链路状态;
- 链路状态确认分组:对链路更新分组的确认;
- 每隔10秒,每两个相邻路由器都要交换一次问候分组,以便知道哪些站可达。
- 边界网关协议(BGP)
- 是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议,边界网关协议常用于互联网的网关之间;
- 互联网的规模太大,边界网关协议(BGP)只能寻找一条能够达到目的网络且比较好的路由(不能兜圈子),并非最佳路径;
- BGP的工作原理见(183页);
- BGP的特点如下:
- BGP交换路由信息的结点数量级是自治系统的数量级,比自治系统中的网络数少很多;
- 每个自治系统中BGP发言人的数目量很少的;
- BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列;
- 在BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分;
- BGP-4共使用4种报文:
- 打开报文:用来与相邻的另一个BGP发言人建立关系;
- 更新报文:用来发送某一路由的信息,以及列出要撤销的多条路由;
- 保活报文:用来确认打开报文并周期性地证实邻站关系;
- 通知报文:用来发送检测到的差错;
- RIP、OSPF、BGP这三种路由协议的比较(184页)
- OSPF协议的基本特点
IP组播
- 组播的概念
- 为了支持像视频点播和视频会议这样的多媒体应用,网络必须实施组播机制。组播一定仅应用于UPD,可以同时发送多个报文;
- 有的应用程序要把一个分组发送给多个目的地主机,不是让源主机把单个分组发送给一个组播地址,该组播地址标识一组地址;
- 主机可以选择加入或离开一个组,一台主机可以同时属于多个组;
- 因特网中的IP组播也使用组播组的概念,每个组有一个特别分配的地址,要给该组发送的计算机将使用这个地址作为分组的目标地址。IPV4中在D类地址空间中分配;
- 主机使用一个称为IGMP(因特网组管理协议)的协议加入组播组;
- 发送者只需发送一次数据就可以发送到所有接收者,大大减轻了网络的负载和发送者的负担;
- 组播需要有路由器的支持才能实现,能够运行组播协议的路由器称为组播路由器;
- 单播与组播的区别见(193页);
- IP组播地址
- IP组播使用D类地址格式,每个D类IP地址标志一个组播组,并非所有的D类地址都可作为组播地址;
- 组播数据报和一般的IP数据报的区别是,前者使用D类IP地址作为目的地址,并表明使用IGMP;
- 组播数据报也是尽最大努力交付,不提供可靠交付;
- 对组播数据报不产生ICMP差错报文,因此在PING命令组播地址,将永远得不到响应;
- IP组播可分为两种:一种本地局域网上进行硬件组播,另一种在因特网的范围内进行组播,在因特网的最后阶段,还是要把组播数据报在局域网上用硬件组播交付给所有组播成员;
- IGMP与组播路由算法
- 路由器通过IGMP协议知道组播成员信息;
- 在许多由路由器互联的支持硬件多点传送的网络上实现因特网组播时,主要有三种路由算法:
- 1、基于链路状态的路由选择;
- 2、基于距离-向量的路由选择;
- 3、可以建立在任何路由器协议上,
- 因此称为协议无关的组播(PIM);
- 组播的概念
移动IP
- 移动IP的概念
- 移动IP技术是指移动站以固定的网络IP地址实现跨越不同网段的漫游功能,并保证网络IP在漫游过程中不发生改变。移动IP的目标是把分组自动得投递给移动站;
- 一个移动站是把其连接点,从一个网络或子网改变到另一个网络或子网的主机;
- 移动IP定义的三种功能实体
- 移动节点:具有永久IP地址的移动站;
- 本地代理:通常就是连接在归属网络上的路由器;
- 外地代理:通常就是连接在被访问网络上的路由器。有两个重要功能,1为移动站创建一个临时地址,称为转交地址。2及时把移动站的转交地址告诉其归属代理;
- 将笔记本关机后从家里带到公司重新上网,在公司能很方便的 通过DHCP自动获取新的IP地址。这个并不是移动IP;
- 移动IP通信过程
- 移动IP的原理是有一个永久地址,收到数据后由永久地址转发到当前新地址。每一个移动站都有一个永久地址;
- 永久地址和归属网络的关联是不变的,归属代理通常是连接到归属网络上的路由器,它实现的代理功能是在应用层完成的。
- 当移动站移动到另一地点,所接入的外地网络也称为被访问网络。被访问网络中使用的代理称为外地代理,它通常是连接在被访问网络上的路由器。
- 基本通信流程如下
- 1移动站在归属网络时,按传统的TCP/IP方式进行通信;
- 2移动站漫游到外地网络时,像外地代理进行登记;
- 3归属代理知道移动站的转交地址后,会构建一条通向转交地址的隧道;
- 4外地代理把收到的封装的数据报进行拆封,恢复成原始的IP分组,然后发送给移动站;
- 5移动站在被访问网络对外发送数据报时,仍然使用自己的永久地址作为数据报的源地址;
- 6移动站移动到另一个外地网络是,在新外地代理登记后,然后新外地代理将移动站的新转交地址告诉其归属地址;
- 7移动站回归到归属网络时,移动站向归属代理注销转交地址。
- 注意两点:转交地址是供移动站、归属代理及外地代理使用的,外地代理要向连接在被访问网络上的移动站发送数据报时,直接使用移动站的MAC地址;
- 移动IP的概念
网络层设备
- 冲突域和广播域,
- 域表示冲突或广播在其中发生并传播的区域;
- 冲突域:
- 指连接到同一物理介质上所有结点的集合,这些结点之间存在介质争用的现象,
- 在OSI参考模型中,冲突域被视为第1层概念像集线器,第2层网桥和交换机,第3层路由器设备都可以划分冲突域;
- 广播域:
- 接收同样广播消息的结点的集合。该集合中任何一个结点发送一个广播帧,其它能收到帧的结点都被视为该广播域的一部分。
- 在OSI参考模型中,广播域被视为第2层概念像第一层集线器等、第2层交换机所连接的结点都属于同一个广播域,第3层路由器设备既可以划分广播域,也可以连接不同的广播域;
- 通常所说的局域网(LAN)特指使用路由器分隔的网络,也就是广播域;
- 路由器的组成和功能
- 组成:
- 路由器具有多个输入、输出端口的专用计算机,其任务是连接不同的网络并完成转发,在多个广播域(逻辑网络)互联时必须使用路由器;
- 从结构上看,路由器由路由选择和分组转发两个部分构成。而从模型的角度看路由器是网路层设备,它实现了网络模型的下三层:物理层、数据链路层、网络层;
- 路由器的选择部分称为控制部分,其核心构件是路由选择处理机,路由选择处理机的任务是根据所选定的路由选择协议构造出路由表;
- 分组转发分为三部分组成:交换结构、一组输入端口和一组输出端口,输入端口从物理层接收到的比特流中提取出数据链路层帧,进而从帧中提取出网络层数据报。输出端口则相反;
- 路由器主要完成两个功能:
- 分组转发和路由计算,前者处理通过路由的数据流,后者通过和其它路由器进行基于路由协议的交互,完成路由表的计算;
- 组成:
- 路由表的路由转发
- 路由表是根据路由选择算法得出的,主要用途是路由选择。
- 转发表是从路由表得出的,其表项和路由表项有直接的对应关系,但转发表的格式和路由表的格式不同,其结构应使查找过程最优化。转发表含有一个分组将要发往的目的地址;
- 转发只涉及一个路由器,路由选择则设计很多路由器;
- 标准的路由表有4个项目:目的网络IP地址、子网掩码、吓一跳IP地址、接口;
- 冲突域和广播域,
五、传输层
传输层提供的服务
- 传输层的功能
- 传输层向上面的应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最底层。
- 传输层为主机的进程提供了逻辑通信,网络层为主机之间提供逻辑通信。应用层协议不可靠时,传输层同样能为应用程序提供可靠的服务;
- 只有主机的协议栈才有传输层和应用层,路由器在转发分组时都只用到下三层的功能;
- 传输层的功能如下:
- 提供应用进程之间的逻辑通信(端到端的通信),与网络层的区别是网络层提供主机与主机之间的逻辑通信;
- 复用和分用:
- 复用是指发送方不同的应用进程都可以使用同一个传输层协议传送数据,分用是指接收方的传输层在剥去报文后能够把这些数据的交付到应用进程;
- 网络层也有复用和分用的功能,复用是指发送方不同协议的数据都可以封装发送数据,分用是指接收方的网络层在剥去首部后把数据交付给相应的协议;
- 传输层对收到的报文进行差错检测,而网络层只检查IP数据报的首部,不检验数据部分是否出错;
- 提供两种不同的协议传输,即面向连接的TCP和无连接的UDP。而网络层无法同时实现(存在)两种协议;
- 传输层向高层屏蔽了低层网络核心的细节,如路由协议,拓扑网络,它使应用程序看见两个传输层实体之间好像有一条端到端的逻辑通信信道;
- 这条逻辑通信信道对上层的表现却因传输层协议不同而有很大的差别,在传输层采用TCP或UDP时,这种逻辑通信信道是否可靠还是依据网络层是否可靠;
- 传输层的寻址与端口
- 端口的作用
- 端口能够让应用层的各种应用程序将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文中的数据向上通过端口交付给应用层相应的进程;
- 端口是传输层服务访问点(TSAP),数据链路层的SAP是MAC地址,网络层的SAP是IP地址,传输层的SAP是端口;
- 传输层使用的是软件端口,软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址;
- 端口号
- 端口号的长度为16bits,能够表示2^16个不同的端口号,端口号只具有本地意义;
- 服务端使用的端口号分为两类:0-1023分配给了TCP/IP最重要的一些应用程序,1024-49151这类是登记端口号;
- 客户端使用的端口号,数值为49152-65535,这类端口仅在客户进程运行时才动态地选择,称为短暂端口或临时端口;
- 套接字
- 在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用程序,端口号拼接到IP地址就构成套接字Socket(IP地址:端口号);
- 套接字是唯一地标识网络中的一台主机和其上的一个应用(进程);
- 端口的作用
- 无连接服务与面向连接服务
- TCP不提供广播或组播服务,由于TCP提供面向连接的可靠传输服务,因此会增加许多开销,如确认、流量控制、计时器及连接管理等,这不仅会增加协议数据单元的头部,还会占用许多的处理机资源;
- UDP是一个无连接的非可靠传输层协议,它在IP之上提供两个附加服务,多路复用和对数据的错误检查。IP知道怎样把分组投递给一台主机。UDP比较简单,执行速度快、实时性好;
- IP数据报和UDP数据报的区别:IP数据报在网络层传输时,UDP数据报是多路由不可见的;
- TCP和网络层虚拟电路的区别:TCP报文对路由器不可见,在传输层采用TCP不影响网路层提供无连接服务;
- 传输层的功能
UDP协议
- UDP数据报
- UDP概述
- UDP仅在IP的数据报服务之上增加了两个最基本的服务,复用和分用、以及差错校验。如果开发者选择UDP而非TCP,那么应用程序几乎直接与IP打交道;
- UDP具有如下有点:
- UDP无须建立连接
- 无建立状态:UDP不维护连接状态,也不跟踪这些参数;
- 分组首部开销小:UDP的首部有8B的开销,TCP有20B的首部开销;
- 应用层能更好地控制要发送的数据和发送时间:UDP没有拥塞控制,网络中的拥塞不会影响主机的发送效率,TCP的拥塞控制就会导致数据出现较大的延迟;
- UDP支持一对一、一对多、多对一和多对多的交互通信;
- UDP常用于一次性传输较少数据的网络应用,如DNS、SNMP等;
- UDP不保证可靠性交付,但这并不意味着应用对数据的要求是不可靠的,所有维护可靠性的工作由用户在应用层完成;
- UDP是面向报文的,发送方UDP对应用层交下来的报文,在添加首部后就向下交给IP层,一次发送一个报文,既不合并,也不拆分,而是保留这些边界;
- UDP的首部格式
- UDP的数据报包含两部分:UDP首部和用户数据,UDP首部有8B,由4个字段组成,每个字段的长度都是2B,个字段意义如下:
- 源端口
- 目的端口
- 长度:UDP数据报的长度(包括首部和数据),其最小值是8(仅有首部);
- 校验和:检测UDP数据报在传输中是否有错,有错就丢弃,该字段可选,当源主机不想计算校验和时,则直接令该字段为全0;
- 当传输层从IP层收到UDP数据报时,就根据首部中的目的端口把UDP数据报通过端口上交给应用进程了;
- UDP校验
- 在计算校验和时,要在UDP数据报之前增加12B的伪首部,伪首部并不是UDP的真正首部,只是在计算校验和是临时添加在UDP数据报前面的;
- 伪首部既不向下传送又不向上递交,只是为了计算校验和,数据报的伪首部各字段的内容见(215页);
- UDP校验和的计算方法和IP数据报首部校验和的计算方法相似,不同的是IP数据报的校验只校验IP数据报的首部,UDP校验则检查首部和数据部分;
- 这种UDP差错校验方法的校错能力并不强,好处是简单,处理速度快;
- UDP概述
- UDP数据报
TCP协议
- TCP协议的特点
- TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。TCP是TCP/IP体系中非常复杂的一个协议;
- 有以下主要特点:
- TCP是面向连接的传输层协议:TCP连接是一条逻辑连接;
- 每一条TCP连接只能有两个端点:每条TCP连接只能是点到点(一对一);
- TCP提供可靠交付的服务:保证传送的数据无差错、不丢失、不重复且有序;
- TCP提供全双工通信:为此TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据;
- TCP是面向字节流的:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据视为一连串的无结构的字节流;
- TCP和UDP在发送报文时所采用的方式完全不同,UDP报文的长度由发送应用进程决定,而TCP报文的长度根据接收方给出的窗口值和当前网络拥塞程度来决定;
- TCP报文段
- TCP传送的数据单元称为报文段,TCP报文段既可以用来运载数据,又可以用来建立连接释放连接和应答。
- 一个TCP报文段分为首部和数据两部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据报中,首部前20B是固定的,后面有4N字节是根据需要而增加的选项;
- TCP的全部功能体现在其首部的各个字段中,16个字段意义如下:
- 源端口和目的端口:各占2B;
- 序号:占4B,TCP是面向字节流的,即TCP传送时是逐个字节传送的,所以传送的每个字节都按顺序编号;
- 确认号:占4B;
- 数据偏移:占4位,这里不是IP数据报分片的那个数据偏移,而是表示首部长度,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多选,数据偏移的单位是32位;
- 保留:占6位,今后使用,但目前应置为0;
- 紧急位URG:当URG=1时,表明紧急指针字段有效,表示此报文段中有紧急数据,应尽快传送(高优先级);
- 确认位ACK:当ACK=1时确认号字段才有效,ACK=0时,确认号无效,TCP规定,在连接建立后所有传送的报文都必须把ACK=1;
- 推送位PSH:接收方TCP收到PSH=1的报文段,就尽快地交付给接收应用程序,在再等缓存都填满了再向上交付;
- 复位位RST:当RST=1时,表明TCP连接中出现严重错误,必须释放连接,然后重新建立连接;
- 同步位SYN:当SYN=1时表示这是一个连接请求报文或连接接受报文,SYN=1,ACK=0时是一个请求报文,SYN=1,ACK=1表示同意建立连接;
- 终止位FIN:用来释放一个链接,FIN=1时表示此报文的发送方的数据已发送完毕,并要求释放连接;
- 窗口:占2B,它指出现在允许对方发送的数据量,接收方的数据缓存空间有限,用窗口值作为接收方让发送方设置其发送窗口的依据;
- 校验和:占2B,校验和字段检验的范围包括首部和数据两部分,在计算校验和时和UDP一样在报文段前面加上12B的伪首部;
- 紧急指针:占2B,紧急指针在URG=1时才有意义,指出在本报文中紧急数据共有多少字节;
- 选项(长度可变):TCP最初只规定了一种选项,即最大报文长度(MSS),MSS是TCP报文段中的数据字段的最大长度(仅仅是数据字段);
- 填充:为了使整个首部长度是4B的整数倍;
- TCP连接管理
- TCP连接的管理就是使运输连接的建立和释放都能正常进行,每个TCP连接都有三个阶段:连接建立、数据传送和连接释放;
- 在TCP建立连接的过程中,要解决以下三个问题
- 1、要使每一方能够确知对方的存在;
- 2、要允许双方协商一些参数,如最大窗口值,是否使用窗口扩大选项等;
- 3、能够对运输实体资源进行分配(如缓存大小、连接表中的项目等);
- TCP把连接作为最基本的抽象,每条TCP连接有两个端点,TCP连接的端口即为“套接字socket”,每条TCP连接唯一地被通信的两个端点(两个套接字)确定;
- TCP连接的建立
- 经历以下三个步骤,通常称为三次握手,连接建立起服务端通常处于LISTEN状态,等待客户端的连接请求:
- 1、客户端先发起请求报文,这个特殊报文段的首部中的同步位SYN=1,同时选择一个初始序列号seq=x,TCP规定SYN报文段不携带数据,但要消耗一个序号,这时客户端进入SYN-SENT状态(同步已发送);
- 2、服务端同意建立连接就向客户端发回确认,并为该TCP连接分配缓存和变量。在确认报文中SYN=1,ACK=1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y,这时TCP服务端进程进入SYN-RCVD状态(同步收到);
- 3、当客户端收到确认报文段后,还要向服务端给出确认,并为该TCP连接分配缓存和变量,确认报文段的ACK=1,确认号ack=y+1,序号seq=x+1,该报文段可以携带数据,若不携带数据就不消耗序号,这时TCP客户端进入ESTABLISHED状态(已建立连接);
- 经过这三步就建立了TCP连接,接下来就可以传送应用层数据了。注意需要服务端是在完成第二次握手时分配的,客户端资源在完成第三次握手时分配的,这时容易受到SYN洪泛攻击;
- TCP连接的释放
- 释放的过程通常称为四次握手:
- 1、客户机打算关闭连接时,发送TCP连接释放报文段,并停止发送数据。主动关闭TCP连接,该报文段的终止位FIN=1,序号seq=u,这个序号等于前面传过的最后一个序号加1,FIN不携带数据也消耗一个序号,这时TCP客户端进入FIN-WAIT-1(终止等待)状态,TCP是全双工的,关闭一条另一条还可以发送数据;
- 2、服务端收到连接释放报文段后发出确认,确认号ack=u+1,序号seq=v。然后服务器进入CLOSE-WAIT(关闭等待)状态,此时客户端到服务端的连接就释放了,TCP连接处于半关闭状态,但服务器发送数据,客户端任要接收,因为服务端到客户端方向的连接并未关闭;
- 3、若服务端没有向客户端发送的数据了,就通知TCP释放连接,此时,其发出FIN=1的连接释放报文段,还需重复确认号ack=u+1,这是服务器进入LAST-ACK(最后确认)状态;
- 4、客户端收到连接释放报文段后,必须发出确认,把确认报文段中的确认位ACK=1,确认号ack=w+1,序号seq=u+1,此时TCP连接还未释放,必须等待计时器设置的2MSL(最后报文寿命)后,客户端才进入CLOSED(连接关闭)状态;
- 对上述TCP连接建立和释放的标记总结见(223页),选择题喜欢考这个ACK SYN FIN一定等于1;
- TCP可靠传输
- TCP使用了校验、序号、确认和重传机制来达到这一目的,TCP的校验机制和UDP校验一样;
- 序号:
- TCP首部的序号字段用来保证数据能够有序提交给应用层,TCP把数据视为一个无结构但有序的字节流,序号在传送的字节流上,而不建立在报文段之上;
- TCP连接传送的数据流中每个字节都编上一个序号,序号字段的值是指本报文段所发送的数据的第一个字节的序号;
- 确认:
- TCP首部的确认号是指期望收到对方的下一个报文段的数据的第一个字节的序号;
- 重传
- 有两种事件会导致TCP对报文段进行重传,超时和冗余ACK:
- 超时
- TCP每发送一个报文段,就对这个报文段设置一次计时器,时间到了但还未收到确认时,就要重传这一段报文。超时时间要设置略大于RTTs,但不会大太多;
- 冗余ACK(冗余确认)
- 超时触发重传存在一个问题就是超时周期往往太长,发送方通常可在超时事件发生之间,通过注意所谓的冗余ACK来较好地检测丢包的情况。
- 不是接收方所期待收到的下一个顺序序号的字节,例如1-5,2没收到却收到了3、4、5就会发送一个冗余ACK。接收方就会发送一个期待收到的报文给发送方;
- 当发送方收到对同一个报文段的3个冗余ACK时,就会认为跟在被确认报文段之后的报文段已经丢失;这种技术称为快速重传,冗余ACK还被用在拥塞控制中;
- TCP流量控制
- 用来消除发送方使接收方缓存溢出的可能性(发送速率太快),可以说流量控制是一个速度匹配服务;
- TCP使用滑动窗口协议的流量控制机制,滑动窗口(在数据链路层介绍过),下面是TCP如何使用窗口机制来实现流量控制;
- 在通信过程中接收方根据自己接收缓存的大小,动态地调整发送方窗口的大小,这称为接收窗口rwnd,来限制发送方向网络注入报文的速率;
- 同时发送方根据当前网络的拥塞程度估计窗口值,这称为拥塞窗口cwnd,窗口的大小与网络的带宽和延时密切相关;
- 传输层和数据链路的流量控制区别是:传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制,另外数据链路层的滑动窗口大小不能动态变化;
- TCP拥塞控制
- 拥塞控制是防止过多的数据注入网络,防止网络中的路由器过载,出现拥塞时,端点并不了解拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加;
- 拥塞控制与流量控制的区别:
- 拥塞控制是让网络传输性能承受现有的网络负载,是一个全局过程,设计所有的主机和路由器;
- 流量控制往往是指点对点的通信量的控制,是个端到端的问题(接收端控制发送端),是要控制发送端发送的速率;
- 这俩相似的地方是都通过控制发送方发送数据的速率来达到控制效果;
- 因特网标准定义了进行拥塞控制的4种算法,如下:
- 发送方再确定发送报文段的速率时,要考虑接收方的接收能力,也要从全局考虑不要是网络发生拥塞,因此TCP协议要求发送方维护以下两个窗口:
- 接收窗口 rwnd:接收方根据目前接收缓存大小所许诺的最新窗口值;
- 拥塞窗口 cwnd:发送方自己估算的网络拥塞程度而设置的窗口值,反映网络当前的容量;
- 发送窗口的上限取决于接收窗口和拥塞窗口较小的那一个;
- 接收窗口的大小根据TCP报文首部的窗口字段通知发送方,那发送方如何维护拥塞窗口呢?
- 慢开始和拥塞避免
- 慢开始算法
- 在TCP连接刚开始发送TCP报文段时,先令拥塞窗口cwnd=1,最大的报文段长度MSS,每收到一个对新报文段的确认后,cwnd加1,增大一个MSS,逐步增大使得入网络的速率更加合理,先试探一下网络的拥塞情况;
- 拥塞避免算法
- 让拥塞窗口cwnd缓慢增大,具体做法是没经过一个往返时延RTT就把发送方的拥塞窗口cwnd加1,使拥塞窗口按线性规律缓慢增长,这比慢开始算法的拥塞窗口增长速率要缓慢得多;
- 网络拥塞的处理
- 无论在慢开始阶段还是拥塞避免阶段,只要发送方判断网络出现拥塞,就要把慢开始门限ssthresh设置为出现拥塞时的发送方的cwnd值的一般,然后把拥塞窗口cwnd重新设置为1,执行慢开始算法;
- 拥塞避免并不能完全避免拥塞,只是在拥塞阶段把拥塞窗口控制为按线性增长,使网络比较不容易出现拥塞;
- 慢开始算法
- 快重传和快恢复
- 快重传和快恢复是对慢开始和拥塞避免算法的改进
- 快重传
- 使用冗余ACK来检测丢包的发送,冗余ACK也可以用于网络拥塞来检测,快重传并非取消重传计时器,而是在某些情况下更早地重传丢失的报文段;
- 当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文设置的重传计时器超时;
- 快恢复
- 快恢复算法的原理是,当发送方连续收到三个冗余ACK(即重复确认)时,执行“乘法减小”算法,把慢开始门限ssthresh设置为此时发送方cwnd的一半,这是为了预防网络发生拥塞;
- 由于跳过了拥塞窗口cwnd从1起始的慢开始过程,所以被称为快恢复;
- 这四种拥塞算法是同时应用在拥塞控制机制中;
- 四种算法使用的总结
- 在TCP连接建立和网络出现超时时,采用慢开始和拥塞避免算法;
- 在发送方接收到冗余ACK时,采用快重传和快恢复算法;
- TCP协议的特点
六、应用层
网络应用模型
- 客户/服务器模型(C/S)的特点:
- 服务器可以对用户权限进行限制来达到管理客户端的目的,防止随意存储和删除数据或进行其它受限的网络活动;
- 客户端之间不能直接通信;
- 可扩展性不佳,收服务器硬件和网络的限制,服务器支持的客户机数有限;
- P2P模型:
- 各计算机没有固定的客户和服务器划分。任意一台计算机(称为对等方Peer)直接相互通信。
- P2P模型本质上来看仍然是C/S模式,每个结点即作为客户端访问其他结点的资源,也作为服务端提供资源给其他结点访问;
- 整个网络中传输的内容不保存在中心服务器上,每个结点都同时具备相同的功能,当前流行的P2P应用有PPlive,Bittorrent和电驴;
- 与C/S模型相比,P2P模型的优点主要有:
- 减轻了服务器的压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点上,提高了系统效率和资源利用率;
- 多个客户机之间可以直接共享文档;
- 可扩展性好,传统服务器有响应和带宽的限制,因此只能接收一定数量的请求;
- 网络健壮性强,单个结点失效不会影响其他部分的结点;
- P2P模型缺点有
- 既获取服务,也提供服务给其它结点,因此会占用较多的内存,影响整机速度;
- 经常进行P2P下载会对硬盘造成较大损伤,据互联网统计,当前P2P程序已占用50%-90%的流量,使得网络变得拥塞;
- 各大ISP(互联网服务提供商如电信、网通)通常都对P2P应用持反对态度;
- 客户/服务器模型(C/S)的特点:
域名系统(DNS)
- 域名系统是因特网使用的命名系统,用来将域名转换为便于机器处理的IP地址,DNS系统采用客户端/服务器模式,协议允许在UDP之上,使用53号端口;
- 层次域名空间
- 因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层级结构名称,即域名。
- 域是名字空间中一个可被管理的划分,域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等;
- 顶级域名分为如下三大类
- 国家顶级域名:cn/us/uk
- 通用顶级域名:com/net/org/gov
- 基础结构域名:这种域名只有一个,既arpa,用于反向域名解析,因此又称为反向域名;
- 二级或多级域名在顶级域名之下自行确定;
- 域名服务器
- 因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP的解析是由运行在域名服务器上的程序完成的;
- 一个服务器所负责管辖范围称为区,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射;
- 每个域名服务器当不能找到IP地址对应的转换时,能够知道到什么地方去找其他域名服务器;
- 没有一台域名服务器具有因特网上所有的主机映射,相反,该映射分布在所有的DNS上,采用分布式设计的DNS,是因特网上实现分布式数据库精彩的例子;
- 主要有4种类型的域名服务器:
- 根域名服务器:
- 是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。根域名服务器也是最重要的域名服务器;
- 其它域名服务器只要无法对一个域名进行解析,就首先求助于根域名服务器。因特网上有13个根域名服务器,这13个是冗余服务器集群;
- 根域名服务器只用来管辖顶级域名,通常并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询;
- 顶级域名服务器
- 负责管理在该顶级域名服务器注册的所有二级域名,收到DNS查询请求时,就给出相应回答(结果或者下一步查找的域名服务器的IP地址);
- 授权域名服务器
- 每台主机都必须在授权域名服务器处登记,将管辖的主机名换为该主机的IP地址;
- 本地域名服务器
- 每个因特网服务提供者(ISP)或一所大学,都可以拥有一个本地域名服务器,当一台主机发出DNS查询请求时,就先发给该主机的本地域名服务器;
- 域名解析过程
- 正向解析和反向解析:
- 正向:把域名映射为IP地址
- 反向:把IP地址映射成域名
- 当客户端需要域名解析时,通过本地的DNS客户端构造一个DNS的请求报文,以UDP数据报方式发往本地域名服务器;
- 域名解析有两种方式:
- 递归查询(负载过大很少使用):客户端发起请求->1本地域名服务器->2根域名服务器->3顶级域名服务器->4权限域名服务器,然后依次返回到查询的客户端(253页);
- 递归与迭代相结合:客户端发起请求->1本地域名服务器->2根域名服务器->3本地域名服务器->4顶级域名服务器->5本地域名服务器->6权限域名服务器->7本地域名服务器->8客户端;
- 主机向“本地域名服务器”的查询采用的是递归查询;
- 如果本地主机所查询的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文;
- 主机向本地域名服务器向->根域名服务器的查询采用迭代查询;
- 当根域名服务器收到本地域名服务器发出的迭代请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器的下一步查询哪个顶级域名服务器;
- 域名解析过程如下,例如解析y.abc.com主机的IP地址,
- 域名解析过程如下(共使用了8个UDP报文):
- 1、客户机向
本地域名服务器发出DNS请求报文(递归查询); - 2、本地域名服务器收到请求后查询本地缓存,若没有记录,则以DNS客户的身份向
根域名服务器发出解析请求报文(迭代查询); - 3、根域名服务器收到请求后,判断该域名是否属于.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服务器时,该服务器能直接提供所要求的IP地址;
- 因为主机名和IP地址之间的隐射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息;
- 正向解析和反向解析:
文件传输协议(FTP)
- FTP的工作原理
- 允许客户端指明文件的类型和格式,并允许文件具有存取权限,它屏蔽了各计算机系统的细节,适用于在异构网络中的任意计算机之间传送文件;
- FTP具有以下功能:
- 提供不同种类主机系统之间的文件传输能力,监听21端口,等待客户进程发起连接请求;
- 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力;
- 以匿名FTP的方式提供公有文件共享的能力。FTP采用C/S的工作方式,使用TCP可靠的传输服务,FTM也是master(接收请求)worker(处理请求)进程模型;
- worker进程对客户进程的请求处理完毕后就终止,回到等待状态,继续接收其它客户请求的请求;
- 控制连接与数据连接
- FTP在工作时使用两个并行的TCP连接,一个是控制连接(21端口号),一个是数据连接(20端口号)
- 控制连接
- 用来传输控制信息(连接请求、传送请求等),控制信息是以7位ASCII格式传送,不具体传输文件,
- 但可以在传输文件时可以控制连接的断开(接收到客户端发出的终止传输命令),控制连接在整个会话期间一直保持打开的状态;
- 数据连接
- 服务端的控制进程在接收到FTP客户端发来的文件传输请求后,就创建“数据传送进程”和“数据连接”,数据传送进程完成实际文件的传送;
- 数据连接有两种传输模式
- 主动模式PORT
- 客户端连接到服务器的21端口,登陆成功后要读取数据时,客户端随机开放一个端口,并发送PORT命令告知服务器,服务器就通过20端口和客户端开放的端口连接并发送数据;
- 被动模式PASV
- PASV模式的不同点是,客户端要读取数据时,发送PASV命令到服务器,服务器在本地随机开放一个端口并告知客户端连接进行数据传输;
- 用PORT或者PASV模式,选择权在客户端;
- 主动模式PORT
- 使用FTP时,若要修改服务器上的文件,就需要先将文件传送到本地主机,然后再将修改后的文件副本传送到原服务器,这样来回传送耗费很多时间;
- 网络文件系统(NFS)采用另一种思路,它允许进程打开一个远程文件,并能在该文件的某个特定位置开始读写数据,NFS可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件;
- FTP的工作原理
电子邮件
- 电子邮件系统的组成结构
- 一个电子邮件系统应具有三个最主要的组件构成
- 用户代理(User Agent):就是邮件客户端,具有用户与电子邮件系统的接口,向用户提供接口来发送和接收邮件,应当具有攥写、显示和邮件处理的功能;
- 邮件服务器:通常采用客户/服务器方式工作,但又必须能够同时充当客户端和服务器,例如,A邮件服务器可以向B邮件服务器发送邮件,反之也可以B到A;
- 电子邮件使用的协议:SMTP、POP3
- 邮件发送协议:往邮件服务器发送邮件,SMTP,是推PUSH的通信方式;
- 邮件读取协议:从邮件服务器读取邮件,POP3,是拉Pull的通信方式;
- 客户端进程用SMTP协议,通过TCP连接,给服务端进程发送SMTP协议的内容,这就是邮件发送。邮件读取也是用TCP连接和POP3协议;
- 一个电子邮件系统应具有三个最主要的组件构成
- 电子邮件格式与MIME
- 电子邮件格式
- 电子邮件分为信封和内容两大部分
- 邮件内容分为首部和主体两部分
- 首部格式由RFC 822规定的,首部包含一些首部行,每个首部行由一个关键字后跟冒号再后跟值组成,最重要的关键字是To(必须)和Subject(可选);
- 主体由用户自由攥写;
- 多用途网际邮件扩充(MIME)
- 由于SMTP只能传送一定长度的ASCII码邮件,许多其它语言如中文就无法发送,且无法传送可执行文件及其它二进制对象,因此就提出了多用途邮件扩充(MIME);
- MIME并未改动SMTP或取代它,MIME的意图是继续使用目前的格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则;
- MIME与SMTP的关系,MIME邮件在现有电子邮件程序和协议下传送;
- MIME主要包括以下三部分内容:
- 5个新的邮件首部字段,包括MIME版本、内容描述、内容表示、传送编码和内容类型;
- 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化;
- 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变;
- 电子邮件格式
- SMTP和POP3
- SMTP
- 简单邮件传输协议,是一种可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP进程交换信息,用TCP连接,端口为25;
- SMTP通信有以下三个阶段:
- 连接建立:SMTP客户端向SMTP服务器发送HELO命令,附上发送方的主机名
- 邮件传送:邮件的传送从MAIL命令开始,MAIL命令后面有发件人的地址,例如MAIL FROM:test@hust.edu.com
- 连接释放:SMTP客户端发送QUIT命令,SMTP服务器返回的信息是221(服务关闭),表示SMTP同意释放TCP连接;
- POP3和IMAP
- POP3
- 邮局协议(Post Office Protocol)是一种非常简单但功能有限的邮件读取协议,现在使用它的第3个版本POP3;
- POP3是C/S工作方式,在传输层使用TCP协议,端口号为110;
- POP有两种工作方式
- 下载并保留:用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上;
- 下载并删除:邮件一旦被读取,就被从邮件服务器上删除,不能再次读取;
- IMAP
- 另一种邮件读取协议IMAP是因特网报文存取协议,比POP复杂的多,IMAP为用户提供了创建文件夹,在不同文件夹之间移动文件等联机命令;
- 为此IMAP服务器维护了会话用户的状态信息,IMAP的另一个它特性是允许用户代理只获取报文的某些部分,例如只读取一个报文的首部,或多部分MIME报文的一部分,非常适用于低带宽的情况;
- 适用于用户并不想取回邮箱中的所有邮件,尤其是包含很多音频或视频的大邮件;
- POP3
- 万维网的电子邮件:如Hotmail、Gmail等,是使用HTTP协议进程客户端和服务器之间的邮件发送或接收。仅在不同邮件服务器之间传送邮件才使用SMTP;
- SMTP
- 电子邮件系统的组成结构
万维网(WWW)
WWW的概念与组成结构
- 在这个空间中一样有用的事物称为一样“资源”,并由一个全域“统一资源定位符”(URL)标识,这些资源通过超文本传输协议(HTTP)传送给使用者;
- 万维网(World Wide Web)的内核是由三个标准构成的:
- 统一资源定位符(URL)
- 超文本传输协议(HTTP):是一个应用层协议,使用TCP连接进行可靠的传输;
- 超文本标记语言(HTML):使用一些约定的标记对页面上的各种信息(包括文件、声音、图像、视频等)格式进行描述;
- URL是对因特网上的资源位置和访问方法的一种简洁表示,URL相当于一个文件名在网络范围的扩展,URL的一般形式是,协议://主机:端口/路径;
- 万维网以C/S方式工作,是无数个网络站点和网页的集合,他们在一起构成了因特网最主要的部分(因特网也包括电子邮件、Usenet和新闻组);
超文本传输协议(HTTP)
- HTTP的操作过程
- 对服务器的域名进行解析,获取服务器的IP地址后,浏览器就通过TCP向服务器发送连接建立请求;
- 服务端监听TCP的80端口,当监听到连接请求后便与浏览器建立TCP连接,然后发送请求获取某个Web页面的HTTP请求,请求结束后释放TCP连接;
- HTTP有请求报文和响应报文;
- HTTP的特点
- 使用TCP作为传输协议,保证了数据的可靠传输,HTTP不必考虑数据在传输过程中被丢弃后怎样被重传。
- 但是HTTP本身是无连接的,虽然使用了TCP连接,但通信双方在交换HTTP报文之前不需要先建立HTTP连接;
- HTTP是无状态的,HTTP的无状态简化了服务器的设计。在实际应用中,通常使用Cookie加数据库的方式来跟踪用户的活动;
- Cookie的工作原理,为用户设置一个唯一的标识码,并在给用户响应的报文中添加一个Set-cookie字段返回给客户端;
- 当用户继续浏览网站时,会取出这个Cookie识别码记录该用户的活动记录;
- HTTP可是使用非持久连接,也可以使用持久连接(HTTP/1.1支持);
- 非持久连接:每个网页元素对象的传输都需要单独建立一个TCP连接,这样会使得服务器的负担很重;
- 持久连接:是指服务器在发送响应后仍然保持这条连接,使同一个客户端和服务器可以继续在这条连接上传送后续的HTTP请求和响应报文;
- 持久连接又分为非流水线和流水线两种方式:
- 非流水线方式:客户端在收到前一个响应后才能发出下一个请求,服务器发送完一个对象后其TCP连接就处于空闲状态了,浪费了资源;
- 流水线方式:HTTP/1.1默认的使用这种方式的持久连接,客户端每遇到一个对象引用就立即发出一个请求,所有的请求和响应都是连续发送的;
- HTTP的报文结构
- HTTP是面向文本的,因此报文中的每个字段都是一些ASCII码串,并且每个字段的长度都是不确定的,有两类HTTP报文
- HTTP请求报文和响应报文都是由三个部分组成,这两种的区别就是开始行不同:
- 开始行:
- 用于区分是是请求报文还是响应报文,在请求报文中的开始行称为请求行,而在响应报文中的开始行称为状态行;
- 开始行的三个字段都以空格分隔,最后的CR和LF分别代表回车和换行;
- 开始行有三个内容:请求方法(GET/POST等)、请求资源的URL、HTTP的版本;
- 首部行
- 用来说明浏览器、服务器或报文主体的一些信息,首部可以有几行,但也可以不使用;
- 每个首部行中都有首部字段名和它的值,每一行在结束的地方都有“回车”和“换行”;
- 整个首部行结束时,还有一空行将首部行和后面的实体主体分开;
- 实体主体
- 在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段;
- 开始行:
- 数据帧的结构定义,以太网数据帧中,
- 第1-6个字节为目的MAC地址
- 第7-12个字节为本机MAC地址
- 第13-14个字节08-00为类型字段,表示上层使用的是IP数据报协议;
- 第15-34个字节(共20B)为IP数据报的首部;
- 第27-30个字节为源IP地址;
- 第31-34个字节为目的IP地址;
- 第35-54个字节(共20B)为TCP报文段的首部,没有携带数据也有40个字节的IP头和TCP头
- 从第55个字节开始才是TCP数据部分,即从应用层传递下来的数据,例如HTTP中的请求报文;
- HTTP的操作过程
问题
- 4次挥手可以改成3次挥手吗?
- TCP默认开启了延迟确认机制,就可以把第二和第三次挥手合并传输,这就出现了三次挥手。延迟确认是ACK会等待一会看是否有数据可以起一起发送;
- 客户端fin->服务端ack和fin->客户端ack,服务端可以同时置位ack和fin,这样只有三个报文,完成了四次挥手;
- TCP的TIME_WAIT状态也称为2MSL等待状态
- MSL是“报文最大生存时间”(Maximum Segment Lifetime),是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃;
- 即第3次握手完成后发送了第4次握手的ACK包后就进入了TIME_WAIT状态,必须在此状态上停留两倍的MSL时间,
- 等待2MSL时间主要目的是怕最后一个ACK包对方没收到。
- 在TIME_WAIT状态时两端的端口不能使用,要等到2MSL时间结束才可继续使用。
- TCP的粘包和拆包是什么意思?
- 根据tcp发送缓冲区大小,数据报太小就会粘包(多个数据报合并发送),数据报太大就会拆包。MSS(最大报文长度),TCP报文长度-TCP头部长度>MSS就会拆包;
- 解决方法:将数据分成两个部分,头部和内容体,头部结构大小固定,且有一个字段声明内容体的大小;或者在数据尾部用一个特殊字符进行分隔;
- tcp发送缓冲区大小默认是:
- TCP发送缓冲区大小通常是一个相对较小的值,比如几十KB,这是为了避免过多的内存占用和网络拥塞;
- 可以通过调整TCP栈的配置参数来修改默认的缓冲区大小,使用sysctl命令或在系统启动时设置相应的参数;
- TCP窗口缩放选项允许在TCP连接中使用更大的窗口以提高传输性能,窗口大小由发送缓冲区和接收缓冲区的大小共同决定。
- 4次挥手可以改成3次挥手吗?