From b82564b0ac452355147bfb5a19be8710c663b3f6 Mon Sep 17 00:00:00 2001
From: A-star-ayush <myselfthebest@yahoo.com>
Date: Tue, 15 Aug 2017 01:25:04 +0530
Subject: [PATCH] tcp: rfc 3042: implemented limited transmit
---
src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp
index 44dfc9b..af2027b 100644
a
|
b
|
TCPEndpoint::_DuplicateAcknowledge(tcp_segment_header &segment)
|
1281 | 1281 | if (fDuplicateAcknowledgeCount == 0) |
1282 | 1282 | fPreviousFlightSize = (fSendMax - fSendUnacknowledged).Number(); |
1283 | 1283 | |
1284 | | if (++fDuplicateAcknowledgeCount < 3) |
1285 | | return; |
| 1284 | if (++fDuplicateAcknowledgeCount < 3) { |
| 1285 | if (fSendQueue.Available(fSendMax) != 0 && fSendWindow != 0) { |
| 1286 | fSendNext = fSendMax; |
| 1287 | fCongestionWindow += fDuplicateAcknowledgeCount * fSendMaxSegmentSize; |
| 1288 | _SendQueued(); |
| 1289 | TRACE("_DuplicateAcknowledge(): packet sent under limited transmit on receipt of dup ack"); |
| 1290 | fCongestionWindow -= fDuplicateAcknowledgeCount * fSendMaxSegmentSize; |
| 1291 | } |
| 1292 | } |
1286 | 1293 | |
1287 | 1294 | if (fDuplicateAcknowledgeCount == 3) { |
1288 | 1295 | fSlowStartThreshold = max_c(fPreviousFlightSize / 2, 2 * fSendMaxSegmentSize); |