added protocol.md
This commit is contained in:
parent
71a10514f8
commit
f9a5cc3986
@ -19,13 +19,14 @@ sdlan协议的总体格式如下:
|
||||
消息头二进制格式如下:
|
||||
|
||||
```
|
||||
+---------+----+-----+------+-----+
|
||||
| version | id | ttl | flag | pc |
|
||||
+---------+----+-----+------+-----+
|
||||
+---------+----+-------+-----+------+-----+
|
||||
| version | id | token | ttl | flag | pc |
|
||||
+---------+----+-------+-----+------+-----+
|
||||
```
|
||||
|
||||
其中,version占用一个字节,用于标识协议版本。id用于唯一标识某个客户端,为长度为32字节的uuid,之后的ttl占用一个字节,当ttl为0,则直接丢弃该数据包。后面的flag占用2字节,用于标识数据包属性,目前拥有的标识如下:
|
||||
其中,version占用一个字节,用于标识协议版本。id用于唯一标识某个客户端,为长度为32字节的uuid,token是用户生成的邀请码,占用8个字节(64比特的大端序整型数字)。之后的ttl占用一个字节,当ttl为0,则直接丢弃该数据包。后面的flag占用2字节,用于标识数据包属性,目前拥有的标识如下:
|
||||
|
||||
* `federation`: `0x0010`,表示这个数据包是从其他的supernode主动发送过来的,比如,其他supernode主动发送过来的RegisterSuper;其他supernode
|
||||
* `from_sn`: `0x0020`,表示这个数据包是从服务端发送过来的。
|
||||
* `socket`: `0x0040`,表示这个数据包里面包含了有用的socket信息(通常在服务端转发的时候有用)。
|
||||
* `v6_info`: `0x0080`,表示这个数据包里面包含了ipv6信息(专门用在packet数据包里面,目前只有这个数据包使用了该标识)。
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user