I tried to stay consistent with the way it is layered: HttpProtocol prepares the messages and NettyTransport sends them. That means no channel in HttpProtocol.