一种基于udp协议保证数据可靠传输的方法

文档序号:9508567阅读:404来源:国知局
一种基于udp协议保证数据可靠传输的方法
【技术领域】
[0001]本发明涉及一种数据传输的方法,具体地说是一种基于UDP协议保证数据可靠传输的方法。
【背景技术】
[0002]相对于TCP,UDP是面向无连接传输,采用了无连接的传输方法,通信时直接向对端发送数据,UDP在数据传输时不记录连接状态,虽然节省了大量的网络资源,提高了网络传输效率,不能保证数据的可靠传输,如要进行数据的可靠传输,则必须对UDP报文进行额外的控制,以便保证数据的可靠传输,因此需要一种方法在充分利用UDP传输效率的前提下,达到UDP数据的可靠性传输。

【发明内容】

[0003]为克服现有技术存在的问题,本发明的目的是提供一种基于UDP协议保证数据可靠传输的方法,该方法通过给用户准备发送的每个数据加上一个控制帧,通过校验控制帧中的信息来实现UDP数据传输的可靠性。
[0004]本发明的目的通过以下技术方案实现:
一种基于UDP协议保证数据可靠传输的方法,其特征在于该方法包括以下步骤:
1)发送端发送数据:获取用户需要发送的数据包,并封装该数据包,在其首部增加控制帧;将该封装后的数据包发送出去后,等待接收端的数据接收确认包,如果在规定时间内没有收到接收端的数据接收确认包,则重发该数据包;
2)接收端接收数据:在接收到发送端的数据包后,验证对应的控制帧,并根据验证结果以判断该报文是否传输正确,如果正确则返回一个数据接收确认包,反之则丢弃该包,发送端则定时重发。
[0005]本发明中,发送端:获取用户需要发送的数据包,并封装该数据包,在其首部增加控制帧。将该封装后的数据包发送出去后,等待接收对端的数据接收确认包(ACK),如果在规定时间内没有收到对端的数据接收确认包(ACK),则重发该数据包。接收端:在接收对端发送的数据包后,验证对应的控制帧,并根据验证结果以判断该报文是否传输正确,如果正确则返回一个数据接收确认包(ACK),反之则丢弃该包,发送端会定时重发。
[0006]本发明通过给用户准备发送的每个数据加上一个控制帧,通过校验控制帧中的信息来实现UDP数据传输的可靠性。
【附图说明】
[0007]图1是本发明中发送端发送数据的流程图。
[0008]图2是本发明中接收端接收数据的流程图。
【具体实施方式】
[0009]下面结合图1和图2,对本发明做进一步详细阐述
一种基于UDP协议保证数据可靠传输的方法,该方法包括以下步骤:
1)发送端发送数据:获取用户需要发送的数据包,并封装该数据包,在其首部增加控制帧;将该封装后的数据包发送出去后,等待接收端的数据接收确认包,如果在规定时间内没有收到接收端的数据接收确认包,则重发该数据包;
2)接收端接收数据:在接收到发送端的数据包后,验证对应的控制帧,并根据验证结果以判断该报文是否传输正确,如果正确则返回一个数据接收确认包,反之则丢弃该包,发送端则定时重发。
[0010]具体如下:
发送端(图1):
步骤101,获取准备发送的数据包,在该数据包中额外添加一个包含本次发送信息的控制帧数据。
[0011]步骤102,发送数据,调用UDP对应的数据发送函数,将数据包发送出去。
[0012]步骤103,等待对端正确收到本次数据的确认包,如果收到确认包则表示本次发送成功,反之则失败,需要重新发送。
[0013]
接收端(图2)
步骤201,判断是否有数据达到。如果则进行下一,如果没有则一直阻塞直到有数据到达。
[0014]步骤202,接收数据包。
[0015]步骤203,对接收到的数据包进行解析,并对其包含的控制帧信息进行验证,判断本次接收到的数据是否正确。
[0016]步骤204,如果验证正确,则返回一个数据接收确认包(ACK)。
[0017]步骤205,如果验证不正确,则丢弃该包,继续接收下次数据。
【主权项】
1.一种基于UDP协议保证数据可靠传输的方法,其特征在于该方法包括以下步骤: 1)发送端发送数据:获取用户需要发送的数据包,并封装该数据包,在其首部增加控制帧;将该封装后的数据包发送出去后,等待接收端的数据接收确认包,如果在规定时间内没有收到接收端的数据接收确认包,则重发该数据包; 2)接收端接收数据:在接收到发送端的数据包后,验证对应的控制帧,并根据验证结果以判断该报文是否传输正确,如果正确则返回一个数据接收确认包,反之则丢弃该包,发送端则定时重发。2.根据权利要求1所述的基于UDP协议保证数据可靠传输的方法,其特征在于该方法具体步骤如下:: 发送端发送数据 步骤101,获取准备发送的数据包,在该数据包中额外添加一个包含本次发送信息的控制帧数据; 步骤102,发送数据,调用UDP对应的数据发送函数,将数据包发送出去; 步骤103,等待对端正确收到本次数据的确认包,如果收到确认包则表示本次发送成功,反之则失败,需要重新发送; 接收端接收数据 步骤201,判断是否有数据达到,如果是则进行下一,如果没有则一直阻塞直到有数据到达; 步骤202,接收数据包; 步骤203,对接收到的数据包进行解析,并对其包含的控制帧信息进行验证,判断本次接收到的数据是否正确; 步骤204,如果验证正确,则返回一个数据接收确认包; 步骤205,如果验证不正确,则丢弃该包,继续接收下次数据。
【专利摘要】本发明公开了一种基于UDP协议保证数据可靠传输的方法,发送端发送数据:获取用户需要发送的数据包,并封装该数据包,在其首部增加控制帧;将该封装后的数据包发送出去后,等待接收端的数据接收确认包,如果在规定时间内没有收到接收端的数据接收确认包,则重发该数据包;接收端接收数据:在接收到发送端的数据包后,验证对应的控制帧,并根据验证结果以判断该报文是否传输正确,如果正确则返回一个数据接收确认包,反之则丢弃该包,发送端则定时重发。本发明通过给用户准备发送的每个数据加上一个控制帧,通过校验控制帧中的信息来实现UDP数据传输的可靠性。
【IPC分类】H04L29/06
【公开号】CN105262746
【申请号】CN201510656117
【发明人】陆晨亮, 刘刚, 张俊
【申请人】国家电网公司, 江苏省电力公司, 江苏电力信息技术有限公司
【公开日】2016年1月20日
【申请日】2015年10月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1