一种传输系统提升UDP发送效率的方法技术方案

技术编号:21957138 阅读:38 留言:0更新日期:2019-08-24 20:39
本发明专利技术公开一种传输系统提升UDP发送效率的方法,包括以下步骤:传输客户端调用第一socket()接口建立第一socket,传输客户端调用connect()接口,并设定目的地址,建立UDP socket的连接,传输服务端调用第二socket()接口建立第二socket,传输服务端调用bind()接口,传输客户端调用send()接口发送第一个UDP报文,传输服务端调用recvfrom()接口接收第一个UDP报文,传输服务端判断传输客户端是否符合传输服务端的预期传输客户端,若符合传输服务端的预期传输客户端,调用connect()接口,获取传输客户端地址作为对端地址,UDP socket进入connected连接状态,传输客户端调用send()接口发送UDP报文或调用recv()接口接收UDP报文。本发明专利技术只需要为最开始的1~2个UDP报文进行发送目的地址的选择,后续UDP报文可直接发送,发送效率提升10%‑20%。

A Method of Improving UDP Transmitting Efficiency in Transmission System

【技术实现步骤摘要】
一种传输系统提升UDP发送效率的方法
本专利技术涉及文件传输领域,尤其涉及一种传输系统提升UDP发送效率的方法。
技术介绍
在一般通用操作系统中,比如Windows、Linux、MacOS、Android等系统,发送TCP报文的过程为:客户端的socket()->connect()接口建立连接,然后调用recv()接口和send()接口进行接收和发送,服务器的socket()->bind()->accept()接口建立连接,然后调用recv()接口和send()接口进行接收和发送;发送UDP报文的过程为:传输客户端的socket()接口建立Socket,然后调用recvfrom()接口和sendto()接口进行接收和发送,传输服务端的socket()->bind()接口建立连接,然后调用recvfrom()接口和sendto()接口进行接收和发送。从TCP报文、UDP报文的发送过程,可发现一般的UDPsocket调用与TCPsocket调用存在的区别是,由于UDP是无连接系统,去掉了建立连接的过程,因此也无法使用recv()接口和send()接口来进行接收报文和发送报文;UDP报文的发送只能通过sendto()接口上携带目的地址参数,来说明发送的目的地。由于每次sendto()接口的目的地址不一样,导致UDP报文发送时,每个报文都需进行目的地址的选择,导致额外的性能损耗,特别是当通信为两个点之间,比如A计算机与B计算机之间,这种损耗,导致UDP报文发送效率较低。因此,现有技术存在缺陷,需要改进。
技术实现思路
本专利技术的目的是克服现有技术的不足,提供一种传输系统提升UDP发送效率的方法,解决现有技术中,当UDP报文发送的通信为两个点之间时,由于每个报文都需要进行目的地址选择,导致发送效率较低的问题。本专利技术的技术方案如下:一种传输系统提升UDP发送效率的方法,包括以下步骤:步骤100:传输客户端调用第一socket()接口建立第一socket。步骤200:传输客户端调用connect()接口,并设定目的地址,建立UDPsocket的连接。步骤300:传输服务端调用第二socket()接口建立第二socket。步骤400:传输服务端调用bind()接口,绑定传输服务端的本地地址和端口;所述目的地址与所述本地地址为同一个地址。步骤500:传输客户端调用send()接口发送第一个UDP报文,传输服务端调用recvfrom()接口接收第一个UDP报文。步骤600:传输服务端根据recvfrom()接口获取的传输客户端传输信息,判断是否符合传输服务端的预期传输客户端。步骤700:若符合传输服务端的预期传输客户端,传输服务端调用connect()接口,获取传输客户端地址作为对端地址,UDPsocket进入connected连接状态。步骤800:传输客户端调用send()接口发送UDP报文或调用recv()接口接收UDP报文。传输客户端调用第一socket()接口建立第一socket,在调用connect()接口后,为第一个UDP报文进行UDP报文发送目的地址的设定,目的地址即为传输服务端的本地地址,传输服务端调用第二socket()接口建立第二socket,调用bind()接口,同时绑定传输服务端的本地地址和端口,传输客户端调用send()接口向传输服务端发送第一个UDP报文,传输服务端调用recvfrom()接口接收第一个UDP报文后,获取传输客户端的传输信息,并且根据传输信息判断是否符合预期的传输客户端,若符合,传输服务端则调用connect()接口,作为传输服务端与传输客户端发送UDP报文时的对端地址,UDPsocket进入connected连接状态,传输服务器与传输客户端进入connected的连接状态,连接后,传输服务端与传输客户端之间即可进行UDP报文的接收和发送,在传输过程中,只需要对第一个UDP报文的发送进行发送目的地址进行选择,当传输客户端与传输服务端进入连接状态后,便可直接进行UDP报文的发送,无需在发送每一个UDP报文时,都进行发送目的地址的选择,有效的提高了UDP报文的发送效率;传输客户端只需要为最开始的1~2个UDP报文进行发送目的地址的选择,后续的UDP报文均可通过UDPsocket连接的目的地址直接进行UDP报文的发送,发送效率可提升10%-20%。进一步地,所述的传输客户端传输信息为传输客户端的地址信息、第一个UDP报文内容。进一步地,所述步骤600进一步包括以下步骤:步骤601:传输服务端根据recvfrom()接口获取的传输客户端的地址信息、第一个UDP报文内容。步骤602:判断传输客户端是否符合传输服务器的预期传输客户端。步骤603:若否,则丢弃第一个UDP报文,传输客户端与传输服务端不建立连接。步骤604:若是,进入步骤700。recvfrom()接口接收传输客户端发送的第一UDP报文,并且获取传输客户端的地址信息、第一个UDP报文内容,根据传输客户端的地址信息、第一个UDP报文内容判断传输客户端是否符合传输服务端的预期传输客户端,若不符合,则丢弃第一个UDP报文,并且停止传输客户端与传输服务端之间的连接,若是,传输客户端符合传输服务器的预期传输客户端,则可直接进入到步骤700中。进一步地,所述步骤800进一步包括以下步骤:步骤801:传输客户端调用send()接口向传输服务端发送UDP报文。步骤802:传输服务端调用recvfrom()接口接收UDP报文。步骤803:传输服务端调用sendto()接口向传输客户端发送UDP报文。步骤804:传输客户端调用recv()接口接收UDP报文。在传输客户端与传输服务端建立连接后,传输客户端向传输服务端发送UDP报文时,传输客户端调用send()接口向传输服务端发送数UDP报文,传输服务端调用recvfrom()接口接收UDP报文;在传输服务端向传输客户端发送UDP报文时,传输服务端调用sendto()接口向传输客户端发送UDP报文,传输客户端调用recv()接口接收UDP报文,完成传输客户端与传输服务端UDP报文的发送与接收。进一步地,所述传输客户端与传输服务端之间的通信方式为点对点的通信。进一步地,所述步骤603中,传输客户端与传输服务端不建立连接,结束连接过程,传输客户端将第一个UDP报文的下一个UDP报文,作为新的第一个UDP报文,循环步骤100~步骤800。当传输客户端不符合传输服务器的预期传输客户端时,传输客户端与传输服务端不建立连接,结束连接过程,此时传输客户端将下一个UDP报文作为新的第一个UDP报文,开始重复步骤100~步骤800,即需要输入新的目的地址,与新的传输服务端之间进行第一个UDP报文的发送,直达传输客户端符合对应传输服务端所预期传输客户端为止,一般只需为最开始的1~2个UDP报文进行目的地址的选择,即只需要重复步骤100~步骤800的操作1~2次,传输客户端与传输服务端之间便可建立连接。采用上述方案,本专利技术提供一种传输系统提升UDP发送效率的方法,通过传输客户端调用第一socket()接口建立第一socket,在调用connect()接口后,为第一个UDP报文进行UDP报文发送本文档来自技高网...

