コラム8-1 プロトコルのバイナリ表現対テキスト表現
通信プロトコルの表現には,大きくバイナリ表現とテキスト表現の2方法があります.バイナリ表現とは,対向する通信システム要素間でやり取りするメッセージを2進符号の連なりで表現することで,テキスト表現とは,人間が読んで理解することのできるアルファベットの連なりで表現することです.前者が電話文化に基づく表現方法で,通信路を流れるメッセージが効率よく送られます.後者はコンピュータ文化に基づく表現方法で,通信路を流れるメッセージが目で見て分かるという利点がある一方,メッセージのサイズが大きくなり易いことが難点です[8-13].一つのメッセージがイーサネットのMTU (Maximum Transmission Unit)サイズ約1500バイトを越えるようになると,パケット分割が生じるので,処理が複雑になります.
例えば,H.245プロトコルは,ASN.1(読みはエイ・エス・エヌ・ドット・ワン,Abstract Syntax Notation One,抽象構文記法1)[8-9]という記法で表現されています.ネットワークで伝送されるときにはバイナリ表現なので伝送効率が高いものの,メッセージが人間には読めない,との批判を聞きますが,現在はWiresharkのようなプロトコルアナライザが利用でき,プロトコル理解やトラブル解決に支障はありません.
一方,SIPやSDPのメッセージは,ABNF (Augmented Backus-Naur Form)[8-20]テキスト表現されていますのでバイナリ表現の逆の特性となります.ただし,人間に読めるといっても複雑なメッセージではデバッグをプロトコルアナライザに頼らざるを得ない,との意見もあります.
いずれにしても,バイナリ表現対テキスト表現の比較は,文化の違いに根ざしているが故に,人々が熱くなり易い話題です.