From e5e1ed6dddead530f0b92ce63e358aed89ef4a05 Mon Sep 17 00:00:00 2001 From: "nicc@gfex.com.cn" <12345678> Date: Mon, 15 Apr 2024 10:09:05 +0800 Subject: [PATCH] 1 --- my-project/docs/组播协议/NORM.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/my-project/docs/组播协议/NORM.md b/my-project/docs/组播协议/NORM.md index 3d343bb..cad84c1 100644 --- a/my-project/docs/组播协议/NORM.md +++ b/my-project/docs/组播协议/NORM.md @@ -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_id(16 位)** 当前参与 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_id(16 位)** 当前参与 NORM会话实例的唯一标识。 **grtt(8 位)** @@ -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_id(16 位)** 当前参与 NORM会话实例的唯一标识。 **grtt(8 位)** @@ -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_id(32 位)** NORM_NACK消息发往的 NORM 发送方。 **instance_id(16 位)** @@ -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_id(32 位)** NORM_ACK消息发送方。 **instance_id(16 位)** @@ -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) **het(8 位)** 标头扩展类型。对于可变长度标头扩展,值介于 0 和 127(含)之间。 **hel(8 位)**