计算机网络笔记
最后更新时间:
[TOC]
写在前面
期末考试最终成绩 94,总评 90,说明这个笔记归纳的还算蛮成功的。一些诸如 ICMP、IGMP、IP 组播之类的知识点因为考试非重点并未记录上来,以后如果遇见再做补充
Ch1 绪论
基本概念 什么是数据通信 结构/ 传输模式 / 物理结构 点到点/多点 / 拓扑结构 / 网络规模分类 覆盖范围,每种网络的大概协议标准类型 / 协议和标准 三要素
基本概念
数据通信:在两台设备之间通过诸如线缆的某种形式的传输介质进行的数据交换
效率四要素:传递性、准确性、及时性和抖动性
五个组件——通信五元组
报文 发送方 接收方 传输介质 协议
功能
- 数据通信
- 资源共享:包括硬件 软件 数据
数据流传输模式:
单工 半双工 全双工
物理结构之连接类型
- 点对点连接:提供两台设备之间的专用的链路。链路全部的能力均为两台设备之间的传输所共用。
- 多点连接:两台以上设备共享单一链路。分空间上共享与时间上共享
分类
按分布范围分
从大到小 WAN MAN LAN PAN每种类型网络覆盖范围,里面大概有哪些网络
按拓扑结构 这块还需要重点看
- 总线型
- 由一条较长的线缆作为主干来连接网络上的所有设备
- 由于存在分接头信号反射的问题,因此不易进行故障的排查
- 星型
- 由集线器作为中央控制器,不允许设备之间有直接的连接
- 环型
- 每台设备只与其两侧的设备进行专用点到点连接
- 网状型
- 各台设备之间都有一条专用的点到点链路
- 混合型
- 总线型
协议
核心部分 用来管理数据通信的一组规则
- 语法 数据的结构或格式
语义 每一个字段的含义,通常包括用于相互协调及差错处理的控制信息
时序:报文发送的时间和速率
标准化工作
标准的分类
- 法定标准(权威机构) => OSI
- 事实标准(某些公司主流产品形成的主流) => TCP/IP
RFC 因特网标准的形式
相关组织
国际标准化组织 ISO OSI
ITU IEEE IETF
性能指标
速率 数据传输率/比特率
连接在计算机网络上的主机在数字信道上传送数据位数的速率带宽 原本指信号的频率极差,这里指单位时间内两点之间的最高数据率
理想的数据传输状态吞吐量
单位时间内通过某个网络(或信道、接口)的数据量受网络的带宽或网络的额定速率的限制
时延
数据从网络的一端传送到另一端所需的时间 => 延迟时延带宽积 表征的就是某一段时间的数据容量
往返时延RTT
从发送方发送数据开始,到发送方收到接收方的确认,总共经历的时延
利用率
信道利用率
网络利用率
Ch2 网络模型
为什么需要分层,哪几层,每一层做什么,层与层之间的关联性
分层结构
为什么要分层?
下层为上层提供服务,上层使用下层的服务(包括下面的所有服务),通过接口来说明如何使用下层的服务(屏蔽了服务的实现实现细节,仅相邻层间有接口);对等实体与协议的定义建立在水平方向上。
服务数据单元和协议数据单元的概念:
上一层的PDU作为下一层的SDU单元
OSI参考模型
OSI 七层
下面是通信过程的例子,实际体现的是数据封装和解封装的过程,上层的协议数据单元在向下进行传递时会添加控制信息,特别注意在第二层头部和尾部都会有添加,而物理层只负责传递 01 比特流
🚩各层功能和相应协议
应用层
负责向用户提供服务表示层
负责翻译、加密和压缩数据功能一:数据格式变换
功能二:数据加密解密
功能三:数据压缩和恢复 传输音视频数据时
会话层
负责对话控制(允许两系统会话及会话方式控制)和同步(增加检查点或同步点)
向表示层实体/用户进程提供建立连接并在连接上有序地传输数据
这里的建立连接是在进程层面。建立连接实际就是建立一个会话(建立同步),不同的应用程序通信之间建立不同的会话而不会相互影响
功能一:建立、管理、终止会话
功能二:使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步
传输层
负责报文从一个进程到另一个进程的传递功能一:可靠传输、不可靠传输
功能二:差错控制
功能三:流量控制
功能四:复用分用
复用:多个应用层进程可同时使用下层的服务
分用:下层把收到的信息分别交付给上面应用层中相应的进程网络层
负责将各个分组从源地址传递到目的地址
这里注意如果两个系统使用同一链路来连接,则通常不需要网络层
分组是数据报在过长时进行分割的处理
功能一:路由选择
功能二:逻辑寻址
数据链路层
负责帧从一节点到下一节点传递
传输单位是帧
功能一:成帧(定义帧的开始和结束)
功能二:差错控制 帧错+位错
功能三:流量控制
功能四:访问(接入)控制 控制对信道的访问
物理层
负责位从一个节点到另一个节点的传递
传输单位是比特
透明传输:不管数据是什么样的比特组合,都应当能在链路上传送
功能一:定义接口特性 指的物理等特性
功能二:定义传输方式 单工、半双工、全双工
功能三:定义传输速率
功能四:比特同步
功能五:比特编码 编码成电信号或光形式的规则
OSI 与 TCP/IP
TCP/IP 中最底下是主机到网络层
相同点
- 都分层
- 基于独立的协议栈的概念
- 可以实现异构网络互联
不同点
5层参考模型
寻址
物理地址 - 物理层和数据链路层
逻辑地址 - 网络层
端口地址 - 传输层
跳到跳时物理地址将改变,但逻辑地址和端口地址保持不变
专用地址 - 应用层
Ch3 数据和信号
模拟与数字数据 / 模拟信号与数据信号 / 振幅频率相位波长,频率与周期之间的关系 / 带宽 / 什么是调幅调频调相 / 衰减 失真 噪声 / 信噪比的概念和公式 / 无噪声信道和有噪声信道速率的限制
数据通信基础
数据要进行传输,必须被转换为电磁信号
典型的数据通信模型
调制解调器将数字信号转换为模拟信号
相关术语
基带传输:数字信号不经调制直接在低通通道传送
带通传输:把数字信号转换成模拟信号进行传输,允许使用带通通道
码元、波特、速率、带宽
码元
速率、波特、带宽
速率指传输的速率,是将数据发送到链路上的速度;区别于传播速率,后者指整个链路上进行传播的速度
电平与位的表示关系:
码元传输速率:单位时间数字通信系统传输的码元个数(脉冲个数或信号变化的次数),单位是波特。码元速率与进制数无关
信息传输速率:单位时间内数字通信系统传输的二进制码元个数(比特数)
关系:
带宽:单位时间两点之间所能通过的“最高数据率”
信号上的定义:复合信号最高频率与最低频率的差值
数据速率限制
影响因素:有效带宽、使用的信号电平数、通道的质量(噪声电平)
奈氏准则 香农定理
传输减损!
衰减
- 热转换导致能量损失,可通过放大器恢复
噪声
失真
信号中各成分由于传播速度随频率不同而存在延迟的差异,导致接收信号相位变化
码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象
解决方案:奈奎斯特定理 给出所需的信号电平数 会出计算题 🚩
限制码元传输速率的上限,区别于香农定理,下面是极限数据传输率:
- 码元传输速率存在上限
- 信道的频带越宽(W),就可以用更高的速率进行码元的有效传输
- 奈氏准则并未对信息传输速率给出限制
- 想提高数据的传输速率,采用多元制的调制方法
香农定理 定义了理论上的最高数据速率
考虑了噪声的影响,引入信噪比的概念
注意单位的不同 dB 和 S/N。如果题目中给的是以 dB 为单位的参数,先换算
结论:
两者区别
奈氏准则针对的是信号本身特性存在的问题而提出的解决方案,香农定理考虑的是外界的噪声影响。
如果题目中既提到了进制数,又提到了信噪比,就都要算,取最小值
Ch4 数字传输
波形图 / 比特率 位长 数据率和信号率的关系公式 / 基带传输 低通 / 基带传输和宽带传输的区别 / 最小带宽 最大数据速率 / 编码方案
编码&调制
数据元素和信号元素
前者为信息的最小实体,后者为数字信号的最小单位
数据速率与信号速率
信号速率决定了数字信号的带宽,最小带宽与波特率相等;给定带宽,即可求得最大数据速率
基带信号与宽带信号的区别 可能出简答题?
宽带调制的目的是应对衰减等问题
传输距离较近时采用基带传输;远时采用宽带传输
编码与调制
区分编码与调制的区别:
数字数据编码为数字信号 用于基带传输
编码解决的问题:
基线 信号功率的运行平均值
基线偏移
- 直流分量 接近于零频率的成分
- 自同步
线路编码方案
单极 NRZ 方案
极性 NRZ-L 方案和极性 NRZ-I 方案 前者存在基线偏移,都存在直流分量
NRZ-L 电平决定位值;NRZ-I 电平是否跳变决定位值
极性 RZ
两个信号变化编码一个位,所需带宽大 但没有DC直流成分问题
曼彻斯特编码和差分曼彻斯特 必考
曼彻斯特:位的持续时间被二等分,前半部分电平保持一个水平,后半部分变成另外一个水平
差分:中间总有跳变,值在位起始位置确定
最小带宽(信号速率)是 NRZ 的两倍
双极型方案
使用三种电平
AMI
0电平表示0,交替正负电平表示1
伪三元编码
1编码成0电平,0编码成正负交替电平
没有 DC 成分,有同步问题
多电平方案
mBnL
这里的 m 和 n 分别指的是模式长度,比如 m 个二进制位需要 n 个电平(信号模式)来表示
4D-PAM5
MLT-3 可能考?最后看下吧
块编码
利用冗余(增加分组的位长)来提供差错检测
三步骤:分组、置换和组合
扰动
修改 AMI 的编码规则,改变其长0导致同步失效的问题
B8ZS:8个连续0电平会被替换成000VB0VBV表示违反,与前一非零脉冲极性相同 ;B表示双极,与前一非零脉冲极性相反
HDB3
- 异步传输与同步传输
- 异步传输:信号的时序不重要,位流组成字节单位,没有同步时钟所以需要额外增加起始和终止位,字节之间存在间隙
- 同步传输:位流组成更长的“帧”,包含多个字节。帧内的各字节之间没有间隙
Ch5 模拟传输
三种将数字数据调制成数字信号的机制 / 模拟到模拟到转换
数字数据调制为模拟信号
幅移键控 ASK
频移键控 FSK
相移键控 PSK
🚩正交振幅调制 QAM (ASK + PSK)
状态数:相位数x幅度数
模拟数据调制为模拟信号
目的:为了适应带通介质
载波的某一参量随调制信号的振幅变化
- 调幅
- 调频
- 调相
模拟数据编码为数字信号
三个步骤:
编码指将每个电平值对应的状态(也就是码元)用二进制位来表示
传输方式
- 并行模式 速度快 费用高 适合近距离(计算机内部)
- 串行模式 速度慢 费用低 适合远距离
Ch6 物理层面的带宽利用
带宽利用的方法,每种的大概原理
频分复用 FDM 模拟技术 调制载波频率
波分复用 WDM 合并多个光信号 本质与FDM一样,差别就是这些频率非常高
时分复用 TDM 数字复用技术
同步时分复用
想象成一个高速复用链路,只要将时隙送上去,速度(链路速率)即会提高为之前(单个连接数据速率)的 n 倍,n 指的是连接数。每个输入时隙进一步拼接成帧。
每个输出单元的持续时间是输入单元持续时间的1/n
每位的持续时间是帧持续时间的 1/n (n 指的是帧长)
同步的特点在于每个时隙依次专用于每一个发送设备,固定。
统计时分复用
解决空时隙问题。增加寻址信息
动态分配时隙
扩频技术
与复用技术的原理类似,也是信号的组成,但是目的在于抗干扰和安全。这里组成的信号成分中包含冗余信息
跳频扩频 FHSS
源信号调制 M 个不同的载波频率
直接序列扩频 DSSS
每个数据位用扩展编码的 n 位代替(数字数据 => 数字信号)
Ch7 物理层传输介质
数据传输系统中在发送设备和接收设备之间的物理通路
区别传输媒体和物理层的概念
分类:
双绞线
两根采用一定规则并排绞合的、相互绝缘的铜导线组成 => 常用于局域网
如果再加一个金属丝作屏蔽层,就是屏蔽双绞线
同轴电缆 => 常用于传统总线型以太网
抗干扰能力强于双绞线
光纤
传递光脉冲,带宽很大
损耗低,适合远距离传输
Ch8 交换
电路交换的三个阶段 / 数据交换过程有哪些延迟 / 虚电路的概念,基本原理 / 虚电路交换和电路交换之间的优劣
三种交换方式
- 电路交换
- 分组交换 区别 概念
- 数据报网
- 虚电路网
- 报文交换
数据交换方式
电路交换
电路交换的三个阶段
数据交换过程中有哪些延迟?传输延迟 + 传播延迟 + 处理延迟(忽略),对应图
常用于电话网络 直接传输比特流
为了减少带宽的浪费,所以通过多路复用技术来缓解。但是本质上会独占通信链路
电路交换中的中间设备(通常是交换机)会直接对发送数据进行转发,而不会检错
报文交换
交换设备采用存储转发技术,动态分配线路
分组交换
分组:把大的数据块分割成小的数据块
相对于报文交换,存储管理更容易
报文交换于分组交换的对比:
分组交换在计算时直接考虑最后一个分组发送完毕所需时间即可
三种方式对比:
报文交换和分组交换都是基于存储转发
数据报方式 (无连接服务)
数据报
虚电路方式(连接服务)
虚电路的基本原理
电路交换与虚电路交换的优劣
在数据链路层实现
结合数据报方式和电路交换方式
编址
全局地址用于连接阶段建立虚电路标识符 VCI;后者仅具有本地的权限(定义下一个交换机和传送分组的通道应该是什么)
连接建立阶段
分为建立请求和确认子阶段
🚩与电路交换之间的优劣对比
电路交换:
- 电路交换是在物理层,是实际的物理链路连接。
- 通信开始前,数据传输直接以信号数据流传递,无封装过程
- 站点必须对通信时间所用的资源给以预留
- 数据传输期间没有寻址,交换机基于它们占有的频带(FDMA)或时隙(TDMA)发送数据
- 效率较低,延迟很小
虚电路交换:
- 属于相同源端和目的端的所有分组都按同一路径传送
- 资源按需分配,分组到达目的端可能有不同延迟
Ch10 检错与纠错
基本概念
块编码
- 汉明距离的相关结论
- 线性块编码
- 汉明编码
- 奇偶校验码
循环编码 计算
传输、网络层的校验和的计算
差错控制(检错编码)
差错控制在数据链路层主要是解决比特错
基本概念:
汉明距离
两个字进行异或并计算1的个数
检错的最小距离
最多可检 s 个差错:$d_{min}\geq s+1$
纠错的最小距离
最多纠正 t 个差错:$d_{min}=2t+1$
检错编码:
奇偶校验码
特点:
只能检查出奇数个比特错误,检错能力为50%
CRC循环冗余码
怎么运算?硬件实现不需要 找两道相关题练一下
除的过程采用异或运算,得到的是3位,1位额外位移下来加上去组成4位
当最左边的位是0时,用0做除数
发送端:
接收端:
区别于可靠传输,这里只是实现了无比特差错的传递
纠错编码——汉明编码
发现双比特错,纠正单比特错 $d_{min}=3$
确定校验码的位数 r
r 为冗余信息位,k 位信息位
查表计算校验子
校验和
划分 求和 取反
Ch11 数据链路控制
非常重要!!
没有大题,都是概念 11.1 11.2 11.3
11-1 成帧
两种不同类型的帧
固定长度 长度本身作为分隔符
可变长度 加入标记
面向字符协议
帧的开头和结尾加入1字节的标记
字节填充:如果数据部分出现标记字符,则用转义字符 ESC 进行填充
面向位协议
通常使用标记
01111110
作为分隔符位填充策略:遇到1个0后面紧跟着5 个1时便添加一个0
11-2 流量控制和差错控制 => 数据链路控制
流量控制
定义:一系列程序,用来限制发送方在等到确认之前发送的数据数量
差错控制 「基于自动重复请求 ARQ」
11-3 几种协议
无噪声通道
不使用流量控制
发送方只管发
使用流量控制
「停止等待协议」
利用 ACK 帧的反馈确认再继续发送帧
链路利用率:
「滑动窗口协议」
一次传输多个帧,需要利用序号作为标记,发送方和接收方均维护一个序号列表
链路利用率:
有噪声通道
停止等待 ARQ
这里差错的检测基于保留已发送帧的副本并当重传定时器到时重传这个帧来实现
序列号基于模2运算
接收方如果接收到错误帧则会直接忽略;但即使序列号不匹配,也会发送ACK再确认前一个
回退 N 帧 ARQ
差错的检测只使用一个定时器,当第一个待处理帧的定时器到时时,发送所有的待处理帧
序列号是模 $2^m$ ,这里 m 是以位为单位的序列号字段长度
发送方窗口的最大尺度:$2^m-1$;接收方窗口大小为 1
ACK 帧可以累积确认;如果一个帧损坏了或者失序了,接收方便不响应并将丢弃所有后来的帧直到它收到一个所期待的帧
不适用于有噪声链路
选择性重复 ARQ 只重传被损坏的帧
发送方窗口的最大尺度:$2^{m-1}$;接收窗口大小与发送方窗口大小一样
为每个发送帧都设置一个定时器,只有超时的帧才会重发;NAK 指定发送方发送期待的帧(其实也有 ACK 功能);ACK仍累积确认,但只有在向上层交付数据的时候才会发送
高级数据链路控制协议
HDLC
面向比特的数据链路协议,具体实现了上述讨论的各种 ARQ 协议
两种通用的传输方式
正常响应方式
一个主站发送指令,多个从站响应。可用于点到点和多点链路
异步平衡方式
每个站点平等,用于点到点链路
三种帧结构
- 信息帧
- 管理帧 🚩提供差错控制机制有「回退N帧ARQ」和「选择性重复ARQ」
- 无编号帧
PPP
面向字节的点到点链路协议
一些特点(类比 UDP):
- 不提供流量控制
- 差错控制只是一个 CRC 校验,出错就丢弃
- 无顺序编号
Ch12 多路访问
原理、实际的工作方式
介质访问控制
介质访问控制
主要为了解决两对节点之间的通信不会发生相互干扰
多路访问协议分为:随机访问协议、受控访问协议以及通道化协议
随机访问协议 从原理到计算
所有用户均可随机发送信息,且发送时占全部带宽
ALOHA 协议
「纯 ALOHA 协议」
思想:想发就发,随机重发
依赖于接收方的确认
这里的 $T_0$ 既包括传输时间和传播时间
超时周期一般指往返传输延迟的最大可能值或者平均传输时间
冲突只会在接收方检测到,如果发生冲突了就和停等 ARQ 协议一样,需要重发帧
超时后需要随机等待一段时间再重发,遵循的机制为「二进制指数回退」,时隙为传播的最长时间
纯 ALOHA 脆弱时间
其中 $T_{fr}$ 代表帧传输时间
吞吐量(成功传输帧的平均数量) G 为一个帧传输时间内系统产生的帧的平均数量: $S=G\times e^{−2G}$
「时隙ALOHA协议」
思想:把时间分成若干个相同时隙($T_{fr}$),每个站点只能在时隙开始时刻发送
时隙ALOHA协议的脆弱时间:$T_{fr}$
吞吐量:$S=G \times e^{-G}$
CSMA 协议
思想:发送帧之前,监听信道
CSMA脆弱时间:$T_p$ 到最远站点的帧传播时间
监听算法
1-持续 CSMA
如果监听信道处于空闲状态,则直接传输数据帧;否则一直处于监听信道状态直至信道空闲
非持续 CSMA
区别于上述点在于如果信道忙则等待一个随机时间之后再进行监听
p-持续 CSMA
若监听线路繁忙则持续侦听直到线路空闲;若线路空闲:
(1) 以概率p发送;(2) 以概率(1-p)等待下一个时隙的开始并再次检测线路;
CSMA-CD 带冲突检测
思想:边发送边监听
帧传输时间 $T_{fr}$ 必须至少是最大传播时间 $T_p$ 的两倍
最小帧长问题 必考
希望在检测到冲突时帧还未发送结束
检测到冲突之后采用二进制指数回退策略等待重传时间
区别于前面 ALOHA 的策略在于这里的时隙为 $2T_p$
CSMA-CA 冲突避免 => 适用于无限局域网
无线网络对于信号能量敏感下降
工作原理 原理最重要
帧间间隔,竞争窗口和确认
帧间间隔 IFS
当发现通道空闲时等待的时间,可根据大小赋予不同站点优先级
竞争窗口
将时间分割成时隙,等待时间基于二进制指数回退策略选择
在竞争窗口中的每一个时隙内,通道都要被侦听;如果发现通道空闲,定时器继续,如果通道繁忙,定时器停止并在通道空闲后再继续
受控访问访问协议 要知道一下,轮询、选择、预约
预约访问协议
站点在发送数据之前需要预约,也是以时隙为单位。先发预约帧,再发数据帧
轮询访问方法
一个主站负责控制链路,多个从站跟随。
轮询:主站希望接收数据,它就询问从设备是否有数据要发送
选择:主设备希望发送数据,它就通知从设备准备接收
令牌传递
逻辑环结构,令牌在环中循环。令牌的持有赋予站点访问通道并发送数据的权限
通道化协议
- FDMA 频分多路访问
- TDMA 时分多路访问
- CDMA 码分多路访问
Ch13 有线局域网:以太网
概念 / 单波 / MAC LLC 原理 功能 / CSMA/CD / 冲突域和广播域 什么可以划分(集线器 交换机 路由器) / 关键字眼背
帧格式重要位置:源地址 目的地址 CRC校验位
寻址 十六进制表示法 更多理解单播的东西 CSMA/CD工作原理
局域网 IEEE 标准
LLC 逻辑链路控制层
流量控制、差错控制和部分成帧的职能都被集中到LLC子层中
为所有 IEEE 局域网提供一个单一的数据链路控制协议
MAC 介质访问控制层
为每个局域网定义特定的访问方法
标准以太网
1-持续的 CSMA/CD 是以太网介质访问方法
以太网不提供确认的任何机制
🚩IEEE 802.3 MAC 帧 熟知每个字段的功能,重点为地址 CRC 字段
- 前导符:7个字节(56位),1和0交替出现,通知接收系统有帧的到来并使其与输入的时钟同步,56位模式容许站点在帧的开始可以错过(miss)一些位;实际上前导符(preamble)是在物理层上加进去的,并不是帧的一部分;
- 起始帧分界符(SFD):10101011,说明帧的开始;
- 目的地址(DA):6个字节,包含目的站点或接收该分组的站点的物理地址;
- 源地址(SA):6个字节,包含分组的发送方的物理地址;
- 长度/类型:最初的以太网(Ethernet-II,商业广泛使用)作为类型字段来定义使用MAC帧的上层协议,IEEE标准使用它作为长度字段来定义数据字段的字节数;
- 数据:上一层协议封装的数据,最少46字节,最大1500字节(其余18字节);
- CRC:差错检测信息,CRC-32
🚩 MAC 帧最小长度为 64 字节,最大长度为 1518 字节
寻址
6字节,利用16进制表示则共12个十六进制数
其中目的地址划分:
🚩 单播地址 目的地址字段的第一个字节的最低位为0 => 第二个十六进制数为偶数
广播地址 全1
多播地址 目的地址字段的第一个字节的最低位为1 => 第二个十六进制数为奇数
传输方式:字节从左向右 => 每一位从低位到高位
冲突域与广播域 给一个图来识别,什么设备可以来划分冲突域和广播域
物理层部分需要记住的关键
划分冲突域: 最初是通过网桥(还可以提高带宽);之后进一步用 N 端口的交换机(带有缓冲区)来代替
「10Base5」 => 总线拓扑,冲突只会发生在粗轴电缆(收发器电缆能为发送和接收提供独立的路径)
「10Base2」=> 总线拓扑,冲突发生在细轴电缆中
「10Base-T」:星型拓扑结构,站点通过双绞线连接到集线器上,故冲突发生在网络集线器中
「10Base-F」:星型拓扑,站点使用两条光纤与网络集线器相连接
快速以太网之后:半双工利用集线器连接,全双工利用带有缓冲区的交换机连接
Ch15 连接局域网、主干网和虚拟局域网
第一幅图要会,很重要;网桥要大概知道一下;虚拟局域网的基本概念和作用
连接设备
物理层以下:无源集线器
只是个连接器,是物理介质的一部分
物理层设备:中继器或有源集线器
「中继器」:可以重新生成原始的位模式,然后发送新生成的信号。并不能连接两个局域网,它连接的是一个局域网的各个分段。因此它只做转发帧,没有过滤功能
「有源集线器」:本质为多端口中继器,
物理层和数据链路层:网桥或两层交换机
「网桥」:在物理层部分和功能中继器一样,在数据链路层部分具有过滤能力,即通过检查帧中的物理地址,根据内部维护的端口地址映射表来决定丢弃还是转发该帧。
注意它并不会改变帧中的物理地址。
「自学习算法」构建转发表(针对透明网桥):
目的地址用来做转发决定(表查找),源地址用做添加表条目和更新的目的。
初始时刻如果目的地址没有记录的话就会直接转发出去,转发表在查询时先找源地址
两个网桥之间会产生循环问题 => 生成树算法解决/源路由网桥解决
优点:
- 过滤通信量,增大吞吐量
- 扩大物理范围
- 提高了可靠性
- 可互连使用不同协议的局域网
「两层交换机」:多端口网桥,有缓存区。每一端口划分一个冲突域 并且可以独占传输媒体带宽
物理层、数据链路层和网络层设备:路由器或三层交换机
「路由器」:基于分组的逻辑地址路由分组
所有5层的设备:网关
虚拟局域网
基本概念:将 LAN 划分成逻辑的、而不是物理的网段。每个 VLAN 是组织的一个工作组,由软件而非硬件定义
作用:创建广播域
冲突域和广播域
Ch19 逻辑寻址
IPV6不用看 其他都重要 以及需要知道 IPV4 到 IPV6 的过渡策略
标记法
写法:点分十进制
注:路由器的不同接口都有一个IP地址,因此可以连接不同的网络,划分广播域
💡分类寻址
其中 ABC 类地址分成了网络号和主机号
子网化
方法:掩码中增加1的位数
无分类编址 CIDR
地址掩码对应的就是网络号的位数对应1,主机号位数对应0
最大地址:掩码的反码与给定地址进行或运算
限制条件:
- 块中的地址必须是一个接着一个连续的
- 一个块中地址的个数是2的整数次幂
- 块的起始地址(网络地址)必须能被块的个数整除
- 子网分配时网络地址和广播地址不能够分配
表示方法:
起始地址:通过子网掩码与 IP 地址逐位相与,通常表示为一个组织的网络地址
最后地址:子网掩码取反后与 IP 地址逐位相或
地址的个数:$2^{32-n}$
网络地址转换 NAT
专用地址:在组织机构内部唯一,但在全世界范围内并不唯一。路由器不能转发将这些地址作为目的地址的分组
增加端口列来扩充可发往同一目的地址分组的内部主机数
构成超网
将多个子网聚合成一个较大的子网
方法:将网络前缀缩短,掩码减少1的位数
最长前缀匹配
注意CIDR的子网号是可以全0全1的(主机号的还是不能全0全1)
IPV6地址表示形式:
16字节,128位
一般形式 冒号十六进制形式
对比 MAC 物理地址:48位 -> 6字节
注: 一个部分(两个冒号之间的4个数字)中开始的一些0可以省略,末尾的0不能被省略
压缩形式
Ch20 IP协议
都重要
IP数据报格式
整体:
🚩格式:
- 版本(VER)4 位, 协议的版本号,IPv4 为4
- 头部长度。4位,以4字节定义数据报头部的总长度。20-60字节 => 5-15
- 服务。8位
- 总长度。定义了包括头部在内的数据报的总长度,单位为字节。进而引出 数据长度=总长度-头部长度=总长度-HLEN*4
- 生存时间(TTL)8bits,用来控制一个数据报所通过路由器的最大跳数
- 协议。8bits,定义了使用此IPv4层服务的高层协议。
- 校验和。16bits, 只对头部校验。
- 源地址。32bits,源到目的数据传输期间,源地址必须保持不变。
- 目的地址。32bits IPv4地址,源到目的数据传输期间,保持不变。
可选字段:0-40B (60-20) 用来支持排错、测量以及安全措施
填充:把首部补成 4B 的整数倍
分片
最大传送单元 MTU 指数据链路层协议对应帧中数据字段的最大长度
链路层数据帧可封装数据的上限
IP数据包格式中用于分片的字段
这里的偏移量是从数据报的数据部分的第一个字节开始算的
重组分组策略:
- 第一个分段的偏移字段值为 0
- 将第一个分段长度除以 8,其结果就是第二个分段的偏移值
- 将第一个和第二个分段的总长度除以 8,其结果为第三个分段的偏移值
- 继续以上过程,最后一个分段的 MF位 的值为 0
IPV6
选项部分挪到了有效载荷当中,基本首部长度固定
优缺点对比
IPV4 的缺点:
- 地址耗尽
- 不保证最小时延传输策略和资源预留
- 不提供加密和鉴别
IPV6 的优点:
- 更大的地址空间,128位
- 更好的头部格式
- 新的选项
- 允许扩充
- 支持资源分配,使用流标号机制
- 支持更多的安全性
IPv6 向 IPv4 过渡的策略:
「头部转换」:与隧道技术类似,但前者只是临时的协议封装。头部转换会彻底转换头部格式以使得接收方能够正确识别
重点:路由选择、路由表的构造
根据网络的拓扑结构画出路由表 (子网 超网 路由聚合)
子网划分后构造带有子网结构的路由表
给一个MAC帧/TCP报文/IP报文,能够解析出来,知道首部尾部的作用(分值高!)
Ch21 地址映射,差错报告和多播
地址映射 ARP RARP 在做什么 基本原理 非重点
地址映射
「ARP」逻辑地址到物理地址的映射
过程:
「RARP」物理地址到逻辑地址映射 (C/S模式)
过程:
- 先创建一个 RARP 请求,并在本地网络上广播;
- 在本地网络上知道所有IP地址的另一个机器就用 RARP 回答来应答
Ch22 传递、转发和路由选择
22.1 22.2 22.3 大题小题都有 RIP最重要!!!
定义
传递:网络层负责用底层物理网络处理分组
转发:将分组路由到它的目的端
下一跳方法
路由方法 保留完整的路由信息
减小和使路由表查找过程简化的技术:特定网络方法
仅用一个项目来定义这个目的网络本身的地址
转发过程
利用无类寻址,需要依靠掩码来找网络地址,因此路由表安排为四列
路由选择策略采用最长掩码匹配原则
考点:根据网络拓扑构造路由表
「基本」
「地址聚合」:通过取共同前缀,有效减小路由表的长度
遵循原则:「最长掩码匹配」
路由算法
RIP 协议与距离向量算法
最佳路由指定的代价是最小距离的路径
维护的是一组距离,最短路径
RIP协议和谁交换?多久交换一次?交换什么?
- 仅和邻站交换信息
交换的信息是自己的路由表,具体来讲只共享表的前两列
每30秒交换一次路由信息,然后路由器根据新信息更新路由表。
🚩距离向量算法更新操作:
- 接收节点(如A)在表的第二列中的每一个值加上它与发送节点(如C)之间代价值
- 如果接收节点(如A)要更新自己的表为发来的任何一行的信息,接收节点(如A)需要把发送节点(如C)加入作为第三列,也就是发送节点(如C)作为路由的下一列
- 接收节点(如A)将修改过的接收到的表与它的旧表进行逐行比较:
- 如果下一个节点项目不同,则接收节点(如A)选取具有最小代价的行;如果最小代价相同,则保持旧的;
- 如果下一个节点项相同,则接收点(如A)选取新行
一个细节是只要相同的目的网络对应的下一跳一致,不管距离是否变化,都要更新;不是则更新距离小的
exp:
存在的问题:「两个节点循环系统的不稳定性」
A与X之间链路突然断开,在B收到A的更新前,A收到来自B的更新,系统就会不稳定
本质在于两个节点之间路由表的更新时间不同导致,“好消息传的块,坏消息传的慢”。并且遵循了如果同一目的地址,下一跳节点相同的话直接用新的路由原则
解决方案:
- 定义无穷大,RIP 协议将16定义为无穷大
- 分割范围 仅发送表的一部分。如果节点B认为通过A到达X是最佳路径,则节点B不需要向节点A通知这一部分信息。后者则之后会删除该项
- 分割范围与毒性逆转 节点B依旧可通知X的值,但如果接收节点是A,则用无穷大距离作为警告“不要使用这个值,我知道的这个路径来自你
「基于距离向量路由选择的 RIP 协议」
1 |
|
OSPF 协议与链路状态路由选择
每一个节点拥有该区域的全部拓扑结构
交换的度量是可以自定义的
发送的信息为「链路状态分组 LSP」,包括节点的标识,链路的清单,序列号,寿命
这里注意在洪泛法中,接收到 LSP 的每个节点会根据寿命字段与已有副本进行比较,用新的并从除接收接口之外全部转发出去
🚩Dijkstra算法建立最短路径树
OSPF的区域:自治区内进一步分划分主干区域和普通区域
OSPF 链路类型:
- 点到点链路:点到点连接两个路由器
- 过渡链路:连接多个路由器的网络
- 残桩链路:只连接到一个路由器的网络
- 虚链路:当两个路由器之间的连接断开时,网络管理员就在它们之间用一条更长的路径,可能经过好几个路由器,创建一条虚链路
OSPF分组:直接用IP数据报传送
路径向量路由选择与BGP 协议 (外部网关协议)
基于路径-向量选择,原理与距离向量路由类似,只不过这里是AS和AS之间的互连,需要一个代言节点出示以AS为单位的路由表。同时注意路由表的内容是AS的路径
🚩路径向量路由算法建立路由表三个过程:
初始化 当前每个代言节点只知道其 AS 内部节点的可达性
共享 代言节点与其邻站的代言节点共享路由表
更新 更新包括不在表中的节点以及其自治系统与发送方的自治系统之间的路径
🚩三种协议的对比
| RIP | 基于UDP | 应用程序 |
| :———: | —————- | ———— |
| OSPF | 基于IP | |
| BGP | 基于TCP | 应用程序 |
Ch23 进程到进程的传递:UDP, TCP 和 SCTP
UDP / TCP!! 里面的报文结构 三次握手 流量控制(滑动窗口) 差错控制 / 注重细节
传输层利用端口号来区分主机上的不同进程
常见熟知端口号:
「套接字地址」 唯一定义主机的进程
格式:
IP地址:端口号
主机IP地址与端口号的组合,识别具体主机中的具体进程复用和分离
复用:应用层 => 多个进程需要发送分组 复用时不同进程的报文通过端口号来区分
分离: 网络层 => 多个进程需要接收分组 分离时根据端口号将每个报文传递到适当的进程
UDP 协议
概述
「无连接不可靠的传输层协议」
面向报文:对应用层交付下来的报文既不合并也不拆分,一次完整传输
UDP首部格式
检验和包括首部和数据字段
- 源端口号:源主机上运行的进程端口号,16位长,0~65535.源主机是客户端,一般是临时端口号,服务器则是熟知端口号。
- 目的端口号:目的主机上运行的端口号。16位长。
- 总长度:16位,定义用户数据报的总长度。UDP长度=IP长度-IP头部长度
- 校验和:用来校验整个数据报出现的差错
UDP校验
伪首部类似IP数据报的首部,第三字段固定全0,只用于计算校验和(发送和接送时均需要)
如何计算?
一行4字节排列,最后一行填充补齐
TCP协议
特点 「面向连接的、可靠的、面向流的传输层协议」
全双工通信 每一方 TCP 都有发送和接收缓冲区
面向连接的服务 建立一种面向字节流的环境
可靠的服务 使用确认机制
🚩序号系统 指的是字节序号。
「字节序号」:TCP 为每个连接中传输的所有数据字节编号,独立可不从0开始,随机选择起始点
「序号」:TCP 对发送的每一个段分配一个序号。每个段的序号是这个段中的第一个字节的序号
「确认号」:累加的,并且定义了通信一方预期接收的下一字节的编号
TCP报文段首部格式
首部长度需要满足4字节的整数倍,因此选项部分需要填充
数据偏移字段实际就是首部长度(固定+选项)
源端口地址:16位字段。表示发送该段的应用程序的端口号。
目的端口地址:16位字段。表示接收该段的应用程序的端口号。
序列号:32位字段。段中数据的第一字节编号。
确认号:32位字段。定义了段的接收方期望从对方接收的字节号。已接收序号 x之前的数据,它就将确认序号定义为
x+1
.头部长度:4位字段。以4字节为单位,指明TCP头部的长度 (20-60 Bytes)
保留:6位字段。保留将来使用
控制:6种,同一时间可设置一位或多位
窗口大小:16位字段。定义对方必须维持的窗口大小(以字节为单位)。通常称为接收窗口,由接收方确定,发送方服从接收方支配。
校验和:16位字段
紧急指示符:16位。当紧急标志设置时才有效。将此数据加到序号上得出此段数据部分中最后一个紧急字节。
几个重要的控制位:
紧急位 URG
赋予优先级,需要配合紧急指针字段来指示紧急数据末尾在报文段当中的位置
确认位 ACK
推送位 PSH (针对接收方)
可配合URG,尽快交付给上层应用进程
同步位 SYN
表示连接请求/接受报文
终止位 FIN
释放连接时
注:通常发送的字段序列号由 确认号+窗口大小确定
🚩TCP 连接的三个过程
连接建立
🚩TCP三步握手
1️⃣ 客户发送第一个段是 SYN 段。SYN 字段被设置,用于序列号同步,占用一个序列号。SYN 段不携带数据,但它占用一个序列号。
2️⃣ SYN 和 ACK 段。两个目的:是另一方通信的 SYN 段(表示连接接受),并用ACK 标志作为第一个 SYN 的确认。SYN+ACK 段不携带数据,但占用一个序列号。
3️⃣ ACK段。使用 ACK 标志和确认序号字段来确认收到了第二个段。注意:这个段的序列号与 SYN 段中的序列号相同。ACK 没有占用任何序列号。
注:单 ACK 是不占用序号的
数据传输 可使用数据捎带确认
TCP的连接释放
「三次握手」:
1️⃣ 客户端发起 FIN 段,可包含客户机要发送的最后一块数据。如果不携带数据,则该段占用一个序列号。
2️⃣ 服务器端收到后,发送 FIN+ACK 段,接收来自客户端 FIN 段,同时告知另一连接关闭。可携带来自服务器的最后一块数据。如果不携带数据,则该段占用一个序列号
3️⃣ 客户机发送 ACK 段。证实它接收到来自服务器 FIN 段。包含确认号,它是接收到来自服务器 FIN 段的序号加1.不携带数据也不占用序列号
「四次挥手」(半关闭):
区别点:客户端发出 FIN 段,服务器发送 ACK 确认半关闭;服务器处理完数据后,发送 FIN 段,由客户端 ACK 来确认
半关闭状态指一方不再发送数据,但还可以继续接收数据
TCP差错控制
可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的
🚩实现可靠传输的机制:
校验和
与UDP的差错校验一致。通过增加伪首部字段通过二进制求和的方式来计算校验和来比对数据是否出错
确认
确认信息可以捎带数据信息
每一个确认ACK在发送之前都会启动一个计时器以确定是否还有其他数据段到达
对于非按序到达的报文段,接收方并不会丢失,而是先缓存下来,并通过确认报文段来指示发送方重传对应的失序报文
重传 差错控制机制的核心
「超时重传」:TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段
如何确定规定的时间也就是重传时间呢?
采用自适应算法,动态改变重传时间RTTs(加权平均往返时间:从发送到确认)
「冗余ACK」:每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号 三个重复的ACK就发生重传。(这里为了解决等待过久的问题,想要提前获知是否需要重传)
窗口问题,SR GBN这些类似数据链路层的协议还要看书复习 会考大题!!
TCP流量控制
利用滑动窗口机制实现流量控制 窗口大小单位为字节
「三种活动」:张开、合拢、收缩(如图发送方窗口)
exp:
能继续发数据的依据取决于接收窗口是否为 0
解决 ACK 确认报文段丢失导致接收窗口改变情况不得知陷入“死锁”局面
Ch24 拥塞控制和服务质量
拥塞控制(慢启动 快恢复)
「拥塞」:网络中的载荷,即发送到网络中的分组数量,超过了网络的容量,即网络中能处理的分组数量,就可能发生拥塞
拥塞控制与流量控制的区别:
流量控制是点对点之间的问题,发生问题就知道在对应的发送结点过快导致接收方的接收窗口来不及收;而对于拥塞控制而言是全局性问题导致的网络堵塞问题
拥塞控制分类
🚩TCP 拥塞控制
「慢速启动:指数增加」
注:MSS 最大报文段长度
MSS 应用于 TCP 协议中,代表的是单个 TCP 报文的可传输的最大数据长度。MSS 的大小,和通信中的另一个参数 MTU 息息相关。
拥塞窗口大小按指数规律增长(每一传输轮次)直至达到阈值
加性增加阶段:每次整个窗口所有段都被确认时,拥塞窗口才能增加1
乘性减小的发生时机:重传计时器到或者接收到了3个ACK
「拥塞避免:加性增加」
整个窗口的所有段都被确认时,拥塞窗口才增加1,直至检测到拥塞
「拥塞检测:乘性减小」
依据的重传机制:
重传计时器到时
1️⃣ 设置阈值为当前拥塞窗口大小的一半;
2️⃣ 设置cwnd为1个段的大小;
3️⃣ 启动慢速启动阶段。
收到3个 ACK 时
1️⃣ 设置阈值为当前拥塞窗口的一半;
2️⃣ 设置cwnd为阈值;
3️⃣ 启动拥塞避免阶段。
Ch25 域名系统
工作原理 / 两种解析方式
域名空间 树结构
根对应顶级域名前头的隐藏点
域名服务器
查询请求顺序:
本地域名 => 根域名 => 顶级域名 => 权限域名 => …
区的概念:DNS服务器实际管辖的范围,取决于划分方式。每个区对应一个权限域名服务器
DNS在区域传输的时候使用TCP协议,其他时候使用UDP协议
域名解析过程:
递归解析
每个查询服务器或者请求转发并等待响应,或者做出响应
迭代解析
每个服务器或者返回解析结果,或者返回另一个认为可以解析的服务器地址给客户端,由客户端重新发起新的请求
为了减缓本地域名服务器的负载,加入高速缓存来存储最近查询的域名解析结果(包括中间查询结果)
本机当中也会存储高速缓存(从本地域名服务器中下载)
熟知端口号 53 基于TCP/UDP
Ch26 远程登录、电子邮件与文件传输
telnet / pop3 smtp 是什么 / FTP基本概念
远程登录
「TELNET 」:终端网络,客户/服务器应用程序
FTP 文件传输协议
一般来讲熟知端口21用于控制连接,熟知端口20用于数据连接
从属进程负责单个用户的请求
从属进程包括控制进程和数据传输进程
控制连接会在整个会话中保持打开,数据连接的状态取决于数据是否传送完毕
主动连接:服务器端主动告诉客户端数据连接端口 20
被动方式:客户端向服务端发送命令请求数据连接的端口号 (大于1024)
电子邮件
- 组成结构 用户代理 邮件服务器 协议
用户代理调用报文传送代理(MTA),利用 SMTP 协议 将报文从客户端推向服务端,这里包括两部分:从本地用户传到邮件服务器,以及从发送方邮件服务器传到接收方邮件服务器。
接着接收方的用户代理调用报文访问代理(MAA),利用 POP3/IMAP 协议从接收方邮件服务器拉回报文至本地
通用因特网邮件扩充 MIME 基于SMTP协议功能上的扩展
cookie的概念 / HTTP协议 / WWW协议
概述
无数个网络站点和网页的集合,存储着不同形式的资源
如何对资源进行寻址? 统一资源定位符URL唯一标识
资源的传送通过 HTTP 协议来规定
熟知端口号:80
超文本传输协议 HTTP
HTTP协议的特点
这里注意HTTP协议是无状态的;且通信之前不需要事先建立HTTP连接,但由于是基于 TCP 作为传输层协议,因此需要建立 TCP 连接
HTTP连接方式
非持久连接和持久连接
前者即每次通信都需要先TCP三次握手,时间消耗上比较大
后者只需建立一次TCP三次握手
非流水线与流水线式连接:后者即可以同时发送多个请求报文,减少发送过程中的空闲时间
HTTP报文结构
状态码:
Cookie
服务端将客户端的信息存储在 Cookie 字符串或文件中,回传给客户端。客户端将其存储在对应目录中
Relevant QA
Ch8
Ch13
Ch15
- Ch19
Ch22