【技术保护点】
1.一种传输系统提升UDP发送效率的方法,其特征在于,包括以下步骤:步骤100:传输客户端调用第一socket()接口建立第一socket;步骤200:传输客户端调用connect()接口,并设定目的地址,建立UDP socket的连接;步骤300:传输服务端调用第二socket()接口建立第二socket;步骤400:传输服务端调用bind()接口,绑定传输服务端的本地地址和端口;所述目的地址与所述本地地址为同一个地址;步骤500:传输客户端调用send()接口发送第一个UDP报文,传输服务端调用recvfrom()接口接收第一个UDP报文;步骤600:传输服务端根据recvfrom()接口获取的传输客户端传输信息,判断是否符合传输服务端的预期传输客户端;步骤700:若符合传输服务端的预期传输客户端,传输服务端调用connect()接口,获取传输客户端地址作为对端地址,UDP socket进入connected连接状态;步骤800:传输客户端调用send()接口发送UDP报文或调用recv()接口接收UDP报文。

【技术特征摘要】
1.一种传输系统提升UDP发送效率的方法,其特征在于,包括以下步骤:步骤100:传输客户端调用第一socket()接口建立第一socket;步骤200:传输客户端调用connect()接口,并设定目的地址,建立UDPsocket的连接;步骤300:传输服务端调用第二socket()接口建立第二socket;步骤400:传输服务端调用bind()接口,绑定传输服务端的本地地址和端口;所述目的地址与所述本地地址为同一个地址;步骤500:传输客户端调用send()接口发送第一个UDP报文,传输服务端调用recvfrom()接口接收第一个UDP报文;步骤600:传输服务端根据recvfrom()接口获取的传输客户端传输信息,判断是否符合传输服务端的预期传输客户端;步骤700:若符合传输服务端的预期传输客户端,传输服务端调用connect()接口,获取传输客户端地址作为对端地址,UDPsocket进入connected连接状态;步骤800:传输客户端调用send()接口发送UDP报文或调用recv()接口接收UDP报文。2.根据权利要求1所述的一种传输系统提升UDP发送效率的方法,其特征在于,所述的传输客户端传输信息为传输客户端的地址信息、第一个UDP报文内容。3.根据权利要求2所述的一种传输系统...

【专利技术属性】
技术研发人员:周双全
申请(专利权)人:深圳市瑞云科技有限公司深圳市云语科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1