Subject: [Tsvwg] RFC 3465 : ABC : ACK'd Segments Just Smaller than SMSS

From: erblichs <[email-masked]>
Date: Fri, 14 Dec 2007 12:08:18 -0800 (GMT-08:00)

Group,

      I think I am looking into the case where the ACK is just slightly smaller than SMSS where ABC is utilized and cwnd is not growing. This is not an attack. At what point, percentage wise, should a partial segment be considered large enough to allow cwnd to increase, without exposing one to the "ACK Division" attack?

            Thanks,   Mitchell Erblich

---

From: Mark Allman <[email-masked]>
Date: Fri, 14 Dec 2007 22:54:07 -0500

>       I think I am looking into the case where the ACK is just
>       slightly smaller than SMSS where ABC is utilized and cwnd is not
>       growing. This is not an attack. At what point, percentage wise,
>       should a partial segment be considered large enough to allow
>       cwnd to increase, without exposing one to the "ACK Division"
>       attack?

I don't follow this.  ABC does increase cwnd.  If an implementation is
using ABC and cwnd is not increasing then there is a bug, I think.  

Just to be clear, consider the case where we start cwnd at SMSS bytes,
packets of size SMSS-5 bytes and use an initial window of just one
packet (to keep things easy).  So,

RTT 1:
  cwnd = SMSS
  transmit segment 1 (SMSS-5 bytes)

RTT 2:
  ack from segment 1 arrives
  cwnd = (2*SMSS) - 5
  trasnmit segment 2 (SMSS-5 bytes)
  trasnmit segment 3 (SMSS-5 bytes)
  (5 bytes of unused cwnd left)

RTT 3:
  ack from segments 2 & 3 arrive (either as one ack packet or two)
  cwnd = SMSS + (3 * (SMSS-5))
       = (4*SMSS)-15
  trasnmit segment 4 (SMSS-5 bytes)
  trasnmit segment 5 (SMSS-5 bytes)
  trasnmit segment 6 (SMSS-5 bytes)
  trasnmit segment 7 (SMSS-5 bytes)
  (5 bytes of unused cwnd left)

  (note, this step assumes an ABC limit of 2*SMSS; applying L=1*SMSS
  should be easy enough to work out)

So, I don't follow the problem you're getting at here.

allman