Re: [dccp] DCCP specification updates

2006-03-15 Thread Eddie Kohler
FYI: The Linux implementation doesn't even support short sequence numbers currently, haven't checked the NetBSD one. - Arnaldo An even better reason to make 0 the default. Thanks! E

[dccp] other proposed AUTH48 changes for DCCP spec

2006-03-16 Thread Eddie Kohler
Hi all, Here are the other technical corrections, clarifications, and two or three changes we propose to make in AUTH48 for the DCCP spec. CORRECTIONS AND CLARIFICATIONS - Options are explicitly allowed to declare how they behave when Mandatory. - The FGSS feature (Section 6.6.4)

[dccp] DCCP Wiki and diffs for implementers

2006-04-03 Thread Eddie Kohler
Hi all, yay RFCs! I've turned the DCCP site into a wiki. So if you want to add to the wiki write me email and I will give you a login. New link (redirected from old link as well): http:// www.read.cs.ucla.edu/dccp/ Also, implementers may want to examine the diffs between the last

Re: [dccp] Faster Restart: An Issue..

2006-09-27 Thread Eddie Kohler
You are neither wrong nor stupid, but I'm not sure that your suggested algorithm is the best possible fix. Part of my confusion stems from the fact that I can't quite follow the example. Where is the idle period? Exactly which packets are sent when? Also are you measuring X in bytes per

Re: [dccp] Packet size s on CCID3

2006-10-03 Thread Eddie Kohler
There are a couple issues with the packet size. This mail will list my understanding of those issues. It has no solutions, for that there will be another mail. One thing we have had to consider is that different congestion points in the network might have different limitations.

Re: [dccp] Packet size s on CCID3

2006-10-04 Thread Eddie Kohler
Hello; we may have finally got to the root of the confusion. Section 5.3 of RFC 4342 gives two ways to calculate s, 's=MSS' and average packet size. Both choices remain valid. HOWEVER, the implementation MUST apply its choice consistently. For example, the application MUST NOT use average

Re: [dccp] Packet size s on CCID3

2006-10-04 Thread Eddie Kohler
Maybe we should rename the variable s to the nominal packet size instead of the packet size. Eddie Arjuna Sathiaseelan wrote: Dear Eddie, Thanks for your reply :). Please see inline: Hello; we may have finally got to the root of the confusion. Yes :) HOWEVER, the implementation

[dccp] [Fwd: RFC 4340 errata]

2006-12-17 Thread Eddie Kohler
4340 to report. See the attached. Thanks very much for your work! Eddie Kohler Thanks to Alfred Hoenes for reporting several errors in RFC4340. One technical omission has been found concerning the FGSR and FGSS variables used to detect reordering of feature negotiation options. We suggest

[dccp] more errata

2006-12-17 Thread Eddie Kohler
We propose to send in the following erratum about RFC 4342 initial sending rates. Any comments? RFC 4342, Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 3: TCP-Friendly Rate Control (TFRC) Reported By: Eddie Kohler, from Arjuna Sathiaseelan Date: Section 5

Re: [dccp] DCCP Service Codes

2006-12-17 Thread Eddie Kohler
Hi Gorry, I wouldn't say a range of ports, since that indicates a contiguous range, which is not what you mean. Otherwise the document seems a fair distillation of what's in the RFCs. Thanks! Eddie Gorry Fairhurst wrote: I have a written a new individual I-D to capture all my notes and

Re: [PATCH] [DCCP]: Use higher timeout value for nofeedback timer

2006-12-17 Thread Eddie Kohler
I agree with Mark here. The cleanest implementation of the nofeedback timer would probably not involve actual Linux timers at all! Unless I'm very confused, the nofeedback timer is only needed to change sending rates, and thus can safely be checked in the process of sending a packet. Not

Re: [dccp] Re: [PATCH 2/5]: DCCP Recalc on non-loss intervals

2007-01-04 Thread Eddie Kohler
The reason for this is if you are recalculating i_mean based on non loss you should check after every packet received. However this involves quite a lot of calculations on linked lists which are CPU intensive and also stall other processes potentially with locks being taken. So what I've done is

Re: [dccp] Re: [PATCH 2/5]: DCCP Recalc on non-loss intervals

