2005-08-23 jrandom
* Removed the concept of "no bandwidth limit" - if none is specified, its 16KBps in/out. * Include ack packets in the per-peer cwin throttle (they were part of the bandwidth limit though). * Tweak the SSU cwin operation to get more accurrate estimates under congestions. * SSU improvements to resend more efficiently. * Added a basic scheduler to eepget to fetch multiple files sequentially.
This commit is contained in:
@ -109,6 +109,8 @@ public class ACKSender implements Runnable {
|
|||||||
ack.markType(1);
|
ack.markType(1);
|
||||||
if (_log.shouldLog(Log.INFO))
|
if (_log.shouldLog(Log.INFO))
|
||||||
_log.info("Sending ACK for " + ackBitfields);
|
_log.info("Sending ACK for " + ackBitfields);
|
||||||
|
boolean ok = peer.allocateSendingBytes(ack.getPacket().getLength(), true);
|
||||||
|
// ignore whether its ok or not, its a bloody ack. this should be fixed, probably.
|
||||||
_transport.send(ack);
|
_transport.send(ack);
|
||||||
|
|
||||||
if ( (wanted > 0) && (wanted <= peer.getWantedACKSendSince()) ) {
|
if ( (wanted > 0) && (wanted <= peer.getWantedACKSendSince()) ) {
|
||||||
|
@ -884,7 +884,12 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
buf.append(formatKBps(peer.getReceiveBps()));
|
buf.append(formatKBps(peer.getReceiveBps()));
|
||||||
buf.append("KBps/");
|
buf.append("KBps/");
|
||||||
buf.append(formatKBps(peer.getSendBps()));
|
buf.append(formatKBps(peer.getSendBps()));
|
||||||
buf.append("KBps</td>");
|
buf.append("KBps ");
|
||||||
|
//buf.append(formatKBps(peer.getReceiveACKBps()));
|
||||||
|
//buf.append("KBps/");
|
||||||
|
//buf.append(formatKBps(peer.getSendACKBps()));
|
||||||
|
//buf.append("KBps ");
|
||||||
|
buf.append("</td>");
|
||||||
|
|
||||||
buf.append("<td>");
|
buf.append("<td>");
|
||||||
buf.append(DataHelper.formatDuration(now-peer.getKeyEstablishedTime()));
|
buf.append(DataHelper.formatDuration(now-peer.getKeyEstablishedTime()));
|
||||||
@ -923,10 +928,15 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
buf.append(peer.getPacketsReceived());
|
buf.append(peer.getPacketsReceived());
|
||||||
buf.append("</td>");
|
buf.append("</td>");
|
||||||
|
|
||||||
double sendLostPct = (double)peer.getPacketsRetransmitted()/(double)PeerState.RETRANSMISSION_PERIOD_WIDTH;
|
double sent = (double)peer.getPacketsPeriodTransmitted();
|
||||||
|
double sendLostPct = 0;
|
||||||
|
if (sent > 0)
|
||||||
|
sendLostPct = (double)peer.getPacketsRetransmitted()/(sent);
|
||||||
|
|
||||||
buf.append("<td>");
|
buf.append("<td>");
|
||||||
//buf.append(formatPct(sendLostPct));
|
//buf.append(formatPct(sendLostPct));
|
||||||
buf.append(peer.getPacketRetransmissionRate());
|
buf.append(peer.getPacketsRetransmitted()); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent);
|
||||||
|
//buf.append(peer.getPacketRetransmissionRate());
|
||||||
buf.append("</td>");
|
buf.append("</td>");
|
||||||
|
|
||||||
double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();
|
double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();
|
||||||
|
Reference in New Issue
Block a user