いろんなプロトコルなどのバイナリ上のバージョン表現をまとめたい場所
やりたいこと
バイナリのプロトコルやファイル形式でのバージョンの表現をどうやっているかを調べてまとめたい場所。
バージョンの表現は具体的には、
バイナリのどこらへんに配置されるのか?
なんビットなのか?
などを指している。
Internet Protocol
IPv4
バージョンは最初の4ビット。
https://gyazo.com/12729ae542065d610bdaff18cbabfbb3
引用元: IPv4 - Packet Structure - Tutorialspoint
IPv6
バージョンは最初の4ビット。
https://gyazo.com/f5bec32df8c60481c5bdfba7f12d34c8
引用元: Internet Protocol version 6 (IPv6) Header - GeeksforGeeks
QUIC
Long Headerの場合。バージョンは最初の方の32ビット。
https://gyazo.com/38c128aeb93fdf489ff5e7f921ad3a7b
以下に書かれているように、エンディアンはビッグエンディアン。
All numeric values are encoded in network byte order (that is, big endian)
引用元: draft-ietf-quic-transport-11 - QUIC: A UDP-Based Multiplexed and Secure Transport