文章目录
在前面的章节中针对数据格式的定义与数据发送接收方面作了大部分的介绍,但似乎一直缺乏了从架构流程方面全面描术过。尽管前面也零零星星地介绍过部分流程,但是非常不完整的。如果在前面的文章中过多介绍又显得中心不突出。所以这里会进行种点介绍。
一. 推流端架构流程
相对于“接收端”,“推流端”自动采用UDP + 组播的方式实现后,从逻辑流程复杂度上大大降低了。“推流端”不再担心多设备连接时的并发性能问题及内存限际的问题了。在组播地址确定后,只要向指定的组播地址中发送数据包即可。
- “数据压缩层”对设备中的原始媒体流数据接收后进行编码压缩,生成本积较小的压缩媒体流数据。这个过程与TCP通讯方案的实现中是完成一样的。
- “数据处理层”实现对数据进行分片,然后划分分组,生成分组数据分片的冗余纠错分片数据,然后传到下层的“数据发送层”。对于纠错算法是多种多样的,如较为简单的XOR异或算法,RS矩阵算法等。
- “数据发送层”主要承担分片数据的发送工作。“数据处理层”完成对数据进行分片加功后,把数据传到“数据发送层”的环型发送队列中。发送器在完成一次发送任务后,向环型发送队列询问是否有数据要发送。当存在数据时,取出数据到发送器中进行发送,环型发送队列通过移动游标的方式实现发送数据内存的释放回收。
二. 接收端架构流程
相对于“推流端”,“接收端”的处理逻辑会相对复杂。其中包括数据重组及容错处理等可玩性很高的处理逻辑。
当接收端取得组播地址后,发起对该组播地址数据监听服