The kernel connection multiplexer
lwn.net
lwn.net
In the single process case there is also a potential performance win by not waking processes to deliver a partial message only to have the process block awaiting the rest.
Why not just use the TCP "push" flag that is added exactly once per application-level message on sender side; and on receiver side, buffer in-kernel until "push" is encountered?