【计算机网络】第三章 数据链路层(可靠传输)

简介: 【计算机网络】第三章 数据链路层(可靠传输)

第三章 数据链路层


3.4 可靠传输


可靠传输是指在数据通信过程中,确保数据能够准确、完整地按照发送方的意图传输到接收方,并且接收方能够正确地接收和处理数据。


在可靠传输中,通常需要解决以下问题:


确认和反馈:发送方在发送数据后,需要接收到接收方的确认信息,以确认数据是否正确接收。如果发送方没有收到确认信息,会重传该数据,确保数据的正确性。


序号和重传:为了确保数据的有序传输和不丢失,每个数据包都应该带有唯一的序号。接收方根据序号对数据包进行排序,并检测是否有丢失的数据包,如果有则要求发送方进行重传。


超时重传:发送方通常会设置一个超时时间,在规定时间内如果没有收到接收方的确认信息,就认为数据丢失,需要进行重传。


流量控制:为了避免接收方无法及时处理大量的数据,需要对发送方的数据发送速率进行控制,确保发送方和接收方之间的数据传输保持平衡。


错误检测和纠正:通过使用差错检测码和纠错码等技术,可以检测并纠正数据传输过程中产生的错误,提高数据传输的可靠性。


常见的可靠传输协议包括 停止等待协议、连续 ARQ(Automatic Repeat Request)协议,如选择重传、回退N帧协议和选择重复请求协议等。这些协议都通过上述机制来实现可靠传输,确保数据在通信过程中的准确传递。


3.4.1 可靠传输的基本概念


使用 差错检测技术(循环冗余校验CRC),接收方的数据链路层就可检测出桢在传输过程中是否产生了误码(比特错误)。

根据数据链路层向上提供的服务类型:

  • 不可靠传输服务:仅仅丢弃有误码的桢,其他什么都不做。
  • 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。


一般情况下,有线链路 的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

无线链路 易受干扰,误码率较高,因此 要求数据链路层 必须向上层提供 可靠 传输服务。

比特差错 只是传输差错中的一种。

从整个计算机网络体系结构来看,传输差错还包括分组丢失,分组失序 以及 分组重复。

可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。


3.4.2 可靠传输的实现机制——停止-等待协议



答案:D

若出现重传,信道利用率更低。

为了克服 停止-等待协议 信道利用率低 的缺点,就产生了另外两种协议。


3.4.3 可靠传输的实现机制——回退N桢协议


3.4.4 可靠传输的实现机制——选择重传协议

选择重传协议 为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收到的数据分组进行 逐一确认。


3.4.5 可靠传输的意义

可靠传输在数据通信中具有重要的意义,主要包括以下几个方面:


数据完整性:可靠传输能够确保发送的数据在传输过程中不被修改、损坏或丢失。这对于许多应用场景来说至关重要,特别是在涉及关键数据、文件传输或信息交换的情况下,需要确保数据的完整性。


数据可靠性:通过使用确认和反馈机制,可靠传输可以确保数据在发送方和接收方之间的正确传送。发送方会等待接收方的确认信息,如果未收到确认或收到错误的确认信息,则进行重传,从而提高数据传输的可靠性。


异常处理:可靠传输能够对网络异常情况进行处理,例如网络延迟、拥塞、丢包等。通过设置适当的超时重传和流量控制机制,可靠传输可以应对这些异常情况并进行恢复,确保数据可以成功传输。


顺序性:可靠传输通常也保证了数据包的顺序传输。这对于那些依赖于数据包顺序的应用程序非常重要,比如视频流、音频流等,确保数据按照正确的顺序进行播放或处理。


性能优化:尽管可靠传输可能会引入一些额外的开销(如确认和重传机制),但它可以提高数据交付的可靠性,从而避免了因为数据丢失或错误导致的重新发送和处理,从而提高整体的性能和效率。


相关文章
|
3月前
|
负载均衡 安全 网络协议
|
2天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
28天前
|
网络协议 网络架构
【网络】TCP/IP 五层网络模型:数据链路层
【网络】TCP/IP 五层网络模型:数据链路层
37 1
|
2月前
|
缓存 算法 网络协议
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
这篇文章详细介绍了计算机网络中数据链路层的概念、基本问题、点对点信道和广播信道的数据链路协议(如PPP和CSMA/CD),以及局域网和以太网的相关知识。
166 0
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
|
24天前
|
网络协议 网络架构
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
41 0
|
3月前
|
弹性计算 网络协议
计算机网络-数据链路层
计算机网络-数据链路层
计算机网络-数据链路层
|
4月前
|
运维 监控 调度
|
4月前
|
网络协议 数据安全/隐私保护 安全
|
4月前
|
JSON 数据挖掘 API
在会议系统工程中,Python可以用于多种任务,如网络请求(用于视频会议的连接和会议数据的传输)、数据分析(用于分析会议参与者的行为或会议效果)等。
在会议系统工程中,Python可以用于多种任务,如网络请求(用于视频会议的连接和会议数据的传输)、数据分析(用于分析会议参与者的行为或会议效果)等。
|
1天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密