- 1 概述
- 分层结构
- ISO OSI 七层模型
- 物理层 Physical Layer
- 单位: 比特(bit)
- 功能: 定义物理设备的电气、机械、功能和过程特性, 实现比特流的传输 #🕳 有坑
- 物理层关注的是比特流的传输,而不涉及具体的传输媒介(如光纤、铜线、无线电波等)。
- 传输媒介可以视作第 0 层,物理层在其之上工作。
- 数据链路层 Data Link Layer
- 单位: 帧(frame)
- 功能: 物理寻址、组帧、差错控制、点对点流量控制、数据重发和传输管理等
- 网络层 Network Layer
- 单位: 数据报(datagram)
- 功能: 对分组进行路由选择(支持无连接和面向连接 ),并实现整个网络的流量控制
- 传输层 Transport Layer
- 单位: 报文段(segment)
- 功能: 提供端到端的可靠传输(仅支持面向连接),实现端到端的流量控制、差错控制和数据重发等
- 会话层 Session Layer
- 功能: 建立、管理和终止会话连接(主机各进程之间), 实现会话检查点和恢复等
- 表示层 Presentation Layer
- 应用层 Application Layer
- 功能: 提供用户应用程序与网络的接口, 实现各种网络服务和应用
- 考点
- Please Do Not Teach Stupid People Anything
- L2/L3/L4 点对点/整个网络/端到端 流量控制
- TCP/IP 四层模型
- 物理层 Physics Layer
- 数据链路层 Network Interface Layer
- 负责在物理网络上传输数据帧,主要协议有以太网、PPP 等
- 网络层 Internet Layer
- 传输层 Transport Layer
- 提供端到端的通信服务,主要协议是 TCP 和 UDP
- 应用层 Application Layer
- 协议数据单元 PDU
- 网络设备
- 冲突域
- 广播域
- 设备类型
- 集线器 Hub / 中继器 Repeater
- 交换机 Switch / 网桥 Bridge
- 路由器 Router / 网关 Gateway
- 各层协议总结
- 网络协议要素
- 语法 Syntax
- 语义 Semantics
- 时序 Timing
- 应用层协议
- HTTP/HTTPS
- FTP
- 端口号: 20/21
- 20: 数据连接端口(仅主动模式使用)
- 21: 控制连接端口
- 依赖传输层协议: TCP
- 文件传输协议
- SMTP
- 端口号: 25
- 依赖传输层协议: TCP
- 简单邮件传输协议(用于发送邮件)
- POP3/IMAP
- 端口号: 110/143
- 依赖传输层协议: TCP
- 邮局协议3/互联网消息访问协议(用于接收邮件)
- DNS
- 端口号: 53
- 依赖传输层协议: UDP(部分TCP)
- 域名系统协议(将域名解析为IP地址)
- DHCP
- 端口号: 67/68
- 依赖传输层协议: UDP
- 动态主机配置协议(为主机分配IP地址)
- 传输层协议
- 网络层协议
- IP
- ICMP
- RIP/OSPF/BGP
- 路由选择协议
- RIP: 距离矢量路由协议
- OSPF: 链路状态路由协议
- BGP: 边界网关协议
- 基于TCP
- iBGP: 同一自治系统内
- eBGP: 不同自治系统间
- NAT
- 数据链路层协议
- ARP
- PPP
- 以太网协议
- IEEE 802.3标准
- 使用CSMA/CD介质访问控制方法
- 2 物理层
- 通信基础
- 通信基本概念
- 奈奎斯特定理和香农定理
- 编码和调制 #🤔 考前记
- (D 边) 差分曼彻斯特编码:编码取决于周期开始时有无电平跳变,中间有电平跳变
- (I 边) 反向非归零编码 (NRZI):编码取决于周期开始时有无电平跳变,中间无电平跳变
- 曼彻斯特编码:编码取决于周期中间的电平跳变,从高到低或从低到高
- 非归零编码(NRZ):编码取决于周期整个电平状态,位值 0 和 1 分别对应低电平和高电平
- 电路交换 报文交换 分组交换
- 数据报与虚电路
- 虚电路网络
- 在通信前建立连接, 传输数据时按顺序发送,传输结束后释放连接
- 每个分使用虚电路号标识连接
- 同一条虚电路上的分组按照同一路由转发, 保证顺序到达
- 虚电路无须预分配带宽
- 传输介质
- 物理层设备
- 3 链路层
- 链路层功能
- 组帧
- 差错控制
- ARQ 自动重传请求
- 设窗口序号字段为 m 比特,发送窗口大小为 Ws,接收窗口大小为 Wr,三种滑动窗口协议的参数配置如下:
- 停等协议 (SW):Ws=1,Wr=1,采用逐帧确认机制
- 后退 N 帧 (GBN):Ws=2m−1,Wr=1,采用累积确认机制
- 选择重传 (SR):Ws=2m−1,Wr=2m−1,采用选择确认机制
- 注:通常 Ws≥Wr
- 检错和纠错协议 #🤔 考前记
- 海明码
- 校验位个数 r 与数据位个数 k 的关系: 2r≥k+r+1
- 纠错 d 位,需要码距 2d+1 的编码
- 检错 d 位,需要码距 d+1 的编码
- 循环冗余校验 CRC
- 生成多项式: 预先约定的二进制多项式
- 发送端: 将数据多项式 D(x) 左移 r 位后除以生成多项式 G(x),余数 R(x) 作为 CRC 校验码附加在数据后面发送
- 接收端: 将接收到的数据多项式 T(x) 除以生成多项式 G(x),若余数为 0,则数据无误,否则数据有误
- 流量控制与可靠传输机制
- 介质访问控制
- CDMA 码分多址
- 若 A 的码片序列为 α1=(1,1,1,1)
- 接收
- 若从链路上收到序列 β1=(2,0,2,0), 则收到 A 发送的数据为 4α1⋅β1=4(1,1,1,1)⋅(2,0,2,0)=44=1
- 发送
- 若 A 要发送数据 −1, 则发送 −α1=(−1,−1,−1,−1)
- 若 A 要发送数据 1, 则发送 α1=(1,1,1,1)
- 所有信号源共同线性叠加
- CSMA 监听算法
- 非坚持型:信道忙则等待随机时间后重试
- 1-坚持型:一直坚持检测信道状态,直至检测到信道空闲后,立即发送该分组
- p-坚持型:一直检测信道的状态,在检测到信道空闲后,以概率 p 发送该分组
- 截断二进制指数退避算法
- CSMA/CD
- 每次从离散的整数集合 {0,1,…,(2k−1)} 中随机选择一个整数 c,重转推迟的时间为 cτ,其中 k 是重传次数,τ 是争用期;
- 当 c 达到 210−1 之后不再增加
- CSMA/CA
- 进行第 k 次退避时, 从整数集合 {0,1,…,(2k+2)−1} 中随机选择一个整数 c,重传推迟的时间为 cτ。
- 当c 达到 255, 即 26+2−1 之后不再增加。
- CSMA/CA
- 预约信道
- 发送方
- 等待 DIFS 时间后,发送 RTS 帧
- 收到 CTS 帧后,等待 SIFS 时间,发送数据帧
- 收到 ACK 帧后,等待 SIFS 时间,结束传输
- 接收方
- 收到 RTS 帧后,等待 SIFS 时间,发送 CTS 帧
- 收到数据帧后,等待 SIFS 时间,发送 ACK 帧
- CSMA/CA 协议中的 NAV 和 IFS 概念
-
APDIFSRTSSIFSCTSSIFSDATASIFSACKDIFS下一帧
- NAV: 网络分配向量,是一种虚拟的载波感知机制,用于指示无线信道在未来一段时间内将被占用,避免冲突。
- 收到 RTS 的站:从 RTS 结束直到 ACK 结束。
- 收到 CTS 的站:从 CTS 结束直到 ACK 结束。
- 收到 DATA 的站:从 DATA开始直到 ACK 结束。
- IFS: 帧间隔时间,是指在发送数据帧之前,发送方需要等待的一段时间,以确保信道空闲,减少冲突的可能性。
- SIFS: 短帧间隔时间,用于高优先级的控制帧和响应帧。
- DIFS: 分布式帧间隔时间,用于普通数据帧的发送 (发RTS 帧之前)。
- 3️⃣个地址
目,源,真
- 地址 1: 接收方/目的地址 (RA)
- 地址 2: 发送方/源地址 (TA)
- 地址 3: 可能是源地址 (SA) 或目的地址 (DA),取决于 Frame Control 字段中的To DS和From DS位
- 地址 4: 仅当帧在两个无线接入点之间传输时使用,表示原始的源地址 (SA) 或 目的地址 (DA)
- 局域网
- 广域网
- PPP 协议
- PPP 支持身份验证协议(如 PAP 和 CHAP),用于验证连接双方的身份。
- PPP 支持多种封装格式,允许在不同类型的物理链路上传输数据。
- PPP 不进行帧编号。
- PPP 没有确认机制(依赖应用层实现)。
- 数据链路层设备
- 4 网络层
- 网络层功能
- 路由算法
- IPV4
- IPV6
- 路由协议
- 不同自治系统的路由选择协议
- 自治系统内部
- OSPF(IP): 链路状态协议,基于 Dijkstra 算法,适用于大型网络,收敛速度快。
- RIP(UDP): 距离矢量协议,基于 Bellman-Ford 算法,适用于小型网络,收敛速度较慢。
- 坏消息传的慢: 收到两个来源关于同一个网络的汇报,一个可达一个不可达,可能需要多个周期才能收敛.
- 自治系统之间
- BGP(TCP): 路径矢量协议,基于路径向量算法,适用于大型网络,支持策略路由。
- EGP(IP): 边界网关协议,早期的自治系统间路由协议,现已被 BGP 取代。
- 路由表
- 若路由器直连网络,则路由表中该网络的下一跳地址为
/
- 若路由器不直连网络,则路由表中该网络的下一跳地址为下一个路由器的接口地址
- 路由表中目的网络地址为网络号
- 如有子网掩码,则分为网络号 + 掩码
- 如无子网掩码,则为 CIDR 表示法 + 掩码
- 路由聚合: 将多个连续的网络号合并为一个更大的网络号,减少路由表项数
- 即便几个网络无法组成满的网络 (有空隙),也可以聚合
- 最长前缀匹配原则: 路由器根据目的地址在路由表中查找时,选择与目的地址匹配最长的网络号对应的路由项进行转发。
- NAT
- 静态 NAT 配置 (静态端口映射)
- 对于需要对外公开的主机,需要将其私有 IP 地址和端口映射到公共 IP 地址和端口
- 一般是 Web 服务器之类的
- 动态 NAT 转发
- 对于内部主机发起的连接,NAT 设备会动态分配一个随机端口, 并将其映射到内部主机的私有 IP 地址和端口
- IP组播
- 移动IP
- 网络层设备
- 5 传输层
- 传输层功能
- UDP协议
- 校验和 #🤔 考前记
- 易错点
- 校验和可以关闭以提高性能,关闭时校验和字段置为 0.
- 若计算得出的校验和为 0,则在校验和字段中置为全 1.
- 校验和不可能计算出全 1.
- 校验和计算过程
- 组成
- 伪首部 (12B, 源 IP 4B, 目的 IP 4B, 保留位 1B, 协议字段 1B, UDP 长度 2B)
- UDP 首部 (8B, 源端口 2B, 目的端口 2B, 长度 2B, 校验和 2B)
- 计算时校验和字段置为 0, 以 16 位为单位,逐个相加,若有进位则加到低位,最后取反.
- TCP协议
- 连接断开各个阶段名称
- 客户端:
ESTABLISHED → FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT → 关闭
- 服务端:
ESTABLISHED → CLOSE_WAIT → LAST_ACK → 关闭
- 序号使用
- 第一次握手以及第二次握手:各消耗 1 个序号
- 第三次握手:不消耗序号
- 数据传输阶段:每发送 1 字节数据,序号加 1
- 连接终止阶段:每次发送 FIN 报文段,消耗 1 个序号
- 注意:序号是字节流的编号, 不是报文段的编号
- 拥塞窗口
- 以字节为单位:每接收一个报文的 ACK 确认,拥塞窗口增加相应的字节数
- 以报文段 (MSL) 为单位:每接收一个报文的 ACK 确认,拥塞窗口增加 1 个报文段大小
- 发送窗口:拥塞窗口与接收窗口的最小值
- 6 应用层
- 网络应用模型
- DNS协议
- FTP协议
- 控制连接:客户端主动连接服务器的 21 端口
- 数据连接
- 主动模式 (PORT): 客户端指定一个端口,服务器(通过 20 端口)主动连接客户端该端口进行数据传输
- 被动模式 (PASV): 端口由服务器与客户端自行协商决定。
- 数据连接在每次传输数据时建立和断开
- 电子邮件
- WWW与HTTP/HTTPS协议
- HTTP 的连接方式对请求时间的影响
- 假设本地主机到服务器的往返时间为 RTT, 需要下载一个 HTML 页面和 3 个内嵌对象 (非常小)
- 非流水线/非持久连接: 每个对象都需要单独建立连接,建立并传输数据至少需要 2 个 RTT
- 非流水线/持久连接: 只需要建立一次连接,后续每次请求一个对象
- 流水线/持久连接: 建立一次连接后,可以同时发送多个请求
- 注意不用考虑 TCP 慢启动的影响,慢启动通常约束MSS 报文段个数或字节数, 如果文件非常小,可以不考虑。
- 0 考前记
- IP/UDP/TCP 首部格式
- IP
- 首部长度: 最少 20 字节, 扩展选项 最多 60 字节
- UDP
- TCP
- 首部长度: 最少 20 字节, 扩展选项 最多 60 字节