This commit is contained in:
nicc@gfex.com.cn
2024-04-15 10:09:05 +08:00
parent 251e642f4b
commit e5e1ed6ddd

View File

@@ -16,7 +16,7 @@ NORM 有两个通用消息类即发送方消息和接收方消息。NORM 发
所有 NORM 消息都由一个必需的公共标头、一个消息类型标头和一个有效负载(数据)部分组成。可以在标头和有效负载部分之间插入一个可选的扩展字段,用于指定正在使用的纠错编码、拥塞控制算法或其他会话管理信息。
![image.png](/my-project/docs/组播协议/image/norm1.png)
### NORM公用消息头
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1711956131849-d4dc6675-1736-486d-b32a-0d20bfc95a21.png#averageHue=%23a2dcef&clientId=ued9d297e-f39f-4&from=paste&height=123&id=ue7c4a6e9&originHeight=184&originWidth=999&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=14707&status=done&style=none&taskId=ue80298ce-97ea-4b6e-b084-d3cce36bbdf&title=&width=666)
![image.png](/my-project/docs/组播协议/image/norm2.png)
**版本4 位)**
协议版本号。
**类型4 位)**
@@ -33,7 +33,7 @@ NORM 消息类型(即 1 = NORM_INFO、2 = NORM_DATA、3 = NORM_CMD、4 = NORM_
在给定 NORM 会话的上下文中发起消息的节点的唯一标识。
### 发送方 NORM_DATA消息类型
NORM_DATA 消息是 NORM 发送方发送的最常见的消息类型。NORM_DATA 消息携带了 NORM_OBJECT_DATA、NORM_OBJECT_FILE 和 NORM_OBJECT_STREAM 类型的分段数据内容。
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1711958024914-6f5c113e-5d40-4b04-ae45-10777cd51d83.png#averageHue=%23b0eaf3&clientId=ued9d297e-f39f-4&from=paste&height=322&id=u2e5955bb&originHeight=483&originWidth=997&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=33937&status=done&style=none&taskId=u9ebb3e46-f375-46ca-8e89-96171eaeebc&title=&width=664.6666666666666)
![image.png](/my-project/docs/组播协议/image/norm3.png)
浅蓝色为NORM_DATA的数据内容
**instance_id16 位)**
当前参与 NORM会话实例的唯一标识。
@@ -55,7 +55,7 @@ FEC 编码(前向纠错,通过在发送数据时添加冗余信息(校验
NORM_INFO消息允许在数据传输中附加一些可选的额外信息这些信息与传输的数据内容相关联。这使得接收方可以了解所传输内容的性质从而能够基于这些信息做出相应的处理或决策。
NORM_INFO内容必须放在单个NORM消息的有效负载中因此它被视为“原子”的即不可分割的。这意味着所有相关信息必须适合于单个消息的大小限制。
一个典型的应用场景是发送与数据内容相关的MIME类型信息。例如当发送方传输一个文件时可以通过NORM_INFO消息发送文件的MIME类型例如文本、图像、音频等这样接收方就可以根据文件类型做出相应的处理或展示。
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1711958008774-658df6f8-57bd-40dd-b204-3222be2f2501.png#averageHue=%23bfeaf2&clientId=ued9d297e-f39f-4&from=paste&height=293&id=u3a4fa874&originHeight=439&originWidth=997&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=27845&status=done&style=none&taskId=u06da1c64-8f56-4c36-b774-62f2aace2f7&title=&width=664.6666666666666)
![image.png](/my-project/docs/组播协议/image/norm4.png)
**instance_id16 位)**
当前参与 NORM会话实例的唯一标识。
**grtt8 位)**
@@ -76,7 +76,7 @@ NORM_CMD消息的作用NORM_CMD消息用于管理NORM会话其功能包括
收集和发送与拥塞控制相关的数据:用于动态调整发送速率以避免网络拥塞。
同步修复窗口:确保接收方在数据丢失时能够及时恢复。
发送方状态通知:提供发送方的状态信息,如就绪状态、发送速率等。
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1711958392287-84f50955-d9db-419b-bb42-40373c45ddf6.png#averageHue=%23c2ebf3&clientId=ued9d297e-f39f-4&from=paste&height=294&id=u7acbd914&originHeight=441&originWidth=1002&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=28683&status=done&style=none&taskId=uf7ca7d3b-fd23-4e41-8367-bd51cf2d0ed&title=&width=668)
![image.png](/my-project/docs/组播协议/image/norm5.png)
**instance_id16 位)**
当前参与 NORM会话实例的唯一标识。
**grtt8 位)**
@@ -104,7 +104,7 @@ FEC 编码标识符。
- APPLICATION用于需要临时抢占或补充数据传输的应用程序定义的用途可选
### 接收方 NORM_NACK消息
NORM_NACK消息主要由接收方使用用于请求发送方修复丢失的数据内容。当接收方检测到数据丢失或损坏时它可以通过发送NORM_NACK消息向发送方请求重新发送丢失的数据。此外这些消息还包含向发送方提供与往返计时收集和拥塞控制相关的信息的字段。
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1711961514160-9de3ca01-e274-41da-b181-c067044ee70e.png#averageHue=%23baedf4&clientId=ued9d297e-f39f-4&from=paste&height=347&id=u06f81db0&originHeight=520&originWidth=997&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=29602&status=done&style=none&taskId=u1fd71af4-f728-4de8-9d4b-e27b534e960&title=&width=664.6666666666666)
![image.png](/my-project/docs/组播协议/image/norm6.png)
**server_id32 位)**
NORM_NACK消息发往的 NORM 发送方。
**instance_id16 位)**
@@ -119,7 +119,7 @@ NORM_NACK消息发往的 NORM 发送方。
接收方相对于“server_id”字段指示的 NORM 发送方的维修需求。
### 接收方 NORM_ACK消息
NORM_ACK消息主要用于支持拥塞控制操作和往返计时测量。
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1711962074463-6099c62b-731e-4a05-8b5f-07191bdfd008.png#averageHue=%239eeaf4&clientId=ued9d297e-f39f-4&from=paste&height=290&id=uf5f077cf&originHeight=435&originWidth=996&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=30369&status=done&style=none&taskId=uccf814c5-315c-4711-8293-c3ab8b0bc8b&title=&width=664)
![image.png](/my-project/docs/组播协议/image/norm7.png)
**server_id32 位)**
NORM_ACK消息发送方。
**instance_id16 位)**
@@ -143,7 +143,7 @@ NORM_REPORT消息可能包含的信息包括但不限于
其他应用相关信息根据需要NORM_REPORT消息还可以包含其他与应用相关的信息以帮助发送方进行更精细的传输控制和管理。
### NORM 报头扩展
可选的头部扩展在NORM协议中用于提供额外的信息这些信息可以是与前向纠错、拥塞控制操作或其他会话管理信息相关的。这些头部扩展紧跟在公共头部和特定消息头部之后但在负载之前如果消息有负载
![image.png](https://cdn.nlark.com/yuque/0/2024/png/26101762/1712022084872-0c8f5a4e-cac7-4e27-b46f-216ae96cba86.png#averageHue=%23f1d7d8&clientId=ued9d297e-f39f-4&from=paste&height=197&id=u0ff82f86&originHeight=295&originWidth=1003&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=23007&status=done&style=none&taskId=u711deecc-11b1-4af9-8f1e-e43c8373afa&title=&width=668.6666666666666)
![image.png](/my-project/docs/组播协议/image/norm8.png)
**het8 位)**
标头扩展类型。对于可变长度标头扩展,值介于 0 和 127之间。
**hel8 位)**