PlatformLab / HomaModule

A Linux kernel module that implements the Homa transport protocol.
175 stars 43 forks source link

Allow sending zero length message #25

Closed NickCao closed 1 year ago

NickCao commented 1 year ago

zero length message might sound like an unplausible idea, but as homa is built around the notion of request/response (RPC) style communication, a zero length message serves perfectly as an ACK.

johnousterhout commented 1 year ago

I'll put this on my to-do list. I don't think it's a trivial change, so it may have to wait a bit...

On Tue, Mar 7, 2023 at 6:13 PM Nick Cao @.***> wrote:

zero length message might sound like an unplausible idea, but as homa is built around the notion of request/response (RPC) style communication, a zero length message serves perfectly as an ACK.

— Reply to this email directly, view it on GitHub https://github.com/PlatformLab/HomaModule/issues/25, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACOOUCRER2HNM2MO2GK7FWDW27TOBANCNFSM6AAAAAAVTG3DPQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

johnousterhout commented 1 year ago

I finally found time to take a look at this. I started implementing support for zero-length messages, but they create a lot of complexity and special cases. For example, a zero-length message appears to be fully transmitted (there are no bytes left to send) even when no packets have been sent. My conclusion is that this feature isn't worth the extra complexity (and slight additional execution time) that it incurs for Homa. A zero-length message will end up getting padded because of the minimum packet size, so it doesn't actually save any bytes on the wire. Thus, a one-byte message will work just as well for an ACK as a zero-byte message.