1
This commit is contained in:
@@ -153,28 +153,31 @@ NORM_REPORT消息可能包含的信息包括但不限于:
|
||||
## NORM协议操作
|
||||
### 一般操作
|
||||
通用 NORM 协议操作的详细过程:
|
||||
1、在建立 NORM 会话之后,发送方将一个 NORM 对象分割成一个按顺序编号的序列。这些分段被传输为 NORM_DATA 消息。除了数据内容外,NORM_DATA 消息还带有唯一标识符和 FEC 标识符。发送方还可以发送与 NORM_DATA 内容相关联的带外 NORM_INFO 消息,允许接收方确定相应内容的性质,从而允许应用级别控制接收节点在会话中的参与。与此同时,发送方会定期发送 NORM_CMD(CC) 消息,根据需要收集用于拥塞控制和其他会话管理活动所需的反馈信息。
|
||||
2、当接收方从发送方检测到丢失的内容时,它们可以尝试使用 FEC 机制进行修复。如果修复成功,则接收方将不会发送 NORM_NACK 消息给发送方。利用顺序编号的序列信息,接收方指定缺失的内容。
|
||||
3、当发送方接收到 NACKs 时,它会聚合修复请求,并发送与顺序编号的序列信息相关联的适当修复。
|
||||
4、当发送方到达修复请求的末尾时,它会发送一个 NORM_CMD(FLUSH) 消息,指示传输的临时结束。
|
||||
|
||||
1. 在建立 NORM 会话之后,发送方将一个 NORM 对象分割成一个按顺序编号的序列。这些分段被传输为 NORM_DATA 消息。除了数据内容外,NORM_DATA 消息还带有唯一标识符和 FEC 标识符。发送方还可以发送与 NORM_DATA 内容相关联的带外 NORM_INFO 消息,允许接收方确定相应内容的性质,从而允许应用级别控制接收节点在会话中的参与。与此同时,发送方会定期发送 NORM_CMD(CC) 消息,根据需要收集用于拥塞控制和其他会话管理活动所需的反馈信息。
|
||||
2. 当接收方从发送方检测到丢失的内容时,它们可以尝试使用 FEC 机制进行修复。如果修复成功,则接收方将不会发送 NORM_NACK 消息给发送方。利用顺序编号的序列信息,接收方指定缺失的内容。
|
||||
3. 当发送方接收到 NACKs 时,它会聚合修复请求,并发送与顺序编号的序列信息相关联的适当修复。
|
||||
4. 当发送方到达修复请求的末尾时,它会发送一个 NORM_CMD(FLUSH) 消息,指示传输的临时结束。
|
||||
在通用操作的背景下,NORM 具有特定的机制来解决会话控制、拥塞控制、流量控制、可靠性和 NACK 管理。
|
||||
### 会话控制
|
||||
尽管 NORM 不像 TCP 那样是面向连接的协议,但它确实具有面向连接和无连接的特征。
|
||||
1、NORM 的连接特性和无连接特性:NORM 协议在某种程度上具有连接导向和无连接的特性。它不像 TCP 那样需要进行显式的连接设置(如三次握手),但发送方和接收方必须事先知道对方的地址和端口号,以便加入会话或者重新建立连接。这种特性使得 NORM 协议在网络中断后能够快速恢复会话,并且允许接收方在会话进行时加入。
|
||||
2、状态维护以确保可靠传输:尽管 NORM 是一种类似 UDP 的无连接协议,但它仍然需要维护一些状态信息来确保数据的可靠传输。这些状态信息可以帮助发送方和接收方进行数据的丢失检测和修复,以确保数据的完整性。
|
||||
3、NORM_CMD 消息子类型的保留:NORM 协议预留了一系列 NORM_CMD 消息的子类型,以支持可能在未来开发的会话控制协议。这意味着 NORM 协议具有一定的灵活性,可以根据需要引入新的控制协议来满足不同的需求。
|
||||
|
||||
1. NORM 的连接特性和无连接特性:NORM 协议在某种程度上具有连接导向和无连接的特性。它不像 TCP 那样需要进行显式的连接设置(如三次握手),但发送方和接收方必须事先知道对方的地址和端口号,以便加入会话或者重新建立连接。这种特性使得 NORM 协议在网络中断后能够快速恢复会话,并且允许接收方在会话进行时加入。
|
||||
2. 状态维护以确保可靠传输:尽管 NORM 是一种类似 UDP 的无连接协议,但它仍然需要维护一些状态信息来确保数据的可靠传输。这些状态信息可以帮助发送方和接收方进行数据的丢失检测和修复,以确保数据的完整性。
|
||||
3. NORM_CMD 消息子类型的保留:NORM 协议预留了一系列 NORM_CMD 消息的子类型,以支持可能在未来开发的会话控制协议。这意味着 NORM 协议具有一定的灵活性,可以根据需要引入新的控制协议来满足不同的需求。
|
||||
### 拥塞控制
|
||||
NORM 使用了一种 TCP-Friendly 拥塞控制方案,使其能够与 TCP 和其他传输协议公平地共享可用带宽。这意味着当 NORM 和 TCP 同时存在于网络中时,它们会共同占用网络带宽,并且不会对彼此造成过度的影响。这种拥塞控制方案基于 RFC4654 中描述的 TCP-Friendly Multicast Congestion Control(TFMCC)协议规范的方法进行了适应。已经证明,该方法能够有效地与 TCP 和组播数据流一起使用。
|
||||
1、TCP-Friendly 拥塞控制方案:NORM 协议采用了一种称为 TCP-Friendly 的拥塞控制方案。这意味着 NORM 能够在与 TCP 和其他传输协议共享网络带宽时保持公平性,即它不会过度占用网络带宽,也不会对 TCP 的性能造成不利影响。
|
||||
2、基于计算的拥塞控制方法:该拥塞控制方案是基于计算的,发送方的传输速率取决于通过 NORM_CMD(CC) 消息收集的数据包丢失估计和往返时间。这些信息有助于确定网络中的瓶颈,并相应地调整发送方的传输速率,以适应网络的变化。
|
||||
3、拥塞控制假设:与 TCP 类似,NORM 假设数据包丢失是由于网络中的缓冲区溢出引起的。因此,当数据包丢失率达到一定水平时,发送方会自动减少传输速率,以避免进一步的数据包丢失。然而,在无线网络中,数据包丢失通常是由于比特错误或网络争用引起的,而不仅仅是缓冲区溢出。这可能会导致 NORM 的拥塞控制在无线网络中存在一些限制。
|
||||
4、速率控制机制的独立性:NORM 的速率控制机制与其其他组件(例如可靠性机制、流量控制机制)是相分离的。因此,可以通过使用其他算法和适当的标头扩展来替换 NORM 的速率控制机制。这增加了 NORM 协议的灵活性,使其能够根据不同的网络环境和需求进行定制和调整。
|
||||
|
||||
1. TCP-Friendly 拥塞控制方案:NORM 协议采用了一种称为 TCP-Friendly 的拥塞控制方案。这意味着 NORM 能够在与 TCP 和其他传输协议共享网络带宽时保持公平性,即它不会过度占用网络带宽,也不会对 TCP 的性能造成不利影响。
|
||||
2. 基于计算的拥塞控制方法:该拥塞控制方案是基于计算的,发送方的传输速率取决于通过 NORM_CMD(CC) 消息收集的数据包丢失估计和往返时间。这些信息有助于确定网络中的瓶颈,并相应地调整发送方的传输速率,以适应网络的变化。
|
||||
3. 拥塞控制假设:与 TCP 类似,NORM 假设数据包丢失是由于网络中的缓冲区溢出引起的。因此,当数据包丢失率达到一定水平时,发送方会自动减少传输速率,以避免进一步的数据包丢失。然而,在无线网络中,数据包丢失通常是由于比特错误或网络争用引起的,而不仅仅是缓冲区溢出。这可能会导致 NORM 的拥塞控制在无线网络中存在一些限制。
|
||||
4. 速率控制机制的独立性:NORM 的速率控制机制与其其他组件(例如可靠性机制、流量控制机制)是相分离的。因此,可以通过使用其他算法和适当的标头扩展来替换 NORM 的速率控制机制。这增加了 NORM 协议的灵活性,使其能够根据不同的网络环境和需求进行定制和调整。
|
||||
### 流量控制
|
||||
NORM 有四个流量控制选项,允许 NORM 发送方管理到 NORM 接收方的传输速率,以确保接收方不会超载。
|
||||
1、显式水印。使用此选项,发送方请求来自特定一组接收方的积极确认,确认当前传输中指定点或水印的成功接收。如果所有接收方都确认成功接收了水印,发送方可以继续发送新数据。
|
||||
2、隐式水印。这个选项基于接收方集合没有负面确认(NACK)修复请求。发送方使用 NORM_CMD(FLUSH) 来提醒接收方通过指示的水印进行任何需要修复的 NACK消息。然后发送方等待刷新完成。如果没有 NACK 消息,发送方假定水印已完成,可以继续发送新数据。
|
||||
3、基于定时器的流量控制。这个选项根据组往返时间(GRTT)和 NACK 活动来保持传输数据并限制修复窗口的推进。设置一个最小的、可适应的时间限制,在此之后发送方可以继续发送新数据。这个时间限制基于发送方估计的 GRTT 和无NACK消息。
|
||||
4、禁用。禁用流量控制机制,允许发送方以最快方式推进传输数据。
|
||||
1. 显式水印。使用此选项,发送方请求来自特定一组接收方的积极确认,确认当前传输中指定点或水印的成功接收。如果所有接收方都确认成功接收了水印,发送方可以继续发送新数据。
|
||||
2. 隐式水印。这个选项基于接收方集合没有负面确认(NACK)修复请求。发送方使用 NORM_CMD(FLUSH) 来提醒接收方通过指示的水印进行任何需要修复的 NACK消息。然后发送方等待刷新完成。如果没有 NACK 消息,发送方假定水印已完成,可以继续发送新数据。
|
||||
3. 基于定时器的流量控制。这个选项根据组往返时间(GRTT)和 NACK 活动来保持传输数据并限制修复窗口的推进。设置一个最小的、可适应的时间限制,在此之后发送方可以继续发送新数据。这个时间限制基于发送方估计的 GRTT 和无NACK消息。
|
||||
4. 禁用。禁用流量控制机制,允许发送方以最快方式推进传输数据。
|
||||
水印:数据同步的水印描述了一个预定义格式的对象,为试图建立增量/增量同步的两个系统/数据集提供了一个参考值;在水印值之后创建、修改或删除的被查询数据源中的任何对象都将被归类为“高于水印”,并应返回给请求数据的客户端。
|
||||
### 可靠性
|
||||
NORM通过使用两种前向纠错编码方案(系统码和非系统码)来确保可靠的传输。
|
||||
@@ -184,10 +187,10 @@ NORM通过使用两种前向纠错编码方案(系统码和非系统码)来
|
||||
### 可扩展性和NACK管理
|
||||
面向 NACK 的组播通信容易受到 NACK 内爆的影响。如果大量接收方同时发送NACK,这可能会使发送方以及整个网络不堪重负。NORM 使用 NACK 抑制机制来防止 NACK 内爆。
|
||||
当接收方检测到它在发送方的 NORM 传输中丢失了数据时,它会启动 NACK(否定确认)过程:
|
||||
1、接收方假设其他一个或多个接收方也丢失了相同的数据,并且可能已经向发送方发送了 NACK。
|
||||
2、接收方进入一个基于随机退避算法的等待期。这个超时持续时间由“随机退避”算法定义,根据发送方在其传输的消息中传输的“grtt”、“backoff”和“gsize”字段的信息进行控制。
|
||||
3、在等待期间,接收方继续接收和评估来自发送方的修复消息,并且抑制自己的 NACK。
|
||||
4、如果在等待期结束时,接收方没有收到足够的修复信息,它就会启动自己的 NACK。
|
||||
5、如果 NORM 会话发生在组播路由环境中,NACK 将被传输给发送方以及网络中的所有其他节点。
|
||||
6、如果 NORM 会话不是在组播路由环境中进行的,NACK 将被传输给发送方,发送方立即重新将其发送到网络中的所有其他节点。
|
||||
1. 接收方假设其他一个或多个接收方也丢失了相同的数据,并且可能已经向发送方发送了 NACK。
|
||||
2. 接收方进入一个基于随机退避算法的等待期。这个超时持续时间由“随机退避”算法定义,根据发送方在其传输的消息中传输的“grtt”、“backoff”和“gsize”字段的信息进行控制。
|
||||
3. 在等待期间,接收方继续接收和评估来自发送方的修复消息,并且抑制自己的 NACK。
|
||||
4. 如果在等待期结束时,接收方没有收到足够的修复信息,它就会启动自己的 NACK。
|
||||
5. 如果 NORM 会话发生在组播路由环境中,NACK 将被传输给发送方以及网络中的所有其他节点。
|
||||
6. 如果 NORM 会话不是在组播路由环境中进行的,NACK 将被传输给发送方,发送方立即重新将其发送到网络中的所有其他节点。
|
||||
NORM 的 NACK 抑制机制,结合其 FEC 机制,使得 NORM 组播组可以扩展到非常大的组,同时保持可靠性。
|
||||
|
||||
Reference in New Issue
Block a user