In some situations, keepalives can be useful for making sure the connection stays up. We should implement a simple Ping/Pong mechanism to do this. ```[tasklist] ### Tasks - [ ] Think about the abstraction level where the keepalive should be implemented - [ ] Implement codec and wire definitions ```