1.一种基于公告机制的可靠数据传输协议,其特征在于:参与该协议传输的设备包括客户端C,服务器端S,提供公告空间的第三方设备T;所述传输协议依次包括如下四个阶段:
1),S向T申请公告阶段;
2),S与C之间的协商阶段;
3),S与C之间的数据传输阶段;
4),结束阶段。
2.如权利要求1所述的基于公告机制的可靠数据传输协议,其特征在于:所述阶段1)具体步骤为:
1-1),在S与C进行数据传输前要先发送公告申请至T;
1-2),T收到公告申请后,如果可以为S创建一个公告,则为S创建一个公告,并发送公告应答报文至S;如果无法为S创建公告,则执行步骤3;
1-3),T发送错误报文,在报文中给出无法创建公告的原因;
1-4),如果S在规定时间内收到公告应答报文则进行协议后续步骤;如果没有收到公告应答或者收到错误报文,则协议过程结束。
3.如权利要求2所述的基于公告机制的可靠数据传输协议,其特征在于:所述步骤1-2)中,T为S创建公告时会生成一条公告记录,记录中包括如下内容:公告的ID;公告的大小;S的IPv6地址;S的MAC地址;随机数R1和随机数R2。
4.如权利要求1所述的基于公告机制的可靠数据传输协议,其特征在于:所述阶段2)具体步骤为:
2-1),S发送Hello1报文至C;
2-2),C收到Hello1报文后,如果同意接收数据,则发送Hello2报文,否则执行步骤2-
3);
2-3),发送错误报文,在报文中给出发送Error报文的原因;
2-4),如果S在规定时间内收到了Hello2报文,则进行协议下一阶段;如果超过规定时间没有收到Hello2报文或者在规定时间内收到了Error报文,那么协议过程结束。
5.如权利要求1所述的基于公告机制的可靠数据传输协议,其特征在于:所述阶段3)的传输阶段由若干个传输周期、同步请求和同步周期构成;其中,传输周期具体为:
3-1),S发送Data报文至C,每个Data报文携带一块数据;
3-2),如果S累计发送了K块数据,或者是最后一块数据发送完毕,则S更新公告的S区,将同步次数置为0,然后进入同步请求;
同步请求具体为:
3-3),如果同步次数小于16,则将同步次数加1,然后S发送Syn Request报文至C,要求同步,如果同步次数大于等于16,则转至结束阶段;
3-4),C接收Syn Request报文后需要发送Update报文至T更新公告的C区;
3-5),C检查Syn Request报文中的“最后块号”字段,找出自己在这一周期中没有收到的块,然后发送Data Request报文请求S重传这些缺失的块;
同步周期具体为:
3-6),S收到Data-Request后,检查C所请求的块,然后用Data Reply报文传送这些块,每个报文携带1块;
3-7),C每收到一个Data Reply报文就用Update报文更新一次公告的C区;
3-8),S发送完所有C请求的块后发送Update到T更新并检查公告,如果公告的C区未与S区同步,则S进行下一轮的同步请求;如果已经同步,则进行下一轮数据传送。
6.如权利要求5所述的基于公告机制的可靠数据传输协议,其特征在于:所述步骤3-4)中,S会根据发送Syn Request时间与接收到Data Request时间计算出一个S与T之间的往返时间(rtt);在步骤3-8)步中,S在发送完最后一个Data Reply报文后等待1.25rtt时间再去检查公告。
7.如权利要求5所述的基于公告机制的可靠数据传输协议,其特征在于:所述步骤3-4)中,每次S或C使用Update报文更新公告后,T需要发送Update Reply报文,如果S或C在发送Update后3秒内没有收到Update Reply报文,则需要重发Update报文,最多发送3次Update报文;如果始终没有收到Update Reply报文,对于S来说,需要马上结束协议的阶段3),进入协议阶段4)。
8.如权利要求5所述的基于公告机制的可靠数据传输协议,其特征在于:所述步骤3-3)中,S要在租约达到一半时进行续约操作,发送续约报文到T,T需要发送续约应答报文进行确认,意思是再延长一个周期,或者发送Error报文表明续约失败;如果S在3秒内没有收到Renew Contract Reply报文或Error报文,则S需要再次发送Renew Contract报文,S最多累计发送3次Renew Contract;如果最终没有T的应答或续约失败,则S在租约到期后直接进入结束阶段。
9.如权利要求1所述的基于公告机制的可靠数据传输协议,其特征在于:所述阶段4)具体步骤为:
4-1),如果S已经发送完所有数据,并且同步完成后,则S发送End1报文,要求断开连接,并启动计时器;
4-2),如果C收到End1报文,则发送End2报文表示同意;
4-3),如果S在计时器时间内并没有收到C发送的End2消息,则S会重发End1报文,并重新启动计时器;如果超时次数达到3次,则S直接视为连接已经断开;
4-4),S发送Release报文给T,要求释放公告。为防止丢失,Release报文要发送3次。
10.如权利要求1所述的基于公告机制的可靠数据传输协议,其特征在于:所述步骤4-
1)中的计时器默认超时时间为3秒。