兩種常見封包格式
1. 二進制格式(固定長度包頭)
- 先接收固定長度包頭,包含校驗碼與內容長度。
- 依長度接收內容封包,再解析。
- 優點:接收效率高、可內建校驗機制、安全性佳(易加密)。
- 缺點:協定自訂、無通用解析器、擴充性視設計而定。
2. XML 格式(以特殊字元為結界)
- 以連續
\r\n 等字元標示結束。
- 接收端需逐段判斷是否到達結界,無法預知封包大小。
- 優點:擴充性極佳、有成熟解析庫。
- 缺點:解析效率低、傳輸效率低、安全性弱(明文)。
四大維度比較
| 維度 | 二進制封包 | XML 封包 |
| 傳輸效率 | 高(預知長度、單次讀取) | 低(逐字元掃描結界) |
| 解析效率 | 高(簡單位元操作) | 低(DOM/SAX 解析開銷大) |
| 擴充性 | 視協定設計而定 | 極佳(標準化、自描述) |
| 安全性 | 易實作加密/簽章 | 難加密,抓包即可見內容 |
選型建議
- 高效能、高安全、協定相對固定 → 二進制
- 需頻繁擴充欄位、跨平台互通、效能要求不高 → XML(如 Jabber/XMPP)
若協定設計不良導致擴充困難,後續維護成本極高,因客戶端一旦發布難以回收升級。