一种基于卫星网络的跳到跳的传输方法

文档序号:7702078阅读:238来源:国知局
专利名称:一种基于卫星网络的跳到跳的传输方法
技术领域
本发明属于通信技术领域,涉及一种跳到跳的通信方法,尤其涉及一种基于卫星网 络的跳到跳的传输方法,削弱了卫星长延迟、高误码及动态拓扑带来的影响信息。
背景技术
在卫星网络通信中,主要面临以下问题1) 高误码率。噪声及其他因素导致的传输错误是不可忽视的。TCP假设所有的丢包都 是由于网络拥塞造成的,因此TCP会调用拥塞控制算法来减少拥塞窗口。但对于链路错误 导致的丢包来说,不但不应减少发送窗口,反而应该尽快重传,所以TCP在有噪声的非拥 塞环境下并不能提供很好的传输性。通常当传输信号没有被遮蔽,即卫星与地面之间存在 直达信号时,卫星链路的随机误码率在10—6左右。但是,当天气状况恶劣或者直达信号被遮 蔽,信号衰落严重,衰落深度在10 20dB范围。这时,卫星信号不仅会出现随机误码,还会 出现突发误码,即连续多个数据包丢失,恢复起来更加困难。2) 高延迟带宽乘积。 一般高轨卫星的单向传输延迟约为250ms,往返延迟超过500ms, 远高于地面网络传输时间,具有较大的延迟带宽乘积(DBP)。 DBP表明在链路完全充满的 情况下,已发送但还未被确认的数据量。因此,DBP越大,则发送窗口应该越大,才能使 的链路利用率越高。而传统的拥塞控制算法中,出现丢包便会迅速将发送窗口降低为1, 而卫星链路的高误码又使得即便在不拥塞的环境下也会丢包频繁,窗口始终不能有效增 加;对于网络中出现的突发性拥塞也不能很好的处理,窗口只能从l开始增加,链路不能 得到充分的利用。并且,卫星链路较长的传输延时也会导致不能及时获取反馈信息,因此 对当前网络状况的应变速度十分不理想。3) 移动性。低、中轨卫星的不断移动导致传统的基于IP编址的路由协议不能有效地 工作,路由表需要频繁更新,且卫星长延时的特点导致反馈信息不能及时到达,因此连接 会频繁断开并重新建立。同时,卫星经过南北两极区域时会在一段时间内无法接收任何信 号,这种变化虽然是周期性有规律地,但持续时间相对较长。
发明内容本发明的目的在于提供一种基于卫星网络的跳到跳的传输方法,跳到跳的传输机制是 针对多跳无线网络提出的新型传输机制。为实现上述目的,本发明的技术方案为一种基于卫星网络的跳到跳的传输方法,其步骤为1) 源节点将发往同一个下一跳中间节点的所有数据包排在一个队列里,进行发送;2) 中间节点对同一个发送节点发来的数据包进行顺序确认,并将确认信息返回给上一 跳的发送节点,同时将接收到的发往同一个下一跳中间节点的所有数据包排在一个 队列里,进行发送,直到目的节点;3) 目的节点对同一个发送节点发来的数据包进行顺序确认,并将确认信息返回给上一 跳的发送节点;4) 发送节点根据返回的确认信息,判断所发送的数据包是否发送成功;5) 如果存在一数据包未发送成功,则对该包进行重新路由;如果下一跳节点发生变化, 则将该数据包及其所在队列中后续未发送的数据包转移到相应节点队列中发送,如 果下一跳节点未发生变化,则直接对该数据包进行重新发送。所述方法中采用ACK的确认方式逐跳进行所述顺序确认,其方法为首先中间节点 将发往不同下一跳的数据包排进不同队列中,然后对每个队列中所有数据包进行统一编 号,最后根据数据包的统一编号逐跳进行所述顺序确认。所述数据包的包头包括源节点的序列号和其所在队列中的顺序编号。所述方法中,发送节点收到返回的确认信息后,从缓冲区中删除对应的数据包。所述中间节点乱序发送数据包。所述步骤5)中,根据所述数据包的目的地进行所述重新路由。所述步骤5)中,将该数据包及其所在队列中后续未发送的数据包转移到相应节点队 列中,重新编号再发送。所述目的节点和源节点之间通过SNACK的确认方式对数据包进行端到端的顺序确 认,其方法为如果所述目的节点接收到的数据包为乱序到达,那么目的节点本发明的积极效果为本发明提出的跳到跳的传输方法增加了相邻节点之间的链路状态和缓存空间等信息 交互,使得需要可靠保证的业务可以在每跳内得到可靠传输,充分且及时的反馈信息可以 减弱卫星通信大延迟、高误码、移动性等特点带来的负面影响,能够适用于卫星网络发展 的环境和业务要求。


