zoukankan      html  css  js  c++  java
  • HARQ(Hybrid Automatic Repeat Request ) 混合自动重传请求

    数据通信最初是在有线网上发展起来的,通常要求较大的带宽和较高的传输质量。对于有线连接,数据传输的可靠性是通过重传来实现的。当前一次尝试传输失败时,就要求重传数据分组,这样的传输机制就称之为ARQ(自动请求重传)。在无线传输环境下,信道噪声和由于移动性带来的衰落以及其他用户带来的干扰使得信道传输质量很差,所以应该对数据分组加以保护来抑制各种干扰。这种保护主要是采用前向纠错编码(FEC),在分组中传输额外的比特。然而,过多的前向纠错编码会使传输效率变低。因此,一种混合方案HARQ,即ARQ和FEC相结合的方案被提出了。

    http://baike.baidu.com/view/882727.htm

    HSDPA技术中主要是采用三种递增冗余的HARQ机制:TYPE-I HARQ,TYPE-II HARQ和TYPE-III HARQ。
    TYPE-I HARQ 又叫传统ARQ,是最基本的功能。传统ARQ使用了CRC(循环冗余校验)并用FEC进 行编码。接收机一旦发现data package在接收时不能正确解码(decode),即行丢弃,并在上行信道(uplinking channel)中要求重传。发送端收到重传请求后,重新发送encoded data package。由于反馈速度较慢,效率不高,会影响QoS。
    TYPE II HARQ是增加冗余(IR) 的ARQ机制,接收错误的数据包不会被丢弃,而重传资料通常与第一次传输不一样,前后两种data package会进行并整,形成纠错能力更强的前向纠错码。IR可再分两类:部分IR(H-ARQ-type-lll)、全IR(H-ARQ-type- 11),其中全IR每次传输不能自译码。
    Type-Ⅲ HARQ 又叫部分冗余HARQ,结合了Type-I HARQ 和Type-Ⅱ HARQ 的优点,同Type-II接收错误的数据包不会被丢弃。每次重传都可自译码,无须再合并以前的传输资料。

    实现机制

    HARQ的可行性部分受限于发送端和接收端对分组的缓冲能力,因此选择合适的HARQ协议很重要。三种标准的HARQ协议为停等协议(Stop- and-Wait,SAW)、回退N步协议(Go-Back-N,GBN)和选择性重传协议(Selective-Repeat,SR)。
    (1)停等协议
    发送端每发送一个数据分组包就暂时停下来,等待接收端的确认信息。当数据包到达接收端时,对其进行检错,若接收正确,返回确认(ACK)信号,错误则返回不确认(NACK)信号。当发端收到ACK信号,就发送新的数据,否则重新发送上次传输的数据包。而在等待确认信息期间,信道是空闲的,不发送任何数据。这种方法由于收发双方在同一时间内仅对同一个数据包进行操作,因此实现起来比较简单,相应的信令开销小,收端的缓存容量要求低。但是由于在等待确认信号的过程中不发送数据,导致太多资源被浪费,尤其是当信道传输时延很大时。因此,停等协议造成通信信道的利用率不高,系统的吞吐量较低。
    (2)后退N步协议
    在采用后退N步HARQ协议的传输系统中,发送端发送完一个数据分组后,并不停下来等待确认信息,而是连续发送若干个数据分组信息。接收端将每个数据包相应的ACK或 NACK信息反馈回发送端,同时发送回的还有数据包分组号。当接收到一个NACK信号时,发送端就重新发送包括错误数据的N个数据包。接收端只需按序接收数据包,在接收到错误数据包后即使又接收到正确的数据包后还是必须将正确的数据包丢弃,并重新发送确认信息。
    (3)选择重发协议
    基于窗口的SR是一种被许多系统采用的HARQ协议,包括RLCR99(也称R3版本,是3GPP目前最成熟、最稳定的版本)。为了进一步提高信道的利用率,选择重发协议只重传出现差错的数据包,但是此时收端不再按序接收数据分组信息,那么在收端则需要相当容量的缓存空间来存储已经成功译码但还没能按序输出的分组。同时收端在组合数据包前必须知道序列号,因此,序列号要和数据分别编码,而且序列号需要更可靠的编码以克服任何时候出现在数据里的错误,这样就增加了对信令的要求。

  • 相关阅读:
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    asp.net session对象的持久化
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    小白也能看懂的约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/mway/p/5492187.html
Copyright © 2011-2022 走看看