当前位置: 首页 > news >正文

计算机网络期末复习-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。

http://www.lryc.cn/news/225910.html

相关文章:

  • docker在虚拟机中的应用
  • 小程序样式淡入淡出效果
  • 虚幻5 删除C盘缓存及修改缓存路径
  • 手写C++ 实现链表的反转、删除、合并
  • 虚幻C++基础 day4
  • 【Vue】【uni-app】工单管理页面实现
  • 【系统架构设计】架构核心知识: 2.1 软件过程模型
  • 数据管理系统-week1-文件系统、数据库和数据库管理系统
  • 探索OpenCV中直方图的神奇之处:应用与实现
  • MapReduce编程——矩阵乘法(Python版本)
  • nature日报:为什么印度德里现在的空气污染如此严重?
  • ChatGPT、GPT-4 Turbo接口调用
  • IDEA中常用的调试快捷键
  • 需要设计易清洗的口琴
  • 贝锐蒲公英智慧运维方案:实现远程网络监控、管理、维护工业设备
  • Intel oneAPI笔记(4)--jupyter官方文档(Unified Shared Memory)学习笔记
  • dRep-基因组质控、去冗余及物种界定
  • 截图贴图软件推荐 - 附下载链接 | Snipaste | Steuna
  • python调用chrome实现网页自动操作
  • FFMPEG库实现mp4/flv文件(H264+AAC)的封装与分离
  • 《红蓝攻防对抗实战》九.内网穿透之利用GRE协议进行隧道穿透
  • 大数据毕业设计选题推荐-智慧消防大数据平台-Hadoop-Spark-Hive
  • LeetCode 面试题 16.20. T9键盘
  • systemctl enable docker.service报错“Failed to execute operation: Bad message“
  • 向量的范数、矩阵的范数
  • C# OpenCvSharp 玉米粒计数
  • 前端缓存机制——强缓存、弱缓存、启发式缓存
  • 对称密钥加密与非对称密钥加密:原理与应用
  • 商品小类管理实现B
  • Unity--视觉组件(Raw Image,Mask)||Unity--视觉组件(Text,Image)