一种降低UDP报文发送时延的方法与流程

文档序号:20162667发布日期:2020-03-24 21:10阅读:1180来源:国知局
一种降低UDP报文发送时延的方法与流程

本发明涉及文件传输领域,尤其涉及一种降低udp报文发送时延的方法。



背景技术:

在目前的操作系统中,应用层发送udp报文时,如果该udp报文小于ip层的最大负荷单元(比如以太网是1500字节),则该udp报文会被直接发出,如果该udp报文大于ip层的最大负荷单元,则udp报文会被分拆成多个ip报文进行发送,多个ip报文公用同一个udp报文头。当udp报文被分拆成多个ip报文时,如果udp报文对应的多个ip报文在传输过程中,有一个报文丢失,则该udp报文在接收端会被整体丢弃。

基于上述原因,目前在进行udp报文发送时,应用层都选择使用小于最大负荷单元的大小来发送单个udp报文,而这样带来一个非常明显的发送效率问题,比如发送64kb数据,如果是通过发送1个64kb的udp报文来完成,则该udp报文从应用层调用send接口后到本机网卡实际发出,只需要10微秒,如果是通过拆分成64个1kb的udp报文进行发送,则整体发送时间需要500微秒,udp报文发送的时延大幅增加,导致udp报文传输效率降低。

因此,现有技术存在缺陷,需要改进。



技术实现要素:

本发明的目的是克服现有技术的不足,提供一种降低udp报文发送时延的方法,解决现有技术中,udp报文传输时延长,传输效率低的问题。

本发明的技术方案如下:一种降低udp报文发送时延的方法,所述方法包括以下步骤:

s1:用户在传输客户端上设定udp报文的拆分字节值。

所述拆分字节值不大于ip层的mtu值。

s2:传输客户端与传输服务端建立传输连接,并向传输服务端发送udp报文。

s3:若发送的所述udp报文小于ip层的mtu值,则传输客户端向传输服务端发送所述udp报文。

s4:若发送的所述udp报文大于ip层的mtu值,则udp分包驱动程序根据所述拆分字节值,将所述udp报文拆分为若干个udp数据报文,并为所述udp数据报文增加对应的udp报文头。

s5:将增加udp报文头的udp数据报文发送给传输服务端。

在传输客户端上插入udp分包驱动程序,用户根据具体传输要求,设定udp报文需要拆分时的拆分字节值;当所发送的udp报文小于传输ip层的mtu值时,无需拆分udp报文,直接将udp报文传输至传输服务端,当所发送的udp报文大于传输ip层的mtu值时,则通过udp分包驱动程序根据拆分字节值将udp报文拆分成若干个单独的udp数据报文,并且为所拆分的所有的udp数据报文增加udp报文头,使得拆分后的udp数据报文在传输网络中传输时,都是独立的udp数据报文,在其中任意一个udp数据报文丢失时,传输客户端只需要重新发送丢失的udp数据报文,而无需重新发送所有拆分后的udp数据报文,有效节约传输时间,提高传输效率;另一方面,在传输过程中,无需通过ip层分包,可根据传输过程中的实际情况,设定拆分字节值,最大拆分字节值可为ip层的mtu值,增加单次传输的数据量,缩短udp数据文件的传输时间,降低传输时延,极大提高传输效率。

进一步地,所述传输客户端采用send()接口和/或sendto()接口向所述传输服务端发送udp报文、udp数据报文。

进一步地,在所述步骤s4中,若用户未设定udp报文的拆分字节值,则udp分包驱动程序自动获取ip层的mtu值,并根据所述mtu值将所述udp报文拆分成若干个udp数据报文,并为所述udp数据报文增加对应的udp报文头。当用户未设定udp报文的拆分字节值时,udp分包驱动程序会自动获取ip层的mtu值,保证传输过程中udp报文的正常拆包,拆分字节值为mtu值时,单次传输的数据量增加,可大幅度降低由于数据发送所导致的时延问题,降低传输客户端cpu的消耗。

进一步地,所述udp分包驱动程序在传输客户端将udp报文传输至网卡前,完成udp报文的拆分、udp数据报文增加udp报文头操作。

进一步地,所述udp报文头包括:源端口、目的端口、udp校验和。

进一步地,所述udp数据报文不大于64kb。拆分后的单个udp数据报文的数据量最大可以达到64kb,降低udp数据报文从传输客户端调用send()接口和/或sendto()接口到网卡的实际发出的时间,从而有效降低传输过程中的时延。

采用上述方案,本发明提供一种降低udp报文发送时延的方法,具有以下有益效果:

