[发明专利]一种自适应端到端网络编码传输方法有效
申请号: | 201710588600.8 | 申请日: | 2017-07-19 |
公开(公告)号: | CN107508655B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 刘勇;陈庆春;唐小虎;梁宏斌 | 申请(专利权)人: | 西南交通大学 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L1/16;H04W28/06 |
代理公司: | 成都信博专利代理有限责任公司 51200 | 代理人: | 张辉 |
地址: | 610031 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自适应 端到端 网络 编码 传输 方法 | ||
1.一种自适应端到端网络编码传输方法,其特征在于,包括以下步骤:
在发送端
1)、在建立TCP连接的过程中,收发双方协商传输控制协议流是否进行网络编码,如果进行网络编码,则建立对应的网络编码层控制块,初始化控制信息,并设定传输控制协议连接控制块的对应标志;
2)、当传输控制协议层发送TCP数据报文时,网络编码层的处理方法为:
(1)根据TCP数据报文查找对应的网络编码层连接控制块,如果能够找到对应的网络编码层连接控制块,则表明需要执行网络编码操作,执行步骤(2);如果没有找到对应的网络编码层连接控制块,则表明不需要执行网络编码,将TCP数据报文通过网际协议层发送出去;
(2)判断TCP数据报文是含控制信息的TCP数据报文还是携带数据的TCP数据报文,若为含控制信息的TCP数据报文,则不需要执行网络编码操作,将TCP数据报文通过网际协议层发送出去;
(3)将携带数据的TCP数据报文缓存到滑动窗口中,将当前编码窗口向后滑动一个携带数据的TCP数据报文;
(4)设定编码计数器NUM=NUM+R,其中,R为当前的经过自适应调整的冗余度,并产生个由当前编码窗口的携带数据的TCP数据报文的线性组合而成的网络编码数据报文,填充对应的网络编码数据报文头部,此处表示需要生成的网络编码数据报文的个数;并更新编码计数器
(5)将网络编码数据报文发送给网际协议层,并经由网际协议层、数据链路层发送出去;
3)、当接收到接收端反馈的确认ACK报文时,进行如下处理方法:
(1)根据确认ACK报文中的确认序号,对发送端的发送队列进行操作,将字节序号小于确认序号的TCP数据报文从发送队列中删除;
(2)根据反馈的确认ACK报文首部中接收端的接收信息,进行自适应的丢包率估算和冗余度调整;
(3)将反馈的确认ACK报文修改成符合TCP数据报文的格式,再传递给传输控制协议层;
在接收端
1)、在建立TCP连接的过程中,收发双方协商传输控制协议流是否进行网络编码,如果进行网络编码,则建立对应的网络编码层控制块,初始化控制信息,并设定传输控制协议连接控制块的对应标志;
2)、当接收到网际协议层向上传递的数据报文时,网络编码层的处理方法为:
(1)根据数据报文查找对应的网络编码层连接控制块,如果能够找到对应的网络编码层连接控制块,则表示需要执行网络译码操作,执行步骤(2);如果不能够找到对应的网络编码层连接控制块,则表示不需要执行网络译码操作,将数据报文发送给传输控制协议层;
(2)判断数据报文是仅含控制信息的数据报文还是携带数据的数据报文,若为仅含控制信息的数据报文,则将数据报文发送给传输控制协议层;
(3)将携带数据的数据报文缓存到对应连接的待处理数据报文队列backlog中,backlog表示待处理;
(4)逐个判断待处理数据报文队列backlog中的数据报文中是否包含有下一个期望被译码的TCP数据报文的信息;若有,则需要得到该数据报文的译码系数向量,并将该数据报文添加到正在译码的数据报文队列decoding中,decoding表示正在译码;
(5)根据正在译码的数据报文队列decoding中的数据报文的译码系数向量,得到译码系数矩阵,对译码系数矩阵进行高斯消元,从高斯消元后的译码系数矩阵中获得相应的被“seen”以及被“decoded”TCP数据报文;其中,“seen”表示当一个TCP数据报文由其他序号比其更高的TCP数据报文的线性组合进行表示时,就认为这个TCP数据报文能够被“seen”,“decoded”表示经过高斯消元后的译码系数矩阵某一行只有一个为1的元素时,认为这个TCP数据报文被“decoded”,并将其添加到已被译码数据报文队列decoded中;
(6)若有新的“seen”的TCP数据报文,则发送相应的确认ACK报文;
(7)将已被译码数据报文队列decoded中的TCP数据报文发送给传输控制协议层进行处理;
3)、在有新的“seen”的TCP数据报文时,需要反馈接收端网络编码层接收成功的信息,其过程依赖于传输控制协议层发送确认ACK报文;当传输控制协议层发送确认ACK报文时:
(1)根据传输控制协议层发送的确认ACK报文中的确认ACK序号,将该确认ACK序号更新到对应的网络编码层连接控制块中,并将用于已被译码数据报文队列decoded中数据报文的删除操作;
(2)根据传输控制协议层确认号和窗口值大小,计算网络编码层窗口值大小;
(3)将网络编码层确认号和窗口值修改到确认ACK报文中,然后发送出去;
所述冗余度调整的方法为:
在发送端,数据发送时对传输控制协议层到达网络编码层的TCP数据报文添加序号,此序号不区分重传的TCP数据报文与正常的TCP数据报文,不区分是否有带数据,只要是此传输控制协议连接的TCP数据报文,都统一进行编号,并写入数据包网络编码首部中;
在接收端,首先确定一个计算丢包率的计算间隔;在接收数据时通过网络编码首部中的序号值,每100个序号进行一次丢包率计算,并在确认ACK报文的网络编码首部中写入当前丢包率;
在发送端,接收到了确认ACK报文后,读取接收端计算的丢包率loss_rate,根据丢包率计算出冗余度,冗余度R计算公式如下:
其中,m和n为常数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南交通大学,未经西南交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710588600.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种富含白及花的功能性茶产品
- 下一篇:一种绿茶的制作方法