第一章 计算机网络体系结构

1.1计算机网络概述

1.1.1计算机网络的概念

由若干节结点(node)和链接这些节点的链路(link)组成。结点可以是计算机、集线器、交换机、路由器等
计算机网络 主要功能:数据通信(信息共享)、资源共享
|路由器连接|
互连网(internet) 多个计算机网络通过路由器互相连接而成
计算机网络的概念 |世界上最大规模的互连网| 可使用任何通信协议
互联网(Internet) 或译为因特网。特指全世界最大的计算机网络,由各大ISP和国际机构组建
使用tcp/ip协议族作为通信规则
ISP(Internet Service Provider),互联网服务提供商
其他拓展 集线器、交换机用于链接统一网络内的不同节点;路由器用于连接不同的网络
家用路由器=路由器+交换机+其他功能

1.1.2计算机网络的组成与功能

主机,即端系统(end system)–如电脑手机物联网设备 内部安装网卡
硬件 通信设备–如集线器,交换机,路由器 |将主机数据发到网络上
通信链路–如网线,光纤,同轴电缆 |接受来自网络的数据
从组成部分看 软件 方便用户使用,实现资源共享。如email客户端,聊天软件。网盘软件 |
规定计算机网络中的通信规则 |
协议 由硬件、软件共同实现,如:网络适配器+软件 实现网络通信协议 <–|
工作方式:直接为用户服务(通信,资源共享)
边缘部分 主要有链接到互联网上的主机及其软件构成
计算机网络的组成 从工作方式看 工作方式:为边缘部分提供服务(连通性,交换服务)
核心部分 由大量网络和连接这些网络的路由器组成
计算机网络中运行应用程序,向用户提供可共享的硬件,软件和信息资源的部分
资源子网 主要由连接到互联网上的主机组成
从逻辑功能看 计算机网络中负责计算机间信息传输的部分。即把计算机和其他用户装置互联在一起的所有通信设备和介质的总称
通信子网 主要由 通信链路+通信设备+协议构成
注:主机内部实现信息传输的网络适配器/底层协议 属于通信子网的范畴
数据通信 实现计算机之间数据传输。是最基本最重要的功能
如:智能音箱 请求服务器处理
资源共享 硬件、软件、数据资源 如:应用商店
计算机网络的功能 如:分享视频
分布式处理 将某个复杂任务分配给网络中多台计算机处理 如:大矩阵计算,mapreduce
提高可靠性 网络中各台计算机互为替代机 如:某网盘服务器集群网络,数据冗余备份
负载均衡 网络中各台计算机共同分担繁重工作 如:某游戏用多台服务器均衡处理玩家请求
其他 满足社会需求,生活需求 如远程办公,远程教育,娱乐等

1.1.3三种交换方式

1.1.3.1三种交换方式的优缺点

电路交换基本原理

image-20240916103009214

电路交换的优点

