整理了期末复习资料

This commit is contained in:
2024-06-18 00:16:13 +08:00
parent 569b18e32e
commit e70fb93758
40 changed files with 2012732 additions and 0 deletions

BIN
Review/images/CRC校验.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 KiB

BIN
Review/images/GBN例子.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
Review/images/P2P.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

BIN
Review/images/SR例子.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

BIN
Review/images/STMP.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

BIN
Review/images/rdt1.0FSM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
Review/images/rdt2.0FSM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
Review/images/编码.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

41
Review/物理层.md Normal file
View File

@@ -0,0 +1,41 @@
# 1. 物理层基本概念
- 物理层常用标准
- 点对点通信线路用于直接连接两个结点
- 广播通信线路:一条公共通信线路连接多个结点
# 2. 数据通信基础
- 傅立叶分析例子
<img src="images\傅立叶分析.png" alt="傅立叶分析" style="zoom:50%;" />
傅立叶分析系数$a_n=\cos(\frac{\pi n}{4})-\cos(3\frac{\pi n}{4})+\cos(6\frac{\pi n}{4})-\cos(7\frac{\pi n}{4})$$b_n=-\sin(\frac{\pi n}{4})+\sin(3\frac{\pi n}{4})-\sin(6\frac{\pi n}{4})+\sin(7\frac{\pi n}{4})$$c=3/8$
a为cosb为sin函数内系数为波形上升/下降的下标分母为序列长度的一半a和b的系数相反。c=1的个数 / 序列长度。
- 有限带宽信号
- 波特率每秒钟信号变化的次数也称调制速率比特率每秒钟传送的二进制位数若每个信号值可表示k位则比特率是波特率的k倍
- 编码
<img src="images\编码.png" alt="编码" style="zoom:50%;" />
# 3. 传输介质
- 引导型有线的e.g. 光纤非导引型不用线的e.g. 卫星微波
- 光纤光源发光二极管接收端光敏二极管响应时间1ns所以传输速率限制1Gb/s固有损耗材料损耗非固有损耗杂质和结构不规则
- 短波频率为330MHz
# 4. 无线与卫星通信
- 特点延迟高270ms、损耗大、高纬度难覆盖、卫星数量限制
# 5. 多路复用技术
- 码分复用举例
- A:-1 -1 -1 +1 +1 -1 +1 +1 B:-1 -1 +1 -1 +1 +1 +1 -1正交内积为0。
- 收到M=-1 +1 -3 +1 -1 -3 +1 +1(A\*M)/8=1A发了1(B\*M)/8=-1B发了0若C\*M=0则C没发。

103
Review/第1章.md Normal file
View File

@@ -0,0 +1,103 @@
# 1. 什么是因特网
因特网=端+接入网+核心网
# 2. 网络边缘
- 端系统:主机(客户端和服务器)
- 接入网:将端系统物理连接到其边缘路由器(第一台路由器)的网络(有线/无线)
- 家庭数字用户线DSL、电缆、光纤入户、5G
- 企业:以太网、无线
# 3. 网络核心
- 分组交换将报文message划分为长度L比特的分组packet以传输速率R分组传输到接入网时延L/R
- 路由器必须收到整个分组后才能转发
- 电路交换:每条链路为每对源和目的都分配不共享的电路资源
- 频分复用和时分复用
- 网络结构:
- 一般用户连到ISPISP之间有IXP相连内容提供商有自己的网络
# 4. 分组交换网中的时延、丢包和吞吐量
- 四种时延
$$
d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop}
$$
- $d_{nodal}$:总时延
- $d_{proc}$:处理时延
- $d_{trans}$:传输时延,取决于网卡等硬件
$$
d_{trans} = L / R
$$
> $L$分组长度bits
>
> $R$链路带宽bps
- $d_{prop}$:传播时延,取决于传播介质
$$
d_{prop} = d / s
$$
> $d$物理链路长度m
>
> $s$:传播速度
- $d_{queue}$​​:排队时延,在输出链路上等待传输的时间
<img src="images\平均排队时延.png" alt="平均排队时延" style="zoom:25%;" />
当 $La/R$ 趋于 $0$ 时,平均排队延迟小;
当 $La/R$ 趋于 $1$ 时,平均排队延迟大;
当 $La/R$ 大于 $1$ 时,到达的分组数量超过可容纳范围,平均排队延迟无限大。
> $a$​:平均分组到达率(系数,标量)
- 吞吐量
在一条传输路径上,总吞吐量由最小吞吐量的链路决定,即瓶颈链路。
> 链路Link相邻节点之间的连接
>
> 路径Path多条链路组成的连接
# 5. 协议层次及其服务模型
- ISO模型应用层、表示层、会话层、运输层、网络层、数据链路层、物理层
- TCP/IP模型
- **应用层**网络应用FTPSMTPHTTP微信等
传输单元称为报文Message
- **传输层**在应用程序端点间传送数据TCPUDP
传输单元称为分组Segment除去头部剩下的有效载荷是Payload
- **网络层**从源到目的传送数据报IP路由选择协议
传输单元称为分组Packet
- **链路层**:网络相邻节点之间的数据传送
传输单元称为分组Frame
- **物理层**:比特传送,与实际传输介质相关
# 6. 面对攻击的网络
# 7. 计算机网络和因特网的历史

131
Review/第2章.md Normal file
View File

@@ -0,0 +1,131 @@
# 1. 应用层协议原理
# 2. Web和HTTP
- HTTP连接
- 非持续连接HTTP
- 在TCP上最多发送一个对象然后关闭连接。下载多个对象要多次连接
- 持续连接HTTP
- 如果网页上有多个资源在同一个服务器上可以通过单个TCP连接发送
- Web缓存器
安装Web缓存器可以减少接入互联网链接的利用率重复请求由缓存器承担。
$$
{delay}_{\text{总}} = \alpha \times {delay}_{\text{缓存器响应}}+(1-\alpha)\times {delay}_{\text{初始服务器响应}} \approx (1-\alpha)\times {delay}_{\text{初始服务器响应}}
$$
> $\alpha$:缓存命中率
# 3. 因特网中的电子邮件
- SMTP协议
<img src="D:\Courseware\Computer_Network\Review\images\STMP.png" alt="STMP" style="zoom: 25%;" />
用于邮件客户端 $\to$ 邮件服务器,或邮件服务器 $\to$ 邮件服务器发送邮件。
# 4. DNS因特网的目录服务
- DNS域名转IP。基于UDP。分布式逐级向下查询根DNS -> com DNS -> amazon.com DNS递归查询同时缓存
报文资源记录namevaluetypettl(time to live)
# 5. P2P应用
- P2P文件分发
<img src="D:\Courseware\Computer_Network\Review\images\P2P.png" alt="P2P" style="zoom:25%;" />
使用P2P方法将$F$比特的文件分发到$N$个客户的用时:
$$
D_{P2P} \ge \max{\{F/u_s, F/d_{min}, NF/(u_s+\sum u_i)\}}
$$
- $F/u_s$:服务器传输,至少发送一个副本,除以服务器最大发送速率
- $NF/(u_s + \sum u_i)$:客户接收的总和(总共必须下载$NF$比特)除以最大发送速率总和
- $F/d_{min}$​:单个客户的接收速率,文件大小除以最小客户接收速率
- BitTorrent
- 下载:主机周期性地向每个对等方请求文件块列表,然后请求最稀缺的文件块。
- 分享主机每10秒评估前4名对等方以最高速率向其发送每30秒随机选择另1个对等方发送
# 6. 视频流和内容分发网
- 视频
- 编码
- 空间编码:单帧内像素冗余值只发送一次
- 时间编码:只发送当前帧和上一帧的不同点
- CBR编码速率固定VBR编码速率随空间、时间编码量变化而变化
- DASH将视频在服务器上分块客户端自己决定请求的时间、编码速率和服务器
- 内容分发网CND在CDN节点上存储内容副本
# 7. 套接字编程:生成网络应用
- UDP
不连接,可能丢失或顺序错乱
```python
# client
serverName = 'hostIP'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_DGRAM)
message = raw_input('xxx')
clientSocket.sendto(message.encode(), (serverName, serverPort))
modifiedMessage, serverAaddress = clientSocket.recvfrom(2048)
clientSocket.close()
# server
serverName = 'hostIP'
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind((serverName, serverPort))
while True:
message, clientAddress = serverSocket.recvfrom(2048)
# 处理message -> modifiedMessage
serverSocket.sendto(modifiedMessage.encode(), clientAddress)
serverSocket.close()
```
- TCP
连接,有序交付
```python
# client
serverName = 'hostIP'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName, serverPort))
message = raw_input('xxx')
clientSocket.send(message.encode())
modifiedMessage = clientSocket.recv(1024)
clientSocket.close()
# server
serverName = 'hostIP'
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind((serverName, serverPort))
serverSocket.listen(1)
while True:
connectionSocket, addr = serverSocket.accept()
message = connectionSocket.recv(1024).decode()
# 处理message -> modifiedMessage
connectionSocket.send(modifiedMessage.encode())
serverSocket.close()
```

147
Review/第3章.md Normal file
View File

@@ -0,0 +1,147 @@
# 1. 运输层服务
# 2. 多路复用与多路分解
一个端口号可以支持多个TCP连接分配不同的套接字或接收多个UDP包
# 3. 无连接运输UDP
- 检验和
1. 求和101 + 110 = 1011
2. 如果溢出回卷即把溢出位加到最低位1 + 011 = 100
3. 取反011
# 4. 可靠数据传输原理
- 可靠数据传输协议
- rdt 1.0:没有误差和丢失
<img src="images\rdt1.0FSM.png" alt="rdt1.0FSM" style="zoom: 25%;" />
- rdt 2.0:有误差,无丢失
- 使用ACK/NAK此ACK/NAK不会有差错
<img src="images\rdt2.0FSM.png" alt="rdt2.0FSM" style="zoom:25%;" />
- rdt 2.1数据包和ACK都会出现误差但不会丢失
- ACK/NAK和数据包都加上序号用两个序号0和1轮流即可
<img src="images\rdt2.1FSM Sender.png" alt="rdt2.1FSM Sender" style="zoom:25%;" />
<img src="images\rdt2.1FSM Receiver.png" alt="rdt2.1FSM Receiver" style="zoom:25%;" />
- rdt 2.2
- 只使用ACKACK序号告知最后一个正确的包重复收到ACK则说明上一个包损坏要重传
<img src="images\rdt2.2FSM Sender.png" alt="rdt2.2FSM Sender" style="zoom:25%;" />
<img src="images\rdt2.2FSM Receiver.png" alt="rdt2.2FSM Receiver" style="zoom:25%;" />
- rdt 3.0数据包和ACK都会出现误差或丢失
- 加定时器
- 利用率:$U_{sender} = \frac{L/R}{RTT+L/R}$$RTT$​​占比过高
<img src="images\rdt3.0FSM Sender.png" alt="rdt3.0FSM Sender" style="zoom:25%;" />
- 流水线可靠数据传输协议
- N个流水线并行利用率$U_{sender} = \frac{N\times L/R}{RTT+N\times L/R}$
- GBN回退N步和SR选择重传
- 回退N步
- 序号为i的ACK表示i及之前的分组都收到了。窗口N要小于序列长度LN<=L-1
- sender
- 定时器记录窗口中最早的已发送但未确认的包一旦确认收到序号为i的ACK窗口就要向后滑动到i+1处并重置定时器
- 定时器超时,就要重发窗口内所有的包,并重置定时器
- receiver
- 只需要维护期望收到的包序号i无论收到什么序号的包都只发序号为i-1的ACK。收到正确序号就i+=1
<img src="images\GBN Sender.png" alt="GBN Sender" style="zoom:25%;" />
<img src="images\GBN Receiver.png" alt="GBN Receiver" style="zoom:25%;" />
<img src="images\GBN例子.png" alt="GBN例子" style="zoom:25%;" />
- 选择重传
- 窗口N要小于等于序列长度L的一半N<=L/2
- sender
- 发送窗口内的所有包并对所有包记录定时器。接收到第i个包及其前面的所有包的ACK时将窗口移动到i+1位置
- 如果窗口内某一包没收到ACK定时器超时则只重发该包
- receiver
- 对每一接收到的包发送ACK并缓存当第i个包及其前面的包都收到时有序地交付第i个包及其前面还未交付的包
<img src="images\SR例子.png" alt="SR例子" style="zoom:25%;" />
# 5. 面向连接的运输TCP
- TCP报文结构
以太网的标准MTU最大传输单元1500B = TCP包头20B+ IP包头20B + 最大报文段长度MSS 1460B
- 序号:报文段首字节的字节流编号(注意是字节编号,一个报文中含有多个字节)(初始字节流编号随机初始化)
- ACK期望从对方收到的下一个字节的序号累积确认回复ACK表示前面的包都收到了
- TCP没有规定如何处理无序报文段实现者可以选择缓存或丢弃一般选择缓存
<img src="images\TCP报文结构.png" alt="TCP报文结构" style="zoom: 33%;" />
<img src="images\TCP传输过程.png" alt="TCP传输过程" style="zoom: 50%;" />
- TCP连接三次握手
1. 第1次握手建立连接时客户端发送SYN包其中定义了随机起始序列号seg=j到服务器并进入SYN SENT状态等待服务确认
2. 第二次握手服务器收到syn包必须确认客户端的SYNack=j+1同时自己也发送一个SYN包定义服务端的随机起始序列号seg=k
SYN+ACK包此时服务器进入SYN RECV状态
3. 第三次握手客户端收到服务器的SYN+ACK包向服务器发送确认包ACK(ack=k+1)此包发送完毕客户端和服务器进入ESTABLISHED (TCP连接成功)状态,完成三次握手
- TCP断开连接四次挥手
1. 第1次挥手客户端发送一个FIN包FIN标志位设为1序列号为当前序列号j给服务器并将状态变为FIN_WAIT_1表明它已发送连接终止请求。
2. 第2次挥手服务端收到FIN包回复ACK确认号为j+1服务器此时进入CLOSE_WAIT状态。客户端收到该ACK后进入FIN_WAIT_2状态等待服务器端的FIN包。
3. 第3次挥手服务器发送FIN包FIN标志位设为1序列号为当前序列号k给客户端状态变为LAST_ACK。
4. 第4次挥手客户端收到FIN包回复ACK确认号为k+1并进入TIME_WAIT状态持续2个TTL考虑到服务器可能没收到ACK再次发FIN。服务器收到ACK后正式关闭连接。
- 往返时延和超时重传
- 估算RTT指数加权移动平均过去样本的影响以指数级速度递减$EstimatedRTT = (1-\alpha)\times EstimatedRTT + \alpha \times SampleRTT$,其中$\alpha=0.125$​​为典型值
- 估算SampleRTT与EstimatedRTT之间的差值有多大$DevRTT = (1-\beta)\times DevRTT + \beta \times |SampleRTT-EstimatedRTT|$,通常$\beta=0.25$
- 超时阈值计算:$TimeoutInterval = EstimatedRTT + 4\times DevRTT$
- TCP可靠数据传输
- 流水线发送报文段;累积确认;单个重传计时器(在最早的未确认报文段处计时)
- 重传触发条件超时快速重传对于相同数据发送方收到3个ACK则立即重传未确认的最小序号的报文段
- TCP流量控制防止接收方的缓存溢出
- 接收方把rwnd放在报文首部发送方限制未确认的报文段数量不超过该rwnd
# 6. 拥塞控制原理
- 原因:路由器缓冲区是有限的。导致:发送方超时重传,拥塞加重(且重传的包实际上有可能还在缓存里,是不必要的重传)
- 解决方法TCP拥塞控制控制TTL网络辅助拥塞控制直接向目的主机发送拥塞情况
# 7. TCP拥塞控制
- 加性增 乘性减 AIMD如果没丢包每个RTT拥塞窗口+=MSS最大报文段长度如果丢包了拥塞窗口*=0.5
- 慢启动设置sstresh
1. 初始cwnd =1 MSS每经过一个传输回合cwnd*=2指数增加cwnd到达sstresh后每经过一个传输回合cwnd+=1初始MSS线性增加
2. 超时或3个冗余ACK
- Tahoe$ssthresh=0.5 \times cwnd$$cwnd=1\times MSS$,并重新开始慢启动过程
- Reno快速恢复算法收到3个冗余ACK后$ssthresh=0.5\times cwnd$$cwnd=ssthresh+3\times MSS=0.5\times cwnd+3\times MSS$
<img src="images\Tahoe和Reno.png" alt="Tahoe和Reno" style="zoom:50%;" />
- 吞吐量:$=cwnd/RTT$假设丢包时窗长为W则平均窗长为3/4W则吞吐量为$\frac{3}{4}\frac{W}{RTT}$
- 网络层协助的拥塞控制在IP数据报设置CE位通知目的主机目的主机回复ACK时会在TCP数据报设置ECE位告知发送方

62
Review/第4章.md Normal file
View File

@@ -0,0 +1,62 @@
# 1. 网络层概述
- 网络层中两个关键功能:
- 转发:(数据平面)实际传输数据包。纳秒内操作
- 路由控制平面规划路径。包括传统路由算法在路由器中实现计算转发表第5章和软件定义网络SDN服务器集中远程控制第5章。毫秒内操作
# 2. 路由器工作机理
- 最长前缀匹配:转发表存地址范围到链路接口号的影射。查找给定目标地址的转发表条目时,使用与目标地址匹配的最长地址前缀
- 交换
- 经内存交换:数据包复制到系统内存然后再转发,速度受内存带宽限制
- 经总线交换:数据报通过共享总线从输入端口存储器到输出端口存储器,速度受总线带宽限制
- 经互连网络交换:连接多处理器,将数据报碎片化为固定长度的单元,通过交换结构交换单元
<img src="images\路由器交换结构.png" alt="路由器交换结构" style="zoom: 50%;" />
- 排队:到达速率超过线路速度时进行缓存
- 输入端口排队:输入缓冲区溢出导致排队延迟和丢失;线路前部(HOL) 阻塞(队列前面的排队数据报阻塞,后面的数据报就堵住了,一个输出端口的阻塞可能导致多个输出端口阻塞)
- 输出端口排队:可能输出缓存溢出导致丢失
- 缓存量计算RTT * 链路容量C单流或少流适合或$\frac{RTT\times C}{\sqrt{N} }$N为流的数量适合多流
- 调度:先进先出;设置优先级;分类,每个类轮流调度;加权的分类轮流调度
# 3. IP互联网协议
- IP数据包格式
<img src="images\IP报文结构.png" alt="IP报文结构" style="zoom: 33%;" />
- 分片网络链路具有最大可能的链路级帧所以要将IP数据报分片
- e.g. 4000B20B报头+3980B数据的数据报拆成(20B+1480B)+(20B+1480B)+(20B+1020B)的形式。另外还需要设置offset=字节偏移量/8
- 子网:具有相同子网部分 IP地址可以不靠中间路由器物理相互联系
- 地址表示a.b.c.d/xx是子网掩码表示子网共同的IP有x位
- 有限广播地址255.255.255.255该报文会交付给相同子网中的所有主机常用于DHCP定向广播地址将IP和子网掩码相与计算出网络号然后子网掩码取反后与网络号或运算即为广播地址用于向特定子网内的所有设备发送广播
- DHCP动态主机配置协议
1. 主机加入网络255.255.255.255广播寻找DHCP服务器
2. DHCP服务器广播回复该主机提供一个IP
3. 主机广播回复DHCP服务器确认占用该IP
4. DHCP服务器广播回复主机同意主机占用该IP
还会提供第一跳路由器的地址、DNS 服务器的名称和 IP 地址、网络掩码
- NAT网络地址转换
- 传出时将内网主机的源内网IPPort对外转换为路由器的源外网IP新Port
- 传入时将外网主机的目的路由器外网IP新Port转换回内网主机内网IPPort
- IPv6IP地址16字节。头部固定长度 40 字节,不允许分片
# 4. 通用转发和SDN
- OpenFlow每个路由器都包含一个流表该流表由逻辑集中式路由控制器计算和分发
- 流表:匹配+动作转发表e.g. 路由器匹配为最长的目标IP前缀动作为转发链接交换机匹配目标 MAC地址动作为转发或洪泛

73
Review/第5章.md Normal file
View File

@@ -0,0 +1,73 @@
# 1. 网络层功能
- 单个路由控制平面:每个路由器中的单个路由算法组件在控制平面中相互交互以计算转发表
- 逻辑集中式控制平面一个独特的远程控制器与路由器中的本地控制代理CA交互以计算转发表
# 2. 路由算法
- 链路状态路由算法:迪杰斯特拉
每次找未加入vis且最近的节点将其加入vis更新其相邻节点的最短距离
<img src="images\迪杰斯特拉problem.png" alt="迪杰斯特拉problem" style="zoom: 50%;" />
<img src="images\迪杰斯特拉ans.png" alt="迪杰斯特拉ans" style="zoom: 50%;" />
- 距离向量算法:$d_x(y)=\min_{v}\{c(x, v)+d_v(y)\}$v为x的所有邻居c是x到v的成本$d_v(y)$是邻居 v 到目的地 y 的开销
- 当本地链路开销更改或收到邻居的消息,计算自己的向量表,如果向量表变化,告知每个邻居
- 坏消息传的慢,解决:毒性逆转:
如果y问z是否有到x的更好路径但实际z是经过y才到x的需要记录距离的数据来源。所以z告诉yz到x的距离为无穷大y就相信z没有到x的路径所以不会试图由z到x。之后y到x的距离为60z到x的距离更新为50来源于xy再由z更新到x的距离为51。
<img src="images\毒性逆转案例.png" alt="毒性逆转案例" style="zoom:33%;" />
# 3. 因特网中自治系统内部的路由选择OSPF
- OSPF最短路径优先属于应用层适用于规模较大的网络环境使用链路状态算法基于IP协议。路由器将 OSPF 链路状态通过IP协议泛洪到整个 AS 中的所有其他路由器
- RIP计算路径的成本以跳数作为唯一的度量值网络规模小。基于UDP协议。
# 4. ISP 之间的路由BGP
- BGP边界网关协议使用TCP协议应用层
- eBGP从相邻的 AS 获取子网可访问性信息(红线)
- iBGP将可访问性信息传播到所有 AS 内部路由器(蓝色虚线)
<img src="images\eBGP和iBGP.png" alt="eBGP和iBGP" style="zoom:33%;" />
- BGP 路径通告:
- 3a通过eBGP半永久性 TCP 连接连接2cAS3 向 AS2 承诺,它将向 X 转发数据报;
- 2c通过iBGP通告AS2内的所有路由器该路径AS3、X
- 2a通过eBGP连接1c告知这条路径AS2、AS3、X
- 如果1c能直接通过eBGP连接3a1c可以学习路径AS3X
- 1c 根据策略选择路径,并通过 iBGP在 AS1 中通告路径
- 1a、1b、1d 通过 iBGP 从 1c 了解 目的地 X"通往 X 的路径经过 1c"
- 热土豆路由Hot Potato Routing选择域内成本最低的本地网关不用担心域间开销
# 5. SDN 控制平面
- SDN 控制器(网络操作系统):维护网络状态信息;通过北向 API 与“上层"的网络控制应用程序交互;通过南向 API 与“下层"网络交换机交互
- **SDN 控制器的组件网络控制应用程序的接口层抽象API全网状态管理层网络链路、交换机、服务的状态分布式数据库通信层SDN控制器与受控交换机之间的通信**
- **实例ODL控制器、ONOS控制器**
- **Openflow在控制器、交换机之间操作用TCP交换信息可加密三类 OpenFlow 消息(控制器到交换机,异步(切换到控制器),同步(杂项))**
# 6. ICMP因特网控制消息协议
- 由主机和路由器用于传达网络级信息
- ICMP 消息包括路由器名称和 IP 地址
# 7. 网络管理和 SNMP
- 受管设备包含受管对象,其数据被收集到管理信息库 MIB
- 传达 MIB 信息、命令的两种方式request和responsetrap msg

64
Review/第6章.md Normal file
View File

@@ -0,0 +1,64 @@
# 1. 介绍、服务
- 链路层在网卡中实现
# 2. 错误检测、纠正
- 奇/偶校验统计数据中1的个数加上该位使得1的个数为奇/偶数;二维奇偶校验
- 校验和
- 循环冗余校验
e.g. 指定r=3为校验码长度D=101110, d=6, G=1001最终传输101110011
<img src="images\CRC校验.png" alt="CRC校验" style="zoom:33%;" />
得到数据与G做模2除运算得到余数n若n!=0则第n位出错
# 3. 多路访问MAC协议
- 信道划分TDMA时分多址FDMA频分多址CDMA码分多址
- 随机接入 MAC 协议
- 时隙 ALOHA节点在时隙开始时进行传输
- 给定节点成功传输概率$p(1-p)^{N-1}$,存在节点传输成功概率$Np(1-p)^{N-1}$求最大效率令成功概率对p的导数为0求出p关于N的表达式。N为无穷大时求出极限为$1/e$​(最大效率)
- 纯 (非时隙) ALOHA节点不必在时隙开始时传输
- 给定节点成功传输概率$p(1-p)^{2(N-1)}$,同样方法求出最大效率为$1/2e$
- CSMA/CD 算法(以太网的 MAC 协议)
- 检测到冲突将中止传输并发干扰信号第m次碰撞中止后, 网卡二进制指数退避从0123到2^m-1中随机选择K等待K个时间片
- 例子A和B在100Mbps广播信道上传播时延为n比特时间t=0时刻AB同时发帧碰撞A选择K=0退避B选择K=1。比特时间t=1/100M=10ns。过程0A和B开始传输nA和B检测碰撞开始发48比特时间拥塞信号n+48A和B停止发拥塞信号2n+48B的最后1bit拥塞信号到达AA发现空闲2n+48+96A等96bit时间确认信道空闲开始重传n+48+512B退避结束n+48+512+96B等96bit时间确认空闲开始重传
- 效率:$\frac{1}{1+5t_{prop}/t_{trans}}$$t_{prop}$=两个节点之间的最大可能延迟,$t_{trans}$=传输最大尺寸帧的时间
- 轮流MAC协议
- 主节点邀请从节点依次传输;
- 轮流传递令牌,在谁手里谁传输
# 4. 局域网
- ARP
- MAC 地址48 位。ARP表映射IPMACTTL
- 同一局域网内查询:
1. B 的 MAC 地址不在 A 的ARP 表中A获取B的MACA 广播 ARP 查询数据包指定目的MAC=FF-FF-FF-FF-FF-FF-FFIP=B的IP
2. B 接收 ARP 数据包,单播回复 A目的MAC=A的MAC在内容中说明自己的MAC
- 跨局域网寻址例子A111.111.111.11174-29-9C-E8-FF-55 ——111.111.111.110E6-E9-00-17-BB-4B路由器R222.222.222.2201A-23-F9-CD-06-9B——B222.222.222.22249-BD-D2-C7-56-2AA给B传输
1. A向R发送IP数据包源IPA目标IPB裹上链路层帧首部源MACA目的MACR的左侧
2. R收到数据包删除链路帧首部上传到IP层IP层转发操作IP数据包不变加上链路层帧首部源MACR的右侧目的MACB发给B
- 以太网
- 帧结构在MAC层下面物理层为MAC帧添加前同步码固定首710101010尾110101011字节值用于唤醒接收适配器
- 无连接、不可靠、MAC协议为无时隙CSMA/CD
- 交换机
- 交换表存(主机的 MAC 地址、到达主机的接口、TTL交换机可以在转发的过程中自学习到表项
- 虚拟局域网VLAN限制广播域增强局域网的安全性灵活构建虚拟工作组可以设置中继端口
# 5. 链路虚拟化MPLS
- 是个路由协议。与IP路由不同点IP转发决策仅根据目的IP但MPLS可以由源IP和目的IP共同决定
# 6. 数据中心网络
- 负载均衡器(应用层路由),接收外部客户端请求,指导数据中心内部均衡负载,对外部透明
# 7. Web 请求生命周期中的一天