1、本发明通过udp分包驱动程序根据拆分字节值将udp报文拆分成若干个单独的udp数据报文,并且为所拆分的所有的udp数据报文增加udp报文头,使得拆分后的udp数据报文在传输网络中传输时,都是独立的udp数据报文,在其中任意一个udp数据报文丢失时,传输客户端只需要重新发送丢失的udp数据报文,而无需重新发送所有拆分后的udp数据报文,有效节约传输时间,提高传输效率。

2、本发明udp报文的拆分,无需通过ip层分包,可根据传输过程中的实际情况,设定拆分字节值,最大拆分字节值可为ip层的mtu值,单次传输的数据量增加,可大幅度降低由于数据发送所导致的时延问题,降低传输客户端cpu的消耗。

附图说明

图1为本发明的流程框图。

具体实施方式

以下结合附图和具体实施例,对本发明进行详细说明。

请参照图1,本发明提供一种降低udp报文发送时延的方法,所述方法包括以下步骤:

s1:用户在传输客户端上设定udp报文的拆分字节值。

所述拆分字节值不大于ip层的mtu值。

s2:传输客户端与传输服务端建立传输连接,并向传输服务端发送udp报文。

s3:若发送的所述udp报文小于ip层的mtu值,则传输客户端向传输服务端发送所述udp报文。

s4:若发送的所述udp报文大于ip层的mtu值,则udp分包驱动程序根据所述拆分字节值,将所述udp报文拆分为若干个udp数据报文,并为所述udp数据报文增加对应的udp报文头。

s5:将增加udp报文头的udp数据报文发送给传输服务端。

在传输客户端上插入udp分包驱动程序,用户根据具体传输要求,设定udp报文需要拆分时的拆分字节值;当所发送的udp报文小于传输ip层的mtu值时,无需拆分udp报文,直接将udp报文传输至传输服务端,当所发送的udp报文大于传输ip层的mtu值时,则通过udp分包驱动程序根据拆分字节值将udp报文拆分成若干个单独的udp数据报文,并且为所拆分的所有的udp数据报文增加udp报文头,使得拆分后的udp数据报文在传输网络中传输时,都是独立的udp数据报文,在其中任意一个udp数据报文丢失时,传输客户端只需要重新发送丢失的udp数据报文,而无需重新发送所有拆分后的udp数据报文,有效节约传输时间,提高传输效率;另一方面,在传输过程中,无需通过ip层分包,可根据传输过程中的实际情况,设定拆分字节值,最大拆分字节值可为ip层的mtu值,增加单次传输的数据量,缩短udp数据文件的传输时间,降低传输时延,极大提高传输效率。

所述传输客户端采用sendto()接口向所述传输服务端发送udp报文、udp数据报文。

在所述步骤s4中,若用户未设定udp报文的拆分字节值,则udp分包驱动程序自动获取ip层的mtu值,并根据所述mtu值将所述udp报文拆分成若干个udp数据报文,并为所述udp数据报文增加对应的udp报文头。当用户未设定udp报文的拆分字节值时,udp分包驱动程序会自动获取ip层的mtu值,保证传输过程中udp报文的正常拆包,拆分字节值为mtu值时,单次传输的数据量增加,可大幅度降低由于数据发送所导致的时延问题,降低传输客户端cpu的消耗。

所述udp分包驱动程序在传输客户端将udp报文传输至网卡前,完成udp报文的拆分、udp数据报文增加udp报文头操作。

所述udp报文头包括:源端口、目的端口、udp校验和。

所述udp数据报文为64kb。拆分后的单个udp数据报文的数据量最大可以达到64kb,降低udp数据报文从传输客户端调用send()接口到网卡的实际发出的时间,从而有效降低传输过程中的时延。

综上所述,本发明提供一种降低udp报文发送时延的方法,具有以下有益效果:

1、本发明通过udp分包驱动程序根据拆分字节值将udp报文拆分成若干个单独的udp数据报文,并且为所拆分的所有的udp数据报文增加udp报文头,使得拆分后的udp数据报文在传输网络中传输时,都是独立的udp数据报文,在其中任意一个udp数据报文丢失时,传输客户端只需要重新发送丢失的udp数据报文,而无需重新发送所有拆分后的udp数据报文,有效节约传输时间,提高传输效率。

2、本发明udp报文的拆分,无需通过ip层分包,可根据传输过程中的实际情况,设定拆分字节值,最大拆分字节值可为ip层的mtu值,单次传输的数据量增加,可大幅度降低由于数据发送所导致的时延问题,降低传输客户端cpu的消耗。

以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1