通信前从主叫端到被叫端建立一条专用的物理通路,在通信的全部时间内,两个用户始终占用端到端的线路资源。数据直送,传输速率高(电路交换更适用于(低频次。大量的传输数据)

若应用于计算机网络有何缺点:

建立释放连接需要额外的时间开销

线路被通信双方独占,利用率低

线路分配的灵活性差

交换节点不支持“差错控制”(无法发现传输过程中发生的数据错误)

1
计算机之间的数据往往是“突发式”传输,即往往会高频次,少量地传输数据。

报文交换的过程

image-20240916104405988

报文交换的优点

通信前无需建立连接

数据以“报文”为单位被交换节点间“存储转发:,通信线路可以灵活分配

在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,线路利用率高

交换节点中支持“差错控制”(通过校验技术)

报文交换的缺点

报文不定长,不方便存储转发管理

长报文的存储转发时间开销大、缓存开销大

长报文容易出错,重传代价高

分组交换的原理:

image-20240916104851576

分组交换的优点:

通信前无需建立连接

数据以“分组”为单位被交换节点间“存储转发”,通信线路可以灵活分配

在通信时间内两个用户无需独占一条物理线路。相比于电路交换,线路利用率高

交换节点支持“差错控制”(通过校验技术)

相比于报文交换,分组交换改进了如下问题:

分组定长,方便存储转发管理

分组的存储转发时间开销小,缓存开销小

分组不易出错,重传代价低

分组交换的缺点

相比于报文交换,控制信息占比增加

想比于电路交换,依然存在存储转发时延

报文被拆分成多个分组,传输过程中可能出现失序,丢失等问题,增加处理的复杂

虚电路交换技术原理

image-20240916105651346

1.1.3.2三种交换方式的性能分

电路交换性能分析

image-20240916113317203

image-20240916113341828

报文交换性能分析

image-20240916113421619

image-20240916113436223

分组交换性能分析

image-20240916113522702

image-20240916113541364

三种交换方式的性能对比

image-20240916113618478

三种交换方式的表格对比

电路交换 报文交换 分组交换
完成传输所需时间 最少(排除建立/释放连接耗时) 最多 较少
存储转发时延 较高 较低
通信前是否需要建立连接?
缓存开销
是否支持差错控制? 不支持 支持 支持
报文数据有序到达?
是否需要额外的控制信息 是(控制信息占比最大)
线路分配灵活性 不灵活 灵活 非常灵活
线路利用率 非常高

1.1.4计算机网络的分类

image-20240916121413817

1.1.5计算机网络的性能指标

速率:又名:数据率,比特率,数据传输速率

带宽:表示某信道允许通过的最高数据率

吞吐量:描述某个网络(或节点、信道)的在单位时间内通过的实际数据量(实际的综合数据率,包括接受到的和发送出去的

上述的三种性能指标的单位为bit/s=b/s=bps

bps,kbps,Mbps,Tbps(10^3递增)

注意:1B=8b

带宽(另一种含义):表示某信道允许通过的信道频带范围,单位Hz

时延:指数据一端传送到另一端的所需时间

总时延=发送时延+传播时延+处理时延+排队时延

发送时延:也称传输时延。节点将分组的所有比特推向链路所需要的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需要的时间

发送时延=分组长度/发送速率

传播时延:电磁波在信道(传输介质)中传播一定的距离所花的时间,即一个比特从链路的一端传送到另一端所需的时间

传输时延=信道长度/电磁波在信道上的传播速率

1
2
注意:
区分传输时延和传播时延。传输时延是路由器将分组推出所需的时间,是分组长度和链路传输速率的函数。传播时延是一个比特从一台路由器传播至另一个路由器所需的时间,是两台路由器之间距离的函数,而与分组长度或链路传播速率无关

处理时延:数据在交换节点为存储转发而进行的一些必要处理所需的时间。例如,分析分组的首部,从分组中提取数据、差错检验或查找合适的路由等。

排队时延:分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发。这就产生了排队时延。

时延带宽积:单向传播时延*带宽

**往返时延RTT:**表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。

信道利用率:某个信道有百分之多少的时间是有数据通过的

利用率低会浪费带宽资源,利用率太高可能导致网络拥塞

1.1.6习题

二.综合应用题(纯文字部分)

03.

在两台计算机之间传输一个文件有两种可行的确认策略。第一种策略把文件截成分组,接收方逐个确认分组,但就整体而言,文件没有得到确认。第二种策略不确认单个分组,但当文件全部收到后,对整个文件予以确认。讨论这两种方式的优缺点。

若网络容易丢失分组,则对每个分组逐一进行确认较好,此时仅重传丢失的分组。另一方面若网络高度可靠,则在不发生差错的情况下,仅在整个文件传送的结尾发送一次确认,以减少确认次数,进而节省带宽。不过,即使只有单个分组丢失,也要重传整个文件。

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

1.2.1 计算机网络分层结构

  • 网络的体系结构

    定义:计算机网络各层及其协议的集合称为网络的体系结构。

    体系结构”精确定义了网络的层次划分、各层功能、各层协议等,不涉及具体实现。

    三种常见的网络体系结构

    OSI参考模型,7层(法律标准)

    TCP/IP模型,4层(事实标准)

    五层模型,5层(教学用标准)

  • 实体、协议、接口、服务

    实体:第n层中的活动元素(软件+硬件)称为第n层实体

    协议:是控制对等实体之间进行通信的规则的集合,是水平的

    服务:是指下层为紧邻的上层提供的功能调用,是垂直的 服务的分类再试不讨论

    接口:又称为服务访问点(SAP),上一层实体通过“接口”请求下一层实体的服务

  • PDU、SDU、PCI

    PDU(协议控制单元),SDU(服务数据单元),PCI(协议控制信息)

    n-SDU+n-PCI=n-PDU=(n-1)-SDU

    翻译成人话就是:当层的服务数据单元,加上当层的协议控制信息就是当层的协议控制单元,而当层的协议控制单元就代表着下一层的服务数据单元,等待加入下一层的协议控制信息。

  • 三要素

    语法,语义,同步。

    语法:数据与控制信息的格式

    语义:即需要发出何种控制信息、完成何种动作及做出何种应答(成功或失败)

    同步(或时序):执行各种操作的条件、时序关系等。

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

1.2.2.1OSI参考模型

国际标准化组织(ISO)提出的网络体系结构模型称为开放系统互连参考模型(OSI/RM),通常简称为OSI参考模型。共有七层对应的结构表格如下

口诀 OSI参考模型 任务 功能 各层传输单位 协议
#7 应 实现特定网络应用 略(因为功能的种类太多了) 报文 FTP,HTTP,DNS,SMTP
使 #6 表 解决不同主机上信息表示不一致的问题 数据格式转换
#5 话层 管理进程间会话 会话管理
#4传 实现端到端(进程到进程)通信 复用和分用、差错控制、流量控制、连接管理、可靠传输管理、拥塞控制 报文段 TCP,UDP
#3 络层 把分组从源节点转发到目的节点 路由选择、分组转发、拥塞控制、网际互联、差错控制、流量控制、连接管理、可靠传输管理 数据报(分组) IP,ICMP,RIP,OSPF,BGP,IGMP
#2 数据路层 确保相邻节点之间的链路逻辑上无差错 差错控制、流量控制、寻址、成帧 PPP,ARP,RARP,MTU
#1理层 实现相邻节点之间的比特的传输 需定义电路接口参数、信号的含义、电气特性等 比特 IEEE 802.1A,IEEE 802.2

1.2.2.2TCP/IP模型

口诀 TCP/IP模型 任务 功能
应用层 实现特定网络应用
传输层 实现端到端(进程到进程)通信 复用和分用、差错控制、流量控制、连接管理。可靠传输管理
网络层 把分组从源节点转发到目的节点 路由选择、分组转发、拥塞控制、网际互联。不用考虑(差错控制、流量控制、连接管理、可靠传输管理)
网络接口层 实现相邻节点之间的数据传输(为网络层传输“分组”) 无具体规定

OSI参考模型TCP/IP模型在应用层与网络接口层的区别

image-20240917122155005

OSI参考模型TCP/IP模型在传输层与网络层的区别

image-20240917122405985

第二章 物理层

2.1 通信基础

2.1.1通信基础的基本概念

信源:信号来源,数据的发送方

信宿:信号的“归宿”,数据的接收方

信号:是数据的载体

数字信号:值是离散的

模拟信号:值是连续的

信道:即信号的通道,分别对应模拟信道和数字信道

码元:一个“信号周期”内可能出现几种信号?每一类信号就是一个码元。“码元宽度”:指的是一个“信号周期”的长度

若一个周期可能出现K种信号,就是K进制码元—-一码元携带log2(K)n=bit

速率:

波特率:每秒传输几个码元。单位:码元/秒,或波特(Baud)

比特率:每秒传输几个比特。单位:bit/s,或b/s,bps

内在联系:一个码元携带几个比特

2.1.2信道的极限容量

带宽:信道允许通过的信号频带范围。单位Hz

噪声: 噪声会对信号的传播产生干扰,会影响信道的数据传输效果

奈奎斯特定理:

无噪声情况下的信道的极限波特率=2W(单位:波特,即码元/秒)

无噪声情况下信道的极限比特率=
$$
2Wlog_2(K)(单位:bps)
$$
若一个码元有K种状态

香农定理:

信噪比S/N:

分贝记法
$$
10lg(S/N)(单位:dB)
$$
单位dB

无单位记法
$$
S/N=信号功率/噪声功率
$$
有噪声情况下的信道的极限比特率=
$$
Wlog_2(1+S/N)(单位:b/s)
$$
其中采用无单位记法

2.1.3编码与调制

概念:

编码:二进制数据—>数字信号,逆过程为“解码”

调制:二进制数据—>模拟信号,逆过程为“解调”

2.1.3.1编码技术

不归零编码(NRZ):低0高1中不变。

image-20240918102708868

**归零编码(RZ):**低0高1,中归零。

image-20240918102843971

image-20240918102902470

反向非归零编码(NRZI):跳0不跳1看起点,中不变

image-20240918103429195

image-20240918103503263

曼彻斯特编码:跳0反跳1看中间,中必变

①上0下1(考研常用标准)②下0上1

image-20240918103759010

image-20240918103752339

差分曼彻斯特编码:跳0不跳1看起点,中必变

image-20240918104000451

image-20240918104021251

各种编码的特点:

注:以太网默认使用曼彻斯特编码

优缺点 不归零(NRZ) 归零(NR) 反向非归零(NRZI) 曼彻斯特 差分曼彻斯特
自同步能力(时钟) 若能增加冗余位可实现自同步
浪费带宽 浪费 不太浪费 浪费 浪费
抗干扰能力

2.1.3.2调制技术

  • 调幅(AM)幅移键控(ASK):若信号波有K种振幅,则1码元=log2K bit
  • 调频(FM)频移键控(FSK): 若信号波有K种频率,则1码元=log2K bit
  • 调相(PM)相移键控(PSK):若信号波有K种相位,则1码元=log2K bit

image-20240918104831646

正交幅度调制(QAM)

AMPM结合,形成叠加信号,若有m种振幅,n种相位,则1码元=log2mn bit

补充:QAM16的含义是采用QAM调制技术,有16种码元。

2.2传输介质

双绞线:两根导线相互绞合而成。有屏蔽层称为屏蔽双绞线(STP),没有屏蔽层称为非屏蔽双绞线(UTP)

同轴电缆:内导体(用于传输信号)+外导体屏蔽层(用于抗电磁干扰)

光纤:纤芯(高折射率)+包层(低折射率)。利用光的全反射特性,在纤芯内传输光脉冲信号

分类:

单模光纤:只有一条光线在一根光纤中传输,适合长距离传输,信号传输损耗小。

多模光纤:多条光线在一根光纤中传输,适合近距离传输,远距离传输光信号容易失真

以上的传输介质都是导向性介质,从上至下,抗干扰能力依次增强,信号传输损耗依次降低

无线传输介质:

本质都是电磁波,波长不同而已(长波->短波),波长与信号频率成反比

短波信号指向性强,数据传输能力强;长波信号绕射性好、指向性弱

注:卫星通信属于短波(或微波)通信

物理层接口的特性

机械特性:指明接口所用的接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等

电气特性:指明在接口电缆的各条线上出现的电压的范围。传输速率。距离限制等

功能特性:指明某条线上出现的某一电平的电压意义

过程特性(规程特性)——指明对于不同功能的各种可能事件的出现顺序。

2.3物理层设备

中继器:

中继器只有两个端口。通过一个端口接收信号,将失真信号整形再生,并转发至另一端口(会产生一些时延)

仅支持半双工通信(两端连接的节点不可同时发送数据,会导致“冲突”

中继器两个端口对应两个“网段”

集线器(Hub)

本质上是多端口中继器。集线器将其中一个端口接收到的信号整形再生后,转发到所有其他端口。

各端口连接的节点不可同时发送数据,会导致“冲突”

集线器的N个端口对应N个“网段”,各网段属于同一个“冲突域”(同一冲突域的主机同时发送信号会导致“冲突”,因此需要“信道争用”。

一些特性

集线器、中继器不能无限串联

集线器连接的网络,物理上是星型拓扑,逻辑上是总线型拓扑

集线器连接的各网段“共享带宽”

集线器可以连接不同的传输介质,因此两个网段的物理层接口特性可以不同(这就意味着集线器连接的网段,“物理层协议”可以不同)

集线器如果连接了速率不同的网段,会导致所有网段“速率向下兼容”

第三章 数据链路层

3.1数据链路层的功能

封装成帧(组帧)

帧定界:如何让接收方能够确定帧的界限

透明传输:接收方链路层要能从收到的帧内恢复原始的SDU,让网络层“感受不到”将分组封装成帧的过程。

差错控制:发现并解决一个帧内部的“位错”

解决方案一:接收方发现比特错后丢弃帧,发送方重传帧(仅需采用 检错编码)

解决方法二:由接收方发现并纠正比特错误(需采用纠错编码)

可靠传输:发现并解决“帧错

帧丢失:eg:发送帧①②③④,收到帧①②④

帧重复:eg:发送帧①②③④,收到帧①②③③④

帧失序:eg:发送帧①②③④,收到帧①③②④

流量控制:控制发送方发送帧的速度别太快,让接收方来得及“接受”

介质访问控制:

广播信道”需要实现此功能。广播信道在逻辑上是总线型拓扑,多个节点需争抢传输介质的使用权

点对点信道”通常不需要实现此功能。点对点信道通常意味着两个节点之间有专属的传输介质,不用抢。

3.2组帧(封装成帧)

主要问题:

帧定界:如何让接收方能够确定帧的界限

透明传输:接收方要能够去除“帧定界”的附加信息,把帧“恢复原貌”

字符计数法:

在每个帧开头,用一个定长的计数字段表示帧长

注意帧长=计数字段长度+帧的数据部分长度

最大缺点:任何一个计数字段出错,都会导致后续所有帧无法定界

字节填充法:

特殊字符:标记帧开头的字符SOH;标志帧结尾的字符EOT

转义字符:ESC

如果帧的数据部分包含“特殊字符”,则发送方需要在这些“特殊字符”前填充“转义字符ESC”(接收方要做逆处理

零比特传输法:

用特殊的比特串01111110标记帧开始、帧结尾

发送方需要对帧的数据部分进行处理,每当遇到了连续5个1,就填充一个0

接收方需要对帧的数据部分进行逆处理,每当遇到连续5个1,就删掉后面的0

HDLC协议、PPP协议使用此方法

违规编码法:

使用“违规信号”,表示帧的开头、结尾(这种方法需要物理层配合)

如:采用曼彻斯特编码时,使用“中间不跳变”作为“违规信号”,标记帧的开头、结尾。

3.3差错控制

3.3.1检错编码

3.3.1.1奇偶校验

概念:

信息位(有效数据):指的是帧的“数据部分”

校验位(冗余位):即为了给帧的“数据部分”检错/纠错而附加的一些冗余比特。

校验原理

在信息位的首部或尾部添加一个校验位

奇校验:整个校验码(信息位和校验位)中的“1”的个数为奇数

偶校验:整个校验码(信息位和校验位)中的“1”的个数为偶数

奇偶校验码仅能检测出奇数位错误,无法检测出偶数位错误,无纠错能力。

异或运算(模2加)

两个比特进行异或运算,当二者“相异”时计算结果为1

将“偶校验”的信息位、校验位全部异或,若结果为0说明没有错误

3.3.1.1循环冗余校验码

构造:

由生成多项式确定“除数”。若生成多项式中x的最高次为R,则“除数”有R+1位

K个信息位+R个0,作为“被除数”

被除数、除数进行“模二除”,的R位余数

K个信息位+R位余数=CRC码

校验:

收到K+R位数据,与生成多项式模二除,计算R位余数

余数为0,说明无错误

余数非0,代表出错

检错、纠错能力

1.可检测出所有奇数个错误

2.可检测出所有双比特的错误

3.可检测出所有小于等于校验位长度的连续错误

4.若选择合适的生成多项式,且2^R>=K+R+1,则可纠正单比特错误

3.3.2纠错编码

海明码

基本思想:分组偶校验,多个校验位可反映出错位置

求解步骤:

确定校验位个数(k个校验位,n个信息位)
$$
2^k>=n+k+1
$$
确定校验位分布:

P1,P2,P3..分别在1,2,4,8,16…

空出来其他位置依次填入信息位

求校验位:

将信息位的位置序号用k位二进制数表示出来

校验位Pi与位置序号第i位为1的信息位归为同一组,进行偶校验

纠错:

对P1,P2,P3..所属个分组进行异或(相当于分组偶校验)求得S1,S2,S3

S3 S2 S1=000 说明无错误

S3 S2 S1≠000,则其值反映出错位置

补充

海明码有1位纠错,2位检错能力

为了区分1位错和2位错,还需添加“全校验位”对整体进行偶校验

注意:有的题目位置编号可能是从小到大的,但处理方法雷同。

3.4流量控制与可靠信息传输

3.4.1流量控制与滑动窗口机制

滑动窗口机制:

发送窗口WT=1,接收窗口WR=1;

发送窗口WT>1,接收窗口WR=1;

发送窗口WT>1,接收窗口WR>1;

发送窗口内的帧允许被发送。接受窗口内的帧允许被接受

确认机制

确认帧:ACK_i:若接收方收到i号帧,且没有检测出差错,需要给发送方返回确认帧ACK_i

否认帧:NAK_i:若接收方收到i号帧,但检测出i号帧有差错,需要丢弃该帧,并给发送方返回否认帧NAK_i

重传机制

超时重传:若发送方超时未收到ACK_i,则重传i号帧

请求重传:若发送方收到NAK_i,则重传i号帧

帧编号:

为了支持以上机制正确运行,至少需要n bit给帧“编号”

要求
$$
W_T+W_R<=2^n
$$

3.4.2停止等待协议(S-W)

滑动窗口机制:发送窗口WT=1,接受窗口WR=1;

确认机制:确认帧:ACK_i:若接受方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧ACK_i

重传机制:超时重传,若发送方超时未收到ACK_i,则重传i号帧

帧编号:仅需1 bit给帧“编号”

要求:
$$
W_T+W_R<=2^n
$$
回顾:

正常窗口移动

image-20240919165327357

发送方发出数据帧Data0,接收方接受并验证正确,返回确认帧ACK0,并给出信息,下一个要传送的这=帧是Data1

image-20240919165445809

接收方接收到对应的数据帧之后就会将接收窗口进行右移,右移到帧序号为1的帧上,

image-20240919165623351

发送方收到对应的确认帧之后就会将发送窗口向右移动继续下一轮次的发送

异常情况1:

image-20240919170026919

在发送方到接受方的信道中存在网络噪声等因素,数据帧因网络噪声等原因丢失,接受方一直收不到下一个帧。

解决机制:超时重传,发出一个帧后,发送方需要启动“计时器”,若计时器超时,就自动重传。

image-20240919170526283

重传之后,在这次的计时器超时之前,发送方就很有可能会收到确认帧,之后的进程就和以前一样了。

异常情况2:

image-20240919170701065

确认帧在传送过程中丢失

image-20240919170953936

由于接收方已经接收到了对应的信息,所以接收窗口就会向右移动1位。

image-20240919171046355

这会导致发送方在超时重传时发送到了当前滑动窗口的前一个帧的接收方位置上,这样接收方就收到了一个重复帧。帧序号落在接收窗口外:接收方完成两个动作①丢弃重复帧②返回重复帧的ACK。

image-20240919171729690

image-20240919171746582

发送方在收到了接受方发来的确认信息,发送窗口就可以继续向右移动

思考:在刚才的这个场景中,如果没有“帧序号”会发生什么?

答:接收方无法判别“重复帧”!

由于接收窗口和发送窗口的距离不超过1,因此用1bit表示帧序号足矣。

异常情况3

image-20240919172247741

接收方接收到错误的数据帧,接收方会将此帧丢弃,且不返回ACK、

image-20240919172350699

发送方超时未收到ACK自动对于ACK进行重传,这次的数据帧没有检测出差错,就可以继续进行以后的步骤。

3.4.3后退N帧协议(GBN)

滑动窗口机制:发送窗口WT>1,接收窗口WR=1

确认机制:确认帧:ACK_i,若接收方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧ACK_i

重传机制:超时重传,若发送方超时未收到ACK_i,则重传i号帧。

帧编号:

为了支持以上机制正确运行,至少需要用n bit给帧“编号”

要求
$$
W_T+W_R<=2^n
$$
GBN的特殊规则:

关于确认帧:接收方可以“累计确认”。即连续收到到多个数据帧时,可以仅返回最后一个帧的ACK(ACK_i代表接收方已收到i号帧及其之前的所有帧)

关于超时重传:若发送方超时未收到ACK_i,则重传i号帧,及其之后的所有帧

要点:

收到一个“非法帧”时,接收方会将此帧丢弃,并返回目前已接收的最后一个正确帧的ACK_i,以提醒发送方“后退”会i+1号重新发送

注:“非法帧”包括落在接收窗口之外的帧、检测出差错的帧

缺点:如果接收方接受帧的速度很慢,或在信道误码率很高的情况下,可能会导致发送方的发送进度经常需要“后退”,传输效率低下。

正常情况

image-20240919211300037

三个发送窗口都发送数据,给接收方

image-20240919211349714

当接收方接受了一个帧之后,就可以移动接收窗口接受下一个帧

image-20240919212756853

以此类推,当整个发送窗口的帧都已经被接受了,最后一个帧的接受信息会被接收方发送给发送方,ACK_i表示接收方已经收到i号帧及其之前的所有帧

image-20240919213004293

image-20240919213034736

之后向后移动完成对应的下一个发送窗口的帧的发送与接受

**异常情况1 **数据帧丢失

image-20240919213249647

image-20240919213312452

当收到接受窗口之外的帧时,返回目前以正确接受的最后一个帧的ACK,完成对应的前序工作的整理。一号数据帧在接受窗口之外,直接丢弃

重新调整数据窗口,若i号帧超时,需要重传i号帧及其后续所有帧

为什么叫“后退”N帧协议,原本已经发送了1号帧,现在却后退回零号帧重新传送。这样即可实现“流量控制”

之后完成重传即可。

异常情况2 确认帧丢失

image-20240919213843058

image-20240919213935656

这样第一个传送帧就会超时,之后所有的后续帧都要重传,但会被丢弃(因为已经传送过了)

image-20240919214037617

探讨:如果不满足WT+WR<=2^n会出现什么问题

image-20240919214146309

超时后窗口的帧会发现不能确定这是新的帧,还是重传的旧帧,数据帧会被错误的接受。

3.4.4选择重传协议(SR)

滑动窗口机制:发送窗口WT>1,接收窗口E=WR>1

确认机制:

确认帧:ACK_i:若接收方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧ACK_i

否认帧:NAK_i:若接收方收到i号帧,但检测出i号帧由”差错”,需要丢弃该帧,并给发送方返回否认帧NAK_i

重传机制

超时重传:若发送方超时未收到ACK_i,则重传i号帧

请求重传:若发送方收到NAK_i,则重传i号帧

帧编号

为了支持以上机制正确运行,至少需要用n bit给帧“编号”

要求
$$
W_T+W_R<=2^n;

W_R<=W_T,即接收窗口不能大于发送窗口

若接收窗口大于发送窗口,
则接收窗口永远不可能填满,接收窗口多出的空间就毫无意义。
$$

要点

若接受方检测出帧差错,则丢弃帧,并返回NAK_i,主动请求重传

接收方不能“累计确认”,必须“一帧一确认”

正常情况:

image-20240919223313596

每个发送方都向接收方的帧窗口发送帧

每收到一个帧,接收窗口就可以向右平移一位。

发送方每收到一个应答信息就可以平移一次发送窗口。

最后完成平移,依次进行。

异常情况1:数据帧丢失

image-20240919223746395

其中的一个数据帧因通信故障丢失。

image-20240919223808061

由于出现了一个数据帧的丢失,所以对应的发送窗口和接收窗口的移动都会受到限制只能各移动一位

image-20240919224041546

重传

image-20240919224056506

重应答

image-20240919224113876

完成最终的平移,以此类推。

异常情况2:数据帧因差错而被丢弃

image-20240919224329435

检测出现错误,被接收方丢弃

返回5号“否认帧”

image-20240919224552444

触发重传,0号是正常传递

image-20240919224630899

之后一次完成发送窗口以及接收窗口的平移。

异常情况3:确认帧丢失

与一般的确认帧丢失差不多。也会限制对应的发送帧的平移

探讨:如果不满足WT+WR<=2^n会有什么问题?

假设所有的ACK帧都丢失了。

image-20240919225430320

会有的重复帧被判定为正常帧,被接收方接收。

3.4.5信道利用率的分析

S-W,停止等待协议的信道利用率
$$
U=T_D/(T_D+RTT+TA)
$$
**TD:**一个数据帧的传输时延(发送时延)

TA:一个ACK确认帧的传输时延(发送时延)

RTT:往返时延,即两倍的单向传播时延

注意:很多题目会忽略确认帧的传输时延TA

GBN/SR,剩余两项协议的信道利用率
$$
U=N*T_D/(T_D+RTT+TA)
$$
N表示发送窗口大小

注意:信道利用率不能超过1

常结合“帧编号”考察。

用n bit给帧“编号”,要求WT+WR<=2^n

GBN协议的WR=1,SR协议WR>1.因此用同样多的比特数给帧编号,GBN的发送窗口WT更大,因此GBN的信道利用率也会很高。

术语补充

滑动窗口协议:GBN或SR协议

ARQ协议:指的是S-W,GBN或SR协议

连续ARQ协议:GBN或SR协议

3.5介质访问控制

3.5.1信道划分介质访问控制

时分复用(TDM)

将时间片(时间片大小固定),各节点依次分配一个时间片

统计时分复用(STDM)

在时分复用 的基础上,按需分配时间片

频分复用(FDM)

将信道的总频带拆分为几条互不相交的子频带,为每一个发送节点分配一条子频带

波分复用(WDM)

本质上是光的频分复用(光的波长与频率有关)

码分复用(CDM)(***)

①给各节点分配专属“码片序列”

“码片序列”包含m个码片(信号值),可看做“m维向量”(分量通常取1或-1)

要求:各节点的“m维向量”必须相互正交

Tips:相互通信的各节点知道彼此的“码片序列”

②发送方如何发送数据

节点发出m个信号值与“码片序列”相同,表示比特1

节点发出m个信号值与“码片序列”不同,表示比特0

③信号在传输过程中“叠加”

当多个发送方同时发送数据使,信号值会叠加(注:本质是多个m维向量的加法)

④接收方如何接收数据

接收方接收到的是“叠加”信号,需要从中“分离”出各发送方的数据

叠加信号与发送方的码片序列做“规格化内积”

结果为1,表示比特1

结果为-1,表示比特0

3.5.2随机访问介质访问控制

ALOHA协议

纯ALOHA

节点一旦准备好数据帧,就立即发送到信道上

若超时未收到ACK,随机等一段时间后重传

时隙ALOHA

“时隙”大小固定=传输一个最长帧所需时间

各节点只能在时隙内传输帧,相比于纯ALOHA,降低了冲突的概率

CSMA协议

1-坚持CSMA

发送前先监听信道,若信道空闲立即发送数据帧(发送概率为1)

“坚持”意味着如果信道不空闲,节点会坚持监听信道

非坚持CSMA

可记忆为“1-非坚持”,即发送前先监听信道,若信道空闲立即发送数据帧(发送概率为1)

“非坚持”意味着如果信道不空闲,节点不会坚持监听信道,而是随机推迟一段时间后再尝试监听

p-坚持CSMA

发送前先监听信道,若信道空闲则以概率p立即发送帧,以概率1-p推迟一段时间再发送

“坚持”同上

CSMA/CD协议

协议要点:

先听后发,边听边发,冲突停发,随机重发

如何随机重发?

截断二进制指数退避算法:

随机等待一段时间=r倍争用期,其中r是随机数

①如果k<=10,在[0,(2^k-1)]区间随机取一个整数r

②如果k>10,在[0,(2^10-1)]区间随机取一个整数r

特别注意:

第10次冲突,是“随机重发”的分水岭

第16次重发,直接躺平,放弃传帧,报告上级(网络层)

争用期=2*最大单向传播时延(考虑距离最远的两个节点)

争用期内未发生冲突,就不可能再次发生冲突

CSMA/CD没有ACK机制,若发送过程中未检测到冲突,就认为帧发送成功

最短帧长=2* 最大单向传播时延 *信道带宽

若收到的帧小于最短帧长,视为无效帧

原因:可能会导致所有的帧都已经发出了,但是在这之后的一段时间,一个冲突信息才感到,这样会被认为没有发生冲突,就算是当成冲突,也没有剩余的帧长可以用来收回了。

最长帧长:规定最长帧长可防止某些节点一直占用信道。

以太网规定:最短帧长=64B;最长帧长=1518B

CSMA/CA协议

协议要点:

发送方:先听后发,忙则退避

若信道空闲,间隔DIFS(很长的时间)后,再发送帧(一口气发完,发送过程中不用检测冲突)

若信道不空闲,则进行“随机退避”

“随机退避”原理

①用二进制指数退避算法确定一段随机退避时间(倒计时)

②发送方会保持监听信道,只有信道空闲时才“扣除倒计时”,倒计时结束后立即发送帧(此时信道“听起来”一定空闲)

接收方:停止等待协议

每收到一个正确数据都返回ACK:若发送方超时未收到ACK,则进行“随机退避”

信道预约机制(可选功能)

①发送方广播RTS控制帧(先听后发,忙则退避)

②AP广播CTS控制帧(需在RTS、CTS中指明预约时长)

③其他无关节点收到CTS后自觉“禁言”一段时间(即:虚拟载波监听机制);发送方收到CTS后,就可以发送数据帧

④AP收到数据帧后,进行CRC校验,若无差错就返回ACK帧

帧间间隔IFS

**DIFS,**最长的IFS

每次“帧事务”开始之前需要等待的时间

**SIFS,**最短的IFS

收到一个帧后需要预留的一段处理时间

**PIFS,**中等长度的IFS

考研不考虑PIFS

image-20240922202058917

3.5.3轮询访问:令牌传递协议

协议要点:

令牌帧

需知明当前获得令牌的节点编号

只有获得令牌(Token)的节点才能往信道上发送数据帧

如果获得令牌的节点没有数据要发送,就将令牌传递下一个节点

数据帧(发送数据时令牌帧转换成数据帧)

需指明数据帧的源地址和目的地址、是否已被接收、获得令牌的节点编号

数据帧从源节点发出,“传递一圈”后回到源节点

数据帧“传递一圈”过程中,会为目的节点复制一份数据,并将数据帧标记为“已接收”

数据帧回到源节点后,如果发现异常状况,就尝试重发;若无异常,就将令牌传递下一个节点

其他补充:

无论是令牌帧还是数据帧,都只能单向传递

获得令牌的节点,每次只能发一帧,发完就释放令牌

需要用专门的网络设备(MAU)实现集中控制

令牌传递协议很适用于负载高的网络(不会发生冲突,效率高)(重发少))

3.6局域网

3.6.0局域网与IEEE

思维导图

image-20240930204125634

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

思维导图

image-20240930204432070

3.6.2以太网与IEEE 802.3

3.6.2.1物理层标准

速度+Base+传输介质信息

如:10Base5、10Base2–同轴电缆

如:10BaseT、100BaseTX、2.5GBaseT–双绞线

如:10BaseF、100BaseFX、40GBaseFR–光纤(很少考)

key:如果一个网段工作在半双工模式下,才需要使用CSMA/CD协议实现介质访问控制

做题技巧

同轴电缆网段

仅支持半双工

双绞线网段

如果连接集线器,就只能工作在半双工模式下

如果连接交换机,就默认工作在全双工模式下

光纤网段(很少考)

仅支持全双工

以太网的物理层使用曼彻斯特编码(跳0反跳1看中间,中必变)

3.6.2.2MAC层标准

以太网MAC帧格式

V2标准(默认) 662N4,收发协数验

802.3标准 662N4,收发长数验

N是46-1500

一个MAC地址是6B,48bit。目的地址全1表示广播帧

交换机会将受到的广播帧转发至其他端口

路由器不会转发广播帧

物理层会在MAC帧前添加8B前导码(7同步、1定界)

3.6.3VLAN虚拟局域网

大型局域网需要面临的问题:

整个局域网是一个很大的广播域,容易出现广播风暴。

不利于信息安全。

VLAN的特征

可将一个大型局域网分割成若干个较小的VLAN每个VLAN是一个广播域

需要使用支持VLAN功能的以太网交换机来实现

每个VLAN对应一个VID

三种划分VLAN的方式

基于接口

VID<–>接口号

基于MAC地址

VID<–>MAC地址

基于IP地址

VID<–>IP地址

这种方式可以让VLAN范围跨越路由器,让多个局域网的主机组成一个VLAN(需要网络层功能支持)

802.1Q帧

主机与交换机之间,传输标准以太网帧(6 6 2 N 4,收发协数验)

交换机与交换机之间(干线链路),传输802.1Q帧(6 6 4 2 N 4,收发V协数验)

4字节VLAN标签=16+4+12bit=固定+随便+VIDV的构成

3.8数据链路层设备

3.8.1以太网交换机

特点

交换机=多端口网桥(408大纲已经删除网桥)

交换机工作在数据链路层,可以根据目的MAC地址转发帧

自学习功能(支持即插即用)

交换表

初始为空,记录[MAC地址,端口号]的对应关系

收到一个帧,就将“发送方”的[MAC地址,端口号]更新到交换表

①如果不知道“接收方”在哪里,就把帧广播到除入口外的其他端口

②如果知道“接收方”在哪里,就把帧精准转发至某个端口

交换表中每个表项都有“有效时间”,过期表项自动作废,以防某些节点拔线跑路

两种交换方式

直通交换

只检查帧的目的MAC地址,以决定帧的转发端口

优点:转发时延低

缺点:不适用于需要速度匹配、协议转换或差错检测的线路

存储转发转换

先把帧完整地接受到交换机内部的高速缓存中,进行差错检测等必要处理,再根据交换表决定从哪个端口转发出去

优点:适用于需要速率匹配、协议转换或差错检测的线路

缺点:转发时延高

第四章 网络层

4.1网络层的功能

image-20241101205456840

4.2 IPv4

4.2.1 IPv4分组的格式

image-20241107205838548

  1. 版本。占4位。指的是IP的版本,IPv4数据包中的该字段值是4
  2. 首部长度。占4位。以4B为单位,最大可表示的首部长度为60B(15*4B)。最常用的首部长度是20B(5乘以4B),该字段值是5,此时不使用任何可选字段。
  3. 总长度。占16位。指的是首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535B。以太网帧的最大传送单元(MTU)为1500B,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的MTU值
  4. 标识。占16位。他是一个计数器,每产生一个数据报就加1,并赋值给标识字段
  5. 标志。占3位。标志字段的最低位为MF,MF=1表示后面还有分片,MF=0表示最后一个分片、标志字段中间的一位是DF,只有当DF=0时才允许分片。
  6. 片偏移。占13位。他指出较长的数据报在分片后,某片在原数据报中的相对位置,片偏移以8B为偏移单位。除最后一个分片外,每个分片的长度一定是8B的整数倍
  7. 生存时间。占8位。数据报在网络中可通过的路由器数的最大值,标识数据报在网络中的寿命,以确保数据报不会永远在网络中循环。路由器在转发数据报前,现将TTL减一。若TTL被减为0,则该数据报必须丢弃。
  8. 协议。占8位。指出此数据报携带的数据使用何种协议,即数据报的数据部分应上交给哪个协议进行处理,如TCP,UDP等。其中值为6表示TCP,值为17表示UDP
  9. 首部检验和。占16位。它只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算首部检验和(有些字段,如生存时间。。。。)不检验数据部分可以减少计算的工作量、
  10. 源地址字段。占4B,标识发送方的IP地址。
  11. 目标地址字段。占4B,标识接收方的IP地址。

易错:除了最后一个分片外,其他每个分片的“数据部分”必须是8B的整数倍

4.2.2 IP地址

image-20241107212143880

image-20241107212242485

image-20241107212354347

一些特殊的用途的IP地址

image-20241107212456289

4.2.3子网划分,子网掩码

image-20241107212823844

image-20241107212906369

image-20241107213033881

image-20241107213333299

4.3IPv6

image-20241107213543824

image-20241107213521559

image-20241107213502015

image-20241107213620097

位数多,彻底解决了IP地址不够用的问题IPv6

image-20241107213709212

image-20241107213742029

4.4路由算法及路由协议

image-20241107214127781

image-20241107214237249

image-20241107214350839

RIP协议及距离向量算法

image-20241107214621410

image-20241107214750666

image-20241107214910886

image-20241107215411724

OSPF协议及链路状态算法

image-20241107215540852

image-20241107215616889

image-20241107215714329

BGP协议

image-20241107215814268

image-20241107215844525

image-20241107215913791

image-20241107220022511

image-20241107220103983

4.5IP组播

第五章 传输层

5.1传输层提供的服务

image-20241107220440767

image-20241107220621755

image-20241107220858742

image-20241107221031989

5.2 UDP协议

image-20241107221213475

image-20241107221309028

image-20241107221419740

UDP差错检验

image-20241107221602144

image-20241107221743456

5.3 TCP协议

5.3.1TCP结构

image-20241107221925513

image-20241107221939990

image-20241107222005762

image-20241107222445180

原理与UDP雷同,计算检验和之前也需要添加12B 伪首部(只需将UDP 伪首部的协议字段的 17 改成6,UDP 长度字段改成 TCP 长度)

5.3.2连接管理

image-20241107222814427

image-20241107222835791

image-20241107222912482

image-20241107222928138

image-20241107223001982

image-20241107223056761

image-20241107223115096

5.3.3可靠传输,流量控制

image-20241107223236033

image-20241107223320213

image-20241107223357503

image-20241107223503577

image-20241107223559678

image-20241107223619505

image-20241107223714965

5.3.4拥塞控制

image-20241107224047888

image-20241107224135147

第六章 应用层

6.1网络应用模型

C/S模型,比如说百度网盘

image-20241107224619534

P2P模型,比如说BT种子

image-20241107224723432

6.2DNS解析

image-20241107224913614

image-20241107224941151

6.3FTP

image-20241107225038206

6.4电子邮件

image-20241107225129513

6.5万维网和HTTP

image-20241107225231100

image-20241107225258837

image-20241107225311819