应用中的UDP数据包设计,TCP你就参考啰
在Internet数据传输应用中,数据包设计的合理,直接影响程序的数据传输速度和数据准确
质量。
我这里给出一种方法,虽不是很好的一种,但足以应用在上万在线用户的设计质量要求。
<一>
1. 要求:数据类型(加密,文本,数据流)。
2. 每包最大值自定: 一般在MTU 1400字节之内最佳。
<二>
1. UDP顺序组包发送.
a. 1节,包头数据类型标识(加密,文本,数据流);
b. 8节,包的流水号(以防重发);
c. 1节,写入0表示完整一包,其它表示不完整,并代表后面的多少份之几(n/x) 之类的
长度;如果完整直接进行d,写入数据长度,否则写入组头长度Length(n/x),组头内
容(n/x)。
d. 4节,写入真正的数据的长度。
2. UDP顺序拆包分析
a. 1节,读取包头数据类型标识(加密,文本,数据流);
b. 8节,读取包的流水号(比较以防重发);
c. 1节,0表示完整一包,其它表示不完整,并代表后面的多少份之几(n/x) 之类的长度;
如果完整直接进行d,读取数据长度,否则读取组头长度Length(n/x),组头内容(n/x)。
d. 4节,真正的数据的长度