[发明专利]一种有效检测重传数据包丢失并预防重传超时方法在审

专利信息
申请号: 201810432428.1 申请日: 2018-05-08
公开(公告)号: CN108650064A 公开(公告)日: 2018-10-12
发明(设计)人: 汪海涛;万文凯;姜瑛;陈星 申请(专利权)人: 昆明理工大学
主分类号: H04L1/16 分类号: H04L1/16;H04L1/18
代理公司: 暂无信息 代理人: 暂无信息
地址: 650093 云*** 国省代码: 云南;53
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 重传 重传数据包 超时 有效检测 发送端 触发 网络吞吐率 发送端的 网络环境 移动网络 丢包率 接收端 遍历 预防 返回 检测 保证
【权利要求书】:

1.一种有效检测重传数据包丢失并预防重传超时方法,其特征在于:包括如下步骤:首先在发送端获取接收端返回给发送端的每一个SACK;然后遍历SACK的每一段,比较与前一个SACK段的差别;最后根据上一步的比较结果判断重传数据包是否丢失,如果断定为丢失那么触发再次重传,且防止重传超时。

2.根据权利要求1所述的有效检测重传数据包丢失并预防重传超时方法,其特征在于:具体步骤如下:

Step1:在发送端的Linux内核处理SACK前截获接收端返回给发送端的每一个SACK;

Setp2:检测SACK的标志位flag,在Linux内核中,SACK的flag代表了对应数据包的状态;

Step3:将SACK的标志位flag与Linux内核中的数据包标志位表达式FLAG_NOT_DUP orFLAG_SND_UNA_ADVANCED or FLAG_DATA_SACKED做逻辑与操作,FLAG_NOT_DUP表示收到的SACK不是一个重复SACK,FLAG_SND_UNA_ADVANCED表示收到的SACK更新了接收窗口—Awnd的起始序号,FLAG_DATA_SACKED表示SACK确认了新的数据包,如果逻辑与的条件为真,则表示当前SACK和收到的上一个SACK完全一样,意味着重传数据包可能丢失,那么进入Step4做进一步的判断;如果逻辑与的条件为假,那么代表该SACK是正常的,不需要进行处理,所以跳转到Step11,直接交给Linux内核按照正常流程进行重传数据包检查;

Step4:由Step3知道,该SACK为不正常SACK,于是调用内核函数tcp_for_write_queue_from遍历发送端缓存snd_mem,每次传送一个snd_mem数据包的指针_skb给Step5处理,判断是否需要被重传;

Step5:如果当前snd_mem的数据包大于snd_mem记录的最高已发送序号highest_sack_sequence,表示已经遍历完snd_mem,于是跳转到Step11;如果当前snd_mem的数据包小于等于snd_mem记录的最高已发送序号highest_sack_sequence,表示snd_mem还没有遍历结束,于是跳转到Step6对当前数据包做进一步的判断;

Step6:如果当前数据包已经被SACK过了,表示该数据包已经被接收端收到了,不需要重传,那么不做任何处理跳转到Step4继续遍历snd_mem;如果该数据包没有被SACK,那么表示该数据包可能丢失了,需要被重传,于是跳转到Step7判断重传一个数据包需要的标志是否都已打上;

Step7:判断数据包有没有被标记为丢失,如果有打上TCPCB_LOST标记,代表Linux内核已经标记为丢失了,不需要进行处理,所以跳转到Step9继续判断重传一个数据包的其他条件是否满足;但是如果没被标记,就需要给该数据包打上TCPCB_LOST标记,因为不打TCPCB_LOST标记,Linux内核会认为该数据包没有丢失,也就不会进行重传,这样接收端就一直收不到这个丢失的数据包,直到超时重传;

Step8:给数据包打上TCPCB_LOST标记,然后跳转到Step9继续判断是否满足重传的条件;

Step9:如果打了TCPCB_SACKED_RETRANS标记,表示该数据包已经被重传过,不管数据包是否再次丢失,Linux内核都不会再重传该数据包,所以如果Linux内核没有给该数据包标记TCPCB_SACKED_RETRANS,表示该数据包会被重传,不需要做任何处理,直接跳转到Step4继续遍历snd_mem;如果数据包被标记了TCPCB_SACKED_RETRANS,那么跳转到Step10继续处理;

Step10:将数据包的TCPCB_SACKED_RETRANS标记位清除掉,然后跳转到Step4继续遍历snd_mem;

Step11:正常的SACK或者是经过处理后的异常SACK最后都会被递交给重传函数,按照正常的Linux内核流程处理,然后重传需要被重传的数据包。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆明理工大学,未经昆明理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810432428.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top