王道计算机网络
第一章、计算机网络概述
1、概念、组成、功能和分类
- 计算机网络的概念
计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机网络是互连的、自治的计算机集合。
互连-互联互通 通信链路
自治-无主从关系
- 计算机网络的功能
- 数据通信:数据可以在信道上传输,保证了不同主机的连通性。(最基本、最重要)
- 资源共享:硬件资源、软件资源、数据资源。
- 分布式处理:多台计算机各自承担同一工作的不同部分。常见分布式处理平台:hadoop
- 提高可靠性:一台主机宕机了,不会影响其他链路。
- 负载均衡:分布式处理的效果,多台计算机一起工作,工作任务均衡分配。
- 计算机网络的组成
- 组成部分:硬件(如下图)、软件、协议
-
工作方式:
- 边缘部分(主机):用户直接使用:c/s方式、P2P对等方式
- 核心部分(路由器、网络):为边缘模式服务
-
功能组成:
- 通信子网:实现数据通信
- 资源子网:实现资源共享/数据处理
- 计算机网络的分类
-
按分布范围分:广域网WAN(交换技术)、城域网MAN、局域网LAN(广播技术)、个人区域网PAN
-
按使用者分:
- 公用网:中国电信
- 专用网:军队、政府等等
-
按交换技术分:报文交换、分组交换、电路交换
-
按拓扑结构分:
-
按传输技术分:
- 广播式网络:共享公共通信信道
- 点对点网络:使用分组存储转发和路由选择机制
2、标准化工作以及相关组织
- 标准的分类
- 法定标准:由权威机构制定的正式的、合法的标准。例如:OSI
- 事实标准:某些公司的产品在竞争中占据了主流时间长了,这些产品中的协议和技术就成了标准,例如:TCP/IP
- RFC( Request For Comments ) ——因特网标准的形式
RFC要上升为因特网正式标准的四个阶段:
- 因特网草案(Internet Draft) 这个阶段还不是RFC文档
- 建议标准(Proposed standard) 从这个阶段开始成为RFC文档。
- 草案标准(Draft Standard):2011年取消
- 因特网标准(Internet Standard ):通过IETF、IAB审核后
- 相关组织
国际标准准化组织ISO:OSI参考模型、HDLC协议
国际电信联盟ITU:制定通信规则
国际电气电子工程师协会IEEE:学术机构、IEEE802系列标准、5G
Internet工程任务组IETF:负责因特网相关标准的制定,通过后有RFC XXXX
编号
3、速率相关的性能指标
- 速率
即数据率或称数据传输率或比特率
连接在计算机网络上的主机在数字信道上传送数据位数的速率。
单位是:b/s,kb/s,Mb/s,Gb/s,Tb/s
速率:
千
兆
吉
太
存储容量:1 Byte(字节)= 8 bit(比特)
- 带宽
-
“带宽”原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹 (HZ)
-
计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
简单地说:网络设备所支持的最高速度
- 吞吐量
表示在单位时间内通过某个网络(或信道、接口) 的数据量。单位b/s,kb/s,Mb/s等。
吞吐量受网络的带宽或网络的额定速率的限制。
4、时延、时延带宽积、RTT和利用率
- 时延
指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延。单位是s。
分为:
-
发送时延(传输时延)
从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。(高速链路减少的是发送时延,即提高带宽)
-
传播时延
取决于电磁波的传播速度和链路长度
-
排队时延
等待输出或输入链路可用
-
处理时延
检错,找出口
- 时延带宽积
时延带宽积(bit) = 传播时延(s) X 带宽(b/s)
时延带宽积又称为以比特为单位的链路长度。即“某段链路现在有多少比特(容量)”。
- 往返时延RTT
从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
RTT越大(期间的时间越长),在收到确认之前,可以发送的数据越多
RTT包括:
- 往返传播时延=传播时延*2
- 末端处理时间(看题目要求是否需要考虑)
- 利用率
分为:
- 信道利用率:
- 网络利用率:信道利用率加权平均值
5、分层协议、协议、接口、服务
- 为什么要分层?
发送文件前要完成的工作:
(1)发起通信的计算机必须将数据通信的通路进行激活。
(2)要告诉网络如何识别目的主机。
(3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
(4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
(5)确保差错和意外可以解决。
。。。。。
计算机:大问题 小问题1、小问题2、…
- 怎么分层
举例:
- 分层结构
- 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体
- 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】
- 语法:规定传输数据的格式
- 语义:规定所要完成的功能
- 同步:规定各种操作的顺序
- 接口(访问服务点SAP) :上层使用下层服务的入口。
- 服务:下层为相邻上层提供的功能调用。【垂直】
SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
PCI协议控制信息:控制协议操作的信息。
PDU协议数据单元:对等层次之间传送的数据单位。
- 概念总结
网络体系结构是从功能上描述计算机网络结构。
计算机网络体系结构简称网络体系结构是分层结构。
每层遵循某个/些网络协议以完成本层功能。
计算机网络体系结构是计算机网络的各层及其协议的集合。
第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
体系结构是抽象的,而实现是指能运行的一些软件和硬件。
6、OSI参考模型(1)
计算机网络分层结构:
- 7层OSI参考模型(法定标准)
- 4层TCP/IP参考模型(事实标准)
5层的体系结构
- ISO/OSI参考模型怎么来的
为了解决计算机网络复杂的大问题 分层结构(按功能)
目的:支持异构网络系统的互联互通
国际标准化组织(ISO)于1984年提出开放系统互连 (OSI) 参考模型。但是!理论成功,市场失败。
- ISO/OSI参考模型
- ISO/OSI参考模型解释通信过程
上图中 端到端 与 点到点的区别:现在A主机给B主机发送报文,端到端就是A到B,点到点就是自A到中间的路由器再到B;就是说端到端不需要了解中间经过了什么
7、OSI参考模型(2)
- 应用层
所有能和用户交互产生网络流量的程序。(用户与网络的界面)
典型应用层服务:文件传输(FTP)、电子邮件(SMTP)、万维网(HTTP)、…
- 表示层
用于处理在两个通信系统中交换信息的表示方式(语法和语义)
功能一:数据格式变换(翻译官)
功能二:数据加密解密
功能三:数据压缩和恢复
主要协议(考研不考):JPEG、ASCII
- 会话层
向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。
这就是会话,也是建立同步(SYN)
功能一:建立、管理、终止会话。
功能二:使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。(适用于传输大文件)
主要协议(考研不考):ADSP、ASP
- 传输层
负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
功能一:可靠传输 (确认,重发)、不可靠传输(不确认,不重发)
功能二:差错控制
功能三:流量控制
功能四:复用分用(复用:多个应用层进程可同时使用下面运输层的服务。分用:运输层把收到的信息分别交付给上面应用层中相应的进程)
主要协议: TCP、UDP
- 网络层
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报。
功能一:路由选择 选择最佳路径
功能二:流量控制
功能三:差错控制
功能四:拥塞控制(若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施缓解这种拥塞)
主要协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
- 数据链路层
主要任务是把网络层传下来的数据报组装成帧。
数据链路层/链路层的传输单位是帧
功能一:成帧(定义的开始和结束)…1000011101010101…
功能二:差错控制 帧错+位错
功能三:流量控制
功能四:访问(接入)控制 控制对信道的访问
主要协议:SDLC、HDLC、PPP、STP
- 物理层
主要任务是在物理媒体上实现比特流的透明传输。
物理层传输单位是比特
透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
功能一:定义接口特性
功能二:定义传输模式 单工、半双工、双工
功能三:定义传输速率
功能四:比特同步
功能五:比特编码
主要协议:Rj45、802.3
8、TCP、IP参考模型和5层参考模型
- OSI参考模型与TCP/IP模型
- OSI参考模型与TCP/IP模型相同点
-
都分层
-
基于独立的协议栈的概念
-
可以实现异构网络互联
- OSI参考模型与TCP/IP模型不同点
-
OSI定义三点: 服务、协议、接口
-
OSI先出现,参考模型先于协议发明,不偏向特定协议
-
TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次
-
ISO/OSI TCP/IP 网络层 无连接 + 面向连接 无连接 传输层 面向连接 无连接 + 面向连接 面向连接分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接的请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段接着,当数据传输完毕,必须释放连接。而面向无连接没有这么多阶段,它直接进行数据传输。
- 5层参考模型
综合了OSI和TCP/IP的优点
应用层:支持各种网络应用。FTP、SMTP、HTTP
传输层:进程-进程的数据传输。TCP、UDP
网络层:源主机到目的主机的数据分组路由与转发。IP、ICMP、OSPF等
数据链路层:把网络层传下来的数据报组装成帧。Ethernet、PPP
物理层:比特传输
- 5层参考模型的数据封装与解封装
第二章、物理层
1、物理层基本概念
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层主要任务:确定与传输媒体接口有关的一些特性 定义标准
-
机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
-
电气特性:规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等.
举例:某网络在物理层规定,信号的电平用+10V ~ +15V表示二进制0,用-10V ~ -15V表示二进制1,电线长度限定=15m以内
-
功能特性:指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途
举例:描述一个物理层接口引脚处于高电平时的含义
-
规程特性:(过程特性)定义各条物理线路的工作规程和时序关系
2、数据通信的基础知识
- 典型的数据通信模型
- 数据通信的相关术语
通信的目的是传送消息
数据:传送信息的实体,通常是有意义的符号序列。
数据通信指在不同计算机之间传输表示信息的二进制数0、1序列的过程。
信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。
数字信号:代表消息的参数取值是离散的。
模拟信号:代表消息的参数取值是连续的。
信源:产生和发送数据的源头。
信宿:接收数据的终点。
信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。
按传输信号分:模拟信道 (传送模拟信号) 、数字信道 (传送数字信号 )
按传输介质分:无线信道、有线信道
- 三种通信方式
从通信双方信息的交互方式看,可以有三种基本方式:
-
单工通信:只有一个方向的通信而没有反方向的交互,仅需要一条信道。
-
半双工通信:通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道。
-
全双工通信:通信双方可以同时发送和接受信息,也需要两条信道。
- 两种数据传输方式
- 串行传输:速度慢,费用低,适合远距离
- 并行传输:速度快,费用高,适合近距离用于计算机内部数据传输
- 同步传输 & 异步传输
实现同步的传输/通信方式:
- 同步传输: 在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。在传送数据时,需先送出1个或多个同步字符,再送出整批的数据。
- 异步传输: 异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达。传送数据时,加一个字符起始位和一个字符终上位。
3、码元、速率、波特、带宽
- 码元
码元是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时 (M大于2),此时码元为M进制码元。
1码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表0状态,另一种代表1状态。
K进制码元一4进制码元:码元的离散状态有4个,4种高低不同的信号波形 00、01、10、11,1码元2比特。
- 速率、波特、带宽
速率也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示
-
码元传输速率:别名码元速率、波形速率、调制速率、符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数),单位是波特 (Baud)。1波特表示数字通信系统每秒传输一个码元。这里的码元可以是多进制的,也可以是二进制的,但码元速率与进制数无关。
简单讲就是:1s 传输多少个码元。1 Baud = 1 码元/s
-
信息传输速率:别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是 比特/秒 (b/s)。
简单讲就是:1s传输多少个比特
关系:若一个码元携带 n bit的信息量,则 M Baud的码元传输速率所对应的信息传输速率为 M X n bit/s.
带宽:表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,常用来表示网络的通信线路所能传输数据的能力。单位是 b/s。
- 练习题
某一数字通信系统传输的是四进制码元,4s传输了8000个码元,求系统的码元传输速率是多少?信息传输速率是多少?若另一通信系统传输的是十六进制码元,6s传输了7200个码元。求他的码元传输速率是多少?信息传输速率是多少?并指出哪个系统传输速率快?
答案:2000Baud,4000b/s;1200Baud,4800b/s;十六进制更快
解析:
四进制码元系统:
码元传输速率就是 8000 / 4 = 2000 Baud,信息传输速率就是2000 = 4000 b/s
十六进制码元系统:
码元传输速率就是 7200 / 6 = 1200 Baud,信息传输速率就是1200 = 4800 b/s
系统传输的是比特流,通常比较的是信息传输速率,所以传输十六进制码元的通信系统传输速率较快,如果用该系统去传输四进制码元会有更高的码元传输速率。
4、奈氏准则和香农定理
- 失真
影响失直程度的因素:正相关(1、码元传输速率 2、信号传输距离 3、噪声干扰), 负相关(4、传输媒体质量)
- 失真的一种现象——码间串扰
信道带宽是信道能通过的最高频率和最低频率之差。3300Hz-300Hz=3000Hz
200HZ不能通过的原因:频率太低了,衰减后就无法识别了
4000HZ不能通过的原因:码间串扰
码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象
- 奈氏准则(奈奎斯特定理)
奈氏准则:在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为 2W Baud,W是信道带宽,单位是Hz。
只有在这两个公式,带宽单位才用Hz! !
为了混淆学生,会在求一步极限数据率:
结论:
- 在任何信道中,码元传输的速率是有上限的。若传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的完全正确识别成为不可能。
- 信道的频带越宽(即能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输
- 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
- 由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元能携带更多个比特的信息量,这就需要采用多元制的调制方法。
例题:在无噪声的情况下,若某通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输率是多少?
解析:
信号有 4 x 4 = 16 种变化
最大数据传输率 = 2 x 3k x =24 kb/s
- 香农定理
噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。信噪比 = 信号的平均功率 / 噪声的平均功率,常记为S/N,并用分贝 (dB) 作为度量单位
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。
结论:
-
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
-
对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了。
-
只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输。
-
香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比它低不少。
-
从香农定理可以看出,若信道带宽W或信噪比S/N没有上限(不可能),那么信道的极限信息传输速率也就没有上限。
例题:电话系统的典型参数是信道带宽为3000Hz,信噪比为30dB,则该系统最大数据传输速率是多少?
解析:
30 dB = 10 (S/N)
则 S/N = 1000
信道的极限数据传输速率 = W (1 + S/N) = 3000 x (1 + 1000) 30 kb/s
- 两个定理如何选择
缺少计算条件的,直接不考虑;如果都可以计算则都计算,然后比较结果大小。
例题: 进制信号在信噪比为127:1的4kHz信道上传输,最大的数据速率可达到多少?
解析:
奈氏准则: 2 X 4000 X = 8000 b/s
香农定理: 4000 X = 28000 b/s
选择较小的 8000 b/s
5、编码和调制(1)
- 基带信号与宽带信号
信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。
按传输信号分:模拟信道 (传送模拟信号) 、数字信道 (传送数字信号 )
按传输介质分:无线信道、有线信道
信道上传送的信号:
-
基带信号:
将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)。来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号。(可以是数字信号,也可以是模拟信号) -
宽带信号:
将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输(宽带传输)。把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)。
在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)。
- 编码与调制
编码:数据 数字信号
调制:数据 模拟信号
数字数据 数字信号(编码)
数字数据 模拟信号(调制)
模拟数据 数字信号(编码)
模拟数据 模拟信号(调制)
6、编码和调制(2)
- 数字数据编码为数字信号
-
非归零编码【NRZ】
高1低0
编码容易实现,但没有检错功能且无法判断一个码元的开始和结束,以至于收发双方难以保持同步 -
曼切斯特编码
将一个码元分成两个相等的间隔前一个间隔为低电平后一个间隔为高电平表示码元1;码元0则正好相反。也可以采用相反的规定该编码的特点是在每一个码元的中间出现电平跳变,位中间的跳变既作时钟信号(可用于同步),又作数据信号,但它所占的频带宽度是原始的基带宽度的两倍。所以数据传输速率只有调制速率的1/2。
-
差分曼切斯特编码
同1异0
常用于局域网传输,其规则是:若码元为1,则前半个码元的电平与上一个码元的后半个码元的电平相同,若为0,则相反。该编码的特点是,在每个码元的中间,都有一次电平的跳转,可以实现自同步,且抗干扰性强于彻斯特编码。 -
归零编码【RZ】
信号电平在一个码元之内都要恢复到零的这种编码成编码方式。
-
反向不归零编码【NRZI】
信号电平翻转表示0,信号电平不变表示1。
-
4B/5B编码
比特流中插入额外的比特以打破一连串的0或1,就是用5个比特来编码4个比特的数据,之后再传给接收方,因此称为4B/5B。编码效率为80%。
只采用16种对应16种不同的4位码其他的16种作为控制码(的开始和结束,线路的状态信息等)或保留。
- 数字数据编码为模拟信号
数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。
(调幅 + 调相 也叫 正交调幅调相)
答案:4800 b/s
- 模拟数据编码为数字信号
计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化)。
最典型的例子就是对音频信号进行编码的脉码调制(PCM),在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的 WAV文件中均有应用、它主要包括三步: 抽样、量化、编码。
- 抽样:对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。为了使所得的离散信号能无失真地代表被抽样的模拟数据,要使用采样定理进行采样:
- 量化:把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转换为离散的数字量。
- 编码:把量化的结果转换为与之对应的二进制编码。
- 模拟数据编码为模拟信号
为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式:模拟的声音数据是加载到模拟的载波信号中传输的。
7、物理层传输介质
- 传输介质及分类
传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路。
传输媒体不是物理层。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思但物理层规定了电气特性,因此能够识别所传送的比特流。
传输介质分为:
- 导向性传输介质:电磁波被导向沿着固体媒介 (铜线/光纤) 传播。
- 非导向性传输介质:自由空间,介质可以是空气、真空、海水等。
- 导向型传输介质——1、双绞线
双绞线是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。
为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP) ,无屏蔽层的双绞线就称为非屏蔽双绞线(UTP) 。
绞合可以减少对相邻导线的电磁干扰。
双绞线价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几公里到数十公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号;对于数字传输,要用中继器将失真的信号整形。
- 导向型传输介质——2、同轴电缆
同轴电缆由导体铜质芯线、绝缘层、网状编织屏蔽层和塑料外层构成。按特性阻抗数值的不同,通常将同轴电缆分为两类:同轴电缆和同轴电缆。其中,同轴电缆主要用于传送基带数字信号,又称为基带同轴电缆,它在局域网中得到广泛应用:同轴电缆主要用于传送宽带信号,又称为宽带同轴电缆,它主要用于有线电视系统
同轴电缆 VS 双绞线
由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
- 导向型传输介质——3、光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频率大约是MHz,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。
光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲,在接收端用光极管做成光检测器,在检测到光脉冲时可还原出电脉冲。
光纤主要由 纤芯(实心的!) 和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射,即光线碰到包层时候就会折射回纤芯、这个过程不断重复,光也就沿着光纤传输下去。
定义 | 光源 | 特点 | |
---|---|---|---|
多模光纤 | 有多种传输光信号模式的光纤 | 发光二极管 | 易失真,适合近距离传输 |
单模光纤 | 一种在横向模式直接传输光信号的光纤 | 定向性很好的激光二极管 | 衰耗小,适合远距离传输 |
光纤的特点:
- 传输损耗小,中继距离长,对远距离传输特别经济。
- 抗电和电磁扰性能好。
- 无串音干扰,保密性好,也不易被窃听或截取数据。
- 体积小,重量轻。
- 非导向性传输介质
1、无线电波:信号向所有方向传播
较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)。
2、微波:信号向固定方向传播
微波通信频率较高、频段范,因此数据率很高。
分类:
-
地面微波接力通信
-
卫星通信
-
优点:
1、通信容量大2、距离远
3、覆盖广
4、广播通信和多址通信
-
缺点:
1、传播时延长 (250-270ms)
2、受气候影响大 (eg: 强风太阳黑子爆发、日凌)
3、误码率较高
4、成本高
-
3、红外线、激光:信号向固定方向传播
把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号再在空间中传播。
8、物理层设备
- 中继器
诞生原因:由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。
中继器的功能:对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。
中继器的两端:
- 两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。
- 中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。
- 两端可连相同媒体,也可连不同媒体。
- 中继器两端的网段一定要是同一个协议。 (中继器不会存储转发,傻)
5-4-3规则:网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障.
- 不超过5个网段
- 最多有4个物理层网络设备(中继器、集线器)
- 只有三个段可以挂接计算机
- 集线器
集线器的功能:对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一个共享式设备。
集线器不能分割冲突域。
连在集线器上的工作主机平分宽带。
第三章、数据链路层
1、数据链路层功能概述
- 数据链路层的基本概念
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
结点:主机、路由器。
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
- 数据链路层的功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。【有连接一定有确认!】
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。限制发送方
功能五:差错控制(帧错/位错)
2、封装成帧和透明传输
- 封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定的界限)。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:1.字符计数法,2.字符(节) 填充法,3.零比特填充法,4.违规编码法。
- 透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这档各层的传输是透明的。
- 1.字符计数法
帧首部使用一个计数字段(第一个字节,八位) 来标明帧内字符数。
痛点:如果前面的帧的计数字段改变,会导致后面的全部发送错误
- 2.字符填充法
前导:
- 当传送的帧是由文本文件组成时 (文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
- 当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。
字符填充法:
填充的字节类似转义字符,这里的作用是告知下一个是正常数据,而不是控制信。
- 3.零比特填充法
操作:
-
在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。
0110111111110111110010(原始数据)
011011111011101111100010(填充0)
-
在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
011011111011101111100010(接受数据)
0110111111110111110010(删除0)
- 4.违规编码法
可以用“高-高“,”低-低”来定界的起始和终止
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是零比特填充法和违规编码法。
3、差错控制(检错编码)
- 差错从何而来?
概括来说,传输中的差错都是由于噪声引起的。
全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错 的主要原因
解决办法:通常利用编码技术来解决。
差错:
- 位错:比特位出错,1变为0, 0变为1。
- 帧错:假设原始数据为【#1】-【#2】-【#3】
- 丢失:【#1】-【#3】
- 重复:【#1】-【#2】-【#2】-【#3】
- 失序:【#1】-【#3】-【#2】
链路层为网络层提供服务:无确认无连接服务(通信质量好,有线传输链路),有确认无连接服务和有确认面向连接服务(通信质量差的无线传输链路(后面两个))。
- 数据链路层的差错控制
差错控制(比特错):
- 检错编码:
- 奇偶校验码
- 循环冗余码CRC
- 纠错编码:海明码
编码 VS 编码:
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过几余码的技术实现一组二进制比特串在传输过程是否出现了差错。
冗余编码:
在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
- 检错编码——奇偶校验码
奇偶校验码(1位校验位,其他为信息)
-
奇校验码:“1”的个数为奇数
生成时:信息中“1”为偶数,校验位为“1”;信息中“1”为奇数,校验位为“0”
检测时:“1”的个数不为奇数则发生错误
-
偶校验码:“1”的个数为偶数
生成时:信息中“1”为偶数,校验位为“0”;信息中“1”为奇数,校验位为“1”
检测时:“1”的个数不为偶数则发生错误
例题:如果一个字符S的ASCI编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测
A.11000011 B.11001010 C.11001100 D.11010011
奇偶校验码特点:
只能检查出奇数个比特错误,检错能力为50%(奇数个比特位出错,才能检验出来)
- 检错编码——CRC循环冗余码
接收端检错过程:
把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
- 余数为0,判定这个帧没有差错,接受
- 余数为不为0,判定这个有差错 (无法确定到位),丢弃
FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速因此不会延误数据的传输。
在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”
“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
4、差错控制(纠错编码)
- 海明距离
两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。
例如:
{000,001,010,001,100,101,110,111} → 码距为1
{0000,1001,1010,0011,1100,0101,0110,1111} → 码距为2 → 显然可以检测出一位错,但是不可以纠正
记住两个结论就行:
1、要检测 d 位错 → 码距 d+1
2、要纠正 d 位错 → 码距 2d+1
- 纠错编码——海明码
海明码:发现双比特错,纠正单比特错
工作原理:牵一发而动全身
工作流程:确定校验码位数r 确定校验码和数据的位置 求出校验码 检错并纠错
- 1.确定校验码位数r
海明不等式: (r为冗余位,k为信息位)
举例:要发送的数据为:D = 101101
数据的位数k=6,
满足不等式的最小r为4,
也就是D = 101101的海明码应该有6+4=10位,
其中原数据6位,效验码4位。
- 2.确定校验码和数据的位置
假设这4位校验码分别为P1、P2、P3、P4;数据从左到右为D1、D2、…、D6。
P1、P2、P3、P4放在2的几次方位:
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
代码 | p1 | p2 | p3 | p4 | ||||||
实际值 |
D1、D2、…、D6按序填满:
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
代码 | p1 | p2 | D1 | p3 | D2 | D3 | D4 | p4 | D5 | D6 |
实际值 | 1 | 0 | 1 | 1 | 0 | 1 |
- 3.求出校验码
令所有要检验的位异或=0
P1:
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
代码 | p1 | p2 | D1 | p3 | D2 | D3 | D4 | p4 | D5 | D6 |
实际值 | 1 | 0 | 1 | 1 | 0 | 1 |
p2:
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
代码 | p1 | p2 | D1 | p3 | D2 | D3 | D4 | p4 | D5 | D6 |
实际值 | 1 | 0 | 1 | 1 | 0 | 1 |
p3:
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
代码 | p1 | p2 | D1 | p3 | D2 | D3 | D4 | p4 | D5 | D6 |
实际值 | 1 | 0 | 1 | 1 | 0 | 1 |
p4:
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
代码 | p1 | p2 | D1 | p3 | D2 | D3 | D4 | p4 | D5 | D6 |
实际值 | 1 | 0 | 1 | 1 | 0 | 1 |
所以海明码为0010011101
- 4.检错并纠错
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
代码 | p1 | p2 | D1 | p3 | D2 | D3 | D4 | p4 | D5 | D6 |
实际值 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
假设现在第五位发生了错误:0变成1
令所有要检验的位进行异或运算:
所以可以看出第五位出错了
5、流量控与可靠传输机制
- 数据链路层的流量控制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。网络层是整个网络的流量控制。
数据链路层流量控制手段: 接收方收不下就不回复确认。
传输层流量控制手段: 接收端给发送端一个窗口公告
- 流量控制的方法
- 停止-等待协议:发送窗口大小=1,接收窗口大小=1
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
-
滑动窗口协议
-
后退N帧协议(GBN):发送窗口大小>1,接收窗口大小=1
-
选择重传协议(SR):发送窗口大小>1,接收窗口大小>1
-
- 可靠传输、滑动窗口、流量控制
可靠传输:发送端发啥,接收端收啥。
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。
滑动窗口解决了:
- 流量控制(收不下就不给确认,想发也发不了)
- 可靠传输(发送方自动重传)
6、停止-等待协议
- 停止-等待协议究竟是哪一层的?
发展后:数据链路层 传输层
- 停止-等待协议
-
为什么要有停止-等待协议?
除了比特出差错,底层信道还会出现丢包问题为了实现流量控制。
丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。 -
研究停等协议的前提?
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。 -
停等协议有几种应用情况?
无差错情况和有差错情况
- 停止-等待协议——无差错情况
每发送1个数据帧就停止并等待,因此用1bit来编号就够
- 停止-等待协议——有差错情况
1、数据帧丢失或检测到帧出错
超时计时器:每次发送一个帧就启动一个计时(超时计时器设置的重传时间应当比帧传输的平均RTT更长一些)
注意:
- 发完一个帧后,必须保留它的副本。
- 数据帧和确认帧必须编号。
2、ACK丢失
3、ACK迟到
- 停止-等待协议——性能分析
简单,但是信道利用率太低!
- 信道利用率
发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
信道利用率 = (L / C) / T
T:发送周期
L:T内发送L比特数据
C:发送方数据传输率
信道吞吐率 = 信道利用率 * 发送方的发送速率
例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%要求的数据帧长度至少为?
解析:, L = 960bit
7、后退N帧协议(GBN)
- 停止-等待协议的弊端
信道利用率太低了
要求:
1、必须增加序号范围
2、发送方需要缓存多个分组。
后退N帧协议(GBN)选择重传协(SR) 。
- 后退N帧协议中的滑动窗口
- GBN发送方必须响应的三件事
- 上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。 - 收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。(就是说不用每一个都返回一个确认帧) - 超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧(因为后面的肯定不会被接收)。
- GBN接收方要做的事
-
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
-
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息: expectedseqnum (下一个按序接收的帧序号)。
- 运行中的GBN
假设发送窗口尺寸为 4 。
- 滑动窗口的长度
窗口长度可以无限吗?当然不行!
若采用n个比特对帧编号,那么发送窗口的尺寸应满足: 。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
- GBN协议重点总结
- 累积确认(偶尔捎带确认 (全双工,互相通信的嘛,捎带一下确认帧) )
- 接收方只按顺序接收帧,不按序无情丢弃
- 确认序列号最大的、按序到达的帧
- 发送窗口最大为,接收窗口大小为1
- 习题
数据链路层采用了后退N帧(GBN)协议,发送方已经发送了编号为0~7的。当计时器超时时,若发送方只收到0、2、3号顿的确认,则发送方需要重发的帧数是( )
A.2 B.3 C.4 D.5
解析:需要重发4、5、6、7帧
- GBN协议性能分析
因连续发送数据帧而提高了信道利用率;
在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低。
8、选择重传协议(SR)
- GBN协议的弊端
累计确认 批量重传
想法:可不可以只重传出错的帧?
解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
- 选择重传协议的滑动窗口
- SR发送方必须响应的三件事
- 上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧:否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。 - 收到了一个ACK
如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。 - 超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
- SR接收方要做的事
来者不拒(窗口内的帧)
SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
如果收到了窗口序号外 (小于窗口下界)的顿,就返回一个ACK其他情况,就忽略该帧。
- 运行中的SR
假设发送窗口和接收窗口尺寸都为 4 。
- 滑动窗口的长度
窗口长度可以无限吗?当然不行!
若采用n个比特对帧编号:
- SR协议重点总结
- 对数据恢逐一确认,收一个确认一个
- 只重传出错帧
- 接收方有缓存
- 习题
数据链路层采用了选择重传(SR)协议,发送方已经发送了编号为0~3的。现已收到1号的确认,而0、2号帧依次超时,则发送方需要重传的帧数是( )
A.2 B.3 C.4 D.5
解析:需要重发0、2帧
9、信道划分介质访问控制
- 传输数据使用的两种链路
-
点对点链路
两个相邻节点通过一个链路相连,没有第三者。
应用:PPP协议,常用于广域网 -
广播式链路
所有主机共享通信介质。
应用:早期的总线以太网、无线局域网,常用于局域网。
典型拓扑结构:总线型、星型(逻辑总线型)
-
-
介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
-
静态划分信道
- 信道划分介质访问控制
- 频分多路复用 FDM
- 时分多路复用 TDM
- 波分多路复用 WDM
- 码分多路复用 CDM
- 信道划分介质访问控制
-
动态划分信道
动态媒体接入控制/多点接入
特点:信道并非在用户通信时固定分配给用户。
-
轮询访问介质访问控制
- 轮询协议
- 令牌传递协议
-
随机访问介质访问控制
所有用户可随机发送信息。
发送信息时占全部带宽。- ALOHA 协议(不听(监听信道)就说)
- CSMA 协议(先听再说)
- CSMA/CD 协议(先听再说,边听边说)
- CSMA/CA 协议
-
-
- 信道划分介质访问控制
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
多路复用技术:
把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率
把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
- 频分多路复用 FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
充分利用传输介质带宽,系统效率较高;
由于技术比较成熟,实现也比较容易。
- 时分多路复用 TDM
将时间划分为一段段等长的时分复用帧 (TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
频分 VS 时分:
频分复用——“并行”
时分复用——“并发“
- 改进的时分复用——统计时分复用STDM
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM顺中,一个STDM顺满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
假设信道带宽为 8000 b/s:
时分多路复用 TDM:一人最高 2000 b/s
统计时分多路复用 STDM:一人最高 8000 b/s
- 波分多路复用 WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
- 码分多路复用 CDM
码分多址 (CDMA)是码分复用的一种方式。
1个比特分为多个码片/芯片 (chip),每一个站点被指定一个唯一的m位的芯片序列。
发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1)
如何不打架:多个站点同时发送数据的时候,要求各个站点芯片序列相互正交(等于0才行)。
如何合并:各路数据在信道中被线性相加。
如何分离:合并的数据和源站规格化内积。
10、ALOHA 协议
- ALOHA 协议
- 纯ALOHA 协议
- 时隙ALOHA 协议
- 纯ALOHA 协议
纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想发就发
冲突如何检测?
如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
冲突如何解决?
超时后等一随机时间再重传
- 时隙ALOHA 协议
时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。控制想发就发的随意性
- 关于ALOHA要知道的事
- 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
- 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
11、CSMA协议
-
CSMA协议
载波监听多路访问协议CSMA (carrier sense multiple access)
- 1-坚持CSMA
- 非坚持CSMA
- p-坚持CSMA
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上
协议思想:发送帧之前,监听信道
监听结果:
- 信道空闲:发送完整帧
- 信道忙:推迟发送
- 1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则一直监听,直到空闲马上传输。
如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
- 非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
非坚持CSMA思想: 如果一个主机要发送消息,那么它先监听信道;
空闲则直接传输,不必等待;
忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
- p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道;
空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输;
忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
BUT!:发生冲突后还是要坚持把数据帧发送完,造成了浪费
思考:有没有什么办法可以减少资源浪费冲突就能发现呢?(后面内容)
12、CSMA/CD协议
-
CSMA/CD协议(考研重点)
载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection)
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。(总线型网络)
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。(半双工网络)
先听后发为什么还会冲突?因为电磁波在总线上总是以有限的速率传播的
- 传播时延对载波监听的影响
最迟多久才能知道自己发送的数据没和别人碰撞?
答案:最多是两倍的总线端到端的传播时延(即总线的端到端往返传播时延,也叫做争用期/冲突窗口/碰撞窗口)
推断:只要经过时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。
- 如何确认碰撞后重传的时间?
截断二进制指数规避算法:(二进制回退算法)
- 确定基本退避(推迟)时间为争用期。
- 定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。
- 从离散的整数集合[0, ]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即。
- 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
举例:
第一次重传,k=1,r从{0,1}选;
重传推迟时间为0或,在这两个时间中随机选一个。
若再次碰撞,则在第二次重传时,k=2,r从0,1,2,3}选;
重传推迟时间为0或或或,在这四个时间中随机选一个。
若再次碰撞,则第三次重传时,k=3,r从{0,1,2,3,4,5,6,7}选…
结论:若连续多次发生冲突,就表明可能有较多的站参与争用信道使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定
例题:在以太网的二进制回退算法中,在11次碰撞之后,站点会在0~(?)之间选择一个随机数。(答案:1023)
- 最小帧长
背景:
A站发了一个很短的帧,
但发生了碰撞,
不过帧在发送完毕后才检测到发生碰撞,
没法停止发送,
因为发完了。。
最小帧长
帧的传输时延至少要两倍于信号在总线中的传播时延
即:
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧
13、CSMA/CA协议
-
CSMA/CA协议(非重点 了解即可)
载波监听多点接入/碰撞避免CSMA/CA (carrier sense multiple access with collision avoidance)
为什么要有CSMA/CA?
无线局域网:
- 无法做到360°全面检测碰撞。
- 隐蔽站:
当A和c都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突。(C相对于A来说就是一个隐蔽站,A相对于C也是)
- CSMA/CA协议工作原理
发送数据前,先检测信道是否空闲。
空闲则发出RTS (request to send) ,RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
接收端收到RTS后,将响应CTS (clear to send)。
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
机制总结:
1.预约信道 2.ACK帧 3.RTS/CTS帧(可选,解决隐蔽站问题)
- 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避免冲突,二者出现冲突后都会进行有上限的重传。
14、轮询访问介质访问控制
-
介质访问控制
-
信道划分介质访问控制(MAC Multiple Access Control)协议:
基于多路复用技术划分资源
网络负载重:共享信道效率高,且公平
网络负载轻:共享信道效率低 -
随机访问MAC协议:只有这个会发生冲突
用户根据意愿随机发送信息,发送信息时可独占信道带宽
网络负载重:产生冲突开销
网络负载轻:共享信道效率高,单个结点可利用信道全部带宽 -
轮询访问MAC协议/轮流协议/轮转访问MAC协议:
既要不产生冲突,又要发送时占全部带宽。
- 轮询协议
- 令牌传递协议
-
- 轮询协议
主结点轮流“邀请”从属结点发送数据。
问题:
1.轮询开销 2.等待延迟 3. 单点故障
- 令牌传递协议
令牌:一个特殊格式的MAC控制帧,不含任何信息控制信道的使用,确保同一时刻只有一个结点独占信道。
令牌环网无碰撞
每个结点都可以在一定的时间内 (令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
1.令牌开销 2.等待延迟 3.单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
15、局域网的基本概念和体系结构
- 局域网
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
特点2:使用专门铺设的传输介质(双绞线、同轴电缆) 进行联网,数据传输速率高(10Mb/s~10Gb/s)。
特点3:通信延迟时间短,误码率低,可靠性较高。
特点4:各站为平等关系,共享传输信道。
特点5:多采用分布式控制和广播式通信,能进行广播和组播。
决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。
- 局域网拓扑结构
星型拓扑:
中心节点是控制中心,任意两介节点间的通信最多只需两步,传输速度快并且网络构形简单、建网容易、便于控制和管理但这种网络系统,网络可靠性低,网络共享能力差有单点故障问题。
总线型拓扑:(局域网中常用)
网络可靠性高、网络节点间响应速度快、共享资源能力强、设备投入量少、成本低、安装使用方便当某个工作站节点出现故障时,对整个网络系统影响小。
环型拓扑:
系统中通信设备和线路比较节省。有单点故障问题:由于环路是封闭的,所以不便于扩充,系统响应延时长,且信息传输效率相对较低。
树型拓扑:
易于拓展,易于隔离故障,也容易有单点故障。
-
局域网传播介质
-
有线局域网
双绞线、同轴电缆、光纤。
-
无线局域网
电磁波
-
- 局域网介质访问控制方法
- 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标准
IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
下面加粗的一定要记住:
标准 | 描述 |
---|---|
IEEE 802.1 | 局城网体系结构、寻址、网络互联和网络。 |
IEEE 802.1A | 概述和系统结构。 |
IEEE 802.1B | 网络管理和网络互连。 |
IEEE 802.2 | 逻辑链路控制子层 (LLC)的定义。 |
IEEE 802.3 | 以太网介质访问控制协议 (CSMA/CD)及物理层技术规范。 |
IEEE 802.4 | 令牌总线网 (Token-Bus)的介质访问控制协议及物理层技术规范。 |
IEEE 802.5 | 令牌环网 (Token-Ring)的介质访问控制协议及物理层技术规范。 |
IEEE 802.6 | 城城网介质访问控制协议DQDB (Distributed Queue Dual Bus 分布式队列双总线)及物理层技术规范。 |
IEEE 802.7 | 宽带技术咨询组,提供有关宽带联网的技术咨询。 |
IEEE 802.8 | 光纤技术咨询组,提供有关光纤联网的技术咨询。 |
IEEE 802.9 | 综合声音数据的局城网 (IVD LAN)介质访问控制协议及物理层技术规范。 |
IEEE 802.10 | 网络安全技术咨询组,定义了网络互操作的认证和加密方法。 |
IEEE 802.11 | 无线局域网(WLAN)的介质访问控制协议及物理层技术规范。 |
IEEE 802.11 | 1997年,原始标准(2Mbit/s,播在2.4GHz)。 |
IEEE 802.11a | 1999年,物理层补充 (54Mbit/s,播在5GHz)。 |
IEEE 802.11b | 1999年,物理层补充(11Mbit/s播在2.4GHz)。 |
- LLC子层和MAC子层
IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
【LLC子层】:LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接面向连接、带确认无连接、高速传送。
【MAC子层】:MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
16、以太网
- 以太网概述
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD (载波监听多路访问及冲突检测)技术。
以太网在局域网各种技术中占统治性地位:
- 造价低廉(以太网网卡不到100块) ;
- 是应用最广泛的局域网技术;
- 比令牌环网、ATM网便宜,简单;
- 满足网络速率要求:10Mb/s~10Gb/s。
以太网的两个标准:
DIX Ethernet V2:第一个局域网产品(以太网)规约。
IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。
(两个标准的区别:帧格式有一丢丢改动)
- 以太网提供无连接、不可靠服务
无连接:发送方和接收方之间无“握手过程”
不可靠:不对发送方的数据顿编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
- 以太网传输介质与拓扑结构的发展
粗同轴电缆 细同轴电缆 双绞线+集线器
物理拓扑:总线型 星型(以太网目前最常用的物理拓扑)
使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是协议
以太网拓扑:逻辑上总线型,物理上星型
- 10BASE-T以太网
10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T 采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。
物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。
采用曼彻斯特编码。
采用CSMA/CD介质访问控制。
- 适配器与MAC地址
计算机与外界有局域网的连接是通过通信适配器的。
网络接口板。
网络接口卡NIC (network interface card)。
现在不再使用单独网卡。
适配器上装有处理器和存储器 (包括RAM和ROM)。
ROM上有计算机硬件地址MAC地址。
在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】
MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。
- 以太网MAC帧
最常用的MAC帧是以太网V2的格式。
源地址、目的地址:MAC地址
类型:指明网络层使用了什么协议
数据:46(64-6-6-2-4),1500(MTU)
FCS:看CRC那块——差错控制(检错编码)
帧开始定界符:为什么没有末尾定界符呢?以太网使用曼切斯特编码,当不发送数据的时候没有跳变了,就相当于结束了
前同步码:用来迅速实现MAC帧的比特同步
- 高速以太网
速率的以太网称为高速以太网
-
100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。
支持全双工和半双工,可在全双工方式下工作而无冲突。 -
吉比特以太网
在光纤或双绞线上传送1Gb/s信号
支持全双工和半双工,可在全双工方式下工作而无冲突。 -
10吉比特
10吉比特以太网在光纤上传送10Gb/s信号。
只支持全双工,无争用问题。
17、无线局域网
-
IEEE 802.11
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
WiFi?IEEE 802.11b、IEEE 802.11g
- 802.11的MAC帧头格式
/static/imgs/loading.gif" data-original="
功能 | To DS | From DS | Adress1(接收端) | Adress2(发送端) | Adress3 | Adress4 |
---|---|---|---|---|---|---|
IBSS | 0 | 0 | DA | SA | BSSID | 未使用 |
To AP(基础结构型) | 1 | 0 | BSSID | SA | DA | 未使用 |
From AP(基础结构型) | 0 | 1 | DA | BSSID | SA | 未使用 |
WDS(无限分布式系统) | 1 | 1 | RA | TA | DA | SA |
BSSID:基本服务集BSS标识符ID
AP:Access Point —— 接入点
- 无线局域网分类
- 有固定基础设施无线局域网
- 无固定基础设施无线局域网的自组织网络
- 有固定基础设施无线局域网
- 无固定基础设施无线局域网的自组织网络
18、VLAN的基本概念及基本原理(新增考点)
- 传统局域网的局限
缺乏流量隔离:即使把组流量局域化道一个单一交换机中,广播流量仍会跨越整个机构网络(ARP、RIP、DHCP协议)
管理用户不便:如果一个主机在不同组间移动,必须改变物理布线,连接到新的交换机上
路由器成本较高:局域网内使用很多路由器花销较大。
- VLAN的基本概念
虚拟局域网VLAN (Virtual Local Area Network) 是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组有某些共同的需求。每个VLAN是一个单独的广播域/不同的子网。
- VLAN的实现
交换机上生成的各VLAN互不相通,若想实现通信,需要借助:路由器、三层交换机
- 基于接口的VLAN技术:(更常用)
- 基于 MAC地址的VLAN技术:
交换机之间如何实现?加tag
- VLAN实现——IEEE 802.1Q帧
插入四字节VLAN标记:
VLAN标记的前两个字节表明是IEEE 802.1Q,接下来4位没用,后面12位是VLAN标识符VID,唯一表示了该以太网帧属于哪个VLAN。
- VID的取值范围为0~4095,但0和4095都不用来表示VLAN,因此用于表示VLAN的有效VID取值范围为1~4094
- IEEE802.1Q帧是由交换机来处理的,而不是由用户主机来处理的。(即主机和交换机之间只交换普通的以太网帧)
- 练习
Q1. A和E能否实现访问?
Q2. A和D、H能否实现访问?
ans:能;不能
- 题目
以下关于虚拟局域网特性的描述中,错误的是( )
A. 虚拟局域网是建立在局域网交换技术基础上的
B. 虚拟局域网可以将局域网上的结点划分成若干个[逻辑工作组],那么一个逻辑工作组就是一个虚拟网络
C. 逻辑工作组的结点组成不受物理位置的限制
D. 虚拟网络建立在网络交换机之上,它以硬件方式来实现逻辑工作组的划分与管理
ans:D
VLAN以软件的方式实现逻辑分组和管理
19、广域网
- 广域网
广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
广域网更加强调资源共享;局域网更加强调数据传输。
- PPP协议的特点
点对点协议PPP (Point-to-Point Protocol) 是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
只支持全双工链路。
- PPP协议应满足的要求
简单 对于链路层的帧,无需纠错,无需序号,无需流量控制。封装成帧 帧定界符
透明传输 与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
多种网络层协议 封装的IP数据报可以采用多种协议多种类型链路 串行/并行,同步/异步,电/光…
差错检测 错就丢弃。
检测连接状态 链路是否正常工作。
最大传送单元 数据部分最大长度MTU。
网络层地址协商 知道通信双方的网络层地址
数据压缩协商
- PPP协议无需满足的要求
纠错 只需要检错
流量控制 交给上层
序号 无需对帧编号
不支持多点线路 只需要点对点
- PPP协议的三个组成部分
- 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
- 链路控制协议LCP:建立并维护数据链路连接。 身份验证
- 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
- PPP协议的状态图
- PPP协议的帧格式
都是以字节作为单位,所以说是面向字节。
地址字段(A)、控制字段(C)内容都是固定不变的
- HDLC协议
高级数据链路控制 (Hieh-level Data link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据路层协议,它是由国际标准化组织(ISO)根据BM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。
(不属于TCP/IP协议族)
数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现。
采用全双工通信。
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
-
HDLC的站
主站、从站、复合站
- 主站的主要功能是发送命令(包括数据信息)、接收响应,并负责对整个链路的控制系统的初启流程的控制、差错检测或恢复等。
- 从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。
- 复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
三种数据操作方式:
- 正常响应方式:从站要发送数据,需要主站的同意。
- 异步平衡方式:每一个复合站都可以对别的站数据传输。
- 异步响应方式:从站要发送数据,可以不经过主站的同意。
- HDLC的帧格式
地址A:根据不同的传送方式,表示从站(正常响应方式、异步响应方式)或应答站(异步平衡方式)的地址。
控制C:类比PPP协议的协议字段;只看前两位,如下:
-
信息 () 第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认。
-
监督帧 () 10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能。
-
无编号帧 () 11,用于提供对链路的建立、拆除等多种控制功能。
记忆:“无奸细”
- PPP协议 & HDLC协议
HDLC、PPP只支持全双工链路。
PPP协议既可以实现零比特填充,也可以使实现字节填充;HDLC只能实现零比特填充。
都可以实现透明传输。
都可以实现差错检测,但不纠正差错。
PPP协议 | 面向字节 | 2B协议字段 | 无序号和确认机制 | 不可靠 |
---|---|---|---|---|
HDLC协议 | 面向比特 | 没有 | 有编号和确认机制 | 可靠 |
为什么HDLC协议可靠但是不总用它呢?因为太浪费了,在实际中要兼顾速率,所以一般数据链路层和网络层都不去实现可靠传输,而交由传输层。
20、链路层设备
- 物理层扩展以太网?
双绞线不能超过100m怎么办?
【上图错别字,概论→概率】
冲突域:一个冲突域内只能有一台主机在发送信息,否则产生冲突碰撞
更好的方法?往下
-
链路层扩展以太网
网桥 & 交换机
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃 (即过滤)。
冲突域也叫网段。
网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
网桥优点:
- 过滤通信量,增大吞吐量。
- 扩大了物理范围。
- 提高了可靠性。
- .可互连不同物理层、不同MAC子层和不同速率的以太网。
- 网桥分类——透明网桥
透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备——自学习。
解释上图:
初始路由表信息为空;(称上图两个网桥为左边网桥和右边网桥)
① A->B:A将信息发给B和左边网桥;左边网桥记录A是来自1端口;由于左边网桥没有B的信息,就接着转发给C、D和右边网桥(虽然之前已经发给B了,但是机器是死的,还是会继续发);右边网桥记录A是来自1端口;由于右边网桥没有B的信息,就接着转发给E、F……
② F->C:F将信息发给E和右边网桥;右边网桥记录F是来自2端口;由于右边网桥没有C的信息,就接着转发给C、D和左边网桥;左边网桥记录F是来自2端口;由于左边网桥没有C的信息,就接着转发给A、B……
③ B->A:B将信息发给A和左边网桥;左边网桥记录B是来自1端口;由于左边网桥有A的信息,知道了A、B在同一边,就不必转发了,直接丢弃。
- 网桥分类——源路由网桥
源路由网桥:在发送帧时,把详细的最佳路由信息路由最少/时间最短)放在的首部中。
方法:源站以广播方式向欲通信的目的站发送一个发现帧。
打个比方:
假设实际中有:
方案1:。。。
方案2:。。。
方案3:。。。
。。。。。。
如果方案3是最佳路由信息,那么将放在首部。
- 多接口网桥——以太网交换机
每个端口都是一个冲突域。
-
以太网交换机的两种交换方式
-
直通式交换机
查完目的地址 (6B) 就立刻转发。
延迟小,可靠性低,无法支持具有不同速率的端口的交换。
-
存储转发式交换机(实际中多使用这个)
将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。
延迟大,可靠性高,可以支持具有不同速率的端口的交换。
-
- 交换机的自学习功能
同透明网桥的自学习
表项具有生命周期,超时删除,为了不断更新。
- 冲突域 & 广播域
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。
能否隔离冲突域 | 能否隔离广播域 | |
---|---|---|
物理层设备【傻瓜】 (中器、集线器) |
不能 | 不能 |
链路层设备【路人】 (网桥、交换机) |
能 | 不能 |
网络层设备【大佬】 (路由器) |
能 | 能 |
例题:下图有几个冲突域名,几个广播域?
答案:4;1。
解析:有交换机隔离出4个冲突域;没有被隔离,所以整体是一个广播域。
第四章、网络层
1、网络层功能概述
-
网络层
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报。
-
功能一:路由选择与分组转发 —— 最佳路径
-
功能二:异构网络互联 —— 路由器
-
功能三:拥塞控制
若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施缓解这种拥塞:
- WAY1: 开环控制(静态)
- WAY2: 闭环控制(动态)
-
2、SDN的基本概念(新增考点)
软件定义网络(SDN)
- 路由器功能:转发&路由选择
转发:达到路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
数据平面:数据平面对于数据处理过程中各种具体处理转发过程。—— 时间短,通常硬件解决。
路由选择:控制数据报沿着从源主机到目的主机的端到端路径中,路由器之间的路由方式
控制平面:控制平面用于控制和管理网络协议的运行,比如OSPF协议、RIP协议、BGP协议。—— 时间长,通常软件解决。
- 数据平面
数据平面执行的主要功能是根据转发表进行转发,这是路由器的本地动作
- 控制平面(传统方法/每路由器法)
控制平面和数据平面都在每个路由器内进行
控制平面 (传统方法) :
路由选择算法运行在每台路由器中,并且在每台路由器中都包含转发和路由选择两种功能。
具体方法:
在一台路由器中的路由选择算法与其他路由器中的路由选择算法通信(通过交换路由选择报文),计算出路由表和转发表
- 控制平面(SDN方法: Software-Defined Networking)
如上图,远程控制器可能在具有高可靠性的远程数据中心中,并可能由ISP或某些第三方管理
控制平面(传统方法):
控制平面从路由器物理上分离。路由器仅实现转发,远程控制器计算和分发转发表以供每台路由器所使用。
具体方法:
路由器通过交换包含转发表和其他路由选择信息的报文与远程控制器通信。因为计算转发并与路由器交互的控制器是用软件实现的,所以网络是“软件定义的”。【软件→可编程】
目前很多大厂开始使用了
- 控制平面中的路由选择处理器
传统方法:
路由选择处理器执行控制平面功能。在传统的路由器中,它执行路由选择协议,维护路由选择表于关联链路状态信息,并为该路由器计算转发表。
SDN方法:
在SDN路由器中,路由选择处理器负责于远程控制器通信,目的是接收远程控制器计算的转发表项。
可见路由选择控制器地位降低了。
- SDN控制平面
控制平面
- SDN控制器:维护准确的网络状态信息(远程链路、交换机和主机的状态);为运行在控制平面中的网络控制应用程序提供这些信息(逻辑集中,在多台服务器上实现)。
- 网络控制应用程序:根据SDN控制器提供的方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。
- SDN控制器的三个层次
对于网络控制应用程序的接口:SDN控制器通过”北向接口“与网络控制应用程序交互。该API允许网络控制应用程序在状态管理层之间读写网络状态。
网络范围状态管理层:由SDN控制平面作出的最终控制决定将要求控制器具有有关网络的主机、链路等最新状态信息。
通信层:SDN控制器与受控网络设备之间的通信(OpenFlow协议),包含”南向接口“
- 习题
- 假定你要在SDN控制平面中实现一个新型路由选择协议,你将在哪个层次中实现该协议?
网络范围状态管理层。因为在这一层能获得有关网络的主机,链路,交换机和其他SDN控制设备的最新状态信息可以根据这些信息的基础上实现新型路由选择协议,并通知给控制器落地执行
- 谁是从控制器跨越南向接口发送的这些报文的接收者? 谁是跨越北向接口从控制器发送的这些报文的接收者?
受控网络设备(路由器)
网络控制应用程序
第2题画个图就清晰了
3、电路交换、报文交换和分组交换
- 网络的”掌中宝“
【一堆主机】 【一堆路由器】 【一堆主机】
如何是数据通过网络的核心【路由器】从源主机到达目的主机?数据交换
- 为什么需要数据交换
- 数据交换方式
- 电路交换
- 报文交换
- 分组交换
- 数据报方式
- 虚电路方式
-
电路交换
举例:电话网络
电路交换的原理:在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。
电话交换的阶段:建立连接(呼叫/电路建立) 通信 释放连接(拆除电路)
特点:独占资源,用户始终占用端到端的固定传输带宽。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。
优点:
- 通信延时小
- 有序传输
- 没有冲突
- 实时性强
缺点:
- 建立接时间长
- 线路独占,使用效率低
- 灵活性差
- 无差错控制能力
- 报文交换
报文:源应用发送的信息整体。报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。
报文交换的原理:无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发方式
1.每个节点收下整个报文后,暂存报文并检查有无错误
2.当所需要的输出电路空闲时,利用路由信息找到下一个结点地址,传送给下一个结点。
在两个通信用户间的其他线路段,可传输其他用户的报文,不像电路交换那样必须占用端到端的全部信道。
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 多目标服务
缺点:
- 有存储转发时延
- 报文大小不定,需要网络节点有较大缓存空间
- 分组交换
分组:大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组 (packet)。
分组交换的原理:分组交换与报文交换的工作方式基本相同,都采用存储转发方式,形式上的主要差别在于,分组交换网中要限制所传输的数据单位的长度,一般选128B。 发送节点首先对从终端设备送来的数据报文进行接收存储,而后将报文划分成一定长度的分组,并以分组为单位进行传输和交换。接收结点将收到的分组组装成信息或报文。
小数据块 + 控制信息(源和目的地址、编号) = 分组
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对于报文交换,存储管理更容易
缺点:
- 有存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时,要对分组排序重组
- 报文交换 & 分组交换
报文交换:(串行)
分组交换:(并行)
所以生活中最常用的是分组交换方式,因特网。
计算题中要注意的几点:
- 单位换算。
- 2.是否考虑传播延迟(一般不考虑,看题目)。
- 时间至少是多少——选择最少跳数。
- 起始时间(从发送开始到接收完为止 / 从发送开始到发送完毕)
- 是否有分组头部大小的开销
- 报文交换时延更长,分组交换时延可能不是整数
- 三种数据交换方式比较
- 报文交换和分组交换都采用存储转发
- 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
- 当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
- 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小,尤其适合于计算机之间的突发式的数据通信。
4、数据报与虚电路
分组交换:数据报方式、虚电路方式
- 数据报方式 & 虚电路方式
数据报方式为网络层提供无连接服务。
虚电路方式为网络层提供连接服务。
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
- 几种传输单元名词解析
应用层 报文
传输层 报文段
网络层 IP数据报,分组
数据链路层 帧
物理层 比特流
- 数据报(因特网在用)
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
每个分组携带源和目的地址。
路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。
- 虚电路
虚电路将数据报方式和电路交换方式结合,以发挥两者优点。
虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。
通信过程:
建立连接(虚电路建立) 数据传输 释放连接(虚电路释放)
说明:
建立连接(虚电路建立):每个分组携带虚电路号,而非目的地址。源主机发送“呼叫请求”分组并收到“呼叫应答分组后才算建立连接。
数据传输:全双工通信。
释放连接(虚电路释放):源主机发送“释放请求“,分组以拆除虚电路。
- 数据报 & 虚电路
数据报服务 | 虚电路服务 | |
---|---|---|
连接的建立 | 不要 | 必须有 |
目的地址 | 每个分组都有完整的目的地址 | 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 |
路由选择 | 每个分组独立的进行路由选择和转发 | 属于同一条虚电路的分组按同一路由转发 |
分组顺序 | 不保证分组有序到达 | 保证分组有序到达 |
可靠性 | 不保证可靠通信,可靠性由主机来保证 | 可靠性由网络保证 |
对网络故障的适应性 | 出故障的结点丢失分组,其他分组路径选择发生变化,可正常传输 | 所有经过故障结点的虚电路均不能正常工作 |
差错处理和流量控制 | 由用户主机进行流量控制,不保证数据报的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
5、IP数据报格式
- TCP/IP协议栈
- IP数据报格式
版本:IPv4/IPv6?
首部长度:单位是4B,最小为5。
区分服务:指示期望获得哪种类型的服务。(实际中很少用)
总长度:首部+数据,单位是1B。
生存时间(TTL) :IP分组的保质期。经过一个路由器-1,变成0则丢弃。
协议:数据部分的协议。(要记住TCP和UDP)
协议名 | ICMP | IGMP | TCP | EGP | IGP | UDP | IPv6 | ESP | OSPF |
---|---|---|---|---|---|---|---|---|---|
字段值 | 1 | 2 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
首部检验和:只检验首部。数据报每经过一个路由器,都需要检验,错的丢弃
源IP地址和目的IP地址:32位。
可选字段:0~40B,用来支持排错测量以及安全等措施。
填充:全0,把首部补成4B的整数倍。
6、IP数据报分片
- 最大传送单元MTU
链路层数据帧可封装数据的上限。
以太网的MTU是1500字节。
如果所传送的数据报长度超过某链路的MTU值? 分片
- IP数据报格式
标识:同一数据报的分片使用同一标识。
标志:只有2位有意义。
最高位:保留不使用。
中间位DF(Don’t Fragment):DF=1,禁止分片;DF=0,允许分片
最低位MF(More Fragment):MF=1,后面“还有分片”;MF=0,代表最后一片/没分
片偏移:指出较长分组分片后某片在原分组中的相对位置。以8B为单位。
除了最后一个分片,每个分片长度一定是8B的整数倍。
- IP数据报分片例题
需要分片为长度不超过1420B的数据报片
总长度(B) | 标识 | MF | DF | 片偏移(8B) | |
---|---|---|---|---|---|
原始数据报 | 3820 | 12345 | 0 | 0 | 0 |
数据报片1 | 1420 | 12345 | 1 | 0 | 0 |
数据报片2 | 1420 | 12345 | 1 | 0 | 175 |
数据报片3 | 1020 | 12345 | 0 | 0 | 350 |
7、IPv4地址
- IP地址
在哪个网络?
是哪个主机?
IP地址
- IP编址的历史阶段
分类的IP地址 子网的划分 构成超网(无分类编址方法)
- 分类的IP地址
IP地址:全世界唯一的32位/4字节的标识符,标识路由器主机的接口。
IP地址::={<网络号>,<主机号>}
11011111 00000001 00000001 00000001
网络号 主机号
223.1.1.1(点分十进制)
- 互联网中的IP地址
- 分类的IP地址
网络类别 | 最大可用网络数 | 每个网络中的最大主机数 | 第一个可用网络号 | 最后一个可用网络号 |
---|---|---|---|---|
A | (全0、全1) |
(全0、全1) |
1 | 126 |
B | (全0) |
(全0、全1) |
128.1 | 191.255 |
C | (全0) |
(全0、全1) |
192.0.1 | 223.255.255 |
- 特殊IP地址
NetID网络号 | HostId主机号 | 作为IP分组源地址 | 作为IP分组目的地址 | 用途 |
---|---|---|---|---|
全0 | 全0 | 可以 | 不可以 | 本网范围内表示主机,路由表中用于表示默认路由(表示整个Internet网络) |
全0 | 特殊值 | 可以 | 不可以 | 表示本网内某个特定主机 |
全1 | 全1 | 不可以 | 可以 | 本网广播地址(路由器不转发) |
特殊值 | 全0 | 不可以 | 不可以 | 网络地址,表示一个网络 |
特殊值 | 全1 | 不可以 | 可以 | 直接广播地址,对特定网络上的所有主机进行广播 |
127 | 任何数(非全0/1) | 可以 | 可以 | 用于本地软件换回测试,称为环回地址 |
- 私有IP地址
私有地址主要用于在局域网中进行分配,在 Internet上是无效的。这样可以很好地隔离局域网和 Internet。私有地址在公网上是不能被识别的,必须通过NAT将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。公有地址是在广域网内使用的地址,但在局域网中同样也可以使用,除了私有地址以外的地址都是公有地址。
地址类别 | 地址范围 | 网段个数 |
---|---|---|
A类 | 10.0.0.0 ~ 10.255.255.255 | 1 |
B类 | 172.16.0.0 ~ 172.31.255.255 | 16 |
C类 | 192.168.0.0 ~ 192.168.255.255 | 256 |
路由器对目的地址是私有IP地址的数据报一律不进行转发。
8、网络地址转换NAT
- 网络地址转换NAT
网络地址转换NAT (Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT
软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
9、子网划分和子网掩码
- 子网划分
分类IP地址的弱点:
- IP地址的空间利用率有时候很低
- 两级IP地址不够灵活
某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
子网号能否全1或全0要看情况。
主机号不能全0或全1。
- 子网掩码
子网掩码与IP地址逐位相与,就得到子网网络地址。
- 子网掩码——练习题
例题1:已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址。 如果子网掩码是255.255.224.0,求网络地址。
141.14 和 255.255 相与为 141.14;
24 与 0 相与为 0;
72: 0100 1000
192: 1100 0000
相与: 0100 0000
所以网络地址为 141.14.64.0
同理 下一问答案为 141.14.64.0
常见二进制:
二级制 | 十进制 |
---|---|
1000 0000 | 128 |
1100 0000 | 192 |
1110 0000 | 224 |
1111 0000 | 240 |
1111 1000 | 248 |
1111 1100 | 252 |
1111 1110 | 254 |
1111 1111 | 255 |
例题2:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是( ) A.180.80.76.0 B.180.80.76.255 C.180.80.77.255 D.180.80.79.255
解析:
先将IP地址180.80.77.55与子网掩码相与,结果得到子网为180.80.76.0;
再看子网掩码中,252:1111 1100,所以子网位数为6位再加上255.255这里16位,一共22位;
子网位数为22,则主机号位数为10,又因为发送的是广播分组,主机号全为1;
所以结果为子网22位,再加10个1,即180.80.79.255。
- 使用子网时分组的转发
路由表中:
- 目的网络地址
- 目的网络子网掩码
- 下一跳地址
路由器转发分组的算法:
- 提取目的IP地址
- 是否直接交付(直接交付:目的IP就在路由器所连的子网上)
- 特定主机路由
- 检测路由表中有无路径(目的IP和路由器所有子网掩码相与)
- 默认路由 0.0.0.0(发给下一个路由器)
重复1-5步,直到找到,或者生命周期结束,丢弃,报告转发分组出错。
10、无分类编址CIDR
- 无分类编址CIDR
无分类域间路由选择CIDR:
- 消除了传统的A类,B类和C类地址以及划分子网的概念
CIDR记法:IP地址后加上“/”,然后写上网络前缀 (可以任意长度)的位数。e.g.128.14.32.0/20
-
融合子网地址与子网掩码,方便子网划分。
CIDR把网络前缀都相同的连续的IP地址组成一个”CIDR地址块”。
举例:128.14.35.7/20是某CIDR地址块中的一个地址
二进制: 10000000 00001110 00100011 00000111
最小地址:10000000 00001110 00100000 00000000
最大地址:10000000 00001110 00101111 11111111
地址块: 128.14.32.0/20 不需要指明起始地址时,也可以写作“/20地址块“
地址掩码(子网掩码):10000000 00001110 00100000 00000000
- 构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
方法:将网络前缀缩短。
【例题】某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、35.230.48.0/21、35.230.56.0/21,将该4条路由聚合后的目的网络地址为()
A. 35.230.0.0/19
B. 35.230.0.0/20
C. 35.230.32.0/19
D. 35.230.32.0/20
【解析】C
- 最长前缀匹配
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
例题:路由器R0的路由表见下表:若进入路由器R0的分组的目的地址为132.19.237.5,请问该分组应该被转发到哪一个下一跳路由器 ( )。
A.R1 B.R2 C.R3 D.R4
目的网络 | 下一跳 |
---|---|
132.0.0.0/8 | R1 |
132.0.0.0/11 | R2 |
132.19.232.0/22 | R3 |
0.0.0.0/0 | R4 |
解析:132.19.237.5,按8、11、22计算出子网为:132.0.0.0、132.0.0.0、132.19.236.0;
可见前两项都匹配,但是132.0.0.0/11前缀匹配更多,所以答案选B。
- 习题
【2010】某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是 ( )
A.32,8 B.32,6 C.8,32 D.8,30
解析:本题在CIDR的基础上又划分了子网。
除去24位,那么最后八位由于子网掩码248:11111000,那么有五位是子网位数,3位是主机号,所以最大子网个数为,最大可分配地址个数为。答案选B。
11、ARP协议
- 发送数据的过程
1、发给本网络
2、发给另一网络
- 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找到本网络上的一个路由器的硬件地址。
ARP协议自动进行
- ARP协议习题
主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?
答案:6次
12、DHCP协议
-
主机如何获得IP地址?
-
静态配置
IP地址、子网掩码、默认网关
-
动态配置
-
- DHCP协议
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
工作流程:
-
主机广播DHCP发现报文
“有没有DHCP服务器呀?”
试图找到网络中的服务器,服务器获得一个IP地址。 -
DHCP服务器广播DHCP提供报文
“有!”“有!”“有!”
服务器拟分配给主机一个IP地址及相关配置,先到先得
-
主机广播DHCP请求报文
”我用你给我的IP地址啦?”
主机向服务器请求提供IP地址
-
DHCP服务器广播DHCP确认报文
“用吧!”
正式将IP地址分配给主机。
13、ICMP协议
- TCP/IP协议栈
ICMP:为了更有效地转发IP数据报和提高交付成功的机会…
- 网际控制报文协议ICMP
- ICMP差错报文
- ICMP询问报文
ICMP协议支持主机或路由器:
差错(或者异常)报告 发送特定ICMP报文
网络探询
- ICMP差错报告报文(5种)
1、终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。(无法交付)
2、源点抑制(已取消使用):当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(拥塞丢数据)
3、时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。(TTL=0)
4、参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。(首部字段有问题)
5、改变路由(重定向) :路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。(值得更好的路由)
- ICMP差错报告报文数据字段
- 不应该发送ICMP差错报文的情况
1、对ICMP差错报告报文不再发送ICMP差错报告报文。
2、对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
3、对具有组播地址的数据报都不发送ICMP差错报告报文(组播:一点到多点;广播:一点到所有点)
4、对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
- ICMP询问报文
1、回送请求和回答报文
主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
2、时间戳请求和回答报文
请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
3、掩码地址请求和回答报文(不再使用)
4、路由器询问和通告报文(不再使用)
- ICMP的应用
PING 测试两个主机的连通性,使用了ICMP回送请求和回答报文。
Traceroute 跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报文。(发送一连串数据报, TTL分别为1, 2, 3…)
14、IPv6
- 为什么要有IPv6?
32位IPv4地址空间会分配完…
CIDR、NAT治标不治本
IPv6 从根本上解决了地址耗尽问题
改进首部格式 快速处理/转发数据报、支持QoS
Qos (Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。
- IPv6数据报格式
版本:指明了协议版本,总是6.
优先级:区分数据报的类别和优先级
流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。
有效载荷长度:图中的 有效载荷 长度,即扩展首部 + 数据的长度
跳数限制:相当于IPv4的TTL。
下一个首部:标识下一个扩展首部或上层协议首部。扩展首部也有这个下一个首部字段,标识再下一个扩展首部,最后一个就标识数据部分。
- IPv6和IPv4
1、IPv6将地址从32位(4B)扩大到128位(16B) ,更大的地址空间。
2、IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
3、IPv6将IPV4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
4、IPv6支持即插即用(即自动配置),不需要DHCP协议。
5、IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
6、IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
7、ICMPv6:附加报文类型“分组过大”。
8、IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
9、IPv6取消了协议字段,改成下一个首部字段。
10、IPv6取消了总长度字段,改用有效载荷长度字段。
11、IPv6取消了服务类型字段。
- IPv6地址表示形式
一般形式 冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
压缩形式
4BF5:0000:0000:0000:BA、5F:039A:000A:2176
4BF5:0:0:0:BA、5F:39A:A:2176
零压缩:一连串连续的0可以被一对冒号取代。
FF05:0:0:0:0:0:0:B3
FF05::B3
双冒号表示法在一个地址中仅可出现一次。
- IPv6基本地址类型
单播 一对一通信 —— 可做源地址+目的地址
多播 一对多通信 —— 可做目的地址
任播 一对多中的一个通信 —— 可做目的地址
- IPv6向IPv4过渡的策略
双栈协议:
双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。
隧道技术:
通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包(作为数据部分)重新封装然后通过隧道发送。
15、路由算法与路由协议概述
- 路由算法
路由表/路由转发表
目的网络IP地址 | 子网掩码 | 下一跳IP地址 | 接口 |
---|
最佳路电:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
-
路由算法的分类
-
静态路由算法(非自适应路由算法)
管理员手工配置路由信息。
简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
路由更新慢,不适用大型网络。
-
动态路由算法(自适应路由算法)
路由器间彼此交换信息,按照路由算法优化出路由表项。
路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
算法复杂,增加网络负担。
-
全局性
链路状态路由算法 典型应用:OSPF协议
所有路由器掌握完整的网络拓扑和链路费用信息。
-
分散性
距离向量路由算法 典型应用:RIP协议
路由器只掌握物理相连的邻居及链路费用。
-
-
- 分层次的路由选择协议
问题:
(1)因特网规模很大。
(2) 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网。
解决:
自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
路由选择协议:
内部网关协议IGP 一个AS内使用的 RIP、OSPF;
外部网关协议EGP AS之间使用的 BGP。
16、RIP协议与距离向量算法
- RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。 RIP协议只适用于小互联网。
- RIP协议和谁交换? 多久交换一次? 交换什么?
1、仅和相邻路由器交换信息。
2、路由器交换的信息是自己的路由表。
3、每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相令路由器交换并更新路由信息。
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
- 距离向量算法
1、修改相邻路由器发来的RIP报文中所有表项
对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。
2、对修改后的RIP报文中的每一个项目,进行以下步骤:
(1) R1路由表中若没有目的网络Y,则把该项目填入R1路由表
(2) R1路由表中若有目的网络Y,则查看下一跳路由器地址:
若下一跳是X,则用收到的项目替换源路由表中的项目;—— 换成新的
若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理。—— 换成近的
3、若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。
4、返回。
- 距离向量算法练习1
已知路由器R6的路由表,现收到相邻路由器R4发来的路由更新信息,试更新路由器R1的路由表:
- 距离向量算法练习2
考虑如图所示的子网,该子网使用了距离-向量算法,下面的向量刚刚到达路由器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)
解析:
向量名称 | (A, B, C, D, E, F) | (A, B, C, D, E, F) |
---|---|---|
来自B | (5, 0, 8, 12, 6, 2) | (11, 6, 14,18, 12, 8) |
来自D | (16,12, 6, 0, 9, 10) | (19,15, 9, 3, 12, 13) |
来自E | (7, 6, 3, 9, 0, 4) | (12,11, 8,14, 5, 9) |
C | (11, 6, 0, 3, 5, 8) |
所以答案为B
- RIP协议的报文格式
RIP是应用层协议使用UDP传送数据。
一个RIP报文最多可包括25 个路由,如超过,必须再用一个RIP报文传送。
- RIP协议好消息传得快,坏消息传得慢
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟) 才能将此信息传送到所有的路由器,“慢收敛”。
说:“我到网1的距离是16(表示无法到达),是直接交付;
但在收到的更新报文之前,还发送原来的报文,因为这时,并不知道出了故障;
收到的更新报文后,误认为可经过到达网1,于是更新自己的路由表,说:“我到网1的距离是3,下一跳经过”。然后将此更新信息发送给;
以后又更新自己的路由表为“1,4,R,”,表明“我到网1距离是4,下一跳经过”;
这样不断更新下去,直到和到网1的距离都增大到16时,和才知道网1是不可达的。
17、OSPF以及链路状态算法
- OSPF协议
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的:“最短路径优先“是因为使用了Diikstra提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议。
OSPF的特点:
和谁交换?
- 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播
最终整个区域内所有路由器都得到了这个信息的一个副本。
交换什么?
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价一一费用、距离、时延、带宽等)。
多久交换?
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
- 链路状态路由算法
1、每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。
2、设置到它的每个邻居的成本度量metric。
3、构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
4、如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息。
5、收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。
6、更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。
只要一个路由器的链路状态发生变化:
5、泛洪发送【LSU链路状态更新分组】进行更新。
6、更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。
7、使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。
- OSPF的区域
为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若个更小的范围,叫做区域。
每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
区域也不能太大,在一个区域内的路由器最好不超过 200 个。
- OSPF分组
OSPF直接用IP数据报传送。
【考纲】:OSPF是网络层协议。
- OSPF其他特点
1、每隔30min,要刷新一次数据库中的链路状态。
2、由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
3、OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
18、BGP协议
- BGP协议
和谁交换?
与其他AS的邻站BGP发言人交换信息。
交换什么?
交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
多久交换?
发生变化时更新有变化的部分。
- BGP协议交换信息的过程
BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。
BGP发言人交换路径向量:
自治系统的 BGP 发言人通知主干网的BGP 发言人:“要到达网络、、和可经过。
主干网还可发出通知:“要到达网络 、 和可沿路径(, )。
- BGP协议报文格式
一个BGP发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立TCP 连接,即通过TCP传送,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
BGP是应用层协议,借助TCP传送
- BGP协议特点
BGP支持CIDR。因此BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
- BGP-4的四种报文
1、OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。
2、UPDATE(更新) 报文:通告新路径或撤销原路径。
3、KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性:也作为OPEN的确认。
4、NOTIFICATION(通知) 报文:报告先前报文的差错:也被用于关闭连接。
- 三种路由协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP。
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好、非最佳 |
交换节点 | 和本结点相邻的路由器 | 网络中的所有路由器 | 和本结点相邻的路由器 |
交换内容 | 当前本路由器知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态 | 首次,整个路由表 非首次,有变化的部分 |
19、IP组播
- IP数据报的三种传输方式
单播
单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
在发送者和每一接收者之间需要单独的数据信道。
广播
广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
组播(多播)
当网络中的某些用户需要特定数据时组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。
组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络 (如果有组播路由器的支持)。
组播路由器 运行组播协议的路由器
- IP组播地址
IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。
组播地址范围为224.0.0.0~239.255.255.255(D类地址) ,一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。
1.组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
2.对组播数据报不产生ICMP差错报文。
3.并非所有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组播地址最后23位相同:收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
- IGMP协议与组播路由选择协议
因特网范围内组播:
IGMP协议
组播路由选择协议
- 网际管理协议
IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。
- IGMP工作的两个阶段
ROUND 1:
某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
ROUND 2:
本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。
只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的:如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。
组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员,不知道多少个。
- 组播路由转发协议
组播路由选择协议目的是找出以源主机为根节点的组播转发树。
构造树可以避免在路由器之间兜圈子。
对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树
组播路由选择协议常使用的三种算法:
基于链路状态的路由选择
基于距离-向量的路由选择
协议无关的组播(稀疏/密集) ——(稀疏和密集指的是一个组播组内主机离得远还是离得近)
20、移动IP
- 移动IP的相关术语
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点 具有永久IP地址的移动设备
归属代理(本地代理) 一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
外部代理(外地代理) 在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
永久地址 (归属地址/主地址 ) 移动站点在归属网络中的原始地址。
转交地址 (辅地址) 移动站点在外部网络使用的临时地址。
- 移动IP通信过程
A刚进入外部网络:
- 在外部代理登记获得一个转交地址,离开时注销。
- 外地代理向本地代理登记转交地址。
B给A发送数据报:
- 本地代理截获数据报。
- 本地代理再封装数据报,新的数据报目的地址是转交地址,发给外部代理(隧道)。
- 外部代理拆封数据报并发给A。
A给B发送数据报:
A用自己的主地址作为数据报源地址,用B的IP地址作为数据报的目的地址。(不需要在经过代理)
A移动到了下一个网络:
- 在新外部代理登记注册一个转交地址。
- 新外部代理给本地代理发送新的转交地址覆盖旧的)。
- 通信。
A回到了归属网络:
- A向本地代理注销转交地址。
- 按原始方式通信。
21、网络层设备
- 路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
上图 路由选择:
根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
上图 分组转发:
交换结构:根据转发表(路由表得来)对分组进行转发。
转发VS路由选择:转发:输入端口到输出端口;路由选择:路由器。
若收到RIP/OSPF分组等,则把分组送往路由选择处理机;若收到数据分组,则查找转发表并输出。
- 输入端口对线路上收到的分组的处理
输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
- 输出端口将交换结构传送来的分组发送到线路
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
- 三层设备的区别
路由器 可以互联两个不同网络层协议的网段。
网桥 可以互联两个物理层和链路层不同的网段。
集线器 不能互联两个物理层不同的网段。
能否隔离冲突域 | 能否隔离广播域 | |
---|---|---|
物理层设备【傻瓜】 (中器、集线器) |
不能 | 不能 |
链路层设备【路人】 (网桥、交换机) |
能 | 不能 |
网络层设备【大佬】 (路由器) |
能 | 能 |
- 路由表与路由转发
路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
路由表
目的网络IP地址 | 子网掩码 | 下一跳IP地址 | 接口 |
---|---|---|---|
0.0.0.0(默认路由) | 0.0.0.0 |
转发表
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。】
第五章、传输层
1、传输层概述
-
传输层
只有主机才有的层次。
传输层的功能:
- 传输层提供进程和进程之间的逻辑通信。
网络层提供主机之间的逻辑通信。 - 复用和分用。
- 传输层对收到的报文进行差错检测。
- 传输层的两种协议。
- 传输层的两个协议
传输层有两个好兄弟;
大哥TCP和二弟UDPl
大哥靠谱,二弟不靠谱。
VS:
面向连接的传输控制协议TCP:
传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。
可靠,面向连接,时延大,适用于大文件。
无连接的用户数据报协议UDP:
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
不可靠,无连接,时延小,适用千小文件。
- 传输层的寻址与端口
复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
分用:传输层从网络层收到数据后交付指明的应用进程。
端口(逻辑端口/软件端口):是传输层的SAP(访问服务点),标识主机中的应用进程。
端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。
端口号长度为16bit,能表示65536个不同的端口号。
端口号(按范围分):
-
服务端使用的端口号
- 熟知端口号(0~1023):给TCP/IP最重要的一些应用程序,让所有用户都知道。
- 登记端口号(1024~49151):为没有熟知端口号的应用程序使用的。
-
客户端使用的端口号(49152 ~ 65535):
仅在客户进程运行时才动态选择。
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
套接字socket = (主机IP地址,端口号)
2、UDP协议
- 用户数据报UDP概述
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点:
-
UDP是无连接的,减少开销和发送数据之前的时延。
-
UDP使用最大努力交付,即不保证可靠交付。
-
UDP是面向报文的,适合一次性传输少量数据的网络应用。
应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。
-
UDP无拥塞控制,适合很多实时应用
-
UDP首部开销小,8B,TCP:20B
- UDP首部格式
源端口号:可有可无,希望对方回复才需要加,不需要可以全0,即不填
目的端口号:得有
UDP长度:UDP用户数据报的整个长度。
UDP检验和:检测整个UDP数据报是否有错,错就丢弃。
另一种出错情况:分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。
- UDP校验
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。
0:第三个字段固定全0
17:封装UDP报文的IP数据报首部协议字段是17。
UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。
在发送端:
- 填上伪首部。
- 全0填充检验和字段。
- 全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
- 伪首部+首部+数据部分采用二进制反码求和。
- 把和求反码填入检验和字段。
- 去掉伪首部,发送。
在接收端:
- 填上伪首部。
- 伪首部+首部+数据部分采用二进制反码求和。
- 结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。
3、TCP协议特点和TCP报文段格式
- TCP协议的特点
1、TCP是面向连接 (虚连接) 的传输层协议。
2、每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。—— 所以没法用于广播和多播
3、TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
4、TCP提供全双工通信。
发送缓存 准备发送的数据 & 已发送但尚未收到确认的数据
接收缓存 按序到达但尚未被接受应用程序读取的数据 & 不按序到达的数据
5、TCP面向字节流。
TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
流:流入到进程或从进程流出的字节序列。
- TCP报文段首部格式
序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
数据偏移(首部长度) :TCP报文段的数据起始处距离TCP报文段的起始处有多远以4B位单位,即1个数值是4B。
6个控制位:
- 紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。
- 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
- 推送位PSH(几乎不考):PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。
- 复位RST(几乎不考):RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
- 同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。
- 终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。
检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6。
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认…
4、TCP连接管理
- TCP连接管理
TCP连接的三个阶段:连接建立 数据传送 连接释放
TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。
- TCP的连接建立(三次握手)
假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器)上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与服务器上某个进程之间的连接,客户中的TCP会用以下步骤与服务器中的TCP建立一条TCP连接:
ROUND 1:
客户端发送连接请求报文段,无应用层数据。
SYN=1,seq=x(随机) (seq就是上一节的序号)
ROUND 2:
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
SYN=1,ACK=1,seq=y(随机),ack=x+1 (ack就是上一节的确认号)
ROUND 3:
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。
SYN=0,ACK=1,seg=x+1,ack=y+1
- SYN洪范攻击
SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。
解决办法:设置SYN cookie
- TCP的连接释放(四次握手)
参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)将被释放。
ROUND 1:
客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。
FIN=1,seq=u
ROUND 2:
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了一一半关闭状态。
ACK=1,seq=v,ack=u+1
ROUND 3:
服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。
FIN=1,ACK=1,seq=w,ack=u+1
ROUND 4:
客户端回送一个确认报文段,再等到时间等传+时器设置的2MSL(最长报文段寿命) 后,连接底关闭。
5、TCP可靠传输
- TCP可靠传输
传输层:使用TCP实现可靠传输。
网络层:提供尽最大努力交付,不可靠传输。
可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。
TCP实现可靠传输的机制:
-
校验
与UDP校验一样,增加伪首部
-
序号
-
确认
-
重传
- 序号
一个字节占一个序号。
序号字段指的是一个报文段第一个字节的序号。
- 确认
- 重传
确认重传不分家,TCP的发送方在 规定的时间(重传时间) 内没有收到确认就要重传已发送的报文段。超时重传
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)
觉得重传时间太久了! 冗余ACK
冗余ACK (冗余确认)
每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。
举例:发送方已发送1,2,3,4,5报文段。
接收方收到1,返回给1的确认(确认号为2的第一个字节);
接收方收到3,仍返回给1的确认 (确认号为2的第一个字节);
接收方收到4,仍返回给1的确认 (确认号为2的第一个字节);
接收方收到5,仍返回给1的确认(确认号为2的第一个字节);
发送方收到3个对于报文段1的冗余ACK 认为2报文段丢失,重传2号报文段。快速重传
6、TCP流量控制
- TCP流量控制
流量控制:让发送方慢点,要让接收方来得及接收。
TCP利用滑动窗口机制实现流量控制。
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd (接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取决于接收窗口rwnd和拥塞窗口cwnd的最小值。
发送窗口大小可以动态变化
举例:
A向B发送数据,连接建立时,B告诉A:“我的rwnd=400(字节)”,设每一个报文段100B,报文段序号初始值为1。
如果出现这样一种情况,如上图,假设最开始B告诉A:“我的rwnd=400(字节)”,这个通知丢了,那么主机A持续等待B的通知,B持续等待A给他发数据,最后陷入了死锁的局面;解决如下:
TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段。接收方收到探测报文段时给出现在的窗口值。
若窗口仍然是0,那么发送方就重新设置持续计时器。
7、TCP拥塞控制
- TCP拥塞控制
出现拥塞的条件:
对资源需求的总和 > 可用资源
网络中有许多资源同时呈现供应不足 网络性能变坏 网络吞吐量将随输入负荷增大而下降
拥塞控制:
防止过多的数据注入到网络中。 全局性
拥塞控制 & 流量控制:
所以说流量控制是点对点之间的问题,拥塞控制是全局性的问题。
拥塞控制主要是由于网络堵塞,而流量控制主要是由于接收方收不过来。
相似之处:都是控制发送方
- 拥塞控制四种算法
慢开始 拥塞避免
快重传 快恢复
假定:
-
数据单方向传送,而另一个方向只传送确认。
-
接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度。
从前面知道:发送窗口=Min(接收窗口rwnd,拥塞窗口cwnd}
接收窗口 接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
拥塞窗口 发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
- 慢开始和拥塞避免
一个传输轮次:
发送了一批报文段并收到它们的确认的时间。
也表示:一个往返时延RTT。
还可以是:开始发送一批拥塞窗口内的报文段到开始发送下一批拥塞窗口内的报文段的时间。
慢开始不是说增长满,而是说设置cwnd=1(试探拥塞情况)
ssthresh:慢重传门限(slow start thresh)
乘法减小:拥塞时的cwmd/2。
- 快重传和快回复
连续收到3个冗余ACK的时候快重传
乘法减小:除 2.
快回复就是说不用降为1
TCP Reno版本考试会考。
TCP Tahoe版本可以不做了解。
第六章、应用层
1、网络应用模型
- 应用层概述
应用层对应用程序的通信提供服务。
应用层协议定义:
应用进程交换的报文类型,请求还是响应?
各种报文类型的语法,如报文中的各个字段及其详细描述。
字段的语义,即包含在字段中的信息的含义。
进程何时、如何发送报文,以及对报文进行响应的规则。
应用层的功能:
文件传输、访问和管理
电子邮件
虚拟终端
查询服务和远程作业登录
应用层的重要协议:
FTP
SMTP、POP3
HTTP
DNS
- 网络应用模型
- 客户端/服务器模型(Client/Server)
- P2P模型(Peer-to-Peer)
- 客户/服务器(C/S)模型
服务器:提供计算服务的设备。
- 永久提供服务
- 永久性访问地址/域名
客户机:请求计算服务的主机。
-
与服务器通信,使用服务器提供的服务
-
间歇性接入网络
-
可能使用动态IP地址
-
不与其他客户机直接通信
应用:Web,文件传输FTP,远程登录,电子邮件
- P2P模型
不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
可扩展性好
网络健壮性强
2、DNS系统
- DNS系统
IP地址难记忆? 域名
DNS系统:IP地址 域名
访问域名 DNS服务器将域名解析成IP地址,通过IP地址就可以访问了。
- 域名
例如:www.cskaoyan.com,“.”分隔开的是标号,每个标号不能超过63个字符,为了方便记忆,最好不要超过12个字符,标号不区分大小写,“-”可以使用,其他特殊符号不行;标号级别由低到高www(三级域名).cskaoyan(二级域名).com(顶级域名)
根
顶级域名:
国家顶级域名 cn(中国),us(美国),uk(英国)
通用顶级域名 com(公司、企业),net(网络服务机构),org(非盈利性组织),gov(政府),int(国际组织),aero(航空传输企业),museum(博物馆),travel(旅游业)
基础结构域名/反向域名 arpa
二级域名:
类别域名 ac(科研机构),com,edu(教育行业),gov,mil(中国国防机构),net,org
行政区域名 用于我国各省、自治区、直辖市 bj(北京),js(江苏)
自己注册的 注意要全球唯一
三级域名
四级域名
- 域名服务器
根域名服务器
顶级域名服务器 (管理该顶级域名服务 器注册的所有二级域名)
权限域名服务器 (负责一个区的域名服 务器)
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
- 域名解析过程
- 递归解析 —— 靠别人
- 迭代解析 —— 靠自己
3、文件传输协议FTP
-
文件传输协议
-
文件传送协议FTP(File Transfer Protocol)
提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
-
简单文件传送协议TFTP(Trivial File Transfer Protocol)
-
- FTP服务器和用户端
FTP是基于客户/服务器(C/S)的协议。
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器。
连接 FTP 服务器,遵循FTP协议与服务器传送文件的电脑就是 FTP 客户端。
应用:FTP客户端软件、Windows自 带FTP命令
- FTP工作原理
登录:ftp地址 用户名&密码
匿名登录:互连网中有很大一部分 FTP 服务器被称为“匿名”(Anonymous)FTP 服 务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在 该服务器进行登记注册,也不用取得FTP服务器的授权。 Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身 份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特 殊的用户名“anonymous”登录FTP服务,就可访问远程主机上公开的文件。
FTP使用TCP实现可靠传输。
FTP服务器服务进程:
- 1个主进程
- n个从属进程
控制连接始终保持
数据连接保持一会
是否使用TCP 20端口建立数据 连接与传输模式有关。主动方式使用TCP 20端口;被动方式由服务器和客户端自行协商决定(端口>1024)
FTP传输模式
文本模式:ASCII模式,以文本序列传输数据;
二进制模式:Binary模式,以二进制序列传输数据。
4、电子邮件
- 电子邮件系统概述—电子邮件的信息格式
电子邮件
-
信封
abc@163.com
-
内容
-
首部
To:
abc@163.com
Subject:Hello!
-
主体
From:111@163.com
To:abc@163.com
Subject:Hello!
Date:2018-8-8Blabla… -
- 电子邮件系统概述—组成结构
客户端软件(Foxmail、Outlook)功能:1.撰写 2.显示 3.处理 4.通信
邮件服务器功能:1.发送&接收邮件 2.向发件人报告邮件传送结果(C/S模式)
- 简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
SMTP建立在TCP连接之上,使用端口号25,C/S模式。
STMP通信的三个阶段:连接建立 邮件传送 连接释放
1、连接建立
发送方写好邮件,放到发送服务器的邮件缓存里面;
发送方邮件服务器每隔一定时间扫描缓存,有邮件则与接收方邮件服务器建立TCP连接(发:端口号25);
接收方邮件服务器发出应答信息:22 Service ready;
发送方邮件服务器在发出:HELLO命令;
发送方邮件服务器若有能力接收邮件,回答“250 OK” 否则,回答“421 Service not available”。
2、邮件传送(下面假设A客户端,B服务端)
A : MAIL FROM: <wangdao@163.com>
B : 250 OK / B : 451(452、500…) SMTP服务器是否已经准备好接收邮件
A : RCPT TO:<mooc@163\com
> 可以有多个RCPT命令
B : 250 OK / B : 550 No such user here SMTP服务器确定是否有这个用户
A : DATA 要开始传输邮件的内容了
B : 354 start mail input; end with <CR><LF>.<CR><LF> SMTP服务器同意传输
A : Date…. 开始传输邮件内容
B : 250 OK 接收结束
3、连接释放
邮件发完,SMTP客户发送QUIT命令,SMTP服务器返回“221”,表示同意释放TCP连接。
- MIME
STMP的缺点:
1.SMTP不能传送可执行文件或者其他二进制对象。
2.SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
3.SMTP服务器会拒绝超过一定长度的邮件。
通用因特网邮件扩充MIME
使得传输内容丰富多彩
使电子邮件系统可以支持声音、图像、视频、 多种国家语言等等。
- 邮局协议POP3
POP3建立在TCP连接之上,使用端口号25,C/S模式。
POP3工作方式
- 下载并保留(在服务器)
- 下载并删除
- 网际报文存取协议IMAP
IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部, 若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分 (先看正文,有WiFi的时候再下载附件)。
- 基于万维网的电子邮件
5、万维网和HTTP协议
- 万维网概述
万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
统一资源定位符URL 资源(文字、视频、音频…)
URL一般形式:(URL不区分大小写)
1 |
|
用户通过点击超链接(http://www.baidu.com)获取资源,这些资源通过超文本传输协议(HTTP)传送给使用者。
万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能 够在自己的屏幕上显示出来。
- 超文本传输协议HTTP
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给 浏览器。
用户浏览页面方法:
- 输入URL
- 点击超链接
具体过程:
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
注:浏览器可以只下载文本部分。
- HTTP协议的特点
HTTP协议是无状态的(没有记忆的)。
但是在实际工作中,一些万维网站点常常希望能够识别用户。 Cookie
Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456”)的访问记录。 提供个性化服务
HTTP采用TCP作为传输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。
- HTTP协议的连接方式
- 持久连接 Keep-alive
- 非流水线
- 流水线
- 非持久连接 Close
- 持久连接 Keep-alive
- 超文本传输协议HTTP——报文结构
HTTP报文:请求报文 和 响应报文
HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串。
例如:某浏览器发出的请求报文
1 |
|
响应报文知识:
状态码:
1xx表示通知信息的,如请求收到了或正在处理。
2xx表示成功,如接受或知道了。 220 Accepted——状态码 短语
3xx表示重定向,如要完成请求还必须采取进一步的行动。 301 Moved Permanently
4xx表示客户的差错,如请求中有错误的语法或不能完成。 404 Not Found
5xx表示服务器的差错,如服务器失效无法完成请求。