2007-01-04 Thread Eddie Kohler
You shouldn't need to iterate through the list, since i_mean is just i_tot/w_tot, and w_tot is a constant. You do need to divide, though. If it makes no difference to you I'd recommend going with the simpler version -- the logic in dccp_li_hist_recalc_recalcloss is difficult to follow; I

Re: [dccp] Re: [PATCH 2/5]: DCCP Recalc on non-loss intervals

2007-01-04 Thread Eddie Kohler
Also, the weights in dccp_li_hist_w appear to be wrong. They should be 5, 5, 5, 5, 4, 3, 2, 1, not 4,4,4,4,3,2,1,1, according to rfc3448. I don't believe so. We've done this as per section 8 of RFC3448 and divide by 4 rather than 5. Ah yes, never mind. Eddie

[dccp] Re: CCID 3 question: length of the `open' loss interval I_0

2007-01-10 Thread Eddie Kohler
Hi Gerrit, Strictly speaking one can identify a loss event with a single ECN-marked packet, so I_0 might be 3, but let that pass. The RFC occasionally uses lost to mean lost or marked. The correct answer is simply to subtract X_prev from the sequence number of the currently received

Re: [dccp] Sequence number validity

2007-02-03 Thread Eddie Kohler
No, it's not true. If SWL=0 and seqno=2^47+1, then seqno SWL in circular 48-bit arithmetic. [EMAIL PROTECTED] wrote: Hi all, In section 7.5.3 of the RFC4340 (Sequence-Validity rules) and in pseudocode as well (rfc4340, page 96) the following sequence numbers test is used to make

Re: [dccp] Question on resetting nominal send time

2007-02-07 Thread Eddie Kohler
Hi Ian, Sorry for the delay in responding. I agree that the t_ipi implementation sketched in RFC3448 Section 4.6 is incomplete with respect to slow applications, idle periods, and the like. :( What follows is a first cut at a solution. Any thoughts from others?? If t_ipi is used to

Re: [dccp] Burst size of TFRC mechanism unbounded

2007-02-07 Thread Eddie Kohler
Hi Gerrit, In my response to Ian, I proposed a time-based compensation mechanism rather than a fixed token bucket byte limit. (Please note that I corrected the first mail.) I think a byte limit of floor(MSS/s) is way too conservative, and any fixed byte-based compensation mechanism is the

Re: [dccp] Question on resetting nominal send time

2007-02-07 Thread Eddie Kohler
WHOOPSY! I wrote t_ipi when I meant t_nominal, or whatever symbol you choose for the time the next packet is allowed to be sent. t_ipi should not be changed; it depends on X_inst. Eddie Kohler wrote: If t_ipi is used to schedule transmissions, then the following equation should be applied

Re: [dccp] TFRC minrate calculation after idle or datalimited period

2007-02-14 Thread Eddie Kohler
Arjuna: Arjuna Sathiaseelan wrote: Dear Eddie, Thanks for your reply..Ok - the way I saw this problem was like this: Say the sender is idle for 1.5 RTTs and then sends 2 packets, then when the feedback is received, then the following part of the algorithm from Section 4.3 (RFC3448) would be

Re: [dccp] TFRC minrate calculation after idle or datalimited period

2007-02-14 Thread Eddie Kohler
and not RFC3448...I was raising points from the RFC3448-bis draft under the presumption that this draft obsoletes rfc3448 when it comes to implementing in ns-2.. Arjuna On 2/14/07, Eddie Kohler [EMAIL PROTECTED] wrote: Arjuna: Arjuna Sathiaseelan wrote: Dear Eddie, Thanks for your reply..Ok - the way

Re: [dccp] TFRC minrate calculation after idle or datalimited period

2007-02-15 Thread Eddie Kohler
should be managed. I am not clear from reading this how an update of the TFRC base spec needs to be treated, is that what you are asking? I note that there are other issues that also need to be addressed in CCID-3. Gorry Eddie Kohler wrote: I hope Sally and/or Mark speak up here. I'm not sure

Re: [dccp] Ack vector implementation notes

2007-02-21 Thread Eddie Kohler
Hi Vladimir, You are right. There is an error. But the buffer SHOULD read as follows: ** +***+ * 12 |0,0|3,0|0,0|3,0|3,0|3,0|0,4|1,0|0,0| 0BN[0] ** +***+ * ^

Re: [dccp] Some comments on the draft of 3448/TFRC.bis (Feb 2007)

2007-03-06 Thread Eddie Kohler
I would also like to see RFC3448bis include Faster Restart. However, the two specs serve different purposes and have different half-lives. RFC3448bis is being pushed towards quick publication as Proposed Standard, I believe. FR is not suitable for that track. Which will leave us in the

Re: [dccp] Some comments on the draft of 3448/TFRC.bis (Feb 2007)

2007-03-07 Thread Eddie Kohler
While I agree with your points, I also feel like we are in a different situation with TFRCbis, where the delta between TFRCbis and FR might be measured in months, rather than years Long live TCP and other dead research, Eddie Sally Floyd wrote: I would also like to see RFC3448bis include

Re: [dccp] Why do we have or should have keep-alive packets?

2007-03-27 Thread Eddie Kohler
So I think we need to talk about how to/who should use zero-length packets. It seems to me that the proposed CCID use is wrong. DCCP-Data packets are for carrying user information -- even if that info is nil. To use DCCP-Data packets for a DCCP-level purpose seems to pervert that. CCIDs that

Re: [dccp] Why do we have or should have keep-alive packets?

2007-03-28 Thread Eddie Kohler
Finally reached the end of the thread. == FR uses DCCP-Data because FR measures congestion on keepalives. Congestion on things like Syncs are not measured in the same way, since Syncs are non-data packets. While DCCP does attempt to measure congestion on Syncs it charges the congestion to

Re: [dccp] Comments on draft-fairhurst-dccp-serv-codes-03.txt

2007-06-06 Thread Eddie Kohler
Tom, The addition of service codes by DCCP allows us to break this demultiplexing/identifying duality. We can now say that the *exclusive* use of port numbers is for demultiplexing, and the *exclusive* use of service codes is for identifying applications. This implies a few rules: We COULD

Re: [dccp] WG Last Call for RTP over DCCP draft

2007-06-11 Thread Eddie Kohler
Colin, Better late than never, perhaps; some comments on RTP over DCCP. The draft is clear and really well written which is awesome. A writing nit: it is generally better not to treat references as nouns; rather than RTP over TCP, as defined in [5], say RTP over TCP [5]. But this is not that

Re: [dccp] DCCP for VoIP

2007-08-18 Thread Eddie Kohler
This sounds like a very interesting idea. While the documents specify that feedback is sent once per RTT, since this is what TFRC recommends, I think more frequent feedback is a fine idea even for low-loss-rate/low-RTT scenarios (twice or four times per RTT, say?), and probably mandatory for

Re: [dccp] Service codes

2007-08-20 Thread Eddie Kohler
Tom, I think most of what you write is allowed by, or required by, the current spec. (As you probably knew.) Phelan, Tom wrote: REQ: A DCCP implementation MUST require the using application to explicitly set the service code associated with a socket before it can be used in a listen or

Re: [dccp] New draft :draft-ietf-dccp-serv-codes-01.txt

2007-10-11 Thread Eddie Kohler
Gorry, Gorry Fairhurst wrote: Applications/protocols that provide version negotiation or indication in the protocol operating over DCCP do not require a new server port for each new protocol version. New versions of such applications/protocols SHOULD continue to use the same Service Code. If

Re: [dccp] New draft :draft-ietf-dccp-serv-codes-01.txt

2007-10-12 Thread Eddie Kohler
I'd be fine with a SHOULD. Eddie Phelan, Tom wrote: Hi Eddie, One question on your comments: 3 = This section explicitly updates RFC 4340 as follows: A DCCP implementation MUST allow multiple applications using different DCCP service codes to listen on the same server port.

Re: [dccp] New draft :draft-ietf-dccp-serv-codes-01.txt

2007-10-12 Thread Eddie Kohler
My immediate goal is to make sure I understand how RFC4340 should be read: * If my understanding is correct, RFC4340 says exactly ONE application (we do not indicate which) can be associated with a specific SC of zero on a particular server port. Yes. * Which set of ports do you expect

Re: [dccp] New draft :draft-ietf-dccp-serv-codes-01.txt

2007-10-13 Thread Eddie Kohler
Gorry Fairhurst wrote: Eddie Kohler wrote: snip SC=0 allows Unix-like implementations to associate a valid Service Code with every socket, without changing the procedure used for opening sockets (i.e., without adding extra setsockopt calls or adding members to struct sockaddr). Linux

Re: [dccp] Re: 3448-bis - datalimited to app-limited?

2007-11-19 Thread Eddie Kohler
I prefer data-limited; any data comes ultimately from an application. Eddie Gorry Fairhurst wrote: Sally Floyd wrote: Dear Sally, Just to avoid ambiguity, in 3448-bis, would it be better to change data-limited to application-limited? This would conforms to RFC2861. On looking over RFC

Re: [dccp] New revision of The DCCP Service Code

2008-02-26 Thread Eddie Kohler
Gorry, comments on service-codes-04. The original draft of the DCCP specification did not use traditional ports; instead the client allocated a 32-bit identifier to uniquely identify the connection. ... This design suffered from the downside of being sufficiently different from

Re: [dccp] Working group last call for service codes

2008-08-25 Thread Eddie Kohler
My favorite thing in this new draft is the specific way you have identified changes to RFC4340. Thanks! Detailed comments. Service Codes allow a flexible correspondence between application- layer services and server port numbers, which affects how applications interact with DCCP.

Re: [dccp] Working group last call for service codes

2008-09-07 Thread Eddie Kohler
P.S. Have you checked if the port allocation requests for DCCP in Section 6, seem right? Yes, they look fine. Although I would not use Perf, the vast vast vast majority of port allocations are all lower case. Eddie

Re: [dccp] Question about example in RFC

2008-09-19 Thread Eddie Kohler
Oded, I think I agree with your analysis, and believe that you have found an error in the RFC. There are two problems, the problem of shutting down the half-open connection, and the problem of TIMEWAIT state. It is easier to solve the first problem. (A) Partial solution: A half-open

Re: [dccp] WGLC for draft-ietf-dccp-simul-open-05 - following up on comments

2008-11-17 Thread Eddie Kohler
The document's basic outline seems fine. Using a new packet type for this purpose seems fine. The document is not ready to publish yet, because of a high typo load and lack of specificity in how packets are processed (i.e. no explicit pseudocode changes). These problems can probably be

Re: [dccp] DCCP port randomization

2010-02-16 Thread Eddie Kohler
Fernando Gont wrote: Hello, folks, I'm trying to finish a rev of the port-randomization I-D. The only remaining bit is the DCCP-specific text. It'd be great if any you could help me with closing these remaining bits... Comments in-line... So the question in this regard wrt DCCP would be: if

Re: [dccp] UDP encaps for SCTP and SCCP

2010-05-24 Thread Eddie Kohler
Hi Lars, I vote for (1), SCTP-specific and DCCP-specific UDP encaps. Although those specific encaps could be very similar, or in fact identical at first, there are enough protocol differences to recommend planning ahead for potential divergence. At minimum there could be two documents that

Re: [dccp] WGLC for dccp-udpencap

2010-09-20 Thread Eddie Kohler
Hello all, I understand that WGLC for this draft has concluded, but in case comments are useful, here are several. I strongly approve of the document; it is a clean and useful spec and a good advance on prior versions, whether or not these comments are addressed. The only technical comment

Re: [dccp] [udp-encap rev2] discussion/comments

2010-10-13 Thread Eddie Kohler
This isn't what you're asking, Gerrit, since you are (correctly) worrying about UNEXPECTED differences that would only crop up in a prototype, but here is a list of expected changes a kernel DCCP would require to work with UDP encapsulation. - Using a 6-tuple instead of a 4-tuple for flow

Re: [dccp] Tracking dccp-udpencap

2010-10-13 Thread Eddie Kohler
Using a 6-tuple for flow identification needs to be added to this list; the spec is incorrect without it. I have no objection to Gorry's firewall suggestion. E On 10/13/10 4:30 AM, Pasi Sarolahti wrote: Hi, To my understanding the status of the main issues and comments made on

Re: [dccp] [udp-encap rev2] discussion/comments

2010-10-16 Thread Eddie Kohler
I think you misunderstand. Gerrit asked if *an existing kernel DCCP* would need to change to work with UDP encapsulation. That's the question I answered. DCCP-UDP encapsulation could be implemented at userlevel over a UDP socket with no kernel changes. Some of its choices, such as the

Re: [dccp] revised sender RTT estimate draft-ietf-dccp-tfrc-rtt-option-00.txt

2010-10-18 Thread Eddie Kohler
Hi, Will look over the new draft, but I have a response to your comments. It would be good to hash it out. On 10/18/2010 04:19 AM, Gerrit Renker wrote: * S3.3 When the Send RTT Estimate FEATURE [sic, note added word] is disabled, the sender MUST NOT send RTT Estimate options Why

Re: [dccp] revised sender RTT estimate draft-ietf-dccp-tfrc-rtt-option-00.txt

2010-10-20 Thread Eddie Kohler
in RFC4340/4342/5622. Eddie Gorry On 19/10/2010 01:38, Eddie Kohler wrote: Hi, Will look over the new draft, but I have a response to your comments. It would be good to hash it out. On 10/18/2010 04:19 AM, Gerrit Renker wrote: * S3.3 When the Send RTT Estimate FEATURE [sic, note added word

Re: [dccp] revised sender RTT estimate draft-ietf-dccp-tfrc-rtt-option-00.txt

2010-10-20 Thread Eddie Kohler
Gerrit... On 10/19/2010 10:42 PM, Gerrit Renker wrote: It is justified by applying the suggestions made in that section. If you can officially add what you have written in the preceding email as an erratum to RFC 4340 we would be happy to use it. Otherwise we will not change it. You and Gorry

[dccp] initial thoughts on draft-ietf-dccp-tfrc-rtt-option-00.txt

2010-10-20 Thread Eddie Kohler
S3.2.1 says: A value of 0 indicates the absence of a valid RTT sample. The sender MUST set the value to 0 if it does not yet have an RTT estimate. I would also say A packet without an RTT Estimate option is considered to carry an RTT Estimate value of zero. S3.3 says: When the

Re: [dccp] revised sender RTT estimate draft-ietf-dccp-tfrc-rtt-option-00.txt - result when negotiation fails

2010-10-28 Thread Eddie Kohler
Hi Gerrit, Hooray! I think we actually agree. Nevertheless, here is a full response. On 10/28/10 4:01 AM, Gerrit Renker wrote: When deciding to use the option without negotiation, something similar to feature negotiation needs to be defined, e.g. to require that Sender RTT estimate options

Re: [dccp] revised sender RTT estimate draft-ietf-dccp-tfrc-rtt-option-00.txt - result when negotiation fails

2010-11-02 Thread Eddie Kohler
Gerrit: As I have explained now several times, all analogous features in DCCP are defined with MUST/MAY language. You continue to use language like bypassing feature negotiation that is simply not a correct description of the spec. Feature negotiation is not being bypassed, as I hope you

Re: [dccp] revised sender RTT estimate draft-ietf-dccp-tfrc-rtt-option-00.txt - result when negotiation fails

2010-11-05 Thread Eddie Kohler
specified in RFC4340/4342/5622. If we can leave out the MUST NOT part, then less is more. Would that be ok? Gerrit Quoting Eddie Kohler: Gerrit: As I have explained now several times, all analogous features in DCCP are defined with MUST/MAY language. You continue to use language like

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2010-12-13 Thread Eddie Kohler
Hi Gorry, The text is close; I've put a revision below. I have other comments on that section too; also below. As for the 6-tuple, WG FEEDBACK would be good. 1) Does the text capture the problem? Reasonably well, could be better. 6-tuples are MUST, not SHOULD. 2) Do you think this is

Re: [dccp] addressed comments in draft-ietf-dccp-tfrc-rtt-option-01

2010-12-13 Thread Eddie Kohler
Hi all, Abstract: upward and downward compatible = normally written forward and backward Introduction: Doubt phrase Standards Track would survive WGLC. 1st sentence: move references to what they refer to. This document defines a Standards Track update to both a sender and receiver

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2010-12-15 Thread Eddie Kohler
On 12/15/2010 01:02 PM, Colin Perkins wrote: The only way to avoid a 6-tuple is to REQUIRE (with a MUST) that the UDP ports equal the DCCP ports. In that case, the DCCP ports would be ignored on packet receipt; the UDP ports would be used for the DCCP ports as well. You can then use a

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2011-02-07 Thread Eddie Kohler
Colin, The problem solved by the 6-tuple is that the receiver CANNOT simply throw away the UDP ports. The UDP ports are a critical component of flow demultiplexing. Do I misunderstand you? Eddie On 2/7/11 3:54 AM, Colin Perkins wrote: On 1 Feb 2011, at 09:02, Pasi Sarolahti wrote: On

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2011-02-07 Thread Eddie Kohler
, Colin Perkins wrote: On 7 Feb 2011, at 15:24, Eddie Kohler wrote: Colin, The problem solved by the 6-tuple is that the receiver CANNOT simply throw away the UDP ports. The UDP ports are a critical component of flow demultiplexing. Do I misunderstand you? Yes, you misunderstand. Obviously

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2011-02-07 Thread Eddie Kohler
I think underspecified choices like this have been controversial with our implementers in the past. E On 02/07/2011 04:16 AM, Gerrit Renker wrote: | I have now implemented all the corrections in the UDP encaps draft, | except for the issue of how we implement transport demultiplexing, |

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2011-02-07 Thread Eddie Kohler
I like 4-tuple IP/UDP. - Look up IP+UDP 4-tuple - If flow exists and DCCP ports conflict, send Reset; otherwise continue This seems no more complex than a straight-up 6-tuple. The draft could introduce a new Reset Reason for encapsulated port reuse so a tunneled endpoint could immediately

Re: [dccp] addressed comments in draft-ietf-dccp-tfrc-rtt-option-01

2011-02-08 Thread Eddie Kohler
Dear Gerrit, These changes are good ones and I think have made the document much cleaner and better, thank you! I have one comment on this draft, it is editorial: DCCP B sends a Mandatory Change R(Send RTT Estimate, 1) to ask DCCP A to send RTT Estimate options as part of its data

Re: [dccp] draft-ietf-dccp-udpencap-03 - 6-tuple

2011-02-19 Thread Eddie Kohler
Hi Gorry, looks good! Only nits: On 2/10/11 1:58 AM, Gorry Fairhurst wrote: A DCCP-UDP endpoint MAY use any UDP port number, providing the active endpoint knows a valid UDP Destination Port on the passive endpoint. By default, a DCCP-UDP client sets the destination port to the default port

Re: [dccp] WGLC for draft-ietf-dccp-udpencap

2011-02-25 Thread Eddie Kohler
The draft looks good! (There's one nit -- in S4 Encapsulations should be Encapsulation -- but good.) Eddie On 2/25/11 2:56 AM, Pasi Sarolahti wrote: Hi, This mail starts a working group last call for the UDP encapsulation draft. The draft is available at

Re: [dccp] AD review: draft-ietf-dccp-tfrc-rtt-option-03

2011-03-04 Thread Eddie Kohler
Hi Gerrit, Lars is right, cannot is far more idiomatic, in written or spoken text. http://www.drgrammar.org/frequently-asked-questions#30 http://www.wsu.edu/~brians/errors/cannot.html Eddie On 3/4/11 3:54 AM, Gerrit Renker wrote: Lars, - | than 4 can not be determined: such samples

Re: [dccp] AD review: draft-ietf-dccp-tfrc-rtt-option-03

2011-03-04 Thread Eddie Kohler
in technical writing. -Original Message- From: dccp-boun...@ietf.org [mailto:dccp-boun...@ietf.org] On Behalf Of Eddie Kohler Sent: 04 March 2011 15:27 To: Gerrit Renker Cc: dccp@ietf.org group Subject: Re: [dccp] AD review: draft-ietf-dccp-tfrc-rtt-option-03 Hi Gerrit, Lars is right, cannot

Re: [dccp] AD review: draft-ietf-dccp-tfrc-rtt-option-03

2011-03-05 Thread Eddie Kohler
Well, TFRC is only one of DCCP WG's four chartered areas. DCCP implementation and deployment experience seems to show that rate-based protocols are simply harder to implement than ack-paced protocols. There are a lot of good implementation reasons for this. As a result, TFRC isn't a