/** * Compares the sender's highest seqno with my highest seqno: if the sender's is higher, ask sender for retransmission * @param sender The sender * @param seqno The highest seqno sent by sender */ protected void handleHighestSeqno(Address sender, long seqno) { // check whether the highest seqno received from sender is > highest seqno received for sender in my digest. // If yes, request retransmission (see "Last Message Dropped" topic in DESIGN) Table<Message> buf=xmit_table.get(sender); if(buf == null) return; long my_highest_received=buf.getHighestReceived(); if(my_highest_received >= 0 && seqno > my_highest_received) { log.trace("%s: my_highest_rcvd (%s#%d) < highest received (%s#%d): requesting retransmission", local_addr, sender, my_highest_received, sender, seqno); retransmit(seqno,seqno,sender); } }
if(win != null) { long highest_acked=win.getHighestDelivered(); // highest delivered == highest ack (sender win) long highest_sent=win.getHighestReceived(); // we use table as a *sender* win, so it's highest *sent*...
long my_hr=buf.getHighestReceived(); if(hr >= 0 && hr > my_hr) { log.trace("%s: my_highest_rcvd (%d) < stability_highest_rcvd (%d): requesting retransmission of %s",
/** * Compares the sender's highest seqno with my highest seqno: if the sender's is higher, ask sender for retransmission * @param sender The sender * @param seqno The highest seqno sent by sender */ protected void handleHighestSeqno(Address sender, long seqno) { // check whether the highest seqno received from sender is > highest seqno received for sender in my digest. // If yes, request retransmission (see "Last Message Dropped" topic in DESIGN) Table<Message> buf=xmit_table.get(sender); if(buf == null) return; long my_highest_received=buf.getHighestReceived(); if(my_highest_received >= 0 && seqno > my_highest_received) { log.trace("%s: my_highest_rcvd (%s#%d) < highest received (%s#%d): requesting retransmission", local_addr, sender, my_highest_received, sender, seqno); retransmit(seqno,seqno,sender); } }
if(win != null) { long highest_acked=win.getHighestDelivered(); // highest delivered == highest ack (sender win) long highest_sent=win.getHighestReceived(); // we use table as a *sender* win, so it's highest *sent*...
long my_hr=buf.getHighestReceived(); if(hr >= 0 && hr > my_hr) { log.trace("%s: my_highest_rcvd (%d) < stability_highest_rcvd (%d): requesting retransmission of %s",