CN116633996A - 网络连接优化方法、装置、设备及可读存储介质 - Google Patents
网络连接优化方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116633996A CN116633996A CN202310526039.6A CN202310526039A CN116633996A CN 116633996 A CN116633996 A CN 116633996A CN 202310526039 A CN202310526039 A CN 202310526039A CN 116633996 A CN116633996 A CN 116633996A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- receiving end
- packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 131
- 238000005457 optimization Methods 0.000 title claims abstract description 24
- 230000005540 biological transmission Effects 0.000 claims abstract description 106
- 230000006870 function Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 38
- 238000012790 confirmation Methods 0.000 claims description 15
- 239000012634 fragment Substances 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 34
- 239000004973 liquid crystal related substance Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种网络连接优化方法、装置、设备及可读存储介质,本申请可以利用目标网络协议构建可靠的网络连接关系,并在数据传输过程中出现数据丢失时,及时重传所丢失的部分数据,可以有效解决单台主机连接数问题,还可以解决目前常用的UDP协议的可靠性以及流量控制问题,同时还能提高数据传输速度,有效提高目前常用的UDP网络传输协议的可靠性以及流量控制性能,有效降低服务器的内存消耗。
Description
技术领域
本申请涉及网络连接技术领域,尤其涉及一种网络连接优化方法、装置、设备及可读存储介质。
背景技术
随着科学技术的发展,即时通信应用飞速发展,消息通信的功能日益丰富。目前消息通讯系统通常以TCP网络协议为主,但消息通讯保持TCP长连接时需要消耗大量内存,单台主机可以支持的TCP长连接的连接数目前存在限制,无法在减低内存消耗的同时提高单台主机可以支持的TCP长连接的连接数。如果直接使用UDP协议进行网络传输,又存在可靠性问题。
因此,如何解决单台主机的TCP连接可以支持的连接数有限的问题是目前亟待解决的技术难题。
发明内容
本申请旨在至少能解决上述的技术缺陷之一,有鉴于此,本申请提供了一种网络连接优化方法、装置、设备及可读存储介质,用于解决现有技术中单台主机的TCP连接的连接数有限的技术缺陷。
一种网络连接优化方法,包括:
响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;
在与所述数据接收端构建连接关系之后,向所述数据接收端发送第一目标数据包;
接收所述数据接收端发送的第一确认包,其中,所述第一确认包为对是否成功向所述数据接收端发送所述第一目标数据包的确认信息,所述第一目标数据包的确认信息为对已成功向所述数据接收端发送的数据打上确认号标签,对未成功发送至所述数据接收端的数据则不标记确认号标签;
依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;
若所述数据接收端所接收的第一目标数据包不完整,则向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
优选地,该方法还包括:
依据用户的网络连接需求,利用预设的目标网络协议向数据发送端发送第二网络连接指令,以与所述数据发送端构建网络连接关系;
在与所述数据发送端构建连接关系之后,向所述数据发送端发送请求所述数据发送端发送第二目标数据包的指令;
接收所述数据发送端发送的第二目标数据包;
判断所述数据发送端所发送的第二目标数据包是否完整;
若所述数据发送端所发送的第二目标数据包不完整,则向所述数据发送端发起重连请求,以请求所述数据发送端重新发送第二目标数据包,并返回执行所述接收所述数据发送端发送的第二目标数据包的操作,直至确认所述数据发送端所发送的第二目标数据包为完整的数据包。
优选地,所述预设的目标网络协议的创建过程,包括:
定位所述目标网络协议在计算机网络结构中的位置;
定义所述目标网络协议的头部信息,其中,所述目标网络协议的头部信息包括协议连接号、协议命令、协议分片、协议时间戳、协议序列号、协议窗口、协议确认号、协议长度、协议命令类型、协议应用场景以及协议数据;
基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议。
优选地,所述定位所述目标网络协议在计算机网络结构中的位置,包括:
确定网络结构中的原始网络协议的位置;
将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为所述目标网络协议在网络结构中的位置。
优选地,基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议,包括:
在在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,增加所述目标网络协议的头部信息以及所述目标网络协议对应的编码和解码功能所对应的信息;
在网络结构的协议层用户态空间四线增加所述目标网络协议的头部信息和解析所述目标网络协议的头部信息的相关信息。
优选地,所述向所述数据接收端发送第一目标数据包,包括:
调用所述目标网络协议,以调用目标发送接口函数;
利用所述目标发送接口函数,将需要发送的第一目标数据包进行编码,得到待发送的数据,其中,所发送到的第一目标数据包为按照序列号排序的数据;
将编码后所得到的待发送的数据加入到待发送队列;
更新关于待发送的数据的第一确认包;
将待发送队列中的待发送的数据以及更新后的第一确认包发送至所述数据接收端。
优选地,所述接收所述数据发送端发送的第二目标数据包,包括:
调用所述目标网络协议,以调用所述目标网络协议中的第二目标函数;
判断待传输的数据队列中是否有可被接收的数据;
若待传输的数据队列中存在可被接收的数据,则对所接收的第二目标数据包进行解码,得到对所述第二目标数据包解码后的用户数据,其中,所接收到的第二目标数据包为按照序列号排序的数据;
在对所述第二目标数据包进行解码之后,更新关于所述第二目标数据包的第二确认包,其中,所述第二确认包为对是否成功接收所述数据发送端发送的第二目标数据包的确认信息,所述第二目标数据包的确认信息为对已成功接收所述数据发送端发送的数据打上确认号标签,对未成功接收的数据则不标记确认号标签;
将所述第二确认包发送给所述数据发送端。
优选地,所述向所述数据接收端重新发送第一目标数据包,包括:
分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包;确定向所述数据接收端发送失败的数据;向所述数据接收端重新发送所述第一目标数据包中未成功发送至所述数据接收端的数据;
或,
分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包,确定向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,并确定所述数据接收端所能接收的最大序列数量,依据所述数据接收端所能接收的最大序列数量,以及向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,从未成功发送至所述数据接收端的数据中,抽取每次向所述数据接收端重新发送的数据,直至将所有未成功发送至所述数据接收端的数据全部重发至所述数据接收端。
优选地,该方法还包括:
若在向所述数据接收端发送所述第一目标数据包之后,在预设的时间段内未接收到所述数据接收端关于接收所述第一目标数据包对应的第一确认包,则向所述数据接收端重新发送完整的所述第一目标数据包;
若同时向所述数据接收端同时发送了至少一个第一目标数据包,则根据所述数据接收端发送的关于各个第一目标数据包的确认包,确定所丢失的第一目标数据包并立即向所述数据接收端发送所丢失的第一目标数据包。
优选地,所述数据发送端重新发送第二目标数据包,包括:
所述数据发送端将需要发送的数据加入到待发送队列中,并检测待发送队列对应的缓存空间是否有剩余空间;
若确定待发送队列对应的缓存空间有剩余空间,则所述数据发送端将待发送队列的数据加入到待发送队列对应的缓存空间中;
所述数据发送端依据所述第二确认包,删除已收到确认号的数据,得到第二待发送的数据;
将所述第二待发送的数据发送给用户端。
一种网络连接优化装置,包括:
响应单元,用于响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;
第一发送单元,用于在与所述数据接收端构建连接关系之后,向所述数据接收端发送第一目标数据包;
第一接收单元,用于接收所述数据接收端发送的第一确认包,其中,所述第一确认包为对是否成功向所述数据接收端发送所述第一目标数据包的确认信息,所述第一目标数据包的确认信息为对已成功向所述数据接收端发送的数据打上确认号标签,对未成功发送至所述数据接收端的数据则不标记确认号标签;
第一判断单元,用于依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;
第一重连单元,用于当所述第一判断单元的执行结果确定为所述数据接收端所接收的第一目标数据包不完整时,向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
一种网络连接优化设备,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,实现如前述介绍中任一项所述网络连接优化方法的步骤。
一种可读存储介质,所述可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器实现如前述介绍中任一项所述网络连接优化方法的步骤。
从以上介绍的技术方案可以看出,当需要与数据接收端进行数据传输时,本申请实施例提供的方法可以响应用户的网络连接需求;并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;其中,所述目标网络协议具备可靠的网络连接功能,因此,基于所述目标网络协议构建的网络连接关系来传输数据性能稳定且传输的数据可靠安全,在与所述数据接收端构建连接关系之后,可以通过所述目标网络协议向所述数据接收端发送第一目标数据包;为了确保所发送的第一目标数据被所述数据接收端完整地接收,在发送所述第一目标数据包之后,可以接收所述数据接收端发送的第一确认包,以便可以依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;若所述数据接收端所接收的第一目标数据包不完整,则说明需要重新向所述数据接收端继续发送未成功发送的数据,因此,在确定所述素数接收端所接收的第一目标数据包不完整时,可以进一步向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
由此可知,本申请实施例提供的方法可以利用目标网络协议构建可靠的网络连接关系,并在数据传输过程中出现数据丢失时,及时重传所丢失的部分数据,可以有效解决单台主机连接数问题,还可以解决目前常用的UDP协议的可靠性以及流量控制问题,同时还能提高数据传输速度,有效提高目前常用的UDP网络传输协议的可靠性以及流量控制性能,有效降低服务器的内存消耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种实现网络连接优化方法的流程图;
图2为本申请实施例提供的一种目标网络协议的位置效果示意图;
图3为本申请实施例提供的一种数据接收端和数据发送端之间的数据传输示意图;
图4为本申请实施例提供的一种数据发送端同时发生多个数据包的示意图;
图5为本申请实施例示例的一种网络连接优化装置结构示意图;
图6为本申请实施例公开的一种网络连接优化设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
鉴于目前大部分的网络连接优化方案难以适应复杂多变的业务需求,为此,本申请人研究了一种网络连接优化方案,该网络连接优化方法可以利用目标网络协议构建可靠的网络连接关系,并在数据传输过程中出现数据丢失时,及时重传所丢失的部分数据,可以有效解决单台主机连接数问题,还可以解决目前常用的UDP协议的可靠性以及流量控制问题,同时还能提高数据传输速度,有效提高目前常用的UDP网络传输协议的可靠性以及流量控制性能,有效降低服务器的内存消耗。
本申请实施例提供的方法可以用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请实施例提供一种网络连接优化方法,该方法可以应用于各种网络连接系统或数据传输系统中,亦可以应用在各种计算机终端或是智能终端中,其执行主体可以为计算机终端或是智能终端的处理器或服务器。
下面结合图1,介绍本申请实施例给出的网络连接优化方法的流程,如图1所示,该流程可以包括以下几个步骤:
步骤S101,响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系。
具体地,在实际应用过程中,网络传输数据时需要用到网络协议或传输协议。
通信协议或简称为传输协议(Communications Protocol)在网络传输过程中,是指在任何物理介质中允许两个或多个在传输系统中的终端之间传播信息的系统标准,也是指计算机通信或网上设备的共同语言。
通信协议定义了通信中的语法学,语义学和同步规则以及可能存在的错误检测与纠正。通信协议在硬件,软件或两者之间皆可实现。
通信协议或简称为传输协议(Communications Protocol)在电信中,是指在任何物理介质中允许两个或多个在传输系统中的终端之间传播信息的系统标准,也是指计算机通信或网上设备的共同语言。通信协议定义了通信中的语法学,语义学和同步规则以及可能存在的错误检测与纠正。通信协议在硬件,软件或两者之间皆可实现。
为了交换大量信息,通信系统使用通用格式(协议)。每条信息都有明确的意义使得预定位置给予响应,并独立实现回应指定的行为,通信协议须参与实体都同意才能生效。
为了达成一致,协议必须要有技术标准。编程语言在计算方面也应有相应标准,所以在这个方面可以用编程语言做类比:编程语言是为了模式化的计算而传输协议为了更畅通的交流。
多类别协议构建了单个传输的不同方面,包括同时进行的协议模块,和在软件上实现时的协议栈。
在公共交换电话网与网络技术融合的今天,形势驱使着通信标准进一步的合并收敛。
通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。
因此,当用户需要传输数据时,本申请实施例提供的方法可以响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系。
其中,
所述目标网络协议具备安全可靠且可控制流量的性能,同时还具备一定的灵活性。
因此,利用目标网络协议来构建的网络连接关系稳定且安全可靠,用目标网络协议所构建的网络连接关系来进行传输数据,可以确保数据在传输过程中,稳定且可靠。
其中,目标网络协议的创建过程,可以包括如下几个步骤:
(1)定位所述目标网络协议在计算机网络结构中的位置。
具体地,在实际应用过程中,计算机网络体系结构相当复杂,且具有一定的程序性和系统性,可以认为它是一个独立系统,具有一定的系统性、复杂性以及其他独特的特征,而计算机网络体系结构的一个重要特征就是过程性。任何过程都不是轻而易举的就能够做到过程性,特别是计算机网络体系结构这种具一定系统性、复杂性与抽象性的系统,有效完善计算机网络体系结构,可以有助于提高计算机网络体系结构的运行效率。
一般地,计算机网络体系结构可以分为几个层级,具体包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
其中,
物理层是网络体系结构规定通信设备的机械的、电气的、功能的和规程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE和DCE双方在各电路上的动作系列。
其中,在物理层,数据的单位称为比特(bit)。物理层的主要设备:中继器、集线器、适配器。
数据链路层可以在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在数据链路层,数据的单位称为帧(frame)。数据链路层主要设备:二层交换机、网桥
网络层在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层报头,其中含有逻辑地址信息--源站点和目的站点地址的网络地址。
如果在谈论一个IP地址,那么是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在网络层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、ARP、RARP、OSPF等。网络层主要设备:路由器
传输层的数据单元也称作处理信息的传输层(Transport layer)。但是,当涉及TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。传输层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。传输层为上层提供端到端的透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。
传输层协议的代表包括:TCP、UDP、SPX等。
会话层(Session layer)也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
表示层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩,加密和解密等工作都由表示层负责。例如图像格式的显示,就是由位于表示层的协议来支持。
应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
因此,当需要创建目标网络协议时,可以定位目标网络协议在计算机网络结构中的位置,以便可以基于目标网络协议在计算机网络结构中的位置来编辑目标网络协议。
(2)定义所述目标网络协议的头部信息,其中,所述目标网络协议的头部信息包括协议连接号、协议命令、协议分片、协议时间戳、协议序列号、协议窗口、协议确认号、协议长度、协议命令类型、协议应用场景以及协议数据。
具体地,一般来说,网络协议具有头部结构。在确定目标网络协议的位置之后,可以进一步定义目标网络协议的头部信息。
其中,目标网络协议的头部信息可以包括协议连接号、协议命令、协议分片、协议时间戳、协议序列号、协议窗口、协议确认号、协议长度、协议命令类型、协议应用场景以及协议数据。
在实际应用过程中,由于常用的UDP网络协议是无连接的,则导致无法表示传输中的消息来源于哪个端,因此,为了追溯传输信道中的消息来演,可以将目标网络协议的协议连接号设置为可以用于表示消息来自于哪个客户端,可以有效替代TCP连接。
定义目标网络协议的协议命令可以为定义协议使用命令,目前目标网络协议可以支持的命令有ACK确认命令,数据发送命令,窗口大小查询命令以及窗口大小告知命令。
在实际应用过程中,用户数据可能会分为多个包发送,因此,可以定义协议分片来表示多个数据包发送的场景。
协议时间戳可以被用来记录消息发送时间;
协议序列号可以表示当前消息的序列号,可以用于消息重传、ACK等;
协议窗口可以用于控制一次发送多少数据,发送时数据不能超过接收方当前空窗的最大值;
协议确认号可以用来实现UNA响应模式。
协议长度可以为目标网络协议的头部信息长度加目标网络协议的数据长度;
协议命令类型可以定义为协议使用命令类型,目前主要有以下几种协议命令类型:ACK相关命令类型,窗口相关命令类型以及数据发送相关命令类型。
协议应用场景可以目标网络协议的应用场景,目前目标网络协议主要有以下几种应用场景:文件传输、流媒体传输、即时消息传输以及后期扩展其他应用场景如游戏、物联网等;
协议数据表示需要通过目标网络协议进行传输的数据。
(3)基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议。
具体地,由上述介绍可知,本申请实施例提供的方法可以确定目标网络协议的位置及其头部结构的相关信息,进一步地,在确定目标网络协议的位置及其头部结构的相关信息,可以进一步编辑目标网络协议,以便可以使得目标网络协议具备完善的网络传输功能。
步骤S102,在与所述数据接收端构建连接关系之后,向所述数据接收端发送第一目标数据包。
具体地,由上述介绍可知,本申请实施例提供的方法可以与数据接收端构建网络连接关系。
利用目标网络协议构建的网络连接关系稳定且安全可靠,可以利用所构建好的网络连接关系来进行数据传输,因此,在与数据接收端构建连接关系之后,可以进一步向数据接收端发送第一目标数据包。
其中,
第一目标数据包为根据用户的需求需要发送给数据接收端的数据包。
步骤S103,接收所述数据接收端发送的第一确认包。
具体地,在实际应用过程中,为了确保每次消息传输或数据传输的安全性和稳定性。因此,每次进行数据传输或者消息传输时,都会进行再次确认,以便可以在数据传输出错或者消息传输出现故障时及时进行重传。
因此,在向数据接收端发送第一目标数据包之后,可以接收数据接收端发送的第一确认包,以便可以通过第一确认包来确定是否成功将第一目标数据包发送至数据接收端。
步骤S104,依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整。
具体地,由上述介绍可知,本申请实施例提供的方法可以在向数据接收端发送第一目标数据包之后,进一步接收数据接收端发送的第一确认包。
其中,
第一确认包可以包括数据接收端对于接收第一目标数据包是否成功的反馈信息。
若通过分词第一确认包,确定数据接收端所接收的第一目标数据包不完整,则可以执行步骤S105。
步骤S105,向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
具体地,由上述介绍可知,本申请实施例提供的方法可以在接收并依据所接收的第一确认包,判断数据接收端所接收的第一目标数据包是否完整。若通过分词第一确认包,确定数据接收端所接收的第一目标数据包不完整,则说明在向数据接收端发送第一目标数据包过程中,可能出现数据传输中断或者数据丢失的情况,导致数据接收端所接收到的数据不完整。
因此,
当确定数据接收端所接收的第一目标数据包不完整时,可以进一步向数据接收端发起重连请求,以请求向数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认数据接收端所接收的目标数据包为完整的数据包。
从上述介绍的技术方案可以看出,本申请当需要进行数据传输时,本申请实施例提供的方法可以利用目标网络协议构建可靠的网络连接关系,并在数据传输过程中出现数据丢失时,及时重传所丢失的部分数据,可以有效解决单台主机连接数问题,还可以解决目前常用的UDP协议的可靠性以及流量控制问题,同时还能提高数据传输速度,有效提高目前常用的UDP网络传输协议的可靠性以及流量控制性能,有效降低服务器的内存消耗。
在实际应用过程中,本申请实施例提供的方法除了可以利用目标网络协议来发送数据,当需要接收数据或消息时,本申请实施例提供的方法还可以利用目标网络协议来构建可靠的网络连接关系,并实现安全可靠的数据接收,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S201,依据用户的网络连接需求,利用预设的目标网络协议向数据发送端发送第二网络连接指令,以与所述数据发送端构建网络连接关系。
具体地,由上述介绍可知,目标网络协议具备可靠且完全的传输性能。
因此,在实际应用过程中,当需要接收数据或消息时,本申请实施例提供的方法可以依据用户的网络连接需求,利用预设的目标网络协议向数据发送端发送第二网络连接指令,以与数据发送端构建网络连接关系,以便可以利用所构建的网络连接关系来进行数据传输。
步骤S202,在与所述数据发送端构建连接关系之后,向所述数据发送端发送请求所述数据发送端发送第二目标数据包的指令。
具体地,由上述介绍可知,当需要接收数据或者消息时,本申请实施例提供的方法可以利用预设的目标网络协议向数据发送端发送第二网络连接指令,以与数据发送端构建网络连接关系。
由上述分析可知,利用目标网络协议构建的网络联系关系安全可靠,利用其来接收数据,可以保证接收数据完整且安全可靠。
因此,在与数据发送端构建连接关系之后,可以向数据发送端发送请求数据发送端发送第二目标数据包的指令,以便可以接收数据发送端根据该指令来发送第二目标数据包。
步骤S203,接收所述数据发送端发送的第二目标数据包。
具体地,由上述介绍可知,本申请实施例提供的方法可以在与数据发送端构建连接关系之后,可以向数据发送端发送请求数据发送端发送第二目标数据包的指令。
在实际应用过程中,当数据接收端接收了请求发送第二目标数据包的指令之后,可以确定需要发送的数据包,并将用户端所需要的第二目标数据包通过利用目标网络协议发送的第二目标数据包发送给用户端。
因此,在数据发送端发送了第二目标数据包之后,本申请实施例提供的方法可以接收数据发送端发送的第二目标数据包。
步骤S204,判断所述数据发送端所发送的第二目标数据包是否完整。
具体地,由上述介绍可知,本申请实施例提供的方法可以接收数据发送端发送的第二目标数据包。在实际应用过程中,为了确保所接收到的第二目标数据包是完整的,可以进一步判断数据发送端所发送的第二目标数据包是否完整,以便可以在确定数据发送端所发送的第二目标数据包不完整时,及时请求数据发送端及时进行重发。
若所述数据发送端所发送的第二目标数据包不完整,则可以执行步骤S205。
步骤S205,向所述数据发送端发起重连请求,以请求所述数据发送端重新发送第二目标数据包,并返回执行所述接收所述数据发送端发送的第二目标数据包的操作,直至确认所述数据发送端所发送的第二目标数据包为完整的数据包。
具体地,由上述介绍可知,本申请实施例提供的方法可以在确定数据发送端所发送的第二目标数据包不完整时,及时向数据发送端进行反馈。
例如,可以在确定数据发送端所发送的第二目标数据包不完整时,可以进一步向数据发送端发起重连请求,以请求数据发送端重新发送第二目标数据包。
在请求数据发送端重新发送第二目标数据包之后,可以返回执行接收数据发送端发送的第二目标数据包的操作,直至确认数据发送端所发送的第二目标数据包为完整的数据包。
从上述介绍的技术方案可以看出,本申请当需要进行数据传输时,本申请实施例提供的方法可以利用目标网络协议构建可靠的网络连接关系,并在数据传输过程中出现数据丢失时,及时请求数据发送端重传所丢失的部分数据,可以有效解决单台主机连接数问题,还可以解决目前常用的UDP协议的可靠性以及流量控制问题,同时还能提高数据传输速度,有效提高目前常用的UDP网络传输协议的可靠性以及流量控制性能,有效降低服务器的内存消耗。
由上述介绍可知,本申请实施例提供的方法可以定位所述目标网络协议在计算机网络结构中的位置,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S301,确定网络结构中的原始网络协议的位置。
具体地,由上述介绍可知,一般的网络结构都配置了原始的网络协议,因此,当需要确定目标网络协议的位置时,可以参考网络结构中原始的网络协议位置来设置。
因此,为了确定目标网络协议在网络结构中的位置,可以先确定网络结构中的原始网络协议的位置。
例如,常用的网络结构的网络传输协议为UDP协议,可以确认UDP协议在一般的网络结构中的具体的位置,以便可以参考网络结构中的UDP协议的位置来设置目标网络协议的位置。
步骤S302,将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为所述目标网络协议在网络结构中的位置。
具体地,由上述介绍可知,本申请实施例提供的方法可以确定网络结构中的原始网络协议的位置。
在实际应用过程中,可以参考网络结构中的原始网络协议的位置来设置目标网络协议的位置。
例如,可以将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为目标网络协议在网络结构中的位置。
例如,图2示例了一种目标网络协议的位置效果示意图,如图2所示,
可以将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为目标网络协议在网络结构中的位置。
从上述介绍的技术方案可以看出,在实际应用过程中,当需要创建目标网络协议时,本申请实施例提供的方法可以将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为目标网络协议在网络结构中的位置,以便可以根据标网络协议在网络数据包中的位置来创建目标网络协议。
由上述介绍可知,本申请实施例提供的方法可以基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S401,在在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,增加所述目标网络协议的头部信息以及所述目标网络协议对应的编码和解码功能所对应的信息。
具体地,由上述介绍可知,本申请实施例提供的方法可以将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为目标网络协议在网络结构中的位置。
在实际应用过程中,当确定了目标网络协议的位置之后,可以进一步在目标网络协议在计算机网络结构中的位置中补充关于目标网络协议的相关信息,以便可以使得目标网络协议具备完整的传输功能。
因此,在将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为目标网络协议在网络结构中的位置之后,可以在在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,增加目标网络协议的头部信息以及目标网络协议对应的编码和解码功能所对应的信息,以便可以使得目标网络协议具备解码和编码的功能。
步骤S401,在网络结构的协议层用户态空间四线增加所述目标网络协议的头部信息和解析所述目标网络协议的头部信息的相关信息。
具体地,由上述介绍可知,本申请实施例提供的方法可以在目标网络协议在计算机网络结构中的位置,增加目标网络协议的头部信息以及目标网络协议对应的编码和解码功能所对应的信息,以使得目标网络协议具备解码和编码的功能。
由上述介绍可知,本申请实施例提供的方法可以定义目标网络协议的头部信息。
进一步地,为了使得目标网络具备更完善的网络传输功能,可以进一步在网络数据包的协议层用户态空间四线增加目标网络协议的头部信息和解析所述目标网络协议的头部信息的相关信息。
从上述介绍的技术方案可以看出,当确定目标网络协议在计算机网络协议中的位置时,本申请实施例提供的方法可以基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议,以便可以使得目标网络协议具备更加完整、安全可靠的网络传输功能。
由上述介绍可知,本申请实施例提供的方法可以向所述数据接收端发送第一目标数据包,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S501,调用所述目标网络协议,以调用目标发送接口函数。
具体地,由上述介绍可知,本申请实施例提供的方法可以利用目标网络协议构建可靠的网络连接关系,以用来进行数据传输。
因此,当需要向数据接收端发送第一目标数据包时,可以调用目标网络协议,以调用目标发送接口函数,以便可以利用目标发送接口函数来对接数据发送接口,以实现向数据接收端发送数据。
步骤S502,利用所述目标发送接口函数,将需要发送的第一目标数据包进行编码,得到待发送的数据。
具体地,由上述介绍可知,本申请实施例提供的方可以调用目标发送接口函数。
在实际应用过程中,目标发送接口函数可以用来对接目标发送接口。
进一步地,目标网络协议具有解码和编码的功能。
因此,在调用目标发送接口函数之后,可以利用所述目标发送接口函数,将需要发送的第一目标数据包进行编码,得到待发送的数据,以便可以利用目标发送接口数据来发送待发送的数据。
其中,
所发送到的第一目标数据包可以为按照序列号排序的数据,以确保数据接收端接收到的消息或数据是有序可靠的。
步骤S503,将编码后所得到的待发送的数据加入到待发送队列。
具体地,由上述介绍可知,本申请实施例提供的方法可以在将第一目标数据包发送给数据接收端之前,将第一目标数据包进行编码,得到待发送的数据。
在得到待发送的数据之后,可以进一步将编码后所得到的待发送的数据加入到待发送队列,以便将待发送的数据发送给数据接收端。
步骤S504,更新关于待发送的数据的第一确认包。
具体地,在实际应用过程中,为了确保消息或数据传输的安全性,数据发送端或数据接收端每发送一条消息或数据,必须接收到对应的确认消息,才开始发送第二条消息或数据。
因此,当将待发送的数据发送个数据接收端之后,为了确认所发送的数据是否发送成功,可以更新关于待发送的数据的第一确认包,以便可以向数据接收端反馈已经发送待发送的数据。
其中,
所述第一确认包可以为对是否成功向所述数据接收端发送所述第一目标数据包的确认信息。
所述第一目标数据包的确认信息可以为对已成功向所述数据接收端发送的数据打上确认号标签,对未成功发送至所述数据接收端的数据则不标记确认号标签,以便数据接收端可以根据所述第一确认包中的确认号标签来确认哪些数据是已经成功接收,哪些数据是接收失败,需要重传的。
步骤S505,将待发送队列中的待发送的数据以及更新后的第一确认包发送至所述数据接收端。
具体地,由上述介绍可知,本申请实施例提供的方法可以将待发送的数据发送至待发送队列中,并及时更新关于待发送的数据的第一确认包。
进一步地,在将待发送的数据发送到待发送队列以及更新第一确认包之后,可以将将待发送队列中的待发送的数据以及更新后的第一确认包发送至所述数据接收端,以完成向数据接收端发送第一目标数据包的目的。
从上述介绍的技术方案可以看出,本申请当需要进行数据传输时,本申请实施例提供的方法可以调用所述目标网络协议,以调用目标发送接口函数将待发送的数据发送到待发送队列以及更新第一确认包之后,可以将将待发送队列中的待发送的数据以及更新后的第一确认包发送至所述数据接收端,以完成向数据接收端发送第一目标数据包的目的。
由上述介绍可知,本申请实施例提供的方法可以接收所述数据发送端发送的第二目标数据包,包括:
步骤S601,调用所述目标网络协议,以调用所述目标网络协议中的第二目标函数。
具体地,由上述介绍可知,本申请实施例提供的方法可以利用目标网络协议构建可靠的网络连接关系,以用来进行数据传输。
因此,当需要接收数据发送端发送第二目标数据包时,可以调用目标网络协议,以调用目标网络协议中的第二目标函数,以便可以利用目标网络协议中的第二目标函数来对接数据传输接口,以实现接收数据发送端发送数据。
其中,
第二目标函数可以为计算机网络结构中的应用层的input函数。
步骤S602,判断待传输的数据队列中是否有可被接收的数据。
具体地,由上述介绍可知,本申请实施例提供的方法可以调用所述目标网络协议,以调用目标网络协议中的第二目标函数来进行数据传输。
因此,在调用目标网络协议中的第二目标函数之后,可以进一步判断待传输的数据队列中是否有可被接收的数据。
若待传输的数据队列中存在可被接收的数据,则可以执行步骤S603。
步骤S603,对所接收的第二目标数据包进行解码,得到对所述第二目标数据包解码后的用户数据。
具体地,由上述介绍可知,本申请实施例提供的方法可以调用第二目标函数之后,可以进一步判断待传输的数据队列中是否有可被接收的数据。
若待传输的数据队列中存在可被接收的数据,则说明数据发送端已经将数据发送到待传输的数据对应中,因此,可以接收待传输的数据队列中的可被接收的数据。
因此,当确定待传输的数据队列中存在可被接收的数据,则对所接收的第二目标数据包进行解码,得到对所述第二目标数据包解码后的用户数据。
其中,
所接收到的第二目标数据包为按照序列号排序的数据,以确保所接收的数据为有序可靠的数据。
步骤S604,在对所述第二目标数据包进行解码之后,更新关于所述第二目标数据包的第二确认包。
具体地,在实际应用过程中,为了确保消息或数据传输的安全性,数据发送端或数据接收端每发送一条消息或数据,必须接收到对应的确认消息,才开始发送第二条消息或数据。
因此,当对所接收的第二目标数据包进行解码,得到对所述第二目标数据包解码后的用户数据之后,为了确认所发送的数据是否发送成功,可以在对第二目标数据包进行解码之后,更新关于第二目标数据包的第二确认包。
其中,
所述第二确认包可以为对是否成功接收所述数据发送端发送的第二目标数据包的确认信息。
所述第二目标数据包的确认信息可以为对已成功接收所述数据发送端发送的数据打上确认号标签,对未成功接收的数据则不标记确认号标签。
步骤S605,将所述第二确认包发送给所述数据发送端。
具体地,由上述介绍可知,在实际应用过程中,为了确保消息或数据传输的安全性,数据发送端或数据接收端每发送一条消息或数据,必须接收到对应的确认消息,才开始发送第二条消息或数据。
因此,当对所述第二目标数据包进行解码之后,更新关于所述第二目标数据包的第二确认包之后,可以进一步将第二确认包发送给数据发送端,以便可以向数据发送端反馈接收第二目标数据包的情况。
从上述介绍的技术方案可以看出,本申请当需要进行数据传输时,本申请实施例提供的方法可以调用所述目标网络协议,以调用所述目标网络协议中的第二目标函数接收数据发送端发送的数据,并在对第二目标数据包进行解码之后,更新关于第二目标数据包的第二确认包并将所述第二确认包发送给所述数据发送端,以便可以向数据发送端反馈接收第二目标数据包的情况。
由上述介绍可知,本申请实施例提供的方法可以向所述数据接收端重新发送第一目标数据包,接下来介绍该过程,该过程可以包括如下几个方式:
第一种,
步骤S701,分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包。
具体地,由上述介绍可知,在实际应用过程中,为了确保消息或数据传输的安全性,数据发送端或数据接收端每发送一条消息或数据,必须接收到对应的确认消息,才开始发送第二条消息或数据。
因此,当接收数据接收端所发送的与接收第一目标数据包对应的第一确认包之后,可以进一步分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包,以便可以了解数据接收端接收所发送的第一目标数据包的具体情况。
步骤S702,确定向所述数据接收端发送失败的数据并向所述数据接收端重新发送所述第一目标数据包中未成功发送至所述数据接收端的数据。
具体地,由上述介绍可知,本申请实施例提供的方法可以分析第一确认包来了解数据接收端接收第一目标数据包的具体情况。
因此,在分析第一确认包之后,可以进一步根据分析第一确认包的情况来确定向数据接收端发送失败的数据,并向数据接收端重新发送第一目标数据包中未成功发送至数据接收端的数据。
第二种,
步骤S801,分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包。
具体地,由上述介绍可知,在实际应用过程中,为了确保消息或数据传输的安全性,数据发送端或数据接收端每发送一条消息或数据,必须接收到对应的确认消息,才开始发送第二条消息或数据。
因此,当接收数据接收端所发送的与接收第一目标数据包对应的第一确认包之后,可以进一步分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包,以便可以了解数据接收端接收所发送的第一目标数据包的具体情况。
步骤S802,确定向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,并确定所述数据接收端所能接收的最大序列数量。
具体地,由上述介绍可知,本申请实施例提供的方法可以分析第一确认包来了解数据接收端接收第一目标数据包的具体情况。
在实际应用过程中,目标网络协议中包括协议序列号、协议确认号。
因此,第一确认包中可以包括所发送的数据的确认号和序列号。
因此,在分析第一确认包之后,可以确定向数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,以便可以在重传数据时,可以根据向数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号来确定重选策略。
其中,
不同的数据接收端所能接收的最大序列数量。
因此,在确定向数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号的同时还可以确定所述数据接收端所能接收的最大序列数量,以便可以确定对未发送成功的数据的重选策略。
步骤S803,依据所述数据接收端所能接收的最大序列数量,以及向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,从未成功发送至所述数据接收端的数据中,抽取每次向所述数据接收端重新发送的数据,直至将所有未成功发送至所述数据接收端的数据全部重发至所述数据接收端。
具体地,由上述介绍可知,本申请实施例提供的方法可以在确定向数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号的同时还可以确定所述数据接收端所能接收的最大序列数量。
在实际应用过程中,若一次性将未发送成功的数据重发给数据接收端,可能会引起链路拥堵或者占用过多的流量。
因此,在在确定向数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号的同时还可以确定所述数据接收端所能接收的最大序列数量之后,可以进一步依据所述数据接收端所能接收的最大序列数量,以及向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,从未成功发送至所述数据接收端的数据中,抽取每次向所述数据接收端重新发送的数据,直至将所有未成功发送至所述数据接收端的数据全部重发至所述数据接收端。
例如,
为了避免链路拥塞,目标网络协议可以限制待发送队列的缓存空间所需要发送的序列数需小于滑动窗口数。
例如,
图3示例了一种数据接收端和数据发送端之间的数据传输示意图。
例如,
待发送队列的缓存空间所能发送的序列数为5,当前待发送队列的缓存空间中已经有3个序列未发送,则最多只能再从待发送队列中提取2个消息或数据加入待发送队列的缓存空间中,减少每次发送的消息或数据的数量,从而达到流量控制的目的,避免造成传输链路的拥堵,降低数据或消息的传输效率。
从上述介绍的技术方案可以看出,本申请当需要进行数据传输时,本申请实施例提供的方法可以在在确定向数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号的同时还可以确定所述数据接收端所能接收的最大序列数量之后,可以进一步依据所述数据接收端所能接收的最大序列数量,以及向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,从未成功发送至所述数据接收端的数据中,抽取每次向所述数据接收端重新发送的数据,直至将所有未成功发送至所述数据接收端的数据全部重发至所述数据接收端,以便可以达到流量控制的目的,避免造成传输链路的拥堵,降低数据或消息的传输效率。
在实际应用过程中,本申请实施例提供方法还可以根据不同的应用场景来确定重传数据的策略,接下来介绍该过程,该过程可以包括如下两种情况:
第一种,
若在向所述数据接收端发送所述第一目标数据包之后,在预设的时间段内未接收到所述数据接收端关于接收所述第一目标数据包对应的第一确认包,则向所述数据接收端重新发送完整的所述第一目标数据包。
具体地,在实际应用过程中,若突然出现网络故障或设备故障,都可能会导致数据传输失败。
因此,若一定要在等到数据接收端发送的确认包再进行重传,可能会耽误较多的时间。降低数据传输效率。
因此,在实际应用过程中,可以在向数据接收端发送第一目标数据包之后,在预设的时间段内未接收到数据接收端关于接收所述第一目标数据包对应的第一确认包,则向数据接收端重新发送完整的所述第一目标数据包。
其中,
预设的时间段可以参考实际应用需要来设置,例如可以将预设的时间段设置为1分钟。
第二种,
若同时向所述数据接收端同时发送了至少一个第一目标数据包,则根据所述数据接收端发送的关于各个第一目标数据包的确认包,确定所丢失的第一目标数据包并立即向所述数据接收端发送所丢失的第一目标数据包。
具体地,在实际应用过程中,为了提高数据传输的效率,本申请实施例提供的方法可以支持连续发送多组消息,而不必等待收到对应的确认消息,此机制需要与拥塞控制共同启用,否则容易造成网络拥塞。
例如,
图4示例了一种数据发送端同时发生多个数据包的示意图。
因此,若同时向数据接收端同时发送了至少一个第一目标数据包,则可以根据数据接收端发送的关于各个第一目标数据包的确认包,确定所丢失的第一目标数据包并立即向所述数据接收端发送所丢失的第一目标数据包。
例如,
当数据发送端发送了1号、2号、3号、4号、5号几个数据包,但是仅收到远端反馈的1号、3号、4号、5号数据包对应的ACK包,当收到3号数据包对应的3号ACK包时,本申请实施例提供的目标网络协议可以确认2号数据包被跳过1次,当收到4号数据包对应的4号ACK包时,可以确认2号数据包被跳过2次,此时可以认为2号数据包丢失,则不用等超时才重传2号数据包,可以在确定2号数据包丢失时便直接重传2号数据包,由此可以大大改善了丢包时的传输速度。
从上述介绍的技术方案可以看出,本申请当需要进行数据传输时,本申请实施例提供的方法可以根据不同的应用场景来确定重传数据的策略,可以有效提高和改善数据传输的速度和效率。
由上述介绍可知,数据发送端可以重新发送第二目标数据包,接下来介绍该过程,该过程可以包括如下几个步骤:
步骤S901,所述数据发送端将需要发送的数据加入到待发送队列中,并检测待发送队列对应的缓存空间是否有剩余空间。
具体地,由上述介绍可知,当确定所接收的数据不完整时,本申请实施例提供的方法可以请求数据发送端重新发送未成功接收的数据。
因此,在确定数据发送端所发送的数据不完整时,数据发送端可以将需要发送的数据加入到待发送队列中,并进一步检测待发送队列对应的缓存空间是否有剩余空间,若确定待发送队列对应的缓存空间有剩余空间,则可以执行步骤S902。
步骤S902,所述数据发送端将待发送队列的数据加入到待发送队列对应的缓存空间中。
具体地,由上述介绍可知,本申请实施例提供的方法可以请求数据发送端重传未发送成功的数据。
若数据发送端确定待发送队列对应的缓存空间有剩余空间,则可以说明还可以继续往待发送队列发待发送的数据。
因此,当数据发送端确定待发送队列对应的缓存空间有剩余空间时,数据发送端可以进一步将待发送队列的数据加入到待发送队列对应的缓存空间中,以便可以将未成功发送的数据继续进行重传。
步骤S903,所述数据发送端依据所述第二确认包,删除已收到确认号的数据,得到第二待发送的数据。
具体地,由上述介绍可知,当数据发送端确定待发送队列对应的缓存空间有剩余空间时,数据发送端还可以进一步将待发送队列的数据加入到待发送队列对应的缓存空间中,进一步地,数据发送端可以依据第二确认包,删除已收到确认号的数据,得到第二待发送的数据,以确定哪些数据是需要重新发送的。
步骤S904,将所述第二待发送的数据发送给用户端。
具体地,由上述介绍可知,当数据发送端确定待发送队列对应的缓存空间还有剩余空间时,数据发送端还可以确定需要重新发送的数据。进一步地,当数据发送端确定需要重新发送的数据之后,数据发送端可以进一步将第二待发送的数据发送给用户端。
从上述介绍的技术方案可以看出,当向数据发送端反馈接收数据不完整时,本申请实施例提供的方法可以请求数据发送端重新发送数据。其中,数据发送端也可以根据不同的应用场景采取不同的重传策略,以提高数据传输的效率和数据,降低流量的损耗以及提高数据传输的稳定性。
下面对本申请实施例提供的网络连接优化装置进行描述,下文描述的网络连接优化装置与上文描述的网络连接优化方法可相互对应参照。
参见图5,图5为本申请实施例公开的一种网络连接优化装置结构示意图。
如图5所示,该网络连接优化装置可以包括:
响应单元101,用于响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;
第一发送单元102,用于在与所述数据接收端构建连接关系之后,向所述数据接收端发送第一目标数据包;
第一接收单元103,用于接收所述数据接收端发送的第一确认包;
第一判断单元104,用于依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;
第一重连单元105,用于当所述第一判断单元的执行结果确定为所述数据接收端所接收的第一目标数据包不完整时,向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
从以上介绍的技术方案可以看出,当需要与数据接收端进行数据传输时,本申请实施例提供的装置可以响应用户的网络连接需求;并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;其中,所述目标网络协议具备可靠的网络连接功能,因此,基于所述目标网络协议构建的网络连接关系来传输数据性能稳定且传输的数据可靠安全,在与所述数据接收端构建连接关系之后,可以通过所述目标网络协议向所述数据接收端发送第一目标数据包;为了确保所发送的第一目标数据被所述数据接收端完整地接收,在发送所述第一目标数据包之后,可以接收所述数据接收端发送的第一确认包,以便可以依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;若所述数据接收端所接收的第一目标数据包不完整,则说明需要重新向所述数据接收端继续发送未成功发送的数据,因此,在确定所述素数接收端所接收的第一目标数据包不完整时,可以进一步向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
由此可知,本申请实施例提供的装置可以利用目标网络协议构建可靠的网络连接关系,并在数据传输过程中出现数据丢失时,及时重传所丢失的部分数据,可以有效解决单台主机连接数问题,还可以解决目前常用的UDP协议的可靠性以及流量控制问题,同时还能提高数据传输速度,有效提高目前常用的UDP网络传输协议的可靠性以及流量控制性能,有效降低服务器的内存消耗。
其中,上述网络连接优化装置所包含的各个单元的具体处理流程,可以参照前文网络连接优化方法部分相关介绍,此处不再赘述。
本申请实施例提供的网络连接优化装置可应用于网络连接优化设备,如终端:手机、电脑等。可选的,图6示出了网络连接优化设备的硬件结构框图,参照图6,网络连接优化设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现前述终端网络连接优化方案中的各个处理流程。
本申请实施例还提供一种可读存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:实现前述终端在网络连接优化方案中的各个处理流程。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。各个实施例之间可以相互组合。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种网络连接优化方法,其特征在于,包括:
响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;
在与所述数据接收端构建连接关系之后,向所述数据接收端发送第一目标数据包;
接收所述数据接收端发送的第一确认包,其中,所述第一确认包为对是否成功向所述数据接收端发送所述第一目标数据包的确认信息,所述第一目标数据包的确认信息为对已成功向所述数据接收端发送的数据打上确认号标签,对未成功发送至所述数据接收端的数据则不标记确认号标签;
依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;
若所述数据接收端所接收的第一目标数据包不完整,则向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
依据用户的网络连接需求,利用预设的目标网络协议向数据发送端发送第二网络连接指令,以与所述数据发送端构建网络连接关系;
在与所述数据发送端构建连接关系之后,向所述数据发送端发送请求所述数据发送端发送第二目标数据包的指令;
接收所述数据发送端发送的第二目标数据包;
判断所述数据发送端所发送的第二目标数据包是否完整;
若所述数据发送端所发送的第二目标数据包不完整,则向所述数据发送端发起重连请求,以请求所述数据发送端重新发送第二目标数据包,并返回执行所述接收所述数据发送端发送的第二目标数据包的操作,直至确认所述数据发送端所发送的第二目标数据包为完整的数据包。
3.根据权利要求1所述的方法,其特征在于,所述预设的目标网络协议的创建过程,包括:
定位所述目标网络协议在计算机网络结构中的位置;
定义所述目标网络协议的头部信息,其中,所述目标网络协议的头部信息包括协议连接号、协议命令、协议分片、协议时间戳、协议序列号、协议窗口、协议确认号、协议长度、协议命令类型、协议应用场景以及协议数据;
基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议。
4.根据权利要求3所述的方法,其特征在于,所述定位所述目标网络协议在计算机网络结构中的位置,包括:
确定网络结构中的原始网络协议的位置;
将在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,确定为所述目标网络协议在网络结构中的位置。
5.根据权利要求3所述的方法,其特征在于,基于所述目标网络协议的位置及其头部信息,编辑所述目标网络协议,包括:
在在网络数据包中的原始网络协议的头部位置之后的与网络数据包中的网络协议的头部位置相邻的位置,增加所述目标网络协议的头部信息以及所述目标网络协议对应的编码和解码功能所对应的信息;
在网络结构的协议层用户态空间四线增加所述目标网络协议的头部信息和解析所述目标网络协议的头部信息的相关信息。
6.根据权利要求1所述的方法,其特征在于,所述向所述数据接收端发送第一目标数据包,包括:
调用所述目标网络协议,以调用目标发送接口函数;
利用所述目标发送接口函数,将需要发送的第一目标数据包进行编码,得到待发送的数据,其中,所发送到的第一目标数据包为按照序列号排序的数据;
将编码后所得到的待发送的数据加入到待发送队列;
更新关于待发送的数据的第一确认包,其中,所述第一确认包为对是否成功向所述数据接收端发送所述第一目标数据包的确认信息,所述第一目标数据包的确认信息为对已成功向所述数据接收端发送的数据打上确认号标签,对未成功发送至所述数据接收端的数据则不标记确认号标签;
将待发送队列中的待发送的数据以及更新后的第一确认包发送至所述数据接收端。
7.根据权利要求2所述的方法,其特征在于,所述接收所述数据发送端发送的第二目标数据包,包括:
调用所述目标网络协议,以调用所述目标网络协议中的第二目标函数;
判断待传输的数据队列中是否有可被接收的数据;
若待传输的数据队列中存在可被接收的数据,则对所接收的第二目标数据包进行解码,得到对所述第二目标数据包解码后的用户数据,其中,所接收到的第二目标数据包为按照序列号排序的数据;
在对所述第二目标数据包进行解码之后,更新关于所述第二目标数据包的第二确认包,其中,所述第二确认包为对是否成功接收所述数据发送端发送的第二目标数据包的确认信息,所述第二目标数据包的确认信息为对已成功接收所述数据发送端发送的数据打上确认号标签,对未成功接收的数据则不标记确认号标签;
将所述第二确认包发送给所述数据发送端。
8.根据权利要求6所述的方法,其特征在于,所述向所述数据接收端重新发送第一目标数据包,包括:
分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包;确定向所述数据接收端发送失败的数据;向所述数据接收端重新发送所述第一目标数据包中未成功发送至所述数据接收端的数据;
或,
分析所述数据接收端发送的与接收所述第一目标数据包对应的第一确认包,确定向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,并确定所述数据接收端所能接收的最大序列数量,依据所述数据接收端所能接收的最大序列数量,以及向所述数据接收端发送失败的数据中未被确认的数据的确认号中最小序列号或未成功发送的数据中序列号最小的序列号,从未成功发送至所述数据接收端的数据中,抽取每次向所述数据接收端重新发送的数据,直至将所有未成功发送至所述数据接收端的数据全部重发至所述数据接收端。
9.根据权利要求1所述的方法,其特征在于,该方法还包括:
若在向所述数据接收端发送所述第一目标数据包之后,在预设的时间段内未接收到所述数据接收端关于接收所述第一目标数据包对应的第一确认包,则向所述数据接收端重新发送完整的所述第一目标数据包;
若同时向所述数据接收端同时发送了至少一个第一目标数据包,则根据所述数据接收端发送的关于各个第一目标数据包的确认包,确定所丢失的第一目标数据包并立即向所述数据接收端发送所丢失的第一目标数据包。
10.根据权利要求7所述的方法,其特征在于,所述数据发送端重新发送第二目标数据包,包括:
所述数据发送端将需要发送的数据加入到待发送队列中,并检测待发送队列对应的缓存空间是否有剩余空间;
若确定待发送队列对应的缓存空间有剩余空间,则所述数据发送端将待发送队列的数据加入到待发送队列对应的缓存空间中;
所述数据发送端依据所述第二确认包,删除已收到确认号的数据,得到第二待发送的数据;
将所述第二待发送的数据发送给用户端。
11.一种网络连接优化装置,其特征在于,包括:
响应单元,用于响应用户的网络连接需求,并依据用户的网络连接需求,利用预设的目标网络协议向数据接收端发送第一网络连接指令,以与所述数据接收端构建网络连接关系;
第一发送单元,用于在与所述数据接收端构建连接关系之后,向所述数据接收端发送第一目标数据包;
第一接收单元,用于接收所述数据接收端发送的第一确认包,其中,所述第一确认包为对是否成功向所述数据接收端发送所述第一目标数据包的确认信息,所述第一目标数据包的确认信息为对已成功向所述数据接收端发送的数据打上确认号标签,对未成功发送至所述数据接收端的数据则不标记确认号标签;
第一判断单元,用于依据所述第一确认包,判断所述数据接收端所接收的第一目标数据包是否完整;
第一重连单元,用于当所述第一判断单元的执行结果确定为所述数据接收端所接收的第一目标数据包不完整时,向所述数据接收端发起重连请求,以请求向所述数据接收端重新发送第一目标数据包,并重新向所述数据接收端发送第一目标数据包中未被成功发送的数据,直至确认所述数据接收端所接收的目标数据包为完整的数据包。
12.一种网络连接优化设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,实现如权利要求1至10中任一项所述网络连接优化方法的步骤。
13.一种可读存储介质,其特征在于:所述可读存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器实现如权利要求1至10中任一项所述网络连接优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310526039.6A CN116633996A (zh) | 2023-05-10 | 2023-05-10 | 网络连接优化方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310526039.6A CN116633996A (zh) | 2023-05-10 | 2023-05-10 | 网络连接优化方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116633996A true CN116633996A (zh) | 2023-08-22 |
Family
ID=87601773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310526039.6A Pending CN116633996A (zh) | 2023-05-10 | 2023-05-10 | 网络连接优化方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116633996A (zh) |
-
2023
- 2023-05-10 CN CN202310526039.6A patent/CN116633996A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
CN108881008B (zh) | 一种数据传输的方法、装置和系统 | |
CN104025525B (zh) | 用于发送分组的方法和设备以及交换机装置 | |
CN107347021B (zh) | 一种基于sdn网络可靠传输方法 | |
US7876751B2 (en) | Reliable link layer packet retry | |
US7502860B1 (en) | Method and apparatus for client-side flow control in a transport protocol | |
US6141785A (en) | Error control method for multiparty multimedia communications | |
EP2230813B1 (en) | A method and node for establishing a network connection by way of a connectionless transport layer protocol | |
CN110875799B (zh) | 一种传输控制方法和装置 | |
CN1633647B (zh) | 用于管理网络中的数据传送的系统、方法 | |
US9577791B2 (en) | Notification by network element of packet drops | |
CN1812405B (zh) | 在请求-响应传输协议上的可靠单向消息传送的方法 | |
CN106210924B (zh) | 视频网络传输控制方法和系统 | |
WO2006133651A1 (en) | Communication method between communication devices and communication apparatus | |
KR102046792B1 (ko) | 송신 노드로부터 목적지 노드로의 데이터 전송 방법 | |
WO2023000894A1 (zh) | 一种数据传输方法、装置、服务器、存储介质及程序产品 | |
US20240048645A1 (en) | Point-to-point database synchronization over a transport protocol | |
CN110771117B (zh) | 一种采用面向id的网络的会话层通信 | |
CN113938881A (zh) | 适用于互联网数据的传输系统及方法 | |
CN116633996A (zh) | 网络连接优化方法、装置、设备及可读存储介质 | |
CN112468513B (zh) | 一种企业网的终端管理通信方法 | |
CN113794715A (zh) | 一种虚拟点对点网络数据发送、接收、应答方法及其系统 | |
Venkataram et al. | Communication protocol Engineering | |
JP3665309B2 (ja) | 通信システム、通信装置及び通信方法 | |
CN117914817A (zh) | 实时通信方法、客户端、服务端、存储介质以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |