计算机网络期末复习-Part3

1、rdt1.0,rdt2.0,rdt3.0的底层信道模型

RDT 1.0: 完全可靠的底层信道,没有比特差错,也没有分组丢失。

RDT 2.0: 具有比特差错的底层信道,有比特差错,但没有分组丢失。

RDT 3.0: 具有差错和丢包的底层信道,有比特差错,又有分组丢失。

2、rdt2.0比rdt0增加的机制:检错(校验和或CRC)、反馈(ACK, NAK)、重传;

rdt3.0比rdt2.0增加的机制有:定时,发送方会在发送数据后启动一个定时器,如果在规定的时间内未收到确认(ACK),则认为数据丢失,触发重传。

3、rdt2.0,rdt3.0属于:停等协议;GBN,SR,TCP属于:流水线协议

在停等协议中,发送方发送一个分组,然后等待接收方的确认。只有在收到确认之后,发送方才会发送下一个分组;在流水线协议中,发送方可以发送多个分组,而不必等待每个分组的确认。接收方可以按顺序接收这些分组,并发送累积确认。

4、对滑动窗口协议发送窗口、接收窗口如何滑动的理解

回退N帧法(Go-Back-N), 选择性重传(SR)都是滑动窗口协议

位于发送窗口内的分组才允许被发送,位于接收窗口内的分组才能被接收

接收方发送一个 ACK(确认),指示成功接收到的最后一个无误分组的序号。这个 ACK 是累计的,意味着如果接收方成功接收了序号为 N 的分组,那么 ACK 中就包含 N 及之前所有分组的确认信息。如果有分组丢失,接收方将等待并且只发送最后一个正确接收的分组的 ACK,触发发送方重新发送从该分组开始的所有未确认的分组。

每个 ACK 指示成功接收的特定分组的序号。接收方可以选择性地确认接收到的分组,而不是像 GBN 那样累积确认。这允许发送方只重新发送丢失的分组,而不必重新发送整个窗口的数据。

5、检查和(Checksum)的计算,例:两个16-bit二进制数的检查和。

注意:最高位进比特位的进位需要加到结果中(也就将最高位进位的1加到结尾)

看上述例子:

6、TCP的三次握手过程

第一次握手 - SYN(同步):

客户端向服务器发送一个TCP报文,其中设置了SYN标志位,并选择一个初始的序列号(SEQ,通常由客户端随机选择)。这表明客户端请求建立连接。

复制代码
客户端 ------------------->  服务器
|                             |
| ------- SYN = 1 ----------> |

第二次握手 - SYN + ACK:

服务器收到客户端的SYN报文后,会回复一个包含SYN和ACK标志位的报文,同时也选择一个初始的序列号。这表明服务器接受了客户端的请求,并表示自己也准备好建立连接。

复制代码
客户端 <------------------->  服务器
|                             |
| <------ SYN = 1, ACK = 1 ---|

第三次握手 - ACK:

客户端收到服务器的SYN + ACK报文后,会向服务器发送一个确认报文,其中设置了ACK标志位。这表明客户端确认了服务器的响应。此时,连接已经建立起来,可以开始进行数据传输。

复制代码
客户端 ------------------->  服务器
|                             |
| ------- ACK = 1 ----------> |

来看个例题:

那么:

① SYN = 1

② SYN = 1 ; SEQ(由③中的ACK反推)= 2001 ;ACK(由①中的SEQ推出)= 1001

③ SEQ(等于上一次的ACK) = 1001

7、流量控制

发送方发送数据太快,导致接收方来不及接收时,需进行流量控制。(接收方对发送方的控制)

基本思想:接收方告诉发送方它目前的接收能力,发送方根据这个信息来控制发送的速率。

发送方:

发送方根据接收方的窗口大小,决定发送多少数据。

发送数据,并等待接收方的确认。

接收方:

接收方收到数据后,将其存储在接收缓冲区中。

接收方发送一个带有确认号和新的窗口大小的 ACK 给发送方。

如果接收方的缓冲区已满,它可以选择不立即确认,从而限制发送方的速率。

8、控制拥塞的两类方法:端到端的拥塞控制,如TCP;网络辅助的控制拥塞,如ATM。

相关推荐
Xの哲學2 小时前
Linux NAPI 架构详解
linux·网络·算法·架构·边缘计算
造价女工4 小时前
视频监控系统原理与计量
网络·音视频·状态模式·消防·工程造价
wacpguo5 小时前
centos 配置网络
linux·网络·centos
子燕若水5 小时前
TLS/SSL加密通信过程全解
网络·网络协议·ssl
细节控菜鸡5 小时前
【2025最新】APP开启了SSL无法被抓包,如何进行调试
网络·网络协议·ssl
VernonJsn6 小时前
使用C++99语言开发ModbusTCP通讯
网络
Tony Bai6 小时前
【Go 网络编程全解】12 本地高速公路:Unix 域套接字与网络设备信息
开发语言·网络·后端·golang·unix
-曾牛6 小时前
深入浅出 SQL 注入
网络·sql·安全·网络安全·渗透测试·sql注入·盲注
想学全栈的菜鸟阿董6 小时前
LangGraph智能体架构核心概念
网络·架构
乐大师7 小时前
手动安装联想打印机2268w驱动
网络·打印机