计网复习
计算机网络复习
写在前面:
为 fzu-se 期末而写,不代表计网所有知识
面向考试题目的复习,不保证严谨的逻辑
参考课程:王道考研b站视频
注意理解知识点,运用 star 法则将一个技术的背景、成因、过程、结果能够复述出来。比如ARP协议,比如DNS协议,又比如TCP三握四挥
第一章 绪论
三种数据交换
三种交换的性能与比较
性能指标:速率
性能指标:带宽
性能指标:时延
性能指标:时延带宽积
第二章 物理层
信号、信源、信宿、信道
- 信号:数据的载体
- 信源:信号的来源(发送方)
- 信宿:信号的去向(接收方)
- 信道:传输信号的通道(发送信道&接收信道)
数字 & 模拟信号
- 数字信号:值离散的信号
- 模拟信号:值连续的信号
码元与比特
一个信号周期内可能出现几种信号,每一个信号就是一个码元。
- 二进制码元:可能出现两种信号,0和1。则一码元携带 1bit。
- 四进制码元:可能出现四种信号,0,1,2,3。一码元携带 2bit。
- 十六进制码元:可能出现16种信号,0……F。一码元携带4bit,从0000到1111。
以此类推,总结成码元与比特的关系:
若一个周期可能出现 K 种不同的信号,就是 K进制码元。一码元携带 log2(K) 比特。
速率的另一种表示——波特率
速率:
- 比特率:每秒传输几个比特。单位bit/s、b/s、bps
- 波特率:每秒传输几个码元。单位 码元/秒,或波特(Baud)
噪声(Noise)
噪声会影响信道的数据传输效果
信道容量的两大定理
奈奎斯特定理
无噪声情况下,信道的极限波特率 = 2W(单位:波特,码元/秒)
- W 表示信道的带宽,以 Hz 为单位
我们知道,码元可以转为 比特,一码元携带 log2(K) bit,K为信号种类数。那么奈奎斯特定理还可以延伸为比特率表示:
无噪声情况下,信道的极限比特率 = 2W log2(K) (单位bps)
- W表示信道的带宽,以 Hz 为单位
- K表示一个信号频率包含的不同信号数
香农定理
有噪声情况下,信道的极限比特率 = W log2(1 + S / N)
- W表示信道的带宽,以 Hz 为单位
- S/N 表示信噪比(无符号)
信噪比:信道内信号的功率 / 信道内噪声的功率
有两种表示方法:
- 无符号版本:两个功率直接相除
- 有符号版本:
1dB = 10 * lg(S/N)。类似科学计数法,如:无符号的10000表示为 40dB。
码分复用
王道和湖科大视频里都没讲到……先跳
第三章 数据链路层
数据链路层的职责:
- 组帧:将网络层传下来的 IP数据报分组 封装成帧。
- 界定帧:划定每个帧的界限
- 透明传输:不管数据是什么,链路层都能原封不动地将数据发送给接收方
- 差错控制:发现并解决一个帧内部的位错误
- 可靠传输:发现并解决帧错(帧丢失,帧重复,帧乱序)
- 流量控制
- 介质访问控制:广播信道需要,因为总线型拓扑多个节点会争抢传输介质的使用权
循环冗余校验码
思路:传送的数据(被除数)除以一个传输双方约定好的除数。如果余数为零,则传输没有错误;否则有错。
被除数由两部分组成:
- 信息位 K位
- 校验位 R位
这 K + R 位数据共同构成了被除数。
例:设生成多项式为 G(x) = x^3 + x^2 + 1, 信息码为 101001,求对应的CRC码。
1 | |
码分复用(CDM)
属于信道划分的介质访问控制技术。
CSMA 协议
场景:多个节点共享一个信道传输信号,两个节点同时发送信号会产生冲突。
CSMA/CD 协议
即 Carrier Sense Multiple Access with Collision Detection,载波监听多点接入/碰撞检测。要点是:
先听后发,边听边发,冲突停发,随机重发。
比如 A 节点在发之前会监听信道中是否有其他信号,如果没有,才发自己的信号——先听后发。
A 节点在发送信号的过程中也会不停的监听信道,如果有别的节点发送信号,产生冲突,立即停止发送——边听边发,冲突停发。
A 节点停止发送后会随机等待一段时间再尝试重新发送,随机等待会使用二进制指数退避算法——随机重发。
CSMA/CA 协议
局域网
IEEE 802
IEEE 下属的 802 工作组专门研究局域网技术的标准化和推广,又分为两大类别:
- IEEE 802.3 有线局域网(LAN):以太网
- IEEE 802.11 无线局域网(WLAN):WIFI
MAC层
数据链路层下设 MAC层(Media Access Control,数据访问控制层) 和 LLC层(Logical Link Control,逻辑链路控制层)。
局域网的特点
- 覆盖较小的地理范围
- 较低的时延和误码率
- 局域网内各节点以帧为单位进行传输,支持单播、多播、广播
- 单播:A ->B
- 多播:A -> B,C,D,E
- 广播:A -> 局域网内其他所有
PPP协议
PPP帧格式:
PPP如何实现透明传输?
- 字节填充(用于异步传输):
- 数据部分每出现一个 7E 字节,转义成 7D 5E 两字节
- 数据部分每出现一个 7D 字节,转义成 7D 5D 两字节
- 零比特填充(用于同步传输):除了首尾的帧界定符之外,只要发现5个连续的1就在后面加一个0(发送方),接收方则是只要有5个1 就把后面的零去掉。
以太网交换机
“以太网可以视作一种多端口的网桥,网桥的知识点学过以太网交换机就会了。”
自学习功能
- 每台交换机内部维护一个交换表,初始为空,记录 MAC地址 - 端口号的映射关系。本质是一个缓存
- 交换机每收到一个MAC帧,就将发送方的 MAC地址 和 当前端口 记录下来
- 接收方有两种情况:
- 交换机缓存里没有接收方端口映射的记录,就把帧广播到其他端口。
- 知道接收方端口,就直接精准推送到目标端口。
- 交换表每项都设置“有效时间”(TTL)
第四章 网络层
网络层功能:
异构网络互联
每个网络的拓扑结构不同,下层(物理层、链路层)实现不同。网络层通过路由器(Router)连接,路由器也称为网关
路由与转发
拥塞控制:
IP数据报(分组)格式
- 版本信息 - 4bit,区分IP协议版本,v4 / v6
- 首部长度 - 4bit,实际首部长度是这个值乘以4B
- 区分信息 - 8bit,不管
- 总长度 - 16bit,包括首部和数据的整个IP分组的长度,实际总长是这个值乘以1B
- 分片信息
- 标识 - 16bit,标识这个IP分组,比如一个大IP分组因为链路上的MTU限制被拆成多个小分组,那么小分组都写同一个标识,目的主机就能重新组装它们。
- 标志 - 3bit,只看最低位和次低位
- 最低位(More Fragment):这个分组后面是否还有更多分片
- 次低位(Don’t Fragment):这个分组是否不要做分片
- 片位移 - 13bit,当前分片在原分组中的偏移量,实际偏移量是这个值乘以8B
- 生存时间TTL - 8bit,设置该分组能通过的最大路由器数量,超出直接丢弃,并向源主机发送一个ICMP报文
- 协议 - 8bit
- 首部校验和 - 16bit
IP分组的“分片”
IP地址(IPv4)
这部分讲的是IP地址最初的分配方案。
IP地址大小为 32bit。
单播地址(主机):
- A 类地址(1 - 126):前 8bit 网络号,后 24bit 主机号
- B 类地址(128 - 191):前 16bit 网络号,后 16bit 主机号
- C 类地址(192 - 223):前 24bit 网络号,后 8bit 主机号
多播地址:
- D 类(224 - 239)
在一个内部机构中(如企业、学校),IP地址的网络号部分是由IP地址供应商提供的,需要申请;后面的主机号是由机构内的网络管理人员按需求分配的。
子网划分 / 子网掩码
子网划分的过程是:
若某单位租用了一个IP地址段,假设原本的主机号占 n bit,那么可以将前 k bit 拿出来作为子网号,那么剩余的 n - k bit 就是新的主机号。这样划分出 2^k 个子网,每个子网包含的IP地址块大小相等。
- 子网划分前,IP地址两级结构 = <网络号,主机号>
- 子网划分后,IP地址三级结构 = <网络号,子网号,主机号>
子网掩码:
子网掩码构成:
- <网络号,子网号> 部分全1
- <主机号> 部分全0
用子网掩码逐位与 IP地址,算出< 网络号,子网号>,合成“网络前缀”,只有网络前缀相同的IP地址,才属于同一个网络。
默认子网掩码:由子网掩码构成易得:
- A 类默认:255.0.0.0
- B 类默认:255.255.0.0
- C 类默认:255.255.255.0
无分类编址 CIDR
CICR 是1993年为了缓解IP地址数量紧张而提出的。
路由聚合
对于一个路由转发表,如果几条路由转发项的转发接口相同,部分网络前缀也相同,那么可以将这几项聚合成一条,称为路由聚合。
如下图中的1,2,3项前27位网络前缀都相同,且出发接口都为G1,那么就聚合为项4
网络地址转换 NAT
NAT 是1994年同样为了缓解 IP地址数量紧张而提出的。
NAT 将 IP地址分为了外网 IP 和内网 IP。
- 外网IP:全球IP地址,通常由 ISP 提供,全球唯一
- 内网IP:每个局域网内自行分配这些私有IP,只要求局域网内唯一,不要求全球唯一。
NAT 路由器是一种特殊的路由器,和普通路由器的不同之处在于,它会在转发IP分组时,进行内网IP和外网IP的相互映射。它用到了NAT表来记录映射关系。
NAT表记录映射关系,格式为:
<内网IP:内网端口 - 外网IP:外网端口>
下面的IP只允许内网用,公网不允许:
- 10.0.0.0 - 10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.255.255
地址解析协议 ARP
ARP协议用于在一个局域网内部,通过ARP协议查询到一个IP地址对应的MAC地址。
ARP表(缓存)
ARP会维护一个缓存表,记录 IP地址和MAC地址 的映射关系。
每台主机、路由器都有自己的一个ARP表。
ARP过程
请求阶段
比如局域网中一台主机要向网关/互联网中的另一台主机,whatever,发送一个IP数据报。
一开始发送方肯定不知道对方的MAC地址(那么为什么需要MAC地址呢,这是链路层组帧的需求……这里skip了),那么它会先发送一个ARP请求分组。
ARP请求分组中写明
- 我是谁?我的IP地址是X,MAC地址是Y
- 我想找谁?它的IP地址是Z,MAC地址就是我要找的
接着ARP请求分组封装成MAC帧,帧的源地址是Y,目的地址全1,表示广播帧。
响应阶段
广播帧会广播给局域网内的所有主机,那么the right one收到请求分组将回复一个ARP响应分组。
ARP响应分组写明,我就是你要找的主机,我的IP地址是Z,MAC地址是V
接着ARP响应分组同样封装成MAC帧,帧源地址是V,目的地址是Y。
路由算法
路由算法的目标是 找到转发IP分组的“最佳路径”。
路由算法分为静态和动态路由算法。下面是两种典型的动态路由算法:
距离向量路由算法(RIP基于)
- 本质是 Bellman-Ford 算法
- 路由器不必关心整个网络拓扑结构,只需关心和邻居之间的距离,各个邻居和目的网络的最短距离
链路状态路由算法(OSPF基于)
分层次的路由协议
由于全世界数以亿计的路由器和网络,所以不可能要求所有的路由器使用统一的一个路由协议,那么分层次的路由协议因运而生。
自治系统AS:
全世界的互联网被划分为相互独立的自治系统AS,每个AS都有唯一的 编号ASN。
每个AS都有至少一台边界路由器,与其他AS相连。
AS之间是平级关系,不存在包含关系。
自治系统内外使用的路由协议分不同的叫法:
- 内部网关协议(IGP):AS内部的路由协议,由AS自行选择
- 外部网关协议(EGP):AS之间的路由选择,如 BGP
RIP协议
- 应用层协议,它使用 UDP 传送数据,端口 520
- RIP如何定义路径长度?
- 使用跳数(Hop Count)衡量,每经过一个路由器跳数加一;路由器到直连网络的距离为1。
- RIP认为好的路由就是跳数最少的那个。
- 一条合法路径长度不超过15,距离等于16时表示网络不可达。
- 由上条,适用于小型的自治系统。