【计算机网络入门】初学计算机网络(七)

embedded/2025/3/4 7:16:13/

目录

1. 滑动窗口机制

2. 停止等待协议(S-W)

2.1 滑动窗口机制

2.2 确认机制

2.3 重传机制

2.4 为什么要给帧编号

3. 后退N帧协议(GBN)

3.1 滑动窗口机制

3.2 确认机制

3.3 重传机制

4.  选择重传协议(SR)

4.2 确认机制

4.3 重传机制


1. 滑动窗口机制

满足发送窗口 + 接受窗口 ≤ 二的n次方,这里的n是用来给帧编号用的。

2. 停止等待协议(S-W)

2.1 滑动窗口机制

        由于停止等待协议的发送端口和接受端口的大小都是1,所以n就取≥1就能满足条件,也就是用一个比特位就能够给帧编号。你可能会有疑问,1个比特位只能表示0或者1如何能给帧进行编号呢?我们往后看看就知道了。

2.2 确认机制

        发送方发送0号数据帧,接收方在核对帧没有出错的情况下返回一个确认帧,并且往后移动一个窗口,此时发送方接受到确认帧之后再向后移动一个窗口。

2.3 重传机制

        ①如果发送方发送0号帧的时候,受到电磁影响,数据帧丢失,那么接收方永远不会接受到这个数据帧,也就不会给发送方发送确认帧,等待一段时间之后,会进行超时重传

        ②如果接收方发送确认帧的时候丢失了,此时接收方会向后移动,但是发送方的计时器超时之后会重传给接收方移动之前的位置如下图所示,接收方的D收到重复帧之后会丢弃,然后发送重复帧的确认帧,在发送方的D的计时器超时之前会接受到重复帧的确认帧,从而顺利后移。

        ③如果当传输的时候数据有差错,那么接收方会把帧丢弃,发送方的计时器必定会超时重传,然后接收方接受到正确帧再进行发送确认帧,接收方再后移一位,至此恢复正常。 

2.4 为什么要给帧编号

        因为如果不给帧编号,那么接收方不知道当前帧是不是重复帧,况且接受窗口和发送窗口的距离不超过1,所以回答上面的问题使用1bit表示帧序号足矣。

3. 后退N帧协议(GBN)

3.1 滑动窗口机制

        发送窗口大于1,接收窗口等于1;取发送窗口为3,那么我们可以使用:满足发送窗口 + 接受窗口 ≤ 二的n次方,确定n是2bit,所以我们可以使用:0,1,2,3,来对帧进行编号。

3.2 确认机制

        当发送方连续发送三个数据帧之后,接收方返回确认帧,表示当前帧以及之前的所有帧已经全部接受

3.3 重传机制

       ① 当发送方发送E的时候数据帧出现了问题,此时会继续发送给F,但是F收到帧之后会直接丢弃,此时接受方的D会发送一个ack表示D之前的所有数据帧已经传输完毕,此时发送端的E的计时器已经超时,所以E之后的F会重传、G第一次传,此时接收到数据的EFG会在G处进行正常返回确认帧ack。

        ②当接收方发送确认帧的时候,确认帧丢失,那么最先发送的A会超时,就会重新发送数据帧ABC给接收方,接收方接收到的帧都是在窗口之外属于“非法帧”,并且这些帧都是重复的会直接被丢弃,由于是“非法帧”,直接返回已接收的最后一个正确帧的确认帧。

4.  选择重传协议(SR)

接收窗口要小于等于发送窗口,如果违反规定则始终有空缺位没有被利用,性能得不到完全发挥。

4.2 确认机制

选择重传协议,接受方可以连续接受多个帧,但是接收方必须每一个帧都必须回复一个ACK。

4.3 重传机制