通信流程示意图。
具体实施方式
下面结合附图和具体实施方式
对本发明作进一步详细描述,附图为本发明的通信流程示意图。为了与端到端传输方式进行区分,我们称产生业务流的端节点为发送端/源端,最终接 收的目的地为接收端/目的端,中间转发的结点叫发送方,下一跳叫接收方。跳到跳确认的 主要思想是当接收方收到一个数据包且经过校验和检查后,在转发该数据包前要向发送方 发回一个确认信息,发送方收到这个确认信息后才会将这段数据从缓冲区中删除。首先在包的转发顺序上,源端或中间节点对每个包进行路由后,将发往同一个下一跳 的所有包排在一个队列里,因此,接收方顺序确认从一个发送方发来的包。而不是将同一 个连接的包排成一队。即,对端节点的一个连接而言,中间节点是乱序转发的,而对中间 节点而言,转发是顺序确认的。这样设计是由于低、中轨卫星具有移动性,其网络拓扑是 动态变化的。如果中间节点采用顺序投递,每个节点都只能顺序的转发包,即所有的包都 只能采用一条传输路径,那么如果中间有路由发生变化,要么只能等待重新连接,否则就 只能设计非常复杂的分段传输算法,将传输数据分段,在传输开始前估算出这段通信期间 可发送的数据段的大小,这样做复杂且并不会提高性能。卫星网络的另一个特点就是较大 的延迟带宽乘积,如果采用顺序传输的话,前面的包出错需要重传,那么后面已经正确传 输的包不能立即转发,需要等待这个包正确传到之后才能转发,浪费了带宽,不但增加了 节点缓冲区的负担还降低了链路利用率。因此,对于卫星网络不适合采用每个节点都顺序 转发同一连接的包的方式。接下来要考虑的是确认方式。两跳之间,我们仍然采用ACK的确认方式。但是,由 于包是乱序发送的, 一个中间节点可能转发来自不同源端和目的端的数据包,因此,像刚5才提到的,在每个中间节点中,我们需要对包重新编号及排队。我们将发往不同下一跳的 包排进不同队列,每个队列中对所有包进行统一编号。因此一个数据包的包头中不仅需要 包括其在源端点的序列号SeqS,还需要包括在所经过的当前节点的队列中的序号Seqi。不 同于SeqS —旦写好后直到到达目的端该序号值都不变,Seqi在传输过程中一直在变化。 因此,接收方确认的是Seqi这个序号。因此,在跳到跳确认中,尽管是乱序发送的,我们 仍然可以保留延迟累积确认机制,因为两跳之间必然是顺序发送的。而在有着不可靠节点 的网络中,端到端的可靠性只能由端节点的确认来保证,因此,我们还必须在传输层提供 端到端的重传及确认机制。但不同于传统协议,我们的协议采用SNACK (Selective Negative Acknowledgment)的确认方式,它是空间数据系统咨询委员会(CCSDS)专门针对卫星传输特 点而在空间通信协议规范(SCPS-TP)中提出的概念。我们将其应用于我们的协议中,并设 定如果有乱序的包到达,那么目的端每十个编号后,发送一个SNACK确认包。例如,目 的端依次收到了编号0,1,2,4,7,9这六个数据包,它们的跨度已经是十,因此目的端发送一 个SNACK(3,5,6,8),源端收到后,重发3,5,6,8号数据包。如果没有乱序发生,那么每隔 30个包发送一次确认。这样,我们既实现了 TCP中延迟累积确认的优势,可以容忍短暂 的抖动,又保证了端到端的传输是完全可靠的。第三,除了对地静止轨道卫星,中轨及低轨卫星都有一定的相对速度,因此,有可能 在下次重传时路由已经发生变化,原来的下一跳已经不在可通信范围内或者已经不再是最 佳的传输路径。此时,如果中间节点没有动态路由的能力,那么之前建立的连接将失效, 重传过程将从发送端开始重新建立连接,跳到跳传输的优势没有得到很好的发挥。所以, 我们的跳到跳确认层在路由层之下。如果一个数据包需要重传,那么将针对该数据包的目 的地对其重新进行路由,如果下一跳发生变化,那么该数据包转移到相应队列并重新编号 再发送。并且,由于卫星拓扑的固定性,可以预测到,后续包的路由都应该已经失效了。 因此,将后续数据包也转移到另一个队列重新编号再发送。
权利要求
1.一种基于卫星网络的跳到跳的传输方法,其步骤为1)源节点将发往同一个下一跳中间节点的所有数据包排在一个队列里,进行发送;2)中间节点对同一个发送节点发来的数据包进行顺序确认,并将确认信息返回给上一跳的发送节点,同时将接收到的发往同一个下一跳中间节点的所有数据包排在一个队列里,进行发送,直到目的节点;3)目的节点对同一个发送节点发来的数据包进行顺序确认,并将确认信息返回给上一跳的发送节点;4)发送节点根据返回的确认信息,判断所发送的数据包是否发送成功;5)如果存在一数据包未发送成功,则对该包进行重新路由;如果下一跳节点发生变化,则将该数据包及其所在队列中后续未发送的数据包转移到相应节点队列中发送,如果下一跳节点未发生变化,则直接对该数据包进行重新发送。
2. 如权利要求1所述的方法,其特征在于采用ACK的确认方式逐跳进行所述顺序确认, 其方法为首先中间节点将发往不同下一跳的数据包排进不同队列中,然后对每个队 列中所有数据包进行统一编号,最后根据数据包的统一编号逐跳进行所述顺序确认。
3. 如权利要求1或2所述的方法,其特征在于所述数据包的包头包括源节点的序列号和其所在队列中的顺序编号。
4. 如权利要求1所述的方法,其特征在于发送节点收到返回的确认信息后,从缓冲区中 删除对应的数据包。
5. 如权利要求l所述的方法,其特征在于所述中间节点乱序发送数据包。
6. 如权利要求l所述的方法,其特征在于所述步骤5)中,根据所述数据包的目的地进行所述重新路由。
7. 如权利要求1或6所述的方法,其特征在于所述步骤5)中,将该数据包及其所在队列 中后续未发送的数据包转移到相应节点队列中,重新编号再发送。
8. 如权利要求1所述的方法,其特征在于所述目的节点和源节点之间通过SNACK的确认 方式对数据包进行端到端的顺序确认,其方法为如果所述目的节点接 >收到的数据包 为乱序到达,那么目的节点每10个编号跨度发送一个SNACK确认包,如果所述目的 节点接收到的数据包为顺序到达,则每30个编号跨度发送一个SNACK 认包。
全文摘要
本发明公开了一种基于卫星网络的跳到跳的传输方法,属于通信技术领域。本发明的方法为源节点或中间节点将发往同一个下一跳的所有数据包排在一个队列里,进行发送,直到目的节点;同时中间节点或目的节点对同一个发送节点发来的数据包进行顺序确认,并将确认信息返回给上一跳的发送节点;发送节点根据返回的确认信息,判断所发送的数据包是否发送成功,如果存在一数据包未发送成功,则对该包进行重新路由;如果下一跳节点发生变化,则将该数据包转移到相应队列并重新编号再发送。本发明增加了相邻节点之间的链路状态和缓存空间等信息交互,减弱卫星通信大延迟、高误码、移动性等特点带来的负面影响,能够适用于卫星网络发展的环境和业务要求。
文档编号H04W28/14GK101626597SQ200910090749
公开日2010年1月13日 申请日期2009年8月7日 优先权日2009年8月7日
发明者刘立祥, 孙昊良, 李向群, 路 王, 胡月梅, 静 陈 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1