[transport] use transport ack() abstraction