①当5号帧丢失,其他帧收到数据帧之后,会返回ACK,然后向后挪动一个位置,0号帧已经在发送窗口之内,会直接进行发送,但是发送方的5号帧并没有接受到ACK,于是计时器就会超时重发。

 ②当5号帧出现错误,那么接收方会发送一个NCK让发送方立即重传,这样就可以让发送方在计时器超时之前进行重传,节省时间,此时0号帧也已经进入了窗口内也可以发送。

③BD确认帧丢失的时候,发送方窗口向后移动一格,此时E在窗口内,所以E直接发送数据帧,BD依次超时重传,由于BD在接收窗口之外,所以认定这两个数据帧是重复帧,直接丢弃并且返回ACK。 

再次说明,接收窗口 + 发送窗口的总大小 小于等于2的n次方 ,n是帧编号;如若不满足则无法分辨重复帧。 


http://www.ppmy.cn/embedded/169841.html

相关文章

W3C标准和ES规范之一文通

W3C标准和ES规范之一文通 以下是关于W3C标准和ES规范的透彻解析,通过结构化对比和生活化类比帮助理解和记忆: 一、核心概念对比(总览) 维度W3C标准ES规范(ECMAScript)定位Web技术的建筑蓝图JavaScript的语…

计算机网络-面试总结

计算机网络 从输入一个URL到页面加载完成的过程 整体流程 DNS查询过程SSL四次握手HTTP 的长连接与短连接 HTTP 的 GET 和 POST 区别浏览器访问资源没有响应,怎么排查? OSI七层参考模型 TCP/IP四层参考模型比较 TCP/IP 参考模型与 OSI 参考模型 TCP三次握手&四…

使用haproxy实现MySQL服务器负载均衡

一、环境准备 主机名IP地址备注openEuler-1192.168.121.11mysql-server-1openEuler-2192.168.121.12mysql-server-2openEuler-3192.168.121.13clientRocky-1192.168.121.51haproxy 二、mysql-server配置 [rootopenEuler-1 ~]# yum install -y mariadb-server [rootopenEuler…

【错误记录】Windows 中 DevEco Studio 真机调试无法连接设备 ( 低版本的 HarmonyOS 4.2.0 华为手机无法在 DevEco Studio 5.0.2 上真机调试 )

文章目录 一、错误记录二、问题排查三、解决方案 参考文档 : hdc(HarmonyOS Device Connector)文档设备连接后,无法识别设备的处理指导真机调试流程 一、错误记录 手机 使用的是 HarmonyOS 4.2.0 系统 ; 使用 HarmonyOS 的 hdc 工具 , 执行 …

postgresql链接详解

PostgreSQL连接概述 连接基础 在探讨PostgreSQL连接的基础之前,我们需要理解什么是数据库连接。 数据库连接 是客户端应用程序与数据库服务器之间建立的一种通信通道,使用户能够访问和操作数据库中的数据。 PostgreSQL连接涉及以下几个关键要素&#…

微软具身智能感知交互多面手!Magma:基于基础模型的多模态AI智能体

作者: Jianwei Yang, Reuben Tan, Qianhui Wu, Ruijie Zheng, Baolin Peng, Yongyuan Liang, Yu Gu, MuCai, SeonghyeonYe, JoelJang, Yuquan Deng, Lars Liden, Jianfeng Gao 单位:微软研究院,马里兰大学,威斯康星大学麦迪逊分校…

报道称ChatGPT 成黑客编写恶意软件「利器」,如何安全使用 ChatGPT?是否应出台相应规范?

chatGPT刚刚出来的时候,身为一个初出茅庐的小“黑客”的我,第一时间就想到了让这位AI大佬帮我写一点所谓的恶意软件“利器”,高举低温小蜡烛小声呵斥道:快给我写20个端口转发黑客命令,啪,chatGPT没有一句废…

Django模板系统深入

Django模板系统深入 模板继承和重用 Block 标签 在Django模板中&#xff0c;{% block %} 标签允许你定义一个“块”&#xff0c;这个块可以在子模板中被重写或填充。 <!-- base.html --> <!DOCTYPE html> <html> <head><title>{% block titl…