文章目录
1 概述
1.1 计算机网络的类别
1.1.1 计算机网络的定义
计算机网络是一些互相链接的、自治的计算机的集合
比较通俗的定义:
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
连通性 、共享
1.1.2 计算机网络的分类
1.1.2.1 不同的作用范围
- 广域网WAN
- 局域网LAN
- 城域网MAN
- 个人区域网PAN
1.1.2.2 不同的网络使用者
- 公用网
- 专用网
1.1.2.3 把用户接入因特网的网络
- 接入网AN
1.2 计算机网络的性能
1.2.1 计算机网络的性能指标
- 速率比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。 速率也叫数据率或者比特率,就是数据(bit)的发送速度。单位是bit/s,Kbit/s,Mbit/S,Gbit/s注意单位的换算
- bit Kbit Mbit Gbit之间的换算 (进制是2^10) 1Gbit = 2 10 2^{10} 210Mbit = 2 10 2^{10} 210 x 2 10 2^{10} 210Kbit
- bit/s Kbit/s Mbit/s Gbit/s之间的换算 (进制是10^3) 1Gbit/s = 1 0 3 10^3 103Mbit/s = 1 0 3 10^3 103 x 1 0 3 10^3 103Kbit/s 指的是理想状态下,一定时间内网络信道能通过的最大数据量 速率往往指的是额定速率或标称速率,非实际运行速率
- 带宽 带宽有2个概念
- 频域概念 信道具有的频带宽度 单位是赫(千赫、兆赫、吉赫等) 某信道允许通过的信号频带范围称为改信道的带宽带宽是实际的传输能力,可能比速率大也可能比速率小
- 时域概念 网络中某通道传送数据的能力,表示在单位时间内网络中某信道所能通过的“最高数据率” 单位就是数据率的单位bit/s
- 吞吐量 单位时间内通过某个网络(或信道、接口)的实际数据量 受网络的带宽或网络的额定速率的限制
- 时延 指数据(一个报文或者分组,甚至比特)从网络(或链路)的一端传到另一端所需的时间 包括
- 发送时延(也叫传输时延) 发送数据时,数据块从结点进入到传输媒体所需要的时间 也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间 发送时延 = 数据帧长度( b i t ) 发送速率( b i t / s ) 发送时延=\frac{数据帧长度(bit)}{发送速率(bit/s)} 发送时延=发送速率(bit/s)数据帧长度(bit)
- 传播时延 电磁波在信道中需要传播一定的距离而花费的时间 传播时延 = 信道长度(米) 信号在信道上的传播速度(米 / 秒) 传播时延 = \frac{信道长度(米)}{信号在信道上的传播速度(米/秒)} 传播时延=信号在信道上的传播速度(米/秒)信道长度(米)
- 处理时延 交换结点为存储转发而进行一些必要的处理所花费的时间
- 排队时延 结点缓存队列中分组排队所经历的时延 排队时延的长短往往取决于网络中当时的通信量 数据经历的总时延就是以上几个时延的总和总时延 = 发送时延+传播时延+处理时延+排队时延容易混淆的概念
- 对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率
- 提高链路带宽是减小了数据的发送时延
- 时延带宽积 时延带宽积 = 传播时延 * 带宽,即按比特计数的链路长度。
- 往返时间RTT 表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。 有效数据率 = 数据长度 发送时间 + R T T 有效数据率 = \frac{数据长度}{发送时间 + RTT} 有效数据率=发送时间+RTT数据长度
- 利用率 信道利用率是指某信道有百分之几的时间是被利用的(即有数据通过)。完全空闲的信道利用率是零。 网络利用率是指全网络的信道利用率的加权平均值 根据排队论,当某信道的利用率增大时,时延会迅速增加 如下图所示 令 D 0 D_0 D0表示网络空闲时的时延, D D D表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D D D和 D 0 D_0 D0之间的关系: D = D 0 1 − U D = \frac{D_0}{1-U} D=1−UD0 U是网络利用率,数值在0到1之间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIiOJ6jG-1682242628242)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/b4c113f24151f0cfa1be12043cef513.png “可以看到,只要把利用率控制在一定范围内才能保证时延不会特别高”)]
1.2.2 计算机网络的非性能指标
- 费用
- 质量
- 标准化
- 可靠性
- 可扩展和可升级性
- 易于管理和维护
1.3 计算机网络的体系结构
1.3.1 计算机网络体系结构的形成
计算机网络是非常复杂的系统,而分层可以将庞大而复杂的问题,转化为若干较小的局部问题,所以就引出来计算机网络的体系结构
分层要遵循抽象分层、统一标准、模块独立的原则
1.3.2 体系结构中协议与划分层次
计算机网络的体系结构是计算机网络的各层和协议的集合,是这个计算机网络及其部件所应完成的功能的精确定义。(不涉及实现)
实现是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
网络协议(Network Protocol),简称协议,是为进行网络中的数据交换而建立的规则、标准、或约定。
组成要素:
- 语法 规定数据与控制信息的结构或格式
- 语义 规定需要发出何种控制信息,完成何种动作以及做出何种响应
- 同步 规定各种操作的顺序,又称为时序,解决什么时间什么条件下做什么特定操作的问题 划分层次的原则
- 层次适度 层次少,层次功能多,实现困难;层次多,层次功能少,开销大。
- 功能明确 每个层次有自己的分工,并且有确定的方式完成这些工作
- 层次独立 每个层次的工作和变化不影响其他层次
- 层次关联 相邻层次间存在一种工作上的联系
- 层次对等 双方要有完成相同功能的对等层次
- 层次协议 对等层次要遵守一系列共同的规约(协议)
- 层次接口 相邻层次间通过接口交互信息
1.3.3 具有五层协议的体系结构
TCP/IP模型未明确区分服务、接口和协议等核心概念;不适用于描述TCP/IP之外的其他协议栈;物理层和数据链路层是非常重要的部分而被一起定义为网络接口层,而且并没有具体内容。
ISO/OSI协议实现起来过于复杂,而且运行效率很低;制定周期太长,使得按OSI标准生成的设备无法及时进入市场;OSI的层次划分也不合理,有些功能在多个层次中重复出现。
所以,我们往往采取折中的办法,综合两者的优点,采用一种只有五层的协议体系结构。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHQNHdVI-1682242628243)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/541679152471_.pic_.png “3种协议体系结构的对比”)]
1.3.4 实体、协议、服务和服务访问点
- 实体 表示任何可发送或接收信息的硬件或软件进程
- 协议 控制i两个对等实体进行通信的规则的集合
- 服务 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下层所提供的服务。
- 服务访问点SAP(Service Access Point) 同一系统相邻两层的实体进行交互的地方,称为服务访问点。
下面的协议对上面的服务是透明的
协议是水平的,即协议是控制对等实体之间的通信的规则。
服务是垂直的,即服务是由下层向上层通过层间接口提供的。
2 物理层
2.1 物理层的基本概念
物理层的主要任务是确定与传输媒体的接口的一些特性,即:
- 机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
- 电气特性 指明在接口电缆的各条线上出现的电压的范围。
- 功能特性 指明某条线上出现的某一电平的电压表示何种意义。
- 过程特性 指明对于不同功能的各种可能事件的出现顺序。
2.2 数据通信的基础知识
2.2.1 数据通信系统的模型
我们可以看到数据通信系统的模型中包含三大部分:
源系统(发送端、发送方)、传输系统(传输网络)和目的系统(接收端、接收方)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XtoZgxCL-1682242628244)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/4c994414496c673adebb35fb549e254.png “数据通信系统”)]
数据通信常用术语:
- 通信 是在源点与终点之间传递消息或信息。但消息和信息有着不同的概念
- 消息 是指能向人们表达客观物质远动和主观思维活动的文字、符号、数据、语音、和图像等。 - 能被通信双方所理解- 可以相互传递
- 信息 是指包含在消息中对通信者有意义的那部分内容。消息是信息的载体
- 数据 是对某一事实的不经解释并赋予一定含义的数字、字母、文字等符号及其组合的原始表达,是运送消息的实体。可以分为模拟数据和数字数据
- 信号 信号是数据的电气的或者电磁的表现。信号是消息的载体- 在通信系统中,消息是通过电信号来传递的,电信号有模拟信号和数字信号- 模拟的 代表消息的参数的取值是连续的。- 数字的 代表消息的参数的取值是离散的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VjCh3XZ1-1682242628245)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/8cb143ee666ac9605d385b627193be7.png “模拟信号和数字信号”)]
2.2.2 有关信道的几个基本概念
信道是信号的传输通道(传输媒介),按照数据信号在信道上传递方向与时间的关系,传输方式可以分为三类:
- 单工通信(单向通信) 只能有一个方向的通信而没有反方向的交互。
- 半双工通信(双向交替通信) 通信的双方都可以发送消息,但不能双方同时发送(当然也就不能同时接收)。
- 全双工通信(双向同时通信) 通信的双方可以同时发送和接收信息。
基带信号和带通信号
- 基带信号(即基本频带信号)- 信源发出的没有经过调制的原始信号(模拟or数字)- 包含有较多的低频成分,甚至有直流成分
- 调制:让信号可以在相应信道中传输 - 基带调制(编码coding):仅对基带信号的波形进行变换,把数字信号转换为另一种形式的数字信号,例如用不同电压表示0和1- 带通调制:使用==载波(carrier)==进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号。经过载波调制后的信号称为带通信号(即仅在一段频率范围内能够通过信道)
以上几个概念可以用下面的一个图简单总结下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sECqz5DZ-1682242628246)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/41609277dbc960065d33097e381936d.png “编码和调制”)]
常用编码方式
- 不归零制:正电平表示1,负电平表示0
- 归零制:正脉冲表示1,负脉冲表示0 没有自同步能力
- 曼彻斯特编码:位周期中心的向上跳变表示0,位周期中心的向下跳变表示1。也可以反过来定义。 有自同步能力
- 差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变表示0,而位开始边界没有跳变表示1 有自同步能力
基本的带通调制方法
- 调幅(AM):载波的振幅随基带数字信号而变化。
- 调频(FM):载波的频率随基带数字信号而变化。
- 调相(PM):载波的初始相位随基带数字信号而变化。
如图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-393BbGvC-1682242628246)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/c7cdb10afc635b95e2c6b370c1d2976.png “三种带通调制方法”)]
码元:在使用时域的波形表示数字信号时,代表不同离散数值的基本波形。
- 使用二进制编码时,只有两种不同的码元:0状态,1状态
- 1码元可以携带多个比特的信息量
- 当码元的离散状态有M个时(M>2),此时码元称为M进制码元。
下图分别表示二进制编码的码元和M进制码元
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d3hKkcMh-1682242628247)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/d7b95f6c880b19390e711c24c336d96.png “二进制编码的码元”)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vau14Rpa-1682242628247)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/1a4b4e20c8fb52942afad4ded6fc30b.png “M进制码元”)]
2.2.3 信道的极限容量
任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。
码元传输的速率越高,或信号传输的距离越远,在信道的输出端的波形的失真就越严重。
失真的原因:
- 信号传输的距离远
- 传输媒体质量越差
- 噪声干扰- 环境干扰 大气干扰(雷电、电离层闪烁)、城区工业干扰- 人为恶意干扰
- 码元传输速率高(不可能以任意高的速率进行传送)
限制码元在信道上的传送速率有两个因素:
- 信道能够通过的频率范围
奈氏准则:
带宽W(Hz)的理想低通信道中(无噪声、带宽受限)
码元传输的最高速率 = 2W(码元/秒)
信道的频带越宽,也就是能够通过的信号高频分量就越多,那么就可以用更高的速率传送码元而不出现码间串扰
码间串扰:接收端收到的信号波形失去了码元之间的清晰界限。
奈氏准则给出了码元的传输速率的限制,但是没有对信息传输速率给出限制。
v进制码元情况下,理想低通信道下的极限数据传输率 =
2
W
l
o
g
2
v
(
b
/
s
)
2Wlog_2v(b/s)
2Wlog2v(b/s)
- 信噪比
信噪比就是信号的平均功率和噪声的平均功率之比,记为S/N,用分贝(dB)作为度量单位。即:
信噪比(
d
B
)
=
10
l
o
g
10
(
S
/
N
)
(
d
B
)
信噪比(dB) = 10log_{10}(S/N)(dB)
信噪比(dB)=10log10(S/N)(dB)
当S/N = 10时,信噪比为10dB,而当S/N = 1000时,信噪比为30dB。
信道的极限信息传输速率C可表达为:
$ C = Wlog_2(1+S/N)(bit/s)$ 香农公式
W 信道的带宽(Hz)
S 信道内所传信号的平均功率
N 信道内部的高斯噪声功率
香农公式表明:信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高
香农公式的意义在于:只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
奈氏准则和香农定理的意义不同:
- 奈氏准则:激励工程人员不断探索更加先进的编码技术,使每个码元携带更多比特的信息量;(理想状态下)
- 香农公式:告诫工程人员在有噪声的信道上,任何编码技术,不能突破香农定理给出的信息传输速率。
2.3 物理层下面的传输媒体
2.3.1 导引型传输媒体
电磁波被导引沿着固定媒体传播
常见分类:
- 双绞线- 屏蔽双绞线STP- 无屏蔽双绞线UTP
- 同轴电缆- 50Ω同轴电缆- 75Ω同轴电缆
- 光缆(光纤)- 单模光纤- 多模光纤
2.3.2 非导引型传输媒体
指自由空间。即无线传输
无线传输所使用的的频段很广。
短波通信主要是靠电离层的反射,但短波信道的通信质量较差。
微波在空间主要是直线传播
- 地面微波接力通信
- 卫星通信
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2126JaVs-1682242628248)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/fe6635b17c879f6c442581204ce1f96.png “电信领域使用的电磁波的频谱”)]
2.4 信道复用技术
为什么要信道复用
信道资源是有限的,实际网络中,多对用户往往需要利用相同的信道资源传输数据。
不同的信号同时在同一信道中传输会产生严重的相互干扰,导致传输失败。
什么是信道复用
多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
允许用户使用一个共享信道进行通信,降低成本,提高利用率。
2.4.1 频分复用、时分复用、统计时分复用
- 频分复用FDM(Frequency Division Multiplexing) 用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。 频分复用的所有用户在同样的时间占用不同的带宽资源(这里的“带宽”是频率带宽而不是数据的发送速率)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P6kwSaBB-1682242628249)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/30558cd8136e5d9a1d04cd5dd180b1d.png “频分复用”)]
- 时分复用TDM(Time Division Multiplexing) 时分复用则是将时间划分成一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中所占用固定序号的时隙。 每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)。 TDM信号也称为等时信号。 时分复用的所有用户是在不同的时间占用同样的频带宽度。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bp0GNmkw-1682242628250)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/c43654a0b3156f364b267e093a1fdbd.png “时分复用”)]
时分复用可能会造成线路资源的浪费
使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到子信道的利用率一般是不高的。
如下图所示:
每个用户可能会间隔很久才会有数据发送,但是每个时分复用帧的时间却是固定的,及时没有数据也要等待。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7sKwuzbX-1682242628250)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/938c0a098c82d9cf3c0d395ca83aeac.png “时分复用的缺陷”)]
- 统计时分复用STDM(Statistic TDM)
即在时分复用的基础上,对每个用户做一下检测,如果没有数据则跳到下一个用户数据,直到把一个时分复用帧填满再发送。
STDM不是固定分配时隙,而是按需动态分配时隙。
如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ugQqERu7-1682242628250)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/938c0a098c82d9cf3c0d395ca83aeac.png “统计时分复用”)]
2.4.2 波分复用
波分复用就是光的频分复用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gmj1cGXl-1682242628251)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/257d88ca7fd8b6ad0aa45b0add4beb4.png “波分复用”)]
2.4.3 码分复用CDM(Code Division Multiplexing)
每一个用户可以在同样的时间使用同样的频带进行通信
各用户使用经过特殊挑选的不同码型,因此不会造成干扰。
当码分复用信道为多个不同地址的用户所共享时,就称为码分多址CDMA(Code Division Multiple Access)
CDMA工作原理:
将每一个比特时间划分为m个短的间隔,称为码片(chip)。
为每个站指派一个唯一的m bit码片序列。
- 发送比特1:发送自己的m bit码片序列。
- 发送比特0:发送该码片序列的二进制反码。
例如,S站的8bit码片序列是00011011。
发送比特1时,就发送序列00011011.
发送比特0时,就发送序列11100100.
S站的码片序列:(-1 -1 -1 +1 +1 -1 +1 +1)
每个站分配的码片序列:各不相同,且必须相互正交。
- 正交: 向量S和T的规格化内积等于0 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nJ1rszfa-1682242628251)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/3bcb76afc50d61241ae5abdeaaf4635.png “正交”)]
- 任何一个码片向量和该码片向量自己的规格化内积都是1. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-btviDArY-1682242628252)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/fa31400827978009259eb55be434d84.png “自己和自己的规格化内积是1”)]
- 一个码片向量和该码片反码的向量的规格化内积值是-1 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wnXNjOsD-1682242628253)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/462bf5286c6b396fd00cf0ba3295ae8.png “自己和自己的反码的规格化内积是-1”)]
整个发送过程可以用下图来表示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LsX4TF6z-1682242628253)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/633503568cff410d92e7b2c7c51877f.png “码片在发送过程中的图解”)]
3 数据链路层
3.1 数据链路层概述
3.1.1 关于数据链路层
- 什么是数据链路层
- 链路:是结点间的物理通道,无源的物理线路,中间无任何其他交换结点。
- 数据链路:是节点间的逻辑通道,是把实现控制数据传输的协议的硬件和软件加到链路上,即链路+协议。
- 数据链路层:负责通过一条链路从一个结点向物理链路直接相邻的相邻结点传送帧。
- 帧: 链路层协议数据单元,封装网络层的数据报。
- 数据链路层使用的信道主要有以下两种类型:
- 点对点信道
- 广播信道
3.1.2 三个基本问题
封装成帧
就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOnCQVtK-1682242628254)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/aec7d262cb601d025ff0e74aa2eb581.png “封装成帧”)]
最大传送单元MTU(Maximum Transfer Unit):规定了所能传送的帧的数据部分长度上限。
成帧的方式:
- 字节计数法
- 带字节填充的定界符法
- 带比特填充的定界符法
- 物理层编码违例
用控制字符作为帧定界符
- 控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始
- 控制字符EOT(End Of Transmission)放在一帧的末尾,表示帧的结束
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9IHVfgX-1682242628255)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/4994142afc5233ef0ca43cc53f9765c.png “帧定界符”)]
但是如果数据部分包含与“定界符”相同的字节,就会导致帧识别错误。
透明传输
透明:指一个实际存在的事物看起来好像不存在一样
在数据链路层中透明传输表示:无论发送什么样的比特组合的数据,这些数据都能按照原样没有差错地通过这个数据链路层。
用字节填充法解决透明传输的问题
- 发送端的数据链路层在数据中出现控制字符“SOH”或者“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)
- 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JZ5I38DI-1682242628256)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/f9c0e3232267160a05ee1e7ecd1a71e.png “用字节填充法解决透明传输问题”)]
差错控制
在传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
误码率与信噪比有很大的关系
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
- 纠错码:主要用于错误发生比较频繁的信道上,如无线链路
- 检错码:主要用在高可靠、误码率较低的信道上,例如光纤链路
常用的检错码方法:CRC循环冗余检验 详细讲解:点这里
这里的差错控制并不是可靠传输
3.2 点对点协议PPP
3.2.1 PPP协议的特点
现在全世界使用得最多的数据链路层协议是点对点协议PPP
- 简单 —— 这是首要的要求
- 封装成帧
- 透明传输
- 差错检测
- 能够承载不同的网络层分组
- 能够在多种链路上运行
- 检测链接状态
- 最大传送单元
- 网络层地址协商
- 数据压缩协商
PPP协议的组成
- 一种将IP数据报封装到同步/异步串行链路的方法
- 链路控制协议LCP(Link Control Protocol) —— 用来建立、配置和测试数据链路的链路控制协议,通信双方可协商一些选项,最重要的功能之一是身份验证
- 网络控制协议NCP(Network Control Protocol) —— 其中每个协议支持一种不同的网络层协议,如IP、OSI的网络层
3.2.2 PPP协议的帧格式
- 标志字段F是 0x7E —— 二进制表示是01111110
- 地址字段A是 0xFF 地址字段实际上并不起作用
- 控制字段C是 0x03
- PPP是面向字节的,所有的PPP帧的长度都是整数字节。
- 协议字段是2字节- 当协议字段是0x0021时,表示PPP帧的信息字段就是IP数据报。- 若为0xC021,则信息字段是PPP链路控制数据- 若为0x8021,则表示这是网络控制数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8xCxN997-1682242628257)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/4e6d299c458537509562191f574ac77.png “PPP协议的帧格式”)]
透明传输问题
- 当PPP用在异步传输时,使用字节填充法
- 当PPP用在同步传输时,使用比特填充法
同步传输:面向比特
异步传输:面向字节
1. 字节填充法
- 将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E)
- 若信息字段中出现一个0x7D的字节,则将其转变成为2字节序列(0x7D,0x5D)
- 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mdGyaciv-1682242628257)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/660c35b0aaacadae8418d83de719656.png “字节填充法”)]
2. 零比特填充法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zM4JCxB9-1682242628258)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/636210a681f17d67e1e8a186d7c9fb5.png “零比特填充”)]
3.2.3 PPP协议的工作状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t7xon8Oq-1682242628259)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/0e7a57c0871bed96f586a4b0418cd1b.png “PPP协议的工作状态图解”)]
3.3 使用广播信道的数据链路层
3.3.1 局域网的数据链路层
局域网具有的优点:
- 具有广播功能,从一个站点可很方便地访问全网
- 便于系统的扩展和逐渐演变
- 提高了系统的可靠性、可用性和生存性
媒体共享技术
- 静态划分信道- 频分复用- 时分复用- 波分复用- 码分复用
- 动态媒体接入控制(多点接入)- 随机接入- 受控接入,如多点线路探询,或轮询
以太网的两个标准
- DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约
- IEEE的802.3标准
数据链路层的两个子层
- 逻辑链路控制LLC(Logical Link Control)子层
- 媒体接入控制MAC(Medium Access Control)子层
现在802委员会制定的逻辑链路控制子层LLC(即802.2标准)的作用已经不大了。
很多厂商生产的适配器上就近装有MAC协议而没有LLC协议。
适配器的作用
网络接口板又称为通信适配器或网络接口卡或网卡
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tc6twFPJ-1682242628259)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/a3efd03813299e66b6f08673bb0a429.png “计算机通过适配器和局域网进行通信”)]
适配器的重要功能:
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
以太网采取的两种重要措施
- 采用较为灵活的无连接的工作方式,即不必先建立链接就可以直接发送数据。
- 以太网对发送的数据帧不进行编号,也不要求对方发回确认。
以太网提供的服务
- 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
- 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
- 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
以太网发送的数据都使用曼彻斯特编码,便于同步
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnVRYmjr-1682242628260)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/f566261f6b64640e72db9cadce38374.png “曼彻斯特编码”)]
3.3.2 CSMA/CD协议
背景:
最初的以太网是将许多计算机都连接到一根总线上。
当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
使用CSMA/CD协议的以太网不能使用全双工通信而只能使用半双工通信。
但是这样会造成信号碰撞的问题。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rm9uaJNG-1682242628260)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/e88627eec8f74fe03c8706e382354fe.png “最初的以太网采用总线的拓扑结构”)]
CSMA/CD(Carrier Sense Multiple Access With Collision Detection):
载波监听多点接入/碰撞检测
- 多点接入:表示许多计算机以多点接入的方式连接在一根总线上。
- 载波监听:即“边发送边监听”。是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
- 碰撞检测:就是计算机(具体就是适配器)边发送数据,边检测信道上的信号电压的变化情况。电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
问题1:既然发送钱已经监听过信道,为什么还要进行碰撞检测?
因为信号有传播时延,监听信道空闲,但信道可能并非真正空闲。
问题2:A发送数据后,至少要多少时间内收到数据才说明没有碰撞?
以太网的端到端往返时延==2τ称为争用期,或碰撞接口。
具体的争用期时间 = 51.2μs(以5km的10M以太网计算)
由此,我们可以计算出争用期的长度
对于10Mb/s的以太网,在争用期内可以发送521bit的数据,也就是64字节==。所以,争用期的长度就是64B。
在以太网发送数据时,若前64字节没有发生冲突,则后续的数据就不会发生冲突。
所以,以太网规定最短有效帧长为64字节。
凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。
问题3:碰撞后什么时候重传?
截断二进制指数退避(Truncated Binary Exponential Backoff)
发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。
- 基本退避时间 = 2τ
- 从整数集合 [ 0 , 1 , 2 , . . . , ( 2 k − 1 ) ] [0,1,2,...,(2^k-1)] [0,1,2,...,(2k−1)]中随机地取出一个数,记为r。重传所需的时延T = r x 基本退避时间。
- 参数 k = Min[重传次数,10]
- 当重传达到16次仍不能成功时即丢弃该帧,并向高层报告。
强化碰撞
当发送数据的站一旦发现了碰撞时:
- 立即停止发送数据;
- 再继续发送若干比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。
先听后发、边听边发、冲突停止、延迟重发
3.4 使用广播信道的以太网
3.4.1 使用集线器的星型拓扑
传统以太网采用粗同轴电缆到细同轴电缆再到后来的双绞线;
这种以太网采用星形的拓扑结构,并在此基础上增加了集线器(Hub)来进行扩展
集线器的特点:
- 集线器是使用电子器件来模拟实际电缆线工作,实际上还是一个传统的以太网
- 使用集线器的网络在逻辑上还是一个总线网,各站点采用CSMA/CD协议,并共享逻辑上的总线
- 集线器就想很多接口的转发器,工作在物理层
3.4.2 以太网的信道利用率
发送一帧所需要的时间如图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSfizigJ-1682242628261)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/f52ff19c31d07632cec95734e1cf7ac.png “发送一帧所需要的时间”)]
由上图可知,要提高以太网的信道利用率,就必须减少τ与
T
0
T_0
T0的比值,以太网中定义了参数a,它就是τ与
T
0
T_0
T0的比值。
a
=
τ
T
0
a = \frac{τ}{T_0}
a=T0τ
信道利用率最大值
S
m
a
x
S_{max}
Smax为:
S
m
a
x
=
T
0
T
0
+
τ
=
1
1
+
a
S_{max} = \frac{T_0}{T_0 + τ} = \frac{1}{1 + a}
Smax=T0+τT0=1+a1
3.4.3 以太网的Mac层
在局域网中,硬件地址又成物理地址或者MAC地址
MAC地址一共48位。它的通用名称是EUI-48
IEEE的注册管理机构RA负责向厂商分配地址中的前3个字节(即高位24位)
地址中的后3个字节(即低位24位),由厂商自行指派,称为扩展标识符。必须保证生产出的适配器没有重复地址。
以太网的帧格式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPynF46r-1682242628261)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/0be16c7ca6d3cd8c7b6ad15c381a46c.png “以太网的帧格式”)]
无效的MAC帧
- 数据字段的长度和长度字段的值不一致
- 帧的长度不是整数个字节
- 用收到的帧检验序列FCS查出有差错
- 数据字段的长度不在46 ~ 1500字节之间
- MAC帧的长度不在64 ~ 1518字节之间
检查出无效的MAC帧,以太网就直接丢弃。以太网不负责重传丢弃的帧。
帧间最小间隔
- 帧间最小间隔为9.6um,相当于96bit的发送时间
- 一个站在检测到总线空闲之后,还要等待9.6um再开始发送数据
- 这样做是为了刚刚接收帧的站的接收缓存来得及清理,做好接收下一帧的准备
3.5 扩展的以太网
3.5.1 在物理层扩展以太网
在物理层扩展主要是用==集线器==的方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RMhEaLFJ-1682242628262)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/5b4fba49dc31a50946c8839804bb9c5.png “用集线器扩展的以太网”)]
优点:
- 使原来属于不同碰撞域的局域网上的计算机能够跨碰撞域进行通信
- 扩大了局域网覆盖的地理范围
缺点:
- 碰撞域增大了,但是总的吞吐量并未提高
- 如果不同的碰撞域使用不同的数据率,那就不能用集线器将他们互联起来
3.5.2 在数据链路层扩展以太网
在数据链路层扩展以太网使用的是==网桥==
网桥工作在数据链路层,它根据MAC帧的目的地址对帧进行转发
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2MBZXWEM-1682242628262)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/b3cb13f4b61c99f950b91ef0373ae6c.png “网桥内部结构”)]
网桥的优点:
- 过滤通信量
- 扩大物理范围
- 提高了可靠性
- 可互联不同物理层、不同MAC子层、不同速率的局域网
- 可以隔离碰撞域
网桥的缺点:
- 存储转发增加了时延
- 在MAC子层并没有流量控制功能
- 具有不同MAC子层的网桥接在一起时时延更大
- 容易产生广播风暴
多接口网桥 —— 以太网交换机
以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式
每个接口在通信时是独占带宽
4.网络层
4.1 网络层提供的两种服务
虚电路服务与数据报服务对比
对比内容虚电路服务数据报服务可靠传输的保证可靠通信由网络保证可靠通信由主机保证链接的建立必须要不需要地址每个分组含有一个短的虚电路号每个分组需要有源地址和目的地址状态信息建立好的虚电路要占用子网表空间子网不存储状态信息路由选择分组必须经过建立好的路由发送每个分组独立选择路由分组顺序总是按序到达可能乱序
4.2 网际协议IP
网际协议IP是TCP/IP体系中最重要的协议之一。与IP协议配套使用的还有四个协议
- 地址解析协议ARP
- 逆地址解析协议RARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
4.2.1 虚拟互联网络
4.2.2 IP数据报的格式
一个IP数据报由首部和数据两部分组成。
首部共20字节
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6OdsvupV-1682242628263)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/571680332861_.pic_.png “IP首部”)]
首部各部分的含义
- 版 本一 占4 位,指1P 协议的版本 目 前 的 I P 协 议 版 本 号 为 4 (即 I P v 4 )
- 首部长度——占4 位,可表示的最大数值 是15 个单位(一个单位为4字节 因此1 的首部长度的最大值是60 字节
- 区分服务一—占8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。只 有 在 使 用 区 分 服 务 (D i f f S e r v ) 时 , 这 个 字 段 才 起 作 用 。 在一般的情况 下都不使用这个字段
- 总长度一—占16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为65535 字节。 总长度必须不超过最大传送单元 MTU。
- 标识(identification) 占16 位,它 是 一个 计 数 器 , 用 来 产 生 数 据 报 的 标 识 。
- 标志(flag) 占3 位,日前只有前两位有意义。 1. 标志字段的最低位是MF(More Fragment)。M F = 1 表 示 后 面 “ 还 有 分 片 ” 。 M F = 0 表 示 最 后 一个 分 片 。2. 标 志 字 段 中 间 的 一位 是 D F ( D o n ’ t F r a g m e n t ) 。只有当 DF = 0 时 才允许分片。
- 片 偏 移 ( 1 2 位) 指 出 : 较 长 的 分 组 在 分 片 后 某片在原分组中的相对位置。 片偏移以8 个字节为偏移单位。
- 生存时间(8 位)记为TTL(Time To Live) 数据报在网络中可通过的路由器数的最大值。
- 协议(8 位)字段指出此数据报携带的数据使用何种协议 以便目的主机的1P 层将数据部分上交给哪个处理过程
- 首部检验和(16 位)字段只检验数据报的首部 不检验数据部分。 这里不采用CRC 检验码而采用简单的计算方法。
- 源地址和目的地址都各占4 字节
4.2.3 IP地址
IP由网络号和主机号组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GVsactt4-1682242628263)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/551680332446_.pic_.jpg “IP地址的组成”)]
分类的IP地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5a9S9EC-1682242628271)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/561680332446_.pic_.jpg “分类的IP地址”)]
4.3 划分子网和构造超网
4.3.1 划分子网
从主机号借用若干个位作为子网号,而主机号也就相应减少了若干个位。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNUl747C-1682242628272)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/581680334124_.pic_.png “划分子网思路”)]
子网掩码
从一个IP数据报的首部无法潘丹源主机或者目的主机锁连接的网络是否进行了子网划分。
使用==子网掩码==可以找出IP地址中的子网部分。
( IP 地址) AND(子址网掩码) = 网络地址 AND:按位与运算
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8Zor5DL-1682242628273)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/591680334786_.pic_.png “子网掩码计算”)]
【例4.3.1-1】己知IP 地址是141. 14.72.24,子网 掩码是255.255. 192.0。试求网络地址。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GwMezaCd-1682242628274)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/601680335161_.pic_.jpg “题解”)]
【例4.3.1-2】在上例中,若子网掩码改为255.255.224.0。试求网络地址,讨论所得结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-trkrxjyx-1682242628275)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/611680335294_.pic_.png “题解”)]
结论:不同的子网掩码可以得出相同的网络地址。但不同的掩码的效果是不同的。
4.3.2 无分类编制CIDR
划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在1992年因特网仍然面临三个必须尽早解决的问题,那就是:
- B类地址在1992年已经分配了近一半,眼看就要在1994年3月全部分配完毕。
- 因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
- 整个IPv4的地址空间最终将全部耗尽。
IP编址问题的演进
- 1987年RFC1009就指明了在一个划分子网的网络中可以同时说动几个不同的子网掩码。使用可变长子网掩码VLSM可进一步提高IP地址资源的利用率。
- 在VLSM的基础上又进一步研究出无分类编制方法,它的名字是无分类域间路由选择CIDR。
CIDR的特点
- CIDR 消除了传统的 A 类、B 类和 C 类地 址以及划分子网的概念,因而可以更加有效 地分配 IPv4 的地址空问。
- CIDR使用各种长度的 “网络前 缀” (network-pretix)来代替分类地址中的网 络号和子网号。
- IP地址从三级编址(使用子网掩码)又回 到了两级编址。
CIDR表示方法
IP 地 址 := { < 网 络 前 缀 >, < 主 机 号 > }
CIDR还 使 用 “ 斜 线 记 法”(slash notation),它又 称为CIDR记法,即在IP 地址面加上一个斜线“ 然后写 上网络前缀所占的位数 (这个数值对应 于 三级编址中子网掩码中 1 的个数)。
CIDR 把网络前缀都相同的连续的 1P 地址组成 “CIDR 地址块”。
CIDR地址块
- 128.14.32.0/20 表示的地址块共有212个地址(因为斜线后面的20 是网络前缀的位数,所以这个地址的主机号是12 位)。
- 这个地址块的起始地址是128.14.32.0。
- 在不需要指出地址块的起始地址时,也可将这样的 坉址块简称为“/20地址块” 。
- 128.14.32.0/20地址块的最小地址:128.14.32.0
- 128.14.32.0/20 地址块的最大地址:128. 14.47.255 • 全0和全1的主机号地址一般不使用。
构成超网
- 前缀长度不超过23位的CIDR地址块都 包含了多个C 类地址。
- 这些C类地址合起来就构成了超网。
- C I D R 地 址 块 中 的 地 址 数 一定 是 2 的 整 数次幂。
- 网络前缀越短,其地址块所包含的地址 数就越多。而在三级结构的IP 地址中, 划分子网是使网络前缀变长。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rwHlnfMr-1682242628276)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/621680337131_.pic_.png “CIDR应用举例”)]
这个ISP 共有64 个C 类网络。如果不采用CIDR 技术,则在与该ISP 的路由器交 换路由信息的每 一个路由器的路由表中,就需要有64 个项目。但采用地址聚合后, 只需用路由聚合后的1个项目206.0.64.0/ 18 就能找到该ISP。
最长前缀匹配原则
- 使用CIDR 时,路由表中的每个项目由“网络 前缀” 和 “下一跳地址” 组成。在查找路由表 时可能会得到不止 一个匹配结果。
- 应当从匹配结果中选择具有最长网络前缀的路 由:最长前缀匹配(longest-prefix matching)。 • 网络前缀越长,其地址块就越小,因而路由就越具体(more spec itic) 。
- 最长前缀匹配又称为最长匹配或最佳匹配。
4.4 网际控制报文协议ICMP
- 为了提高1P 数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol).
- ICMP 允许主机或路由器报告差错情况和提供 有关异常情况的报告。
- ICMP 不是高层协议,而是IP 层的协议。
- ICMP 报文作为1P层数据报的数据,加上数据 报的首部,组成1P 数据报发送出去。
ICMP报文格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZJXDYr6-1682242628276)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/631680337720_.pic_.png “ICMP报文的格式”)]
4.4.1 ICMP报文的种类
- ICMP差错报告报文
- ICMP询问报文
ICMP差错报告报文共有5种
- 终点不可达
- 源点抑制(Source quench)
- 时间超过
- 参数问题
- 改变路由(重定向) (Redirect)
ICMP询问报文有2种
- 回送请求和回答报文
- 时间戳请求和回答报文
4.4.2 ICMP的应用举例
- PING (Packet InterNet Groper)
- PING用来测试两个主机之问的连通性。
- PING 使用了 ICMP 回送请求与回送回答报文。
- PING 是应用层直接使用网络层 ICMP 的例子它没有通过运输层的TCP或UDP。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ihf83f8-1682242628277)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/641680338212_.pic_.png “mac下的ping命令”)]
- Traceroute
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FvmGv0WE-1682242628278)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/661680340056_.pic_.png “Mac下traceroute命令”)]
4.5 因特网的路由选择协议
自治系统 AS (Autonomous System)
- 自 治 系 统 A S 的 定 义 : 在 单 一 的 技 术 管 理 下的 一组路由器,而这些路由器使用一种AS 内部 的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种AS 之问的路由 选择协议用以确定分组在AS之间的路由。
- 现在对自治系统 AS的定义是强调下面的事实: 尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。
两大类路由选择协议
- 内部网关协议IGP (nterior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议 。目前这类路由选择协议使用得最多。如RIP和OSPF协议。
- **外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据 报传到一个自治系统的边界时,就需要使用一种 协议将路由选择信息传递到另一个自治系统中。 这样的协议就是外部网关协议EGP 。在外部网 关协议中目前使用最多的是BGP-4。
4.5.1 内部网关协议RIP
路由信息协议RIP 是内部网关协议IGP 中最先得到广泛使用的协议。
工作原理
- RIP 是一种分布式的基于距离向量的路由选择协议。
- RIP协议要求网络中的每一个路由器都 要维护从它自己到 其他每一个目的网络的距离记录。
“距离”的定义
- 从一路由器到直接连接的网络的距离定 义为 1。
- 从一个路由器到非直接连接的网络的距 离定义为所经过的路由器数加 1。
- RI P 协 议 中 的 “ 距 离 ” 也 称 为 “ 跳 数” (hop count),因为每经过一个路由 器,跳数就加1。
- 这里的“距离” 实际上指的是“最短距 旁”
RIP的特点
- 仅和相邻路由器交换信息。
- 交换的信息是当前本路由器所知道的全 部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,例如, 每隔30 秒。
- RIP 允许一条路径最多只能包含15个路由器。“距离” 的最大值为16 时即相当于不可达。可见RIP只适用于小型互联网。
- RIP不能在两个网络之间同时使用多条路由。
RIP协议的优缺点
优点:
- RIP 协议最大的优点就是实现简单,开销较小。
缺点:
- RIP 存在的一个问题是当网络出现故障时,要 经 过 比 较 长的 时 间 才能 将 此 信 息 传 送 到 所 有 的路由器。
- RIP 限制了网络的规模,它能使用的最大距离 为 15 (16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完 整路由表,因而随着网络规模的扩大,开销 也就增加。
4.5.2 内部网关协议OSPF
OSPF是分布式的链路状态协议
OSPF的特点
- 向本自治系统中近有路由器发送信息,这里使用的方法是洪泛法。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- “链路状态” 就是说明本路由器都和哪些路由器相邻,以及该链路的“度量” (metric)。
- 只有当链路状态发生变化时,路由器才用洪 泛法向所有路由器发送此信息。
- OSPF对不同的链路可根据分组的不同服务类 型TOS而设置成不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路由。
- 如果到同一个目的网络有多条相同代价的路径, 那么可以将通信量分配给这几条路径。这叫作多 路径间的负载平衡。
- 所有在OSPF路由器之间交换的分组都具有鉴别 的功能。
- 支持可变长度的子网划分和无分类编址CIDR。
- 每一个链路状态都带上一个32位的序号,序号 越大状态就越新。
- OSP F还规定每隔一段时间,如30 分钟,要刷新 一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路 由器的连通状态,因而与整个互联网的规模并 无直接关系。因此当互联网规模很 大时, OSP F 协议要比距离向量协议RIP 好得多。
- OSPF没有“坏消息传播得慢” 的问题。据统计,其响应网络变化的时间小于 100 ms 。
OSPF的区域
- 为使OSPF能够用于规模很大的网络, OSPF 将 一个自治系统再划分为若干个更小的 范围,叫作区域。
- 每一个区域都有一个32 位的区域标识符 (用点分十进制表示) 。
- 区域也不能太大,在一个区域内的路由器最好 不超过200 个。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I95tZMb0-1682242628279)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/651680340026_.pic_.png “OSPF的区域”)]
OSPF的五种分组类型
- 类型1,问候(hello)分 组 。
- 类型2,数据库描述(Database Description)分组。
- 类型3,链路状态请求(LinkStateRequest)分组。
- 类型4,链路状态更新(LinkState Update)分组,用洪泛法对全网更新链路状态。
- 类型5,链路状态确认(LinkStateAcknowledgment) 分组。
4.5.3 外部网关协议BGP
BGP 是不同自治系统的路由器之间交换路由信息的协议。
BGP 发言人(BGP speaker)
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的 “ BGP发言人”
- 一般说来,两个BGP 发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP 边界路由器,但也可以 不是BGP 边界路由器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZ914YkK-1682242628280)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/671680341461_.pic_.png “BGP发言人和自治系统AS的关系”)]
BGP协议的特点
- BGP 协议交换路由信息的结点数量级是 自治系统数的量级,这要比这些自治系 统中的网络数少很多。
- 每 一 个 自 治 系 统 中 B G P 发 言 人 (或 边 界 路由器)的数目是很少的。这样就使得 自治系统之间的路由选择不致过分复杂。
- BGP 支持CIDR,因此BGP的路由表也就应
- 当包括目的网络前缀、下一跳路由器,以及到 达该目的网络所要经过的各个自治系统序列。
- 在BGP刚刚运行时,BGP 的邻站是交换整个 的BGP 路由表。但以后只需要在发生变化时 更新有变化的部分。这样做对 节省网络带 宽和 减少路由器的处理开销方面都有好处。
BGP共使用四种报文
- 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
- 更新(UP DATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
- 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
- 通知(NOTIFICATION)报文,用来发送检测到的差错。
4.6 IP多播
4.6.1 IP多播的特点
- 多播使用组地址 —— IP使用D类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。
- 永久组地址 —— 由因特网号码指派管理局IANA负责指派。
- 动态的组成员
- 使用硬件进行多播
4.6.2 网际组管理协议IGMP和多播路由选择协议
IP多播需要两种协议
- 为了使路由器知道多播组成员的信息, 需要利用网际组管理协议IGMP (Internet Group Management Protocol).
- 连接在局域网上的多播路由器还必须和 因特网上的其他多播路由器协同工作, 以 便 把 多 播 数 据 报 用 最 小代 价 传 送 给 所 有的组成员。这就需要使用多播路由选 择协议
IGMP的特点
- 和ICMP 相似,IGMP 使用IP 数据报传递 其 报 文 (即IGMP报文加上IP首部构成IP数据报),但它也向IP提供服务。
- 因此,我们不把IGMP看成是一个单独的协议,而是属于整个网际协议IP的一个组成部分。
几种多播路由选择协议
- 距离向量多播路由选择协议DVMRP(Distance Vector Multicast Routing Protocol)
- 基于核心的转发树CBT (Core Based Tree)
- 开放最短通路优先的多播扩展MOSPF(Multicast Extensions to OSPF)
- 协议无关多播-稀疏方式PIM-SM(Protocol Independent Multicast-Sparse Mode)
- 协议无关多播-密集方式PIM-DM(Protocol Independent Multicast-Dense Mode)
4.7 虚拟专用网VPN
- 本地地址 —— 仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
- 全球地址 —— 全球唯一的IP地址,必须向因特网的管理机构申请。
RFC1918指明的专用地址
10.0.0.0到10.255.255.255
172.16.0.0到172.31.255.255
192.168.0.0到192.168.255.255
- 这些地址只能用于 一个机枸的内部通信,而不能用于和因特网上的主机通信。
- 专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
用隧道技术实现虚拟专用网
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o644xaZQ-1682242628280)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/681680343023_.pic_.png “VPN原理简单说明”)]
4.8 网络地址转换NAT
- 需要在专用网连接到因特网的路由器上安装 NAT 软件。装有NAT 软件的路由器叫做NAT 路由器,它至少有一个有效的外部全球地址 I P G IP_G IPG。
- 所有使用本地地址的主机在和外界通信时都要在NAT路由器上将其本地地址转换成 I P G IP_G IPG才能和因特网连接。
5 运输层
5.1 运输层协议概述
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
两个主机进行通信实际上就是两个主机中的应 用进程互相通信。
应用进程之间的通信又称为端到端的通信。
5.1.1 运输层的两个主要协议
运输层有两个不同的协议:
- 用户数据报协议UDP(User Datagram Protocol)
- 传输控制协议 TCP(Transmission Control Protocol)
5.1.2 运输层的端口
运行在计算机中的进程是用进程标识符来标志的。
解決这个问题的方法就是在运输层使用协议端口号(protocol portnumber),或通常简称为端口(port)。
- 在协议栈层间的抽象的协议端又是软件端口。
- 路由器或交换机上的端又是硬件端口。
- 端口用一个16 位端又号进行标志。
- 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
三类端口
- 熟知端口,数值一般为0~1023。
- 登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。
- 客户端口号或短暂端口号,数值为49152 ~ 65535 ,留给客户进程选择暂时使用 。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端又号。通信结束后,这个端又号可供其他客户进程以后使用。
5.2用户数据报协议UDP
5.2.1 UDP概述
UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
UDP的主要特点
- UDP是无连接的,即发送数据之前不需要建立连接。
- UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
- UDP是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
- UDP支持一对一 、一对多 、多对一和多对多的交互通信 。
- UDP的首部开销小,只有8 个字节。
5.2.2 UDP的首部格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ABX7tNS7-1682242628281)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/701681622899_.pic_.png “UDP数据报首部格式”)]
5.3 传输控制协议TCP
5.3.1 TCP概述
TCP最主要的特点
- TCP是面向连接的运输层协议。
- 每一条 TCP 连接只能有两个端点(endpoint) ,每一条TCP连接只能是点对点的(一对一)。
- TCP提供可靠交付的服务。
- TCP提供全双工通信。
- 面向字节流。
套接字(socket)
端口号拼接到(contatenatedwith)IP地址即构成了套接字。
套接字socket = (IP地址:端口号)
TCP的链接
- TCP 把连接作为最基本的抽象。
- 每一条TCP连接有两个端点。
- TCP连接的端点不是主机不是主机的1地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口。
每一条TCP连接唯一地被通信两端的两个端点 (即两个套接字)所确定。即:
TCP连接::= (socket 1, socket2) = {(IP1: port1), (IP2: por 2)}
同一个名词socket有多种不同的意思
- 应用编程接又APl称为socket API,简称为 socket.
- socket API 中使用的一个函数名也叫作socket。
- 调用socket函数的端点称为socket.
- 调用socket函数时其返回值称为socket 描述符, 可简称为socket。
- 在操作系统内核中连网协议的Berkeley实现,称为socket实现。
5.3.2 可靠传输的工作原理
5.3.2.1 停止等待协议
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIiKAdSN-1682242628281)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/711681623768_.pic_.png “停止等待协议示意图”)]
确认丢失和确认迟到
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uz9ER6M6-1682242628282)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/721681623859_.pic_.png “确认丢失和确认迟到”)]
注意
- 在发送完一个分组后,必须暂时保留已发送的分组的副本。
- 分组和确认分组都必须进行编号。
- 超时计时器的重传时问应 当比数据在分组传输的平均往返时间更长一些。
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议常称为自动重传请求ARQ(AutomaticRepeat reQuest)。
ARQ表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组 。
停止等待协议的优点是简单,但缺点是信道利用率太低。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xH99VJjn-1682242628282)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/731681624236_.pic_.png “停止等待协议信道利用率示意图”)]
$U = \frac{T_D}{T_D + RTT + T_A} $
5.3.2.2 连续ARQ协议
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YvbzAZ0p-1682242628283)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/741681624445_.pic_.png “连续ARQ协议”)]
累积确认
- 接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这 样就表示:到这个分组为止的所有分组 都己正确收到了。
- 累积确认有的优点是:容易实现,即使 确认丢失也不必重传。缺点是 :不能向 发送方反映出接收方已经正确收到的所 有分组的信息。
Go-back-N(回退N)
- 如果发送方发送了前5个分组,而中间的第3个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。
- 这就叫做Go-back-N (回退N) ,表示需要再退回来重传已发送过的N个分组。
- 可见当通信线路质量不好时,连续ARQ 协议会带来负面的影响。
TCP可靠通信的具体实现
- TCP连接的每一端都必须设有两个窗口 —— 一个发送窗口和 一个接收窗口。
- TCP的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。
- TCP两端的四个窗又经常处于动态变化之中。
- TCP连接的往返时间RTT也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。
5.3.3 TCP报文段的首部格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NyKMlxKH-1682242628283)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/751681625752_.pic_.png “TCP报文段的首部”)]
- 源端口和目的端口字段 —— 各占2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
- 序号字段 —— 占4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
- 确认号字段 —— 占4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
- 数据偏移(即首部长度) —— 占4位,它指出TCP 报文段的数据起始处距离TCP 报文段的起始处有多远。“ 数据偏移” 的单位是32 位字(以4 字节为计算单位)。
- 保留字段 —— 占6位,保留为今后使用,但目前应置为0。
- 紧急URG —— 当URG= 1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送( 相当于高优先级的数据) 。
- 确认ACK —— 只有当ACK= 1时确认号字段才有效。当ACK=0时,确认号无效。
- 推送PSH (PuSH) —— 接收TCP 收到PSH = 1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
- 复位RST(ReSeT) —— 当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
- 同步SYN —— 同步SYN=1表示这是一个连接请求或连接接受报文。
- 终止FIN(FINis) —— 用来释放一个连接。FIN= 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
- 窗口字段 —— 占2字节,用来让对方设置发送窗口的依据,单位为字节。
- 检验和 —— 占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP 报文段的前面加上12字节的伪首部。
- 紧急指针字段 —— 占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
5.3.4 TCP可靠传输的实现
5.3.4.1 以字节为单位的滑动窗口
- TCP可靠传输是利用滑动窗口实现的。
- TCP使用的滑动窗口是以字节为单位的。
- 现假定 A 收到了 B 发来的确认报文段, 其中窗口是20字节,而确认号是31(这表明 B 期望收到的下一个序号是31,而序号30为止的数据已经收到了) 。
- 根据这两个数据(窗口和确认号),A就(被迫)构造出自己的发送窗口。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5baMWOiF-1682242628284)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/013319b7f1940778829d5d1386dc1fe.png “滑动窗口示意图”)]
发送缓存与接收缓存的作用
- 发送缓存用来暂时存放:
- 发送应用程序传送给发送方 TCP 准备发送的数据;
- TCP 已发送出但尚未收到确认的数据。
- 接收缓存用来暂时存放:
- 按序到达的、 但尚未被接收应用程序读取的数据;
- 未按序但到达的数据。
5.3.4.2 超时重传时间的选择
重传机制是TCP中最重要和最复杂的问题之一。
TCP每发送一个报文段,就对这个报文段设置一次计时器。
只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。
重传时间的选择是TCP最复杂的问题之一。
TCP采用了一种自适应算法,它记录一个报文段发出的时间, 以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间RTT。
TCP保留了RTT的一个加权平均往返时间
R
T
T
s
RTT_s
RTTs(这又称为平滑的往返时间) 。
第一次测量到RTT样本时,
R
T
T
s
RTT_s
RTTs值就取为所测量到的RTT样本值。以后每测量到一个新的RTT样本,就按下式重新计算一次
R
T
T
s
RTT_s
RTTs:
新的
R T T s RTT_s RTTs = (1-α) x (旧的 R T T s RTT_s RTTs) + α x (新的RTT样本)
式中, 0 <= α < 1。 若α很接近于零, 表示RTT值更新较慢。若选择α接近于1,则表示RTT值更新较快。
RFC2988推荐的α值为1/8, 即0.125。
超时重传时间RTO
RTO(Retransmission Time-Out)应略大于上面得出的加权平均往返时间
R
T
T
S
RTT_S
RTTS。
RTO =
R T T S RTT_S RTTS + 4 x R T T D RTT_D RTTD
R
T
T
D
RTT_D
RTTD是RTT的偏差的加权平均值。
RFC2988建议这样计算
R
T
T
D
RTT_D
RTTD。第一次测量时,
R
T
T
D
RTT_D
RTTD值取为测量到的RTT样本值的一半。在以后的测量中, 则使用下式计算加权平均的
R
T
T
D
RTT_D
RTTD:
新的
R T T D RTT_D RTTD = (1 - β) x (旧的 R T T D RTT_D RTTD) + β x | R T T S RTT_S RTTS - 新的 RTT 样本|
β是个小于1的系数,其推荐值是1/4,即0.25。
5.3.4.3 选择确认SACK
问题:
若收到的报文段无差错, 只是未按序号,中间还缺少一些序号的数据, 那么能否设法只传送缺少的数据而不重传已经正确到达接收方的数据?
答案是可以的。 选择确认SACK(Selective ACK)就是一种可行的处理方法。
接收方收到了和前面的字节流不连续的两个字节块。
如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。
5.3.5 TCP的流量控制
利用滑动窗口实现流量控制
流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fQ7Tdefa-1682242628284)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/9dc59a8576b0abdb15ae831e8fb9da2.png “滑动窗口流量控制示例”)]
可能发生死锁
B 向 A 发送了零窗口的报文段后不久, B 的接收缓存又有了一些存储空间。 于是 B 向 A 发送了 rwnd =400 的报文段。
但如果这个报文段在传送过程中丢失了。 A 一直等待收到 B 发送的非零窗口的通知, 而 B 也一直等待 A 发送的数据。 ——死锁局面。
如果没有其他措施, 这种互相等待的死锁局面将一直延续下去。
为了解决这个问题, TCP 为每一个连接设有一个持续计时器 (persistence timer)。
持续计时器
TCP 为每一个连接设有一个持续计时器 (persistence
timer) 。
只要 TCP 连接的一方收到对方的零窗口通知, 就启动该持续计时器。
若持续计时器设置的时间到期, 就发送一个零窗口探测报文段(仅携带 1 字节的数据) , 而对方就在确认这个探测报文段时给出了现在的窗口值。
若窗口仍然是零, 则收到这个报文段的一方就重新设置持续计时器。
若窗口不是零, 则死锁的僵局就可以打破了。
5.3.6 TCP的拥塞控制
拥塞控制与流量控制的区别
目的不同; 涉及因素不同
- 拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。
- 拥塞控制所要做的都有一个前提, 就是网络能够承受现有的网络负荷。
- 拥塞控制是一个全局性的过程, 涉及到所有的主机、 所有的路由器, 以及与降低网络传输性能有关的所有因素。
- 流量控制往往指点对点通信量的控制,是个端到端的问题。
- 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收(接收端控制发送端)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t8dYnaQ8-1682242628284)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/a680b9f64486625807f23608f53ae2e.png “拥塞控制所起的作用”)]
控制方法: 开环控制和闭环控制
- 开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。
- 闭环控制方法是基于反馈环路的概念。 属于闭环控制的有以下几种措施:
- 监测网络系统以便检测到拥塞在何时、何处发生。
- 将拥塞发生的信息传送到可采取行动的地方。
- 调整网络系统的运行以解决出现的问题。
监测网络的拥塞的指标
- 由于缺少缓存空间而被丢弃的分组的百分数;
- 平均队列长度;
- 超时重传的分组数;
- 平均分组时延;
- 分组时延的标准差,等等。
上述这些指标的上升都标志着拥塞的增长。
基于 TCP 的拥塞控制方法
TCP 采用基于窗口的方法进行拥塞控制。 该方法属于闭环控制方法。
TCP发送方维持一个拥塞窗口 CWND (Congestion Window)
真正的发送窗口值 = Min(公告窗口值, 拥塞窗口值)
TCP拥塞控制算法
- 慢开始 (slow-start)
- 拥塞避免 (congestion avoidance)
- 快重传 (fast retransmit)
- 快恢复 (fast recovery)
设置慢开始门限状态变量ssthresh
慢开始门限ssthresh 的用法如下:
• 当cwnd<ssthresh时,使用慢开始算法。
• 当cwnd >ssthresh 时,停止使用慢开始算法而改用 拥塞避免算法。
• 当cwnd =ssthresh 时,既可使用慢开始算法,也可 使用拥塞避免算法。
• 拥塞避免算法的思路是让拥塞窗又cwnd 缓慢地增大, 即每经过一个往返时间 RTT 就把发送方的拥塞窗又 cwnd 加1,而不是加倍,使拥塞窗又cwnd 按线性规律缓慢增长。
为了集中讨论拥塞控制, 假定传输是在单向, 接收窗口足够大(发送窗口由拥塞控制决定) 的理想条件下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4h5ysoBm-1682242628285)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/811682131735_.pic_.png “TCP拥塞控制示意图”)]
5.3.7 TCP的运输链接管理
5.3.7.1 TCP链接的建立
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJYJ53zB-1682242628285)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/821682133617_.pic_.png “TCP建立连接的三次握手”)]
- A 的TCP向B发出连接请求报文段,其首部中的 同步SYN=1,并选择序号seq =x,表明传送 数 据时的第一个数据字节的序号是x。
- B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。B 在确认报文段中应使SYN = 1,使ACK= 1, 其确认号ack =x +1,自己选择的序号seq =y。
- A收到此报文段后向日给出确认,其ACK= 1, 确认号ack= y+ 1。
5.3.7.2 TCP链接的释放
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7JRS98BN-1682242628285)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/831682134408_.pic_.png “TCP四次握手释放连接”)]
数据传输结束后,通信的双方都可释放连接。 现在A的应用进程先向其TCP 发出连接释放 报文段,并停止再发送数据,主动关闭TCP 连接。
- A把连接释放报文段首部的FIN= 1,其序号 se q = u,等待B 的确认。
- B 发出确认,确认号a ck = u + 1, 而这个报文段自己的序号seq = v。(从A到B这个方向的连接就释放了,TCP连接 处于半关闭状态。B若发送数据,A仍要接收。)
- 若B 己经没有要向A 发送的数据, 其应用进程就通知 TCP 释放连接。
- A收到连接释放报文段后,必须发出确认。在确认报文段中ACK =1,确认号ack=w+1, 自己的序号seq = u + 1。
TCP连接必须经过时间2MSL后才真正释放掉。
- 第一,为了保证A发送的最后 一个ACK报文 段能够到达B。
- 第二,防止 “已失效的连接请求报文段” 出现在本连接 中 。A 在发送完最后一个 ACK 报文段后,再经过时间2MSL ,就可以使本连接持 续的时间内所产生的所有报文段,都从网络中 消失。这样就可以使下一个新的连接中不会出 现这种旧的连接请求报文段。
5.3.7.3 TCP的有限状态机
TCP 有限状态机的图中每一个方框都是TCP 可能具有的状态。
每个方框中的大写英文宇符串是 TCP 标准所使用的TCP 连接状态名。状态之问的箭头表示可能发生的状态变迁。
箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s84382wd-1682242628286)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/841682135005_.pic_.png “TCP的有限状态机”)]
图中有三种不同的箭头。
• 粗实线箭头表示对客户进程的正常变迁。
• 粗虛线箭头表示对服务器进程的正常变迁。
• 另一种细线箭头表示异常变迁。
6 应用层
6.1 域名系统DNS
因特网的域名结构
… . 三级域名 . 二级域名 . 顶级域名
域名服务器有以下四种类型
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
主机向本地域名服务器的查询一般都是采用递归查询。
本地域名服务器向根域名服务器的查询通常是采用迭
代查询。
域名的高速缓存
每个域名服务器都维护一个高速缓存, 存放最近用过的名
字以及从何处获得名字映射信息的记录。
6.2 文件传输协议FTP
两个不同的端口号
- 端口(21):连接控制
- 端口(20):数据传输
6.3 远程终端协议TELNET
- TELNET 是一个简单的远程终端协议, 也是因特网的正式标准。
- 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录) 到远地的另一个主机上(使用主机名或 IP 地址) 。
- TELNET 能将用户的击键传到远地主机, 同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。 这种服务是透明的, 因为用户感觉到好像键盘和显示器是直接连在远地主机上。
6.4 万维网WWW
HTML
超文本标记语言 HTML (HyperText MarkupLanguage)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面, 并且能够在自己的计算机屏幕上将这些页面显示出来。
统一资源定位符 URL
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuBtF50x-1682242628286)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/807d8120bb324bcc2979b4f10995b4a.png “URL的一般格式”)]
超文本传送协议 HTTP
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
- 从层次的角度看,HTTP是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、 图像等各种多媒体文件)的重要基础。
用户点击 www.tsinghua.edu.cn 之后发生的事情
(1 ) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的
IP 地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接
(5) 浏览器发出取文件命令:
GET /chn/yxsz/index.htm。
(6) 服务器给出响应, 把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置” 文件 index.htm
中的所有文本。
HTTP 的报文结构
- 请求报文
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYVrth2Z-1682242628287)(https://hupc-blog-photo.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2023/03/1877a29bf00538bb8249b27257bf483.png “HTTP请求报文示意图”)]
- 报文由三个部分组成, 即开始行、 首部行和实体主体。在请求报文中, 开始行就是请求行。
- 方法” 是面向对象技术中使用的专门名词。 所谓“方法” 就是对所请求的对象进行的操作, 因此这些方法实际上也就是一些命令。 因此, 请求报文的类型是由它所采用的方法决定的。
请求示例
GET /chn/yxsz/index.htm HTTP/1 .1
Host:www.tsinghua.edu.cn
Connection:close
User-Agent:Mozilla/5.0
Accept-Language: cn
空行
HTTP 请求报文的一些方法
方法(操作)意义OPTION请求一些选项的信息GET请求读取由 URL所标志的信息HEAD请求读取由 URL所标志的信息的首部POST给服务器添加信息(例如, 注释)PUT在指明的 URL下存储一个文档DELETE删除指明的 URL所标志的资源TRACE用来进行环回测试的请求报文CONNECT用于代理服务器
HTTP状态码
- 1xx 表示通知信息的, 如请求收到了或正在进行处理。
- 2xx 表示成功, 如接受或知道了。
- 3xx 表示重定向, 表示要完成请求还必须采取进一步的行动。
- 4xx 表示客户的差错, 如请求中有错误的语法或不能完成。
- 5xx 表示服务器的差错, 如服务器失效无法完成请求。
通用网关接口 CGI(Common Gateway Interface)
- CGI是一种标准, 它定义了动态文档应如何创建, 输入数据应如何提供给应用程序, 以及输出结果应如何使用。
- 万维网服务器与 CGI 的通信遵循 CGI 标准。
- “通用” : CGI 标准所定义的规则对其他任何语言都是通用的。
- “网关” : CGI 程序的作用像网关。
- “接口” : 有一些已定义好的变量和调用等可供其他 CGI 程序使用。
CGI 程序
- CGI 程序的正式名字是 CGI 脚本(script)。
- “脚本” 指的是一个程序, 它被另一个程序(解释程序) 而不是计算机的处理机来解释或执行。
- 脚本运行起来要比一般的编译程序要慢,因为它的每一条指令先要被另一个程序来处理(这就要一些附加的指令) , 而不是直接被指令处理器来处理。
- CGI程序经常被放在 /cgi-bin目录下
6.5 邮件协议
- 发送邮件的协议 SMTP
- 读取邮件的协议 POP3 和 IMAP
- MIME(通用因特网邮件扩充) 在其邮件首部中说明了邮件的数据类型(如文本、声音、 图像、 视像等), 使用MIME可在邮件中同时传送多种类型的数据。
6.6 动态主机配置协议DHCP
动态主机配置协议 DHCP 提供了即插即用连网(plug-and-play networking)的机制。
这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
6.7 简单网络管理协议SNMP
网络管理包括对硬件、 软件和人力的使用、 综合与协调, 以便对网络资源进行监视、 测试、 配置、 分析、 评价和控制,这样就能以合理的价格满足网络的一些需求, 如实时运行性能, 服务质量等。
网络管理并不是指对网络进行行政上的管理。
网络管理模型中的主要构件
- 管理站也常称为网络运行中心 NOC (NetworkOperations Center), 是网络管理系统的核心。
- 管理程序在运行时就成为管理进程。
- 管理站(硬件) 或管理程序(软件) 都可称为管理者(manager)。
- Manager 不是指人而是指机器或软件。
- 网络管理员(administrator) 指的是人。 大型网络往往实行多级管理, 因而有多个管理者, 而一个管理者一般只管理本地网络的设备。
参考教材:《计算机网络》 谢希仁 (电子工业出版社)
参考视频教程:B站UP主:方方方已经存在了 (计算机网络合集)
版权归原作者 hupc 所有, 如有侵权,请联系我们删除。