<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="it" lang="it">
<head>
<title>Selective repeat ARQ</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Selective_repeat_ARQ"/>
<meta name="wx_page_id" content="1580583"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Selective repeat ARQ" id="wxsec1"><h1 class="pagetitle" id="wx1">Selective repeat ARQ</h1>

<p id="wx2">Il <b id="wx3">Selective Repeat</b> è un'istanza specifica del protocollo ARQ, simile sotto certi aspetti al <a href="/wit/Go-Back-N_ARQ" title="Go-Back-N ARQ" wx:linktype="known" wx:pagename="Go-Back-N_ARQ" wx:page_id="1232412" id="wx4">Go Back N</a>, che garantisce prestazioni maggiori o uguali a quest'ultimo.</p>

<p id="wx5">Al contrario del <a href="/wit/Go-Back-N_ARQ" title="Go-Back-N ARQ" wx:linktype="known" wx:pagename="Go-Back-N_ARQ" wx:page_id="1232412" id="wx6">Go Back N</a>, che accetta solo <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx7">PDU</a> in sequenza, il <b id="wx8">Selective Repeat</b> accetta qualunque <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx9">PDU</a> valida all'interno della finestra. Questo comportamento implica l'utilizzo di finestre in ricezione e trasmissione di dimensioni (solitamente) uguali e maggiori di un elemento.</p>

<p id="wx10">Esistono diverse possibili implementazioni che si differenziano per uso di <a href="/wit/ACK" title="ACK" wx:linktype="known" wx:pagename="ACK" wx:page_id="1073276" id="wx11">ACK</a> selettivi o cumulativi, uso di timer associati alle singole <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx12">PDU</a> o alla finestra e comportamenti del trasmettitore e del ricevitore.</p>

<p id="wx13">Nel caso in cui si usino <a href="/wit/ACK" title="ACK" wx:linktype="known" wx:pagename="ACK" wx:page_id="1073276" id="wx14">ACK</a> cumulativi e timer associati alla finestra, <i id="wx15">Il trasmettitore</i> si comporta nel seguente modo:</p>

<ul id="wx16">
<li id="wx17">
<p id="wx18">invia fino a n <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx19">PDU</a>, facendo di ognuna una copia</p>
</li>

<li id="wx20">
<p id="wx21">attiva un solo orologio per le n <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx22">PDU</a> (che viene resettato ad ogni trasmissione di <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx23">PDU</a>)</p>
</li>

<li id="wx24">
<p id="wx25">si pone in attesa delle conferme di ricezione (<a href="/wit/ACK" title="ACK" wx:linktype="known" wx:pagename="ACK" wx:page_id="1073276" id="wx26">ACK</a>)</p>
</li>

<li id="wx27">
<p id="wx28">se scade il timeout prima della conferma di ricezione relativa alla <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx29">PDU</a> che ha settato il timeout, ripete la trasmissione di tutte le <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx30">PDU</a> non ancora confermate</p>
</li>
</ul>

<p id="wx31"><i id="wx32">Il ricevitore</i> invece, quando riceve una <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx33">PDU</a>, ne controlla la correttezza ed il numero di sequenza. Se la <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx34">PDU</a> è corretta ed in sequenza la consegna al livello superiore (eventualmente insieme ad altre <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx35">PDU</a> ricevute in sequenza), mentre se la <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx36">PDU</a> è corretta ma non in sequenza:</p>

<ul id="wx37">
<li id="wx38">
<p id="wx39">se è entro la finestra di ricezione la memorizza</p>
</li>

<li id="wx40">
<p id="wx41">se è fuori dalla finestra di ricezione la scarta</p>
</li>
</ul>

<p id="wx42">Infine invia un <a href="/wit/ACK" title="ACK" wx:linktype="known" wx:pagename="ACK" wx:page_id="1073276" id="wx43">ACK</a> relativo all’ultima <a href="/wit/PDU" title="PDU" wx:linktype="known" wx:pagename="PDU" wx:page_id="706255" id="wx44">PDU</a> ricevuta in sequenza</p>

<p id="wx45">In caso di perdita singola, questa versione del protocollo si comporta come il <a href="/wit/Go-Back-N_ARQ" title="Go-Back-N ARQ" wx:linktype="known" wx:pagename="Go-Back-N_ARQ" wx:page_id="1232412" id="wx46">Go Back N</a> in termini di velocità di trasmissione (throughput) e occupazione del canale, mentre si presentano dei vantaggi nei due sequenti casi:</p>

<ul id="wx47">
<li id="wx48">
<p id="wx49">il <a href="/wit/Round_Trip_Time" title="Round Trip Time" wx:linktype="known" wx:pagename="Round_Trip_Time" wx:page_id="698297" id="wx50">Round Trip Time(RTT)</a> è inferiore al tempo di trasmissione della finestra, in quanto un nuovo <a href="/wit/ACK" title="ACK" wx:linktype="known" wx:pagename="ACK" wx:page_id="1073276" id="wx51">ACK</a> permette di spostare in avanti la finestra prima di completarne la ritrasmissione</p>
</li>

<li id="wx52">
<p id="wx53">in presenza di perdite ripetute sui dati, poiché si memorizza in ricezione, è sufficiente che una sola copia di ogni pacchetto sia arrivata al ricevitore</p>
</li>
</ul>

<p id="wx54">Per migliorare le prestazioni di questo sistema, si possono adottare ack selettivi e modificare il comportamento del trasmettitore, vincolandolo a ritrasmettere solo il primo pacchetto (perso) nella finestra: in questo modo si riduce l’occupazione del canale, poiché si recupera 1 pacchetto perso ogni <a href="/wit/Round_Trip_Time" title="Round Trip Time" wx:linktype="known" wx:pagename="Round_Trip_Time" wx:page_id="698297" id="wx55">RTT</a></p>
</wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=Selective_repeat_ARQ" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx56">Categorie</a>: <span dir="ltr" id="wx57"><a href="/wit/Categoria:Protocolli_di_rete" title="Categoria:Protocolli di rete" wx:linktype="known" wx:pagename="Categoria:Protocolli_di_rete" wx:page_id="27400" id="wx58">Protocolli di rete</a></span> | <span dir="ltr" id="wx59"><a href="/wit/Categoria:Teorie_di_rete" title="Categoria:Teorie di rete" wx:linktype="known" wx:pagename="Categoria:Teorie_di_rete" wx:page_id="1017085" id="wx60">Teorie di rete</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://en.wikipedia.org/wiki/Selective_Repeat_ARQ" class="external" wx:linktype="interwiki" wx:pagename="en:Selective_Repeat_ARQ" id="wx61">English</a></div>
</body>
</html>
