Protobuf has known issues with backward/forward compatibility that require special attention, ASN.1 makes it IMHO remarkably easier (also consider kerberos which uses ASN.1, defining each extensible piece of data with extra tag declaring whether it must be parsed or can be ignored and passed on)