I just want to make something clear first. You can't implement features (Or additional fields) to client with just sending them the packet. The only option is making the client's program able to self-modifying and sending the code that interprets the data from the server, or very similar option and easy is making the client update it's software.
But I guess you don't want to tangle your program much as described above. To make older client compatibility with newer versions you need to make the server work like client's version. You'll need to duplicate your way of communication (The code itself that arranges the packets before sending) each time you implement new feature or fields and when client is using older version, communicate with it in the same version on the server.