福州大学陈平平获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉福州大学申请的专利一种解决高突发的应用层编解码方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN119945625B 。
龙图腾网通过国家知识产权局官网在2025-10-21发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202510199121.1,技术领域涉及:H04L1/00;该发明授权一种解决高突发的应用层编解码方法是由陈平平;王威鹏;杜伟庆;陈杰;方毅设计研发完成,并于2025-02-22向国家知识产权局提交的专利申请。
本一种解决高突发的应用层编解码方法在说明书摘要公布了:本发明提供一种解决高突发的应用层编解码方法,在应用层,通过第一缓存队列接收上层传递的数据,编码器从第一缓存队列中取出源数据包进行包头封装和进行的编码操作后,将源数据包和编码包通过发送端socket发送;通过第二缓存队列从接收端socket获取数据包,解码器从第二缓存队列取出数据包,并根据数据包头信息进行译码恢复操作,将恢复获得的数据包排序后按序传至上层。该方案能够在高突发信道环境下,具有比里德‑所罗门码Reed‑Solomon,RS和滑动RLNCCaterpillarRLNC,CRLNC更低的译码失败概率。
本发明授权一种解决高突发的应用层编解码方法在权利要求书中公布了:1.一种解决高突发的应用层编解码方法,其特征在于: 在应用层, 通过第一缓存队列接收上层传递的数据,编码器从第一缓存队列中取出源数据包进行包头封装和进行GF28的编码操作后,将源数据包和编码包通过发送端socket发送; 通过第二缓存队列从接收端socket获取数据包,解码器从第二缓存队列取出数据包,并根据数据包头信息进行译码恢复操作,将恢复获得的数据包排序后按序传至上层; 在所述第一缓存队列接收上层传递的数据之前,进行初始化,包括: 初始化编码器参数:设置编码窗口的大小we,编码的交织深度v,编码包的发送步长l,码率R为: 初始化发送端socket参数:设置为UDP传输,将终端输入的对端IP和端口地址绑定至socket中; 并初始化一个队列Qs,作为第一缓存队列,用于存入上层应用程序传来的源数据包,添加信号量sem_t的参数,使队尾存数据和队头取数据两种操作互斥; 所述编码器从第一缓存队列中取出源数据包进行包头封装和进行GF28的编码操作,将源数据包和编码包通过发送端socket发送的过程具体为: 编码器判断从队列Qs头部是否指向空指针,若指向空指针,则Qs为空队列,编码器继续等待;若Qs头部并非空指针,则取出Qs头部指针指向的数据,放入编码器中; 编码器根据源数据包信息,对源数据包封装相应信息作为包头;编码器初始化一个变量idsource,赋值为0;每封装好一个源数据包,idsource加一;封装时idsource作为源数据包包头中的stream_id信息,源数据包长度作为包头中的pl_size信息,其余参数则置为-1; 将源数据包缓存进编码窗口Ew中,其中Ew用deque容器实现; 若Ew的大小Se满足: Se>wev 则将Ew中起始位置的源数据包移除,再缓存新的源数据包;若不满足,则直接缓存新源数据包; 将源数据包通过socket中的sendto函数发至设置的对端IP中的对应端口; 根据设置的步长l,通过计算下式判断是否生成编码包; F=idsourcemodl 若F≠0,则重新执行从队列Qs头部是否指向空指针的判断;若F=0,则生成编码包; 编码器初始化一个变量idrepair,赋值为0;每封装好一个编码包,idrepair加一;idrepair作为随机数种子,而后通过梅森选择算法随机生成we个编码系数,并通过取余256,将随机生成的编码系数限制在0-255之间,定义生成的we个编码系数集合为M; 初始化一个2048大小的字符数组R,赋值为0;根据交织深度v,取出Ew中的第v-1个源数据包,与集合M的第1个编码系数进行GF28的乘法运算后,再与R进行GF28下的加法运算,得到的结果赋值进R中;以此类推,循环取出Ew中的nv-1个源数据包与M中的第n个编码系数进行相同操作,直到满足下式则跳出循环; Se<nv-1 跳出循环后,将R的内容作为编码包的payload部分,以封装相应包头,idrepair作为包头中的repair_id信息,Ew中起始位置源数据包的source_id作为包头中的first_pkt_id信息,结束位置源数据包的source_id作为包头中的last_pkt_id信息,字符数组R中最后一个不为0的元素对应位置作为包头中的pl_size信息,其余参数置为-1; 将编码包通过socket中的sendto函数发送至设置的对端IP中的对应端口; 在所述第二缓存队列从接收端socket获取数据包之前,进行初始化,包括: 初始化解码器参数:设置解码窗口的最大尺寸wd,交织深度v; 初始化接收端socket参数:设置为UDP传输,将需要监听的端口号绑定至socket中; 初始化一个队列Qr,作为第二缓存队列,用于存入接收端socket接收到的数据包,并添加信号量sem_t的参数,使队尾存数据和队头取数据两种操作互斥; 所述解码器从第二缓存队列取出数据包,并根据数据包头信息进行译码恢复操作,将恢复获得的数据包排序后按序传至上层的过程具体为: 设置线程使接收端socket不断通过recv函数接收数据并缓存至队列Qr中; 若Qr头部并非空指针,则取出Qr头部指针指向的数据,放入解码器中; 提取数据包的包头信息,若repair_id=-1而source_id≠-1,则为收到的是源数据包;若repair_id≠-1而source_id=-1,则收到的是编码包;若两者皆不为-1或者皆为-1,则数据包出错,直接丢弃; 解码器初始化一个变量idinorder变量,赋值为0;若收到的是源数据包,则判断是否满足下式; source_id=idinorder 若满足,则直接传至上层应用程序,idinorder加一; 若不满足,则存入解码窗口Dw中,并生成相应单位向量插入Dw对应的解码矩阵Cd中; 若收到的是编码包,则判断是否满足下式; last_pkt_id≤idinorder 若满足,则说明编码包无用,直接丢弃; 若不满足,则存入解码窗口Dw中,并根据编码包头中的first_pkt_id和last_pkt_id,计算编码系数长度Sr; Sr=last_pkt_id-first_pkt_id+1 通过Sr和交织深度v计算有效编码系数长度Sv; 然后repair_id作为随机数种子,通过梅森选择算法生成Sv个随机数,并通过取余256限制在0-255之间;在Sr个随机数中间插入v-1个0,最终得到长度为Sr的编码系数,插入Dw对应的解码矩阵Cd中; 若新数据包插入后,Dw的大小在wd以内,且Cd未满秩,则重复以上:从取出Qr头部指针指向的数据,放入解码器中之后的步骤; 若新数据包插入Dw后,Dw的大小超过了wd,则移除Dw中起始位置的数据包,并移除其在Cd中的对应系数; 若新数据包插入Dw后,Cd满秩;定义Dw内的数据包集合为Yd,则根据下式恢复出源数据包集合X; 将源数据包集合X按source_id进行排序,然后按序传至上层应用程序。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人福州大学,其通讯地址为:350108 福建省福州市闽侯县福州大学城乌龙江北大道2号福州大学;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
以上内容由龙图腾AI智能生成。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

皖公网安备 34010402703815号
请提出您的宝贵建议,有机会获取IP积分或其他奖励