CN101778093A - 基于udp协议的数据传输方法 - Google Patents
基于udp协议的数据传输方法 Download PDFInfo
- Publication number
- CN101778093A CN101778093A CN200910010076A CN200910010076A CN101778093A CN 101778093 A CN101778093 A CN 101778093A CN 200910010076 A CN200910010076 A CN 200910010076A CN 200910010076 A CN200910010076 A CN 200910010076A CN 101778093 A CN101778093 A CN 101778093A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission
- packet
- data queue
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种基于UDP协议的数据传输方法,具体步骤如下:(S1)发送终端将待发送的文件分成数据包,为数据包设置序号,以便接收终端将各个数据包重新恢复为发送的文件;(S2)发送终端设置三个队列,当等待发送数据队列中的一个数据包数据全部发出后,等待接收终端应答;当接收终端应答接收成功时,等待应答数据队列删除成功传输的数据包信息。当接收终端对所述等待应答数据队列中的数据包超时未应答,则将该数据包放入补发数据队列,用于等待重新放入所述等待发送数据队列进行发送。本发明拓宽了网络间用户互相连接的范围,大幅提高了网络的传输效率,可以广泛地应用于互联网技术下的数据传输,并且能够保证数据传输的可靠性。
Description
技术领域
本发明涉及一种互联网中数据传输的方法,更具体地说,涉及一种基于UDP协议的数据传输方法。
背景技术
TCP(Transmission Control Protocol),传输控制协议,主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。IP协议可以进行IP数据包的分割和组装,但是通过IP协议并不能清楚地了解到数据包是否顺利地发送给目标计算机。而使用TCP协议就不同了,在该协议传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送一个确认;如果在某个时限内没有收到确认,那么TCP将重新发送数据包。另外,在传输的过程中,如果接收到无序、丢失以及被破坏的数据包,TCP还可以负责恢复。
TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由IETF的RFC 793说明。在简化的计算机网络OSI模型中,它完成运输层所指定的功能。
UDP(User Datagram Protocol),用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。
由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用UDP的“端口号”完成的。例如,如果一个工作站希望在工作站128.1.123.1上使用域名服务系统,它就会给数据包一个目的地址128.1.123.1,并在UDP头插入目标端口号53。源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定到源主机的这个端口上。UDP端口的详细介绍可以参照相关文章。
UDP协议使用IP层提供的服务把从应用层得到的数据从一台主机的某个应用程序传给网络上另一台主机上的某一个应用程序。其特点如下:
1、UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。
2、UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。
3、UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。
4、UDP传送数据较TCP快速,系统开销也少。
从以上特点可知,UDP提供的是无连接的、不可靠的数据传送方式,是一种尽力而为的数据交付服务。问题在于,TCP协议在网络发展的前期,适用于所有的用户。在前期使用网络的用户,每个人都拥有一个公共的固定的ip地址,随着用户的增多,ip地址资源开始变得匮乏。为了解决ip资源匮乏的问题,nat(网络地址转换器)设备出现了,大的网络用户集群使用局域网地址,访问公共网络时分配临时的公网地址的方式,解决了ip匮乏问题。但是也直接导致了网络状态的复杂化,并直接影响了TCP协议的适用范围。用户与用户之间使用TCP协议共享资源时,绝大多数情况都无法进行。UDP协议可以穿越绝大多数的nat设备共享用户资源,但是UDP协议的无连接以及不可靠传输的特点,使得共享资源的过程变得异常艰难。
发明内容
本发明提供一种基于UDP协议实现互联网中两个客户终端之间数据的可靠传输方法,旨在弥补TCP协议下对传输数据因IP地址数量有限而受到的限制问题。
本发明一种基于UDP协议的数据传输方法,包括如下步骤:
(S1)发送终端将待发送的文件分成数据包,为数据包设置序号,以便接收终端将各个数据包重新恢复为发送的文件;
(S2)发送终端设置三个队列,包括等待发送数据队列、等待应答数据队列和补发数据队列。其中,等待发送数据队列,将数据包信息以先进先出的方式按序排列,并且基于UDP协议建立传输链路实现数据包的传输;
(S3)当等待发送数据队列中的一个数据包数据全部发出后,将该数据包信息从等待发送数据队列放入所述等待应答数据队列,等待所述接收终端应答;当接收终端应答接收成功时,等待应答数据队列删除成功传输的数据包信息;
(S4)当接收终端对所述等待应答数据队列中的数据包超时或未应答,则将该数据包放入补发数据队列,用于等待重新放入等待发送数据队列进行发送。
本发明基于UDP协议的数据传输方法,其改进在于,上述步骤(S2)中,等待发送数据队列根据数据包的编号按序排列。此外优选方式下,在同一时刻,发送终端和接收终端之间可以建立多个传输链路。
本发明基于UDP协议的数据传输方法,针对置于nat设备之后无法使用TCP可靠传输机制的用户,使用UDP协议进行用户间的资源共享。根据UDP协议的特点,对UDP协议进行封装,使UDP协议在共享资源时与TCP协议效果相同,简化数据共享的过程;从而极大的拓宽了网络间用户互相连接的范围,使更多的用户可以采用互相连接的方式进行资源共享;并因此大幅度地提高了网络的传输效率。尤其针对于用户机而言,UDP协议采用端口一对多的连接,TCP采用端口一对一的连接,UDP协议较TCP协议更加节省本地资源;摆脱了IP地址数量的限制,从而可以广泛地应用于互联网技术下的数据传输,而且能够提高数据传输的可靠性。
附图说明
图1是本发明基于UDP协议的数据传输方法两终端间的流程情况示意图。
具体实施方式
如图1所示本发明基于UDP协议的数据传输方法的流程图,左侧为发送终端的流程情况,右侧为接收终端的流程情况,二者之间通过互联网网络交互信息。
图中,逻辑控制层,用于处理逻辑流程,建立在网络传输层之上,主要负责处理逻辑问题,需要进行网络读写时,通过网络传输层完成。网络链路控制器,用于绑定一个本地端口或者称为网络地址(socketaddress),负责所有使用绑定端口发送的数据;由于目的地址不同,每个目的地址与本地端口地址建立一条传输链路,每个网络链路控制器可以拥有多条传输链路。传输链路,其链路由本地地址与目的地址作为链路的唯一标识。而数据处理器,在发送数据时,对需要发送的数据按传递顺序进行编号;接收数据时,按照数据编号进行数据整合,完成整合的数据按照顺序向上传递到逻辑处理层进行处理。此外,网络传输端口:或者称为SocketAddress,网络传输地址,由IP+port组成,如:202.96.69.38:4578;网络传输地址在网络中是唯一的存在,标识本机的通信地址。
本发明基于UDP协议的数据传输方法,具体包括如下步骤:
(1)发送终端将待发送的文件分成数据包,为数据包设置序号,以便接收终端将各个数据包重新恢复为发送的文件;
(2)发送终端在每个链路内拥有三个数据存储队列,分别是:等待发送数据队列、等待应答数据队列和补发数据队列。其中,等待发送数据队列,在队列内存储等待发送的数据,使用可靠传输,要求接收方接到数据后给予发送方应答(通知已收到)。等待发送数据队列:等待应答数据队列,队列内的数据已经发送过,等待对方收到后的响应,确认对方收到。补发数据队列,当一定时间内未收到对方的响应信息,对可能丢失的数据进行补发。传输链路中存储了所有的关于此链路的数据,数据传递给链路后直接添加到“等待发送数据队列”,由发送线程将数据从“等待发送数据队列”中取出,写入网络端口;然后将数据加入“等待应答数据队列”,并定时检查响应,一定时间内没有受到应答,将会操作“补发数据队列”进行补发。
具体方式为:
a)等待发送数据队列将数据包信息以先进先出的方式按序排列,并且基于UDP协议建立传输链路实现数据包的传输。
b)当等待发送数据队列中的一个数据包数据全部发出后,将该数据包信息从等待发送数据队列放入所述等待应答数据队列,等待接收终端应答;当接收终端应答接收成功时,等待应答数据队列删除成功传输的数据包信息。
c)当接收终端对所述等待应答数据队列中的数据包超时或未应答,则将该数据包放入补发数据队列,用于等待重新放入等待发送数据队列进行发送。
此处,“超时”概念如下:通常这个时间根据RTT值来计算,RTT值在网络中称为回路时间,也就是一个数据包从发送时间开始计算,到接受到响应包结束,其间所耗用的时间。超时是以RTT值为基准,本发明优选方式下,第一次计时以2个RTT值时间为开始补发的计时基础,第二次是4个RTT值,依此类推,2倍数的递增方式。当数据包的总发送时间超过5秒,认为链路存在故障,并放弃发送。对于首次发送的数据包,RTT值默认为50毫秒到300毫秒中的一个优选数值;而对于多个反馈的数据包,RTT值可取平均或加权平均计算获得。通常情况下,未应答的状态也以超时为判断前提,也就是说,在一定时间后无法接受到响应,即可直接判定为未作应答;因此此处“超时”、“未作应答”的概念等同。
根据附图1,分别说明发送终端和接收终端的实现过程。
发送终端首先由逻辑控制层产生数据,数据经程序内部传递,传递到网络层,网络层根据数据绑定的本地地址,关联网络链路控制器,再根据目的地址绑定具体的传输链路,找到具体的链路后,将数据传递给数据处理器,对数据进行传输编号,以防止传输顺序错乱,并将数据封装在可执行接口内部;封装完毕后,将对应的网络链路控制器添加到执行队列,等待独立执行线程访问。独立执行线程遍历执行队列,按照队列内的排放顺序,将网络链路控制器逐个取出,检索传输链路,将需要发送的数据发送,通过网络端口,发送向目的地。
而接收终端由独立线程定时遍历本地所有的网络链路控制器,读取接收到的存在于所有链路的数据,每接收到一个数据对发送方做接收数据应答,将接收完整的数据传递给数据处理器,由数据处理器对接收到的数据作整理,通过排序整合,将接续的数据向上传递,交给逻辑处理层作处理,非连续的数据等待数据接续后再上传。
本发明基于UDP协议的数据传输方法,通过发送数据后,返回接收数据响应的方式,对发送的每一个数据进行确认,达到数据可靠传输的目的,每个数据都需要应答时,发送数据的速度就相应的降低了,针对于这种情况,采取同时传输多个数据来提高速度,即允许同时存在多个未收到“接收数据响应”的数据在网络中传输,这样在网络层传输的速度就大大的提高了;在网络传输的过程中每个数据所走的路径都可能不同,相应的达到目的地的速度也不同,在网络传输中由于应用的不同,对于数据的传送速度要求也不同,有很多应用需要保证数据的收发顺序,目前多个包在网络中传输,传输速度是无法保证,我们只能通过程序内部来保障顺序,在数据发送前,对数据进行编号,接收数据时,按照编号重新排序,为防止过多的无序数据对网络层造成太大的压力,程序内部会将数据的数量控制在一定的范围之内,通过以上的手段结合应用,来实现UDP的可靠传输。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种基于UDP协议的数据传输方法,包括:在发送终端和接收终端之间建立传输链路的步骤,以及依靠所述传输链路传输数据的步骤;其特征在于,具体包括如下步骤:
(S1)所述发送终端将待发送的文件分成数据包,为数据包设置序号,以便所述接收终端将各个数据包重新恢复为发送的文件;
(S2)所述发送终端设置三个队列,包括等待发送数据队列、等待应答数据队列和补发数据队列;
所述等待发送数据队列,将数据包信息以先进先出的方式按序排列,并且基于UDP协议建立传输链路实现数据包的传输;
(S3)当所述等待发送数据队列中的一个数据包数据全部发出后,将该数据包信息从所述等待发送数据队列放入所述等待应答数据队列,等待所述接收终端应答;当所述接收终端应答接收成功时,所述等待应答数据队列删除成功传输的数据包信息;
(S4)当所述接收终端对所述等待应答数据队列中的数据包未做应答时,则将该数据包放入所述补发数据队列,用于等待重新放入所述等待发送数据队列进行发送。
2.根据权利要求1所述基于UDP协议的数据传输方法,其特征在于,步骤(S2)中,所述等待发送数据队列根据数据包的编号按序排列。
3.根据权利要求2所述基于UDP协议的数据传输方法,其特征在于,同一时刻,所述发送终端和接收终端之间建立多个传输链路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910010076A CN101778093A (zh) | 2009-01-13 | 2009-01-13 | 基于udp协议的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910010076A CN101778093A (zh) | 2009-01-13 | 2009-01-13 | 基于udp协议的数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101778093A true CN101778093A (zh) | 2010-07-14 |
Family
ID=42514423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910010076A Pending CN101778093A (zh) | 2009-01-13 | 2009-01-13 | 基于udp协议的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101778093A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532822A (zh) * | 2012-07-02 | 2014-01-22 | 北京神州泰岳软件股份有限公司 | 消息投递的管理方法、服务器和系统 |
CN103595810A (zh) * | 2013-11-22 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式文件系统中网络自适应方法 |
CN104539652A (zh) * | 2014-12-05 | 2015-04-22 | 浪潮集团有限公司 | 一种嵌入式设备快速映射udp数据到tcp应用服务的方法 |
CN104717259A (zh) * | 2013-12-16 | 2015-06-17 | 中国科学院声学研究所 | 分布式中转服务器网络辅助的多路径数据传输系统与方法 |
CN104901889A (zh) * | 2015-05-15 | 2015-09-09 | 嘉兴市稠江光电仪器技术有限公司 | 一种基于改进型udp/ip协议的远程数据采集与控制方法 |
CN105846982A (zh) * | 2016-04-29 | 2016-08-10 | 国家计算机网络与信息安全管理中心 | 一种跨域传输的方法 |
CN105847141A (zh) * | 2016-01-25 | 2016-08-10 | 乐卡汽车智能科技(北京)有限公司 | 在具有多个通信链路的通信设备上的通信方法及通信设备 |
CN106209764A (zh) * | 2016-05-27 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于udp协议的数据传输方法及系统 |
CN111614546A (zh) * | 2020-04-30 | 2020-09-01 | 南京南瑞信息通信科技有限公司 | 用于oa系统的实时信息交互方法、装置及存储介质 |
CN117311258A (zh) * | 2023-12-01 | 2023-12-29 | 合肥中科鸿创信息科技有限公司 | 一种基于udp与plc的多设备同步控制方法及系统 |
-
2009
- 2009-01-13 CN CN200910010076A patent/CN101778093A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532822B (zh) * | 2012-07-02 | 2016-12-21 | 北京神州泰岳软件股份有限公司 | 消息投递的管理方法、服务器和系统 |
CN103532822A (zh) * | 2012-07-02 | 2014-01-22 | 北京神州泰岳软件股份有限公司 | 消息投递的管理方法、服务器和系统 |
CN103595810A (zh) * | 2013-11-22 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式文件系统中网络自适应方法 |
CN104717259A (zh) * | 2013-12-16 | 2015-06-17 | 中国科学院声学研究所 | 分布式中转服务器网络辅助的多路径数据传输系统与方法 |
CN104539652B (zh) * | 2014-12-05 | 2017-10-13 | 浪潮集团有限公司 | 一种嵌入式设备快速映射udp数据到tcp应用服务的方法 |
CN104539652A (zh) * | 2014-12-05 | 2015-04-22 | 浪潮集团有限公司 | 一种嵌入式设备快速映射udp数据到tcp应用服务的方法 |
CN104901889A (zh) * | 2015-05-15 | 2015-09-09 | 嘉兴市稠江光电仪器技术有限公司 | 一种基于改进型udp/ip协议的远程数据采集与控制方法 |
CN105847141A (zh) * | 2016-01-25 | 2016-08-10 | 乐卡汽车智能科技(北京)有限公司 | 在具有多个通信链路的通信设备上的通信方法及通信设备 |
CN105846982A (zh) * | 2016-04-29 | 2016-08-10 | 国家计算机网络与信息安全管理中心 | 一种跨域传输的方法 |
CN105846982B (zh) * | 2016-04-29 | 2019-03-15 | 国家计算机网络与信息安全管理中心 | 一种跨域传输的方法 |
CN106209764A (zh) * | 2016-05-27 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于udp协议的数据传输方法及系统 |
CN111614546A (zh) * | 2020-04-30 | 2020-09-01 | 南京南瑞信息通信科技有限公司 | 用于oa系统的实时信息交互方法、装置及存储介质 |
CN117311258A (zh) * | 2023-12-01 | 2023-12-29 | 合肥中科鸿创信息科技有限公司 | 一种基于udp与plc的多设备同步控制方法及系统 |
CN117311258B (zh) * | 2023-12-01 | 2024-03-12 | 合肥中科鸿创信息科技有限公司 | 一种基于udp与plc的多设备同步控制方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101778093A (zh) | 基于udp协议的数据传输方法 | |
Cerf et al. | Proposal for an international end to end protocol | |
US9432251B2 (en) | Enhanced acknowledgement and retransmission mechanism | |
JP4769585B2 (ja) | 相関メッセージを、ネットワークを介して通信するための待機セッション | |
CN105024861B (zh) | 一种基于北斗卫星的可靠远程通信方法及其通信装置 | |
AU746179B2 (en) | Communication method and system | |
CN101510816B (zh) | 基于路径关联化的多路径并行传输方法 | |
CN103986647A (zh) | 报文传输方法及设备 | |
JP6148459B2 (ja) | データを送信ノードから宛先ノードに移送する方法 | |
CN101436978A (zh) | 使用udp协议进行可靠数据传输的方法 | |
CN102035751A (zh) | 一种数据的传输方法和设备 | |
CN103475706B (zh) | 基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法 | |
JP2020010326A (ja) | WiFi管理フレームを利用したデータ送信方法、データ受信方法及びデータ通信方法 | |
CN102315918B (zh) | 一种tcp连接与sctp连接互通的方法及装置 | |
CN104168273A (zh) | 一种瘦ap模式下实现tcp代理的方法及系统 | |
CN105227276B (zh) | 一种基于udt的对等网络数据传输方法 | |
CN108809549A (zh) | 一种传输数据的方法及设备 | |
CN106302426A (zh) | 一种基于fpga的带重发机制的udp协议栈实现方法 | |
CN102790667B (zh) | 一种处理重传数据的方法及基站 | |
JP2006148727A (ja) | アプリケーションモニタ装置 | |
CN102790668B (zh) | 一种处理重传数据的方法及基站 | |
CN113612737A (zh) | 一种基于分组与重传机制的长报文可靠传输方法 | |
EP3367599B1 (en) | Method and system for transferring data within a layered architecture of network components | |
CN105721491A (zh) | 一种用于面向高速磁浮交通仿真的通信方法 | |
KR100855347B1 (ko) | 유디피 제어 기반의 메시지 전송 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100714 |