この種のタスクには、適切な選択肢がいくつかあると思います。
ほとんどの場合、私が最初に選択するのはおそらく Sun (現在は Oracle) の XDR でしょう。これは Sun の RPC 実装で使用されているため、かなり長い間かなり厳しくテストされてきました。これはRFC 1832で定義されているため、ドキュメントは広く入手できます。この形式との間の変換方法を知っているライブラリ(ポータブルおよびその他)もあります。オンワイヤー表現は適度にコンパクトで、変換はかなり効率的です。
XDR の潜在的な大きな問題は、データをデコードするためにデータが何を表しているかを知る必要があることです。つまり、送信者と受信者が (たとえば) 構造体の定義に同意していることを (何らかの外部手段によって) 確認する必要があります。受信者が送信内容を(簡単に)理解できるようになる前に、ネットワーク経由で送信します。
完全に自己記述的なストリームを作成する必要がある場合は、ストリーム自体のコンテンツのみに基づいてストリームに含まれるものを誰かが把握できるようにする必要がある場合は、ASN.1 を検討してください。いくつかの点で無愛想で厄介ですが、自己記述型ストリームを生成し、公的に文書化されており、かなり広く使用されています (ただし、ほとんどが限られたドメインで)。エンコードとデコードを実装するライブラリは多数あります。本当に好きな人はいないと思いますが、その機能が必要な場合は、すでに知られ、ある程度受け入れられているという理由だけで、おそらく最初の選択肢です.