文章目录
- 计网概述
- 计网概述基本问题树
- 如何建网
- 用什么连接计算机(传输介质问题)
- 相邻计算机通信(相邻传输问题)
- 非相邻计算机通信(非相邻传输问题)
- 保障传输数据可靠性(可靠性问题)
- 如何用网
- 概念分类
- 计算机网络
- 计算机网络分类
- 性能指标
- 其他概念
- 物理层(解决传输介质问题)
- 物理层基本问题树
- 物理层概念
- 传输方式
- 连接方式
- 数字通信基础(性能分析问题)
- 基带信号
- 频带信号
- PCM
- 数字信号编码
- 通信性能参数
- 信道容量
- 传输媒体(物理介质选择问题)
- 双绞线
- 同轴电缆
- 光纤
- 磁介质
- 电力线
- 信道复用技术
- 数字传输系统(数字信息传输问题)
- PCM,将模拟信号转化为数字信号的信号编码,数字传输系统
- 数据链路层(解决相邻传输问题)
- 数据链路层基本问题
- 数据封装问题
- 出错处理
- 循环冗余校验CRC 重点
- CRC运算方法
- 检错能力
- 服务质量 及 流量控制
- 基本数据链路协议
- 第一个协议
- 第二个协议: *简单停-等协议*
- 原理
- 第三个协议: *流量控制+超时重传*
- 原理
- 第四个协议:*流量控制+超时重传+1位滑动窗口协议*
- 原理
- 第五个协议:*流量控制+管道技术+回退n帧重传技术*
- 第六个协议:*流量控制+管道技术+选择性重传技术*
- 选择性重传中窗口与序号问题
- 滑动窗口总结
- 介质访问控制问题(防止冲突,分配使用权)
- 信道划分介质访问控制(静态划分)
- 点对点链路的协议
- 随机访问介质访问控制(动态划分,随机接入)
- ALOHA协议
- 纯ALOHA协议
- 时槽ALOHA协议
- CSMA(载波侦听多路访问)
- CSMA/CD(冲突检测)
- CSMA/CA 冲突避免
- 轮询访问介质访问控制(动态划分,受控接入)
- 局域网
- 以太网
- 以太网的MAC帧
- 以太网传输介质
- 数据链路层设备
- 无线局域网
- 物理层实现方法
- 802.11的MAC层
- 802.11的MAC协议
- 网络层(解决非相邻传输问题)
- 网络层问题树
- 服务类型
- 虚电路服务(面向连接的服务)
- 数据报服务(面向无连接的服务)
- 网络互连基本问题
- 如何互连
- 如何互通
- IP数据报格式
- MTU和数据报分段
- IP地址
- 分类IP地址
- 特殊IP地址
- 特殊IP地址
- 私网地址:
- 划分子网
- 构造超网CIDR(无类型域间路由选择)
- 网络地址转换NAT
- 不同专用网内部主机之间通信(虚拟专用网VPN)
- 专用网主机和外网主机之间通信(网络地址转换NAT)
- 地址解析
- 出错处理
- ICMP协议
- 路径问题
- 路由协议和算法
- 路由算法分类
- 分层次的路由选择
- 因特网上的两大路由协议
- 内部网关协议IGP(在一个AS内部使用)
- 外部网关协议EGP(在AS之间使用的路由协议)
- 拥塞控制
- 数据报子网中的拥塞控制
- 传输层(可靠性问题——保障数据传输的可靠性)
- 传输层问题树
- 进程标识(传输服务标识问题)
- UDP(用户数据报协议UDP)
- 特点
- UDP首部
- UDP校验和计算
- TCP
- 特点
- TCP连接标识
- TCP面向字节流
- TCP可靠传输基本问题
- 报文段格式
- 连接建立与关闭
- 三次握手——建立连接
- 四次挥手——释放连接
- 可靠性机制
- 协议实现
- 超时重传时间的选择
- 流量控制
- 拥塞控制
- TCP拥塞控制算法
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
- 安全性分析
- 总结
- 应用层(解决端到端的资源共享问题)
- 问题
- DNS
- 迭代解析
- 后面的较简单 略
计网概述
计网概述基本问题树
如何建网
用什么连接计算机(传输介质问题)
相邻计算机通信(相邻传输问题)
非相邻计算机通信(非相邻传输问题)
保障传输数据可靠性(可靠性问题)
如何用网
概念分类
计算机网络
- 计算机网络概念的三层含义:
- 互相连接
- 自治的计算机
- 集合
- 互联网:
- 专指全球最大的、开放的、由众多网络相互连接而成的计算机网络
- 由美国 ARPANET 发展而成
- 采用 TCP/IP 协议族
- 互联网组成
- 边缘部分:连接到因特网是哪个的主机,端系统
- 通信方式:
- C/S客户端服务器方式:均指通信涉及的应用进程,一方提供服务,一方接受服务
- P2P对等方式:不区分服务请求方和提供方
- 通信方式:
- 核心部分:路由器是实现分组交换,其任务是 转发分组
- 接入方式:
- Modem(调制解调器)低速,不能同时打电话
- ISDN(一线通)低速,能同时打电话
- ADSL(超级一线通)高速,能同时打电话
- Cable Modem(电缆调制解调器)高速,电视,数据,电话
- 局域网(专线)高速,高价
- 边缘部分:连接到因特网是哪个的主机,端系统
计算机网络分类
- 从 网络传输技术
- 广播式网络(广播通信信道对应)
- 点对点式网络(点对点式网络)
- 从 网络拓扑结构
- 星型
- 总线型
- 环形
- 网状
- 从 网络覆盖范围
- 局域网(LAN)
- 广域网(WAN)
- 城域网(MAN)
- 个域网(PAN)
- 从组成
- 通信子网
- 资源子网
性能指标
- 数据率
- 带宽:一般指数字信道能传输的最大数据率, K = 2 10 = 1024 , M = 2 20 , G = 2 30 , T = 2 40 K=2^{10}=1024, M=2^{20} ,G=2^{30} , T=2^{40} K=210=1024,M=220,G=230,T=240, 宽带的信号密度比窄带高。
- 吞吐量;单位时间通过某个网络(或信道,接口)的数据量
- 时延: 发 送 时 延 + 传 播 时 延 + 处 理 时 延 + 排 队 时 延 发送时延+传播时延+处理时延+排队时延 发送时延+传播时延+处理时延+排队时延
- 时延带宽积
- 往返时间RTT(网络层拥塞控制使用)
- 利用率:过低浪费网络,过高网络拥塞
其他概念
- 协议:控制两个对等实体进行通信的规则的集合
- 协议的三要素:语法、语义、同步
物理层(解决传输介质问题)
物理层基本问题树
- 物理介质选择问题:传输媒体(导向性、非导向性)
- 数字信息传输问题:调制技术——调幅、调频、调相
- 性能分析问题:奈奎斯特定理、香农定理
物理层概念
- 机械特性
- 电气特性
- 功能特性
- 规程特性
传输方式
- 计算机上 并行传输
- 传输线上 串行传输
- 物理层完成传输方式的转换
连接方式
- 点——点
- 多点连接
- 广播连接
数字通信基础(性能分析问题)
基带信号
- 未经过调制的数字信号,可以进行编码
- 基带信号直接传输叫基带传输
频带信号
- 基带信号经过调制
- 传输频带信号,又叫宽带传输
PCM
- 将模拟数据转换为数字信号
数字信号编码
- 不归零码(NRZ)
- 0,1分别用两种电平表示
- 存在发送方和接收方的同步问题
- 曼彻斯特编码
- 电压 高 → 低 = 0 ; 低 → 高 = 1 高\rightarrow低=0;低\rightarrow高=1 高→低=0;低→高=1,亦称自同步码
- 缺点:需要双倍传输带宽(信号速率是数据速率的2倍)
- 差分曼彻斯特编码
- 有跳变表示 0;
- 无跳变表示 1;
- DTE 数据终端设备
- DCE 数据通信设备
通信性能参数
- 数据速率和码元速率
- 波特率 B B B 单位:波特(baud)
- 电压级数 V V V
- 数据率 C = B lg V C=B\lg{V} C=BlgV
- 一个信道,其最高码元传输速率 6000 B a u d 6000Baud 6000Baud,一个码元携带 3 b i t 3bit 3bit 信息,则最高信息传输速率为 18000 b i t / s 18000bit/s 18000bit/s。
- 信道容量
- 信道最大数据率
- 信噪比 S / N S/N S/N
- S——信号功率
- N——噪声功率,单位 10 l g C 10lgC 10lgC,分贝(dB)
- 信 噪 比 = 10 × l g ( S / N ) 信噪比= 10\times lg(S/N) 信噪比=10×lg(S/N)
- 信道带宽
- 可用频率范围, 信 道 带 宽 = F m a x − F m i n 信道带宽 = F_{max}-F_{min} 信道带宽=Fmax−Fmin
信道容量
- 奈奎斯特定理(无噪声理想信道)
- 无噪声信道 最 高 码 元 速 率 = 2 W ( B a u d ) , W 是 信 道 带 宽 ( H z ) 最高码元速率= 2W(Baud), W 是信道带宽(Hz) 最高码元速率=2W(Baud),W是信道带宽(Hz)
- 最高数据率 C = 2 W × l o g 2 L C=2W\times log_{2}L C=2W×log2L
- 香农定理 (有噪声信道)
- C = W × l o g 2 ( 1 + S / N ) C=W\times log_{2}(1+S/N) C=W×log2(1+S/N)
- W : 带 宽 ; S / N 信 噪 比 ; W:带宽;S/N信噪比; W:带宽;S/N信噪比;
- 香农定理表明 信道的带宽和信道的信噪比决定了信道的极限传输速率
传输媒体(物理介质选择问题)
双绞线
- UTP 非屏蔽双绞线
- STP 屏蔽双绞线
同轴电缆
光纤
- 多模光纤
- 单模光纤
磁介质
电力线
信道复用技术
- FDM频分复用
- TDM时分复用
- STDM统计时分复用
- WDM波分复用
- CDM码分复用,又称码分多址CDMA
数字传输系统(数字信息传输问题)
PCM,将模拟信号转化为数字信号的信号编码,数字传输系统
- 旧PCM
- T-标准(24路),北美,日本
- E-标准(30路)欧,中,南美
- T1载波
- 24路话音多路复用,一个采样周期 125 μ s 125\mu s 125μs内对24路话音采样,每个信道在输出流中插入8bit,7bit数据,1bit控制,即每秒采样8000次,每样7bit数据,数据传输率 56000 b i t / s 56000bit/s 56000bit/s
- 每路话音8bit,共192bit,再1bit分帧,即没采样周期产生193bit,总数据率就是 1.544 M b / s 1.544Mb/s 1.544Mb/s.
- T载波由最下面的T1载波层层时分复用形成T2载波,T3载波。
- 最 大 传 输 速 率 = 位 数 / 帧 ∗ 采 样 频 率 = ( 1 + 8 ∗ 24 ) × 8000 = 1.544 M b p s 最大传输速率=位数/帧*采样频率=(1+8*24)\times 8000=1.544Mbps 最大传输速率=位数/帧∗采样频率=(1+8∗24)×8000=1.544Mbps
- E1载波
- 最 大 传 输 速 率 = 位 数 / 帧 ∗ 采 样 频 率 = ( 8 + 9 + 8 ∗ 24 ) × 8000 = 2.048 M b p s 最大传输速率=位数/帧*采样频率=(8+9+8*24)\times 8000=2.048Mbps 最大传输速率=位数/帧∗采样频率=(8+9+8∗24)×8000=2.048Mbps
- 新PCM 实现同步传输
- SONET——同步光纤网络
- OC——光载波
数据链路层(解决相邻传输问题)
数据链路层基本问题
- 信道问题(拓扑问题)
- 点对点信道
- 广播信道(MAC子层)
- 地址问题
- MAC地址,6字节,出厂固化ROM
- 随机分配,由管理员分配,在 令牌环网中
- 数据封装问题——成帧格式
- 开始结束、标志
- 通信地址
- 数据及编码
- 递交对象
- 流量控制——发送者、接受者能力不对等问题
- 出错处理
- 服务质量
数据封装问题
主要目标:确定帧头帧尾
- 物理层编码违例法
- 原理:使用非数据编码信号来分析帧的边界
- 字符计数法
- 原理:在头部中的一个域指定该帧中的字符数。但会出现误差累计效应
- 字节填充法
- 使用特殊字符作为帧的开始和结束标志,转义字符解决负载中出现特殊字符的问题
- 位填充法
- 帧开始和结束都有一个特殊位模式01111110
- 当负载中出现连续5个位“1”时,自动填充一位0;
出错处理
- 纠错
- 包含m个数据位和r个校验位的n位单元,称n位码字( n = m + r n=m+r n=m+r)
- 检错
- 奇偶校验
- 校验和:16bit字,反码算术运算求和,再取反码
- 循环冗余校验CRC
- 不作为
循环冗余校验CRC 重点
CRC运算方法
- Step1
选择生成多项式 G ( x ) , r 阶 多 项 式 G(x),r阶多项式 G(x),r阶多项式,例 G ( x ) = x 4 + x + 1 G(x) = x^4 + x + 1 G(x)=x4+x+1,其二进制表示为 10011 10011 10011,r阶多项式需要r+1个位来表示。 - 在数据末尾添加r个0,形成多项式 x r M ( x ) x^rM(x) xrM(x)
- 求余数(以2为模的除法)
X r M ( x ) / G ( x ) X^rM(x)/G(x) XrM(x)/G(x) - 生成编码数据
T ( x ) = x r M ( x ) − X r M ( x ) / G ( x ) T(x)=x^rM(x)-X^rM(x)/G(x) T(x)=xrM(x)−XrM(x)/G(x) - 接收方检测
T ( x ) / G ( x ) = = 0 ? T(x)/G(x)==0? T(x)/G(x)==0?
检错能力
- 所有单bit错
- 所有离散的2bit错
- 全部奇数个错
- 长度小于等于 r位的突发错(r是生成多项式的阶)
- 以 1 − 1 2 r − 1 1-\frac{1}{2^r-1} 1−2r−11概率检查长度r+1位突发错误
服务质量 及 流量控制
- 问题:发送方的速度超出了接收方接受帧的速度
- 处理方法
- 基于反馈的流控制:定义规则,规范发送者发送时机。
- 基于速率的流控制:限制发送方发送速率
基本数据链路协议
第一个协议
- 单工
- 信道传输速度极快
- 理想信道不出错
- 通信能力无穷
第二个协议: 简单停-等协议
- 单工
- 信道传输速度极快
- 理想信道不出错
- 通信能力无穷(接受者能力有限)即进行基于反馈的流控制
原理
收到数据后,向发送方发送反馈帧。
第三个协议: 流量控制+超时重传
- 单工
- 信道传输速度极快
- 理想信道不出错(数据传输过程中出现 数据位错误或数据丢失)
- 通信能力无穷
原理
- PAR 支持重传的的肯定确认协议
- ARQ 自动重复请求协议
- 超时重传(数据帧丢失造成数据丢失)
- 编序列号(反馈帧丢失造成数据重发)
第四个协议:流量控制+超时重传+1位滑动窗口协议
- 单工
- 信道传输速度极快
- 理想信道不出错(数据传输过程中出现 数据位错误或数据丢失)
- 通信能力无穷
原理
- 一条线路+2条逻辑信道+(2单工协议+捎带确认技术)=双工协议
- 数据帧和确认帧使用同一种格式(捎带确认技术)
- 收到数据帧后,等待一段儿时间,发送独立确认帧
- 管道化技术(滑动窗口协议)
- 窗口内的帧允许发送
- 每收到一个确认帧,窗口前移一个帧位
- 窗口大小 n n n:信道带宽$ b~~bit/s , 帧 长 ,帧长 ,帧长m~bit , 传 播 时 延 ,传播时延 ,传播时延\tau ~s , 双 向 传 播 时 延 ,双向传播时延 ,双向传播时延r=2\tau 。 发 送 完 窗 口 中 。发送完窗口中 。发送完窗口中n 帧 需 要 用 时 帧需要用时 帧需要用时t_1=(m*n)/b $,第一帧确认需要用时 t 2 = m / b + r t_2=m/b+r t2=m/b+r,理想状态下:
( m ∗ n ) / b = m / b + r ⇒ n = 1 + 2 τ b / m (m*n)/b=m/b+r\Rightarrow n=1+2\tau b/m (m∗n)/b=m/b+r⇒n=1+2τb/m
τ b \tau b τb即时延带宽积
S W = 1 + 2 τ b m SW=1+\frac{2\tau b}{m} SW=1+m2τb
第五个协议:流量控制+管道技术+回退n帧重传技术
- 回退n帧解决帧流中单个或多个帧出错的问题
- 管道技术即滑动窗口协议
- 回退n帧法:接收方丢弃所有丢失帧后续的帧,并且不为丢弃的帧发送确认帧
第六个协议:流量控制+管道技术+选择性重传技术
- 给所有正确接收的帧发送确认帧,给检查到错误的帧发送否定的确认
选择性重传中窗口与序号问题
W ≤ M A X _ S E Q + 1 2 W\leq \frac{MAX\_SEQ+1}{2} W≤2MAX_SEQ+1
- 若窗口值为7,则序列号最大值至少要为13
- 序列号要是窗口大小的2倍-1,一般取二倍于窗口大小
- 累积确认:收到多个帧发回1个确认 Ack=下一个期望收到的帧序号
滑动窗口总结
- 协议4——1bit窗口协议
- 发送窗口为1,接受窗口为1
- 协议简单
- 协议5——回退n帧
- 发送窗口 > 1 >1 >1,接收窗口 = 1 =1 =1
- 发送方需要较大缓冲区,以便重传
- 适用于信道出错率较少的情况
- 协议6——选择性重传
- 发送窗口 > 1 >1 >1,接收窗口 > 1 >1 >1
- 接收方也需要较大缓冲区,以便按正确顺序将分组提交
- 适用于信道质量不好的地方
介质访问控制问题(防止冲突,分配使用权)
信道划分介质访问控制(静态划分)
- 频分多路复用
- 时分多路复用
- 波分多路复用
- 码分多路复用
点对点链路的协议
- HDLC (High Level Data Link Control)
- 实现可靠传输
- 协议复杂
- PPP (Point to Point Protcol)
- 使用的最多的数据链路层协议
- PPPoE(PPP over Etherent)
- 用户到ISP的链路使用PPP协议
- PPP支持
- SONET链路
- Ethernet链路
- ADSL链路
- PPP协议组成
- NCP(网络层)
- LCP(数据链路层)
- 用户拨号接入ISP时,PC向路由器发出LCP分组(封装成多个PPP帧)
- NCP给该主机分配临时IP地址,PC接入网络
- 通信完毕,NCP释放网络层连接,收回地址,LCP释放数据链路层连接,最后释放的物理层连接
- PPP填充方案
- SONET/SDH链路同步传输,使用比特填充
随机访问介质访问控制(动态划分,随机接入)
ALOHA协议
纯ALOHA协议
- who 有用户要发数据时就让其传输
- when 有用户要发数据时就让他们传输
- collision 会发生冲突
- how 发送方监听信道,发现毁坏的帧,等待随机时间后重传
时槽ALOHA协议
- who 时槽开始时所有用户都可以发送
- when 时槽开始时可以发送
- collision 会发生冲突
- how 发送方监听信道,发现毁坏的帧,等待随机时间后重传
CSMA(载波侦听多路访问)
- 1-坚持CSMA
- 当发送站监听到信道空闲时,立即发送数据,否则继续监听
- p-坚持CSMA
- 当发送站监听到信道空闲时,以概率p发送数据,以概率1-p延迟随机时间后重新监听
- 非坚持CSMA
- 当发送站监听一旦信道空闲时,立即发送数据,否则,延迟随机时间后重新监听
CSMA/CD(冲突检测)
- 发前先听
- 空闲发送
- 边发边听
- 冲突停发
- 随机重发(二进制指数退避算法随机重发)
检测冲突最长的时间为 2 τ 2\tau 2τ(冲突窗口,争用期)。
以太网的争用期长度为 51.2 μ s 51.2\mu s 51.2μs,同时规定其以太网帧长为 64 B y t e s 64~Bytes 64 Bytes
只有半双工模式下才会使用 冲突检测CSMA/CD。同一个逻辑信道,既发又收,发了部分数据后却收到了数据,才知道碰撞了。
二进制指数退避算法:第i次冲突后,等待随机时间选择 0 → ( 2 i − 1 ) 0\rightarrow (2^i-1) 0→(2i−1)
CSMA/CA 冲突避免
CSMA/CA协议主要用于无线局域网,在CSMA基础上增加了冲突避免。**每发送一个帧,等待一段时间(帧间间隔)检查确认反馈帧。收到确认,无冲突;超时,冲突,重发。
轮询访问介质访问控制(动态划分,受控接入)
- 令牌环局域网,PC要获得令牌才能发送数据
局域网
- 主要介质访问控制方法
- CSMA/CD,令牌总线,令牌环
- IEEE802标准定义的局域网参考模型只对应与OSI模型的数据链路层和物理层,并且将数据链路层拆分为两个子层:
- 逻辑链路子层LLC
- 媒体接入子层MAC
- 与接入到传输媒体有关的内容都放在MAC子层,LLC子层与传输媒体无关
- LLC作用已经不大
以太网
- 802.3标准(基于CSMA/CD的局域网的MAC层和物理层)
- 采用总线型拓扑,使用CSMA/CD对总线进行访问控制
- -采用无连接工作方式
- 不对发送的数据帧编号,也不要求对发送方发送确认
- 以太网提供不可靠的服务,尽最大努力交付,差错纠正由TCP完成
以太网的MAC帧
- 使用 6 B , 48 b i t 6B,48bit 6B,48bit地址标识主机
- 单站帧目的MAC地址:前 8 b i t 8bit 8bit 最后一位为 0 0 0,即单站地址
- 组播帧目的MAC地址:前 8 b i t 8bit 8bit 最后一位为 1 1 1,其余不全为 1 1 1,组播地址,发给一组工作站
- 广播帧目的MAC地址全 1 1 1;
以太网传输介质
- 传统以太网
10 M b i t / s 10Mbit/s 10Mbit/s基带信号曼彻斯特编码- 10Base5
- 10Base2
- 10Base-T
- 10Base-F
最小帧长 512 b i t , 64 B 512bit,64B 512bit,64B,规定最小发送时延 51.2 μ s 51.2\mu s 51.2μs,帧间隔 9.6 μ s 9.6\mu s 9.6μs
- 高速以太网
- 100Base-T: 100 M b i t / s 100Mbit/s 100Mbit/s基带信号
为了保持64B的最小帧长,规定最小发送时延 5.12 μ s 5.12\mu s 5.12μs,帧间隔 0.96 μ s 0.96\mu s 0.96μs - Gbit以太网(千兆以太网):全双工+半双工;全双工不需要CSMA/CD
使用“载荷延伸”和“分组突发” - 10Gbit以太网:只工作在全双工模式,不需要CSMA/CD,只使用光纤。
- 100Base-T: 100 M b i t / s 100Mbit/s 100Mbit/s基带信号
数据链路层设备
设备名称 | OSI层 | 隔离冲突域 | 隔离广播域 |
---|---|---|---|
集线器 | 物理层 | × \times × | × \times × |
中继器 | 物理层 | × \times × | × \times × |
交换机 | 数据链路层 | \checkmark | × \times × |
网桥 | 数据链路层 | \checkmark | × \times × |
路由器 | 网络层 | \checkmark | \checkmark |
无线局域网
802.11标准
物理层实现方法
- 直接序列扩频DSSS
- 正交频分复用OFDM
- MIMO(多输入多输出)
- 跳频扩频FHSS(很少用)
- 红外线IR(很少用)
802.11的MAC层
提供两种操作模式
- DCF 分布协调功能,竞争
- PCF 点协调功能,无竞争
MAC层通过协调功能来确定在基本 服 务 集 B S S 服务集BSS 服务集BSS中移动站在什么时候能发送数据或者接受数据。 - 接入方法
- DCF CSMA/CA(强制使用)
- 采用随机退避避免冲突
- 接收端要发送确认(除广播)
- DCF /RTS/CTS(可选)
- 对信道进行预约来解决隐蔽站和暴露站的问题
- PCF (可选的)
- AP轮询各终端
- DCF CSMA/CA(强制使用)
- DCF子层和PCF子层组成点功能协调子层
- PCF 和DCF协同工作
- 使用帧间间隔 I F S IFS IFS,所有站需要在完成发送后,等待IFS时间间隔才能发送下一帧。
- 帧间间隔取决于该站欲发送的帧类型
- 分类
- SIFS 短帧间间隔
- PIFS 点协调功能帧间间隔
- PIFS的长度是SIFS加一个时隙长度
- 时隙长度指:在一个BSS内,当某个站在一个时隙开始时接入媒体,那么在下一个时隙开始时,其他站都能检测到信道忙态
- DIFS 分布协调功能帧间间隔(最长的IFS),在DCF方式中发送数据帧和管理帧。长度比PIFS再多一个时隙长度。
802.11的MAC协议
- 解决冲突的方法
- CSMA/CA冲突避免
- 信道忙时减少发送
- 信道忙的标志
- 听到忙
- 有重传
- 有多帧要发送
- 信道忙的标志
- 信道忙时减少发送
- 动态调整传输速率
- 当帧丢失多时,降低速率
- 当帧丢失少时,增加速率
- 发送短帧
- 将帧分成更小单元,称为段
- CSMA/CA冲突避免
- CSMA/CA协议原理
- 发帧前先检测信道
- 源站发第一个MAC帧时,若检测到信道空闲,等待DIFS间隔后发送
- 信道忙,非第一个帧,退避
- 源站发送了自己的数据帧——没有其他高优先级的帧
- 目的站正确收到帧,经过SIFS时间发送ACK
- 超时重传,若干次失败,放弃发送
- 信道空闲还要等待是因为可能有其他站的高优先级的帧要发送
- 信道忙或非第一个帧时,二进制退避算法。第i次退避就在 { 0 , 1 , … … , 2 2 + i − 1 } \{0,1,……,2^{2+i}-1\} {0,1,……,22+i−1}时隙中随机选择一个,即争用窗口
- 退避计时器
- 发帧前先检测信道
- 虚拟载波侦听:使用网络分配向量NAV,源站广播自己的占用信道的时长
- CSMA/CA算法总结
- 站点发送它的第一个 MAC 帧时,若检测到信道空闲,则在等待DIFS时间可发送帧
- 否则,执行退避算法
- 检测到信道忙,冻结退避计时器
- 检测到信道空闲,退避计时器开始倒计时
- 退避计时器时间归零,开始发送数据帧,等待确认
- 收到确认,成功
- 未收到确认,执行退避算法重传帧
网络层(解决非相邻传输问题)
网络层问题树
- 服务形式问题:面向连接还是非连接
- 网络如何互连?——网络互连问题
- 数据封装问题
- 地址问题
- 出错处理问题
- 路径选择问题:如何找到路径?路径最优?故障调整?
- 通信需求问题:单播、广播、组播
- 拥塞控制问题
- 服务质量问题
服务类型
网络层可同时提供
- 面向连接的服务——虚电路服务
- 面向无连接的服务——数据报服务
虚电路服务(面向连接的服务)
- 可靠性由网络负责
- 发送数据前,建立固定路径
- 所有分组通过同一路径传播
- 路径上一个路由器出错,传输失败
- 服务质量高
- 拥塞控制容易实现
数据报服务(面向无连接的服务)
- 可靠通信由传输层TCP来保证
网络互连基本问题
- 网络层是通信子网的最高层,对上层屏蔽底层细节
- 向上层提供统一的数据报格式
- 实现异种网络互连
如何互连
- 路由器、网桥
如何互通
- 目标是什么——地址问题(IP地址)
- 面对岔路口如何选择?——路径问题
- 错了咋办——出错处理
- 碰到意外——差错控制(ICMP)
IP数据报格式
- 总长度,IP首部和数据之和的长度,IP数据报的长度不能超过MTU。
- 头部长度20B
- 采用首部校验和方式校验
MTU和数据报分段
- 数据长度大于网络的MTU时要分段
- 每个分片都要被构造成一个数据报
- 数据报分片被分别封装成帧
- 已被分片的数据可能会被再次分片
- 分片大小应该是8字节的倍数
- 目标主机进行分段重组
IP地址
分类IP地址
特殊IP地址
- A:网络号8bit,第一位为0
- B:网络号16bit,前两位为10
- C:网络号24bit,前三位为110
- D:组播地址,前四位为1110
- E:保留地址,前五位为11110
特殊IP地址
- “0”地址——全0地址用来标识自己
- 网络号全0——表示本地网络上的特定主机
- 主机号全0——表示某网络地址
- 定向广播——主机号部分为全“1”(可跨路由器)
- 受限广播——32位全1地址(本地广播)(路由器不转发)
- 回送地址——首字节为127,(不会再网络上出现)
私网地址:
- A类地址:10.0.0.0/8
- B类地址:172.16.0.0/12
- C类地址:192.168.0.0/16
- DHCP失效时使用:169.254.0.0/16
划分子网
- 在外部网络号的基础上,在内部划分子网,延长网络号长度
- 划分子网只是将IP地址的本地部分进行再划分,不改变IP地址的因特网部分
- 使用子网掩码来寻找网络号部分
构造超网CIDR(无类型域间路由选择)
解决路由表膨胀和IP地址利用率低的问题
- 使用任意长度的网络号
- 其网络号长度由掩码表示
- CIDR的路由算法遵循最长匹配原则
- 使用二叉树路由表
网络地址转换NAT
- Internet所有路由器对目的地址为专用地址的数据报一律不进行转发。
- 采用专用地址的网络成为专用网
不同专用网内部主机之间通信(虚拟专用网VPN)
- 使用隧道技术
专用网主机和外网主机之间通信(网络地址转换NAT)
- 提供NAT的设备至少要有一个外部全球地址IPG
- 所有使用本地地址的主机在和外界通信时都要在NAT路由器上将其本地地址转换为IPG才能因特网连接
- NAT分类
- 静态NAT——一对一
- 动态NAT——一对多,使用地址池
- 端口映射NAT(PAT)——内部IP转换为外部IPG+Port
地址解析
- 网络层及以上使用IP地址,链路层及以下使用硬件地址
- 使用ARP协议实现IP和MAC地址的转换。
出错处理
ICMP协议
- 出错报告+控制+测试
- ICMP协议是IP软件的一个模块
- 功能不独立,只是IP的补充
- ICMP报文分为
- 差错报告
- 查询
路径问题
- 依据路由表寻找路径
路由协议和算法
- 协议——生成路由表
- 算法——交换路由信息
路由算法分类
- 静态路由(非自适应,管理员手动配置)
- 动态路由(自适应)
分层次的路由选择
- Internet规模很大,很多地方不愿公开网络布局
- 解决:划分自治系统AS
因特网上的两大路由协议
内部网关协议IGP(在一个AS内部使用)
- RIP
- 距离矢量算法
- 以跳数为度量值,交换路由表,计算最短路由,更新路由表
- 跳数是源站到目的站间经过的路由数目
- < 目 的 网 络 , 网 络 掩 码 , 距 离 ( 跳 数 h o p , 下 一 站 ) > <目的网络,网络掩码,距离(跳数hop,下一站)> <目的网络,网络掩码,距离(跳数hop,下一站)>
- UDP协议封装,520端口
- 无穷计数问题
- 好消息反应快
- 坏消息反应慢
- OSPF
- 分布式的链路状态协议
- 网络拓扑图——链路状态数据库
- 使用可靠的洪泛法
- 泛洪算法,向本自治域内所有路由器发送信息
- 交换链路状态
- 只要有一个路由器状态变化,其进行洪泛更新
- 划分区域:洪泛只在本区域内进行
外部网关协议EGP(在AS之间使用的路由协议)
- BGP-4协议
- 基于路径向量算法
- 关注是否可达,而非最佳
- 每个AS有一个“BGP发言人”
- 不同AS的“BGP发言人建立TCP连接,彼此交换路由信息”
拥塞控制
- 开环:不让问题发生
- 确定何时接受新的流量
- 确定何时丢弃分组以及哪些分组
- 代表:虚电路准入控制
- 闭环:反馈环路思想
- 监视系统,检测何时何地发生拥塞
- 将拥塞信息传递到采取行动的地方
- 调整系统运行
- 代表:数据报子网拥塞控制
数据报子网中的拥塞控制
- 警告位
- 抑制分组
- 逐条抑制分组
- 负载丢弃
传输层(可靠性问题——保障数据传输的可靠性)
传输层为应用提供“端到端”控制
传输层问题树
- 端到端的传输服务标识,需要进程标识
- 端到端的服务质量问题,网络层尽最大努力交付,不保证可靠性
进程标识(传输服务标识问题)
端口Port用于标识应用层的进程
- 端口号 16 b i t 16bit 16bit
- TCP和UDP各自的端口号独立
- 端口号的分配
- 全局分配:集中式统一指派
- 本地分配:动态分配
- 常用端口号
- FTP:21
- telenet:23
- http:80
- dns:53
- tftp:69
- snmp:161
- RIP:520
TCP/IP通信五要素
- 目的IP
- 目的端口
- 源IP
- 源端口
- 协议
UDP(用户数据报协议UDP)
特点
- 无连接
- 不使用拥塞控制,不保证可靠交付(除了提供检验和机制)
- 面向报文(PDU:用户数据报)
- 传输效率高
- 适用于传输量较少情况
- 一对一,一对多,多对一,多对多
UDP首部
- 源端口
- 目的端口
- 长度
- 校验和
UDP校验和计算
- 计算范围:伪首部+UDP首部+UDP数据
- 计算方法:与IP首部校验和计算方法相同
- 伪首部:验证数据报是否已正确到达终点;即检查端口,还检查IP地址
TCP
特点
- 面向连接
- 每条连接只能有两个端点endpoint
- 保证可靠交付
- 全双工通信
- PDU:报文段TCP Segment
- 面向字节流
TCP连接标识
套接字 TCP连接的端点
T C P 连 接 = { s o c k e t 1 , s o c k e t 2 } = { ( I P 1 , p o r t 1 ) , ( I P 2 , p o r t 2 ) } TCP连接=\{socket_1,socket_2\}=\{(IP_1,port_1),(IP_2,port_2)\} TCP连接={socket1,socket2}={(IP1,port1),(IP2,port2)}
TCP面向字节流
- TCP连接是一条虚连接
- TCP不关心应用进程一次发多长报文到TCP缓存
- TCP根据对方给出的窗口值和当前网络拥塞程度来决定一个报文段包含多少字节(UDP发送的报文长度由应用进程给出)
- TCP可把太长的数据块划分为短一些再传送,也可累积足够多的字节后再构成报文段发送出去
TCP可靠传输基本问题
报文段格式
- 序号字段——本报文段所发送的数据的第一个字节在数据流中的序号
- 确认号ack=期望收到对方下一个报文段的数据的第一个字节的序号
- 数据偏移——首部长度:指出报文段数据起始处距TCP报文段的起始处有多远,以4字节为单位,20~60字节
- 紧急指针——URG=1时有效,表明报文段中有紧急数据,提高优先级
- flags
- URG——紧急比特:当 URG = 1 时,表明紧急指针字段有效。
- ACK——确认比特:只有当 ACK = 1 时确认号字段才有效。当 ACK =0 时,确认号无效。
- PSH——推送比特:尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付
- RST——复位比特:当 RST = 1 时,表明 TCP 连接中出现严重差错,必须释放连接,然后再重新建立运输连接。
- SYN——同步比特:表示这是一个连接请求或连接接受报文
- FIN——终止比特:释放一个连接
- 校验和——校验伪首部+TCP首部+数据
- MSS——最大报文段数据段长度
- MSS是一个报文的最大长度
- 窗口是所能发送的数据总数,可以是多个报文段。每个报文段都需满足MSS,数据总和不能超过窗口大小。
连接建立与关闭
- 连接方式
- C/S客户服务方式
- 主动发起连接建立的应用进程叫客户
- 被动等待连接的叫服务器
- 连接三个阶段
- 建立连接
- 数据传输
- 释放连接
三次握手——建立连接
- 问题:两次握手不能解决建立连接的延迟重复问题,用三次握手解决。
- C:SYN=1,seq=x;客户端主动打开连接,进入SYN-SENT;服务端处于LISTEN
- S:SYN=1,ACK=1,seq=y,ack=x+1;服务端进入SYN-RCVD
- C:ACK=1,seq=x+1,ack=y+1,客户端进入ESSTAB-LISHED;
- S:进入ESTAB-LISHED。数据传送
四次挥手——释放连接
- C:FIN=1,seq=u,客户端进入FIN-WAIT-1;
- S:ACK=1,seq=v,ack=u+1,服务端进入CLOSE-WAIT。继续未传送完的数据,客户端进入FIN-WAIT-2;
- S:FIN=1,ACK=1,seq=w,ack=u+1,服务端进入LAST-ACK
- C:ACK=1,seq=u+1,ack=w+1;客户端进入TIME-WAIT,经过2MSL时间后关闭连接;服务端关闭连接。
- 2MSL——最长报文寿命,确保客户端发送的最后一个ACK报文段能够到达服务端
可靠性机制
协议实现
- 确认机制
- 重传机制
- 序号
- 停止等待协议
- 确认丢失(丢弃重复收到的重发分组,重传确认)、确认迟到(丢弃重复收到的重传分组,重传确认,发送端收下迟到的确认,什么也不做)
此种可靠传输协议称为自动重传请求ARQ - 解决停等协议中信道利用率低下
- 连续ARQ协议(以字节为单位的滑动窗口)
- 累积确认
- 回退n帧
- 选择性重传
超时重传时间的选择
自适应重传算法
- R T T RTT RTT——往返时间
- R T T s RTT_s RTTs——加权平均往返时间
- R T T D RTT_D RTTD——RTT的偏差的加权平均值
- R T O RTO RTO——超时重传时间
- T C P 记 录 每 个 报 文 段 往 返 时 间 R T T TCP记录每个报文段往返时间~~RTT TCP记录每个报文段往返时间 RTT
- T C P 保 留 R T T 的 一 个 加 权 平 均 往 返 时 间 R T T S TCP保留~~RTT的一个加权平均往返时间~~RTT_S TCP保留 RTT的一个加权平均往返时间 RTTS
- 每测量一个新的RTT,就重新计算 R T T S , R T T D RTT_S,RTT_D RTTS,RTTD
R T T S = ( 1 − α ) × ( 旧 的 R T T S ) + α × ( 新 的 R T T ) ; α = 0.25 RTT_S=(1-\alpha)\times (旧的~RTT_S)+\alpha\times(新的~RTT);\alpha = 0.25 RTTS=(1−α)×(旧的 RTTS)+α×(新的 RTT);α=0.25
R T T D = ( 1 − β ) × ( 旧 的 R T T D ) + β × ∣ R T T S − 新 的 R T T ∣ ; β = 0.25 RTT_D=(1-\beta)\times (旧的~RTT_D)+\beta\times|RTT_S-新的~RTT|;\beta = 0.25 RTTD=(1−β)×(旧的 RTTD)+β×∣RTTS−新的 RTT∣;β=0.25 - R T O = R T T S + 4 × R T T D RTO=RTT_S+4\times RTT_D RTO=RTTS+4×RTTD
流量控制
TCP滑动窗口机制
- TCP连接两端都必须设置两个窗口,一个发送窗口,一个接收窗口,一方发送窗口要和另一方接收窗口相匹配
- TCP采用可变发送窗口方式进行流量控制
- 0窗口通告的解除用非0窗口通告触发
- 非0窗口通告丢失造成的死锁使用持续计时器,定期发送窗口探查报文段
- TCP指数退避策略,触发为0窗口
- 接收方用0窗口通告停止所有传输,但紧急数据和探查报文除外
拥塞控制
拥塞窗口 控制发送窗口大小
发 送 窗 口 = m i n ( 通 知 窗 口 r w n d , 拥 塞 窗 口 c w n d ) 发送窗口=min(通知窗口rwnd,拥塞窗口cwnd) 发送窗口=min(通知窗口rwnd,拥塞窗口cwnd)
- 通知窗口,来自接收端的流量控制——接受端根据接受能力得到的窗口值
- 拥塞窗口,来自发送端的流量控制——发送端根据拥塞状况得出窗口值
TCP拥塞控制算法
慢开始
- 拥塞窗口 cwnd 初始化为1个报文段
- 每收到一个对新报文段的确认ACK,拥塞窗口变2倍
- cwnd指数级增长(1,4,8……)
- 慢启动门限(ssthresh),设置初始窗口指数增长上限,当 c w n d < s s t h r e s h cwnd<ssthresh cwnd<ssthresh 时,使用慢开始算法
- 毎经过一个传输轮次,拥塞窗口cwnd加倍,一个传输轮次所经历的时间其实就是往返时间RTT
拥塞避免
- 加法增大:毎经过一个传输轮次,拥塞窗口+1,而非加倍:
- 乘法减小:
- 出现拥塞,将慢启动门限ssthresh设置为出现拥塞时的cwnd值的一半儿
- 拥塞窗口cwnd重新设置为1
- 初始状态:拥塞窗口cwnd=1,ssthresh=12;
- cwnd执行慢开始,指数增长
- 当cwnd=12时,拥塞避免,加法增大
- cwnd=24,发生拥塞,乘法减小:cwnd=1,ssthresh=12
- 重新执行慢开始
解决因报文段丢失造成的误认为拥塞状况
快重传
- 接收端每收到一个失序报文要立即发送重复ACK(最初的可靠性要求:收到失序报文可以不作为“确认迟到、确认丢失”)
- 发送方只要收到连续三个重复的ACK就立即重传——不用等重传计时器到时
快恢复
- 连续收到3个重复的确认就转入拥塞避免,cwnd从新的ssthresh开始加法增大
安全性分析
- 会话劫持
- 序列号机制
- TCP面向字节流
- 第 二 个 数 据 包 ( B → A ) 的 S E Q = 第 一 个 数 据 包 ( A → B ) 的 A C K ; 第二个数据包(B\rightarrow A)的SEQ= 第一个数据包(A\rightarrow B)的ACK; 第二个数据包(B→A)的SEQ=第一个数据包(A→B)的ACK;
- 第 二 个 数 据 包 ( B → A ) 的 A C K = 第 一 个 数 据 包 ( A → B ) 的 S E Q + 第 一 个 数 据 包 ( A → B ) 的 传 输 数 据 长 度 第二个数据包(B\rightarrow A)的ACK= 第一个数据包(A\rightarrow B)的SEQ +第一个数据包(A\rightarrow B)的传输数据长度 第二个数据包(B→A)的ACK=第一个数据包(A→B)的SEQ+第一个数据包(A→B)的传输数据长度
总结
- 基本问题:端到端的数据传输问题
- 数据源和目的地标识问题(端口)、通信5要素、多路复用和分解
- UDP协议及应用
- TCP:报文格式\TCP连接建立和关闭\确认机制-重传时间算法\流量控制算法\拥塞控制算法
应用层(解决端到端的资源共享问题)
问题
如何实现端到端的资源共享、信息交互
DNS
- 迭代解析
- 递归解析
迭代解析
- 主机向本地域名服务器查询
- 如果没有,本地域名服务器直接向根域名服务器查询
- 根域名服务器返回顶级域名服务器地址给本地域名服务器
- 本地域名服务器向顶级域名服务器查询
- 顶级域名服务器返回权限域名服务器地址
- 本地域名服务器向权限域名服务器查询
- 主机向本地域名服务器的查询采用
递归查询 - 本地域名服务器向根域名服务器的
查询采用迭代查询