计算机网络体系差错检查,计算机网络体系结构及协议之差错控制

本文主要是介绍计算机网络体系差错检查,计算机网络体系结构及协议之差错控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

b0a3664da1afdbc2a0844b5a2e400331.png

3.3.2差错控制

用以使发送方确认接收方是否正确收到了由它发送的数据信息的方法称为反馈差错控,制。通常采用反馈检测和自动重发请求(ARQ)两种基本方法来实现。

1.反馈检测法

反馈检测法也称回送校验法或"回声"法,主要用于面向字符的异步传输中,如终端与远程计算机间的通信。这是一种元须使用任何特殊代码的差错检测法。双方进行数据传输时,接收方将接收到的数据(可以是一个字符,也可以是一帧)重新发回发送方,由发送方检查是否与原始数据完全相符。若不相符,则发送方发送一个控制字符(如DEL)通知接收方删去出错的数据,并重新发送该数据;若相符,则发送下一个数据。反馈检测法原理简单,实现容易,也有较高的可靠性。但每个数据均被传输两次,信道利用率很低。这种差错控制方法一般用于面向字符的异步传输中,因为这种场合下信道效率并不是主要矛盾。

2.自动重发请求法(ARQ法)

实用的差错控制方法,既要传输可靠性高,又要信道利用率高。为此可使发送方将要发送的数据帧附加一定的冗余检错码一并发送,接收方则根据检错码对数据帧进行差错检测,若发现错误,就返回请求重发的应答,发送方收到请求重发的应答后,便重新传送该数据帧。这种差错控制方法就称为自动重发请求法(Automatic Repeat reQuest),简称ARQ法。ARQ法仅需返回少量控制信息,便可有效地确认所发数据帧是否被正确接收。ARQ法有几种实现方案,空闲重发请求(Idle RQ)和连续重发请求是其中最基本的两种方案。

(1)空闲重发请求(Idle RQ)。空闲重发请求方案也称停等(Stop and Wait)法,该方案规定发送方每发送一帧后就要停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。空闲重发请求方案的实现过程如下:

①发送方每次仅将当前信息帧作为待确认帧保留在缓冲存储器中:

②当发送方开始发送信息帧时,随即启动计时器;

③当接收方收到无差错的信息帧后,即向发送方返回一个确认帧;

④当接收方检测到一个含有差错的信息帧时,便舍弃该帧;

⑤若发送方在规定时间内收到确认帧,即将计时器清零,继而开始下一帧的发送;

⑥若发送方在规定时间内未收到确认帧(即计时器超时),则应重发存于缓冲器中的待确认信息帧。

从以上过程可以看出,空闲RQ方案的收、发送方仅需设置一个帧的缓冲存储空间,便可有效地实现数据重发并确保接收方接收的数据不会重份。空闲RQ方案最主要的优点就是所需的缓冲存储空间最小,因此在链路端使用简单终端的环境中被广泛采用。

(2)连续重发请求(Continuous RQ)。连续重发请求方案是指发送方可以连续发送一系列信息帧,即不用等前一帧被确认便可发送下一帧。这就需要在发送方设置一个较大的缓冲存储空间(称作重发表),用以存放若干待确认的信息帧。当发送方收到对某信息帧的确认帧后,便可从重发表中将该信息帧删除。所以,连续RQ方案的链路传输效率大大提高,但相应地需要更大的缓冲存储空间。连续RQ方案的实现过程如下:

①发送方连续发送信息帧而不必等待确认帧的返回;

②发送方在重发表中保存所发送的每个帧的备份;

③重发表按先进先出(FIFO)队列规则操作;

④接收方对每一个正确收到的信息帧返回一个确认帧;

⑤每一个确认帧包含一个惟一的序号,随相应的确认帧返回;

⑥接收方保存一个接收次序表,它包含最后正确收到的信息帧的序号;

⑦当发送方收到相应信息帧的确认帧后,从重发表中删除该信息帧的备份;

⑧当发送方检测出失序的确认帧(即第n号信息帧和第n+2号信息帧的确认帧已返回,而n+1号的确认帧未返回)后,便重发未被确认的信息帧。

2829f2ca24f0d0090cbba57f30759f23.png

计算机网络体系结构及协议之差错控制.doc

下载Word文档到电脑,方便收藏和打印[全文共1485字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

这篇关于计算机网络体系差错检查,计算机网络体系结构及协议之差错控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/169591

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Java资源管理和引用体系的使用详解

《Java资源管理和引用体系的使用详解》:本文主要介绍Java资源管理和引用体系的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Java的引用体系1、强引用 (Strong Reference)2、软引用 (Soft Reference)3、弱引用 (W

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优