Subject: [core] Blockwise Transfer and TCP

From: "Carey, Timothy (Timothy)" <[email-masked]>
Date: Fri, 24 Apr 2015 23:23:34 +0000

Team,

Section 4.1 current draft of the draft-tschofenig-core-coap-tcp-tls-03 states support for the draft-ietf-core-block draft.

However the current core-block draft uses CON/ACKs and the tcp-tls draft doesn't address how the adaptation layer in the TCP will address the use of CON and ACKs in block since CON is not supported in TCP.

I think there are scenarios where in the TCP protocol - that ACKs do not have data transmitted and I would think that multiple blocks could be put into a TCP window as well as allowing a block to span a TCP window?

Do we know how TCP will work with Block transfers - Its not documented in tcp-tls-03.

Any help would be appreciated.

Thanks,
Tim

---

From: Carsten Bormann <[email-masked]>
Date: Sat, 25 Apr 2015 09:07:41 +0200

Carey, Timothy (Timothy) wrote:
> However the current core-block draft uses CON/ACKs

The examples do, as they use UDP CoAP.

If you remove all empty messages and strip the remaining requests and
responses of their message layer fields, you obtain examples for CoAP
over TCP (except for the examples that show message losses, of course).
 Do you think doing that for a few of the block-wise examples would be a
good addition to the TCP draft?

Grüße, Carsten

---

From: "Carey, Timothy (Timothy)" <[email-masked]>
Date: Sat, 25 Apr 2015 12:30:15 +0000

Carsten,

If I understand the interactions correctly doesn't the block draft need modified to remove language (not the diagram) that refers to CON and ACK. I see text that assumes the CON/NON message layer exchanges.

Block is entirely reliant on Request/Response and has no reliance on the underlying messaging layer, right? That is what I depicted in the diagram below.

I am trying to place the various drafts in the appropriate “layers” to figure out where the gotchas are when a transport protocol like TCP doesn’t implement the CON/NON message layer.

Of course the issues we are seeing in Observe draft and possibly Block would go away if TCP and Websockets adapted to the existing UDP CON/ACK message layer.

For TCP is would be helpful to see how block transfer happens in when you have long standing session (multiple request/response exchanges) and how it handles some of the alternative flows in Block that currently use the Message Layer in the text language. For the long standing session I  am not sure how the correlation happens between a request and its responses when the various request and responses can be interleaved and message ids are elided. My assumption is we have to rely on Tokens instead.

BR,

Tim

-----Original Message-----
From: Carsten Bormann [mailto:[email-masked]]
Sent: Saturday, April 25, 2015 2:08 AM
To: Carey, Timothy (Timothy)
Cc: [email-masked]
Subject: Re: [core] Blockwise Transfer and TCP

If you remove all empty messages and strip the remaining requests and responses of their message layer fields, you obtain examples for CoAP over TCP (except for the examples that show message losses, of course).

Do you think doing that for a few of the block-wise examples would be a good addition to the TCP draft?

Grüße, Carsten