Instant Messaging のために、TCP の上に独自のアプリケーション層プロトコルを定義したとします。メッセージにはパケット構造を使用しました。対称 (AES) および非対称 (RSA) 暗号化を使用しているため、異なるメッセージ タイプに対して異なるパケット サイズを取得します。今私の質問に。
単一のアプリケーション層パケットを受信したことをソケットから読み取る方法は? どのサイズを指定すればよいですか?
前もって感謝します。
私は2つのアプローチを念頭に置いています。
実際のパケット サイズを表す一定量のバイトを TCP ストリームから読み取り、最後に、以前に収集されたバイト サイズをストリームから再度読み取ります。
ストリームから最大パケット サイズを読み取ります。取得したバイトの実際のサイズを確認し、それがどのメッセージ タイプであったかを判断します。
さて、より一般的な質問です。パケット サイズ、暗号化方式、受信者、送信者などのメタデータを提供する必要がありますか? はいの場合、これらのメタデータも暗号化する必要がありますか?