[Interest] TCP ACK with QDataStream -- OR: disconnect race condition detection
Thiago Macieira
thiago.macieira at intel.com
Mon Sep 10 13:36:47 CEST 2012
On segunda-feira, 10 de setembro de 2012 13.33.24, Till Oliver Knoll wrote:
> Am 10.09.2012 um 13:19 schrieb Thiago Macieira <thiago.macieira at intel.com>:
> > ...
> > It's a layering violation for the Application layer to depend on how the
> > Transport layer works. As I pointed out, the Transport layer may deliver
> > the bytes and even ACK them, but the Application layer above may never
> > receive them, for a variety of reasons.
>
> I was just thinking for a moment that "knowing the number of ACK'ed bytes"
> /could/ be useful in some cased, as in "implementing a minimal reliable
> message protocol" (based entirely on the "TCP reliability".
If TCP is reliable by doing ACKs, why the hell would you need to track ACKs
too? It's redundant: if you get the ACK information, that's because TCP got it
too; if you don't get it, neither did TCP. Therefore, TCP has already got all
the information it needs in order to be reliable.
You can't add more reliability with the same information.
> Even for a simple task such as "Resuming an interrupted download" you *must*
> have a protocol on the Application layer: the amount of ACK'ed bytes does
> tell you *nothing* how much the client actually stored on disk, and from
> where you *really* need to resume.
Exactly.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
More information about the Interest
mailing list