神奇的證交所行情傳輸格式

吐槽一下這個神奇的格式

在研究接收行情的過程中,發現到幾個和通訊協定不搭嘎的東西

這些行情傳輸都是以udp廣播或組播送出,格式大同小異,如下

所有訊息都有

一個標頭:表示資料從哪邊開始

一個結尾:表示資料結束

一個長度碼:表示封包的資料大小

一個檢查碼:確認封包完整性

接著來複習一下udp的特性,根據man

UDP generates and checks checksums to catch transmission errors.

UDP產生及檢查checksum保證沒有傳輸錯誤

All receive operations return only one packet.  When the packet is
smaller than the passed buffer, only that much data is returned; when
it is bigger, the packet is truncated and the MSG_TRUNC flag is set.

每次接收都返回一個封包,這個封包要碼複製成功,不然會提醒你封包被切了,複製不進來

而User Datagram Protocol,代表封包是不可被切割的,也就是有邊界的

雖然IP Protocol可能會重組封包,但也不建議傳輸超過MTU大小的包

可以說完全是用TCP/IP的角度在設計與使用UDP阿..