CN102217258B - 探测处理方法、数据发送端、数据接收端以及通信系统 - Google Patents
探测处理方法、数据发送端、数据接收端以及通信系统 Download PDFInfo
- Publication number
- CN102217258B CN102217258B CN201180000753.7A CN201180000753A CN102217258B CN 102217258 B CN102217258 B CN 102217258B CN 201180000753 A CN201180000753 A CN 201180000753A CN 102217258 B CN102217258 B CN 102217258B
- Authority
- CN
- China
- Prior art keywords
- message
- sending terminal
- packet
- data receiver
- data sending
- 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.)
- Active
Links
Classifications
-
- 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/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
-
- 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/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- 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/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种探测处理方法、数据发送端、数据接收端以及通信系统,其中探测处理方法包括:数据发送端在根据定时器获知已达到预定探测时间,如果发送队列已满,或者发送队列没有发送任何数据包而发送队列不为空时,向数据接收端发送探测消息;数据接收端在接收到所述探测消息后,根据已接收到的数据包信息获取按序接收的最后一个数据包的序列号,生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带按序接收的最后一个数据包的序列号。本发明实施例还提供了相应的数据发送端、数据接收端以及通信系统,本发明实施例提供的技术方案,能够为集群路由器提供简单、高效的可靠性通信。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种探测处理方法、数据发送端、数据接收端以及通信系统。
背景技术
集群路由器具有成本低、大容量的特点,可以很好的实现网络的扩展,并支持更大规模和更高性能的网络,易于提供多样的服务和接口,为宽带业务的普及、高带宽应用的普及创造了物质基础,已被普遍认为是未来核心网络设备的发展趋势,能够满足新一代互联网发展的需求,具有非常广泛的发展空间。
随着集群路由器的应用越来越广泛,对集群路由间的通信技术的要求也越来越高,需要高可靠、高性能的通信技术,以最大限度的发挥集群网络的能力。但是现有技术中的通信协议不能够适应集群路由器间的通信,例如用户数据包协议(User Datagram Protocol,以下简称:UDP)不能够提供可靠传输,而透明进程间通信协议(Transparent Inter-processCommunication,以下简称:TIPC)的可靠连接机制是建立在可靠内部虚拟连接的基础上,其不同路由器之间的连接时相互干扰的,在整个可靠虚拟链路上一个连接的包丢失会减慢所有共享这个虚拟链路的路由器之间的通信,因此现有技术不能够为集群路由器提供简单、高效的可靠性通信。
发明内容
本发明实施例提供一种探测处理方法、数据发送端、数据接收端以及通信系统,用以提供简单、高效的可靠性通信。
本发明实施例提供了一种探测处理方法,包括:
数据发送端在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送所述发送队列中的任何数据包而发送队列不为空时,向所述数据接收端发送报文头中携带探测类型标识的探测消息;
数据接收端在接收到所述探测消息后,根据已接收到的数据包信息获取按序接收的来自所述数据发送端的最后一个数据包的序列号,生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带所述数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号。
本发明实施例还提供了一种数据发送端,包括:
第一消息发送模块,用于在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送所述发送队列中的任何数据包而发送队列不为空时,向数据接收端发送报文头中携带探测类型标识的探测消息;
第一消息接收模块,用于接收数据接收端返回的探测回复消息,所述探测回复消息的报文头中携带数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号。
本发明实施例还提供了一种数据接收端,包括:
第三消息接收模块,用于接收数据发送端发送的报文头中携带探测类型标识的探测消息;
包序列号获取模块,用于根据已接收到的数据包信息获取按序接收的来自所述数据发送端的最后一个数据包的序列号;
第三消息发送模块,用于生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带所述数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号。
本发明实施例还提供一种通信系统,包括上述的数据发送端和数据接收端。
本发明实施例提供的技术方案,通过数据发送端向数据接收端主动发送探测消息,该探测消息触发数据接收端对数据包接收情况进行检测,并在返回的探测回复消息的报文头中携带连续收到的最后一个数据包的序列号,以实现数据发送端根据该序列号进行发送窗口调整,删除发送队列中已成功发送的数据包,避免删除发送队列中未成功发送的数据包,确保发送质量,本发明上述实施例提供的技术方案能够提供简单、高效的可靠性通信。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明探测处理方法实施例一的流程示意图;
图2为本发明探测处理方法实施例二的流程示意图;
图3为本发明实施例中连接建立时状态机的变化示意图;
图4为本发明实施例中连接关闭时的状态机的变化示意图;
图5为本发明数据发送端实施例一的结构示意图;
图6为本发明数据发送端实施例二的结构示意图;
图7为本发明数据接收端实施例一的结构示意图;
图8为本发明数据接收端实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中不能为集群路由器提供简单、高效的可靠性通信,本发明实施例提供了一种探测处理的技术方案,图1为本发明探测处理方法实施例一的流程示意图,如图1所示,该方法包括如下步骤:
步骤101、数据发送端在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送发送队列中的任何数据包而发送队列不为空时,向数据接收端发送报文头中携带探测类型标识的探测消息;本步骤中是由数据发送端,在发送数据包后,主动的向数据接收端发起探测消息,具体的可以是在报文头中携带探测类型标识,以表明其为探测消息,通过上述的探测消息能够确认已经发送的数据包在数据接收端的接收情况,能够及时调整发送队列,上述发送探测消息的时机可以是根据定时器获知已达到预定探测时间,且检测到与数据接收端对应的发送队列已满时,向数据接收端发送探测消息,或者是在根据定时器执行探测,在根据定时器获知已达到预定探测时间时,如果发送队列没有发送任何数据包且发送队列不为空,向数据接收端发送探测消息。
步骤102、数据接收端在接收到所述探测消息后,根据已接收到的数据包信息获取按序接收的来自所述数据发送端的最后一个数据包的序列号,生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带按序接收的来自所述数据发送端的最后一个数据包的序列号。该步骤中数据发送端在接收到上述探测回复消息后,即可以确认数据接收端已经接收到了在上述按序接收的最后一个数据包的序列号之前的数据包,并且该数据发送端可以进一步的根据上述的序列号移动发送窗口。本实施例中的探测回复消息可以是专门设置的探测回复消息,其仅包括报文头,而不设置消息体,在报文头中包括了该探测回复消息的消息类型标识,以及数据接收端按序接收的最后一个数据包的序列号。
本发明上述实施例中,通过数据发送端向数据接收端主动发送探测消息,触发数据接收端对数据包接收情况进行检测,并在返回的探测回复消息的报文头中携带连续收到的最后一个数据包的序列号,以实现数据接收端根据该序列号进行发送窗口调整,删除发送队列中已成功发送的数据包,避免删除发送队列中未成功发送的数据包,确保发送质量,本发明上述实施提供的技术方案,应用于集群路由间的通信中,能够提供简单、高效的可靠性通信。
本发明上述实施例中,其中数据发送端向数据接收端发送的探测消息的报文头中携带有数据发送端最后发送的数据包的序列号,数据接收端可以根据上述序列号信息进行数据的重传处理。图2为本发明探测处理方法实施例二的流程示意图,如图2所示,包括如下的步骤:
步骤201、数据发送端在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送发送队列中的任何数据包而发送队列不为空时,向数据接收端发送报文头中携带探测类型标识的探测消息,该探测消息的报文头中还携带有数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号;
步骤202、数据接收端接收到所述数据发送端发送的所述探测消息后,根据所述探测消息中所携带的所述数据发送端最后向所述数据接收端发送的数据包的序列号,以及已接收到的数据包信息获取数据发送端已发送而数据接收端未接收到的数据包的序列号,生成重传请求消息并发送给数据发送端,所述重新请求消息中携带所述数据发送端已发送而数据接收端未接收到的数据包的序列号;
步骤203、数据发送端接收到来自所述数据接收端的重传请求消息后,根据所述重传请求消息中所携带的数据发送端已发送而数据接收端未接收到的数据包的包序列号重新发送数据接收端未接收到的数据包。
本发明上述实施例中,其中由数据发送端发送探测消息,进行探测确认和探测重传,在进行探测确认时,可以在探测消息的报文头中携带消息类型的标识信息,以表示该探测消息的作用是用于探测,数据接收端在接收到上述消息后,即可明确需要进行探测回复,向数据发送端返回数据接收端已经按序接收到的来自所述数据发送端的数据包中最后一个数据包的序列号。
另外,对于探测消息,还可以是在探测消息的报文头中携带有数据发送端最后向对应数据接收端发送的数据包的序列号,在这种情况下,可以由数据接收端根据上述数据发送端最后向所述数据接收端发送的数据包的序列号以及已接收到的数据包信息获取所述数据发送端已向所述数据接收端发送但所述数据接收端未接收到的数据包的序列号,判断是否存在遗漏的数据包,并向数据发送端发送重传请求消息,请求重新发送所述数据发送端已向所述数据接收端发送但所述数据接收端并未接收到的数据包。本发明实施例在具体实施过程中,可以在所有探测消息中的报文头中都携带数据发送端最后向所述数据接收端发送的数据包的序列号,即支持探测确认,又支持探测重传,能够实现数据包的可靠传输,并能够简单、高效的满足集群间进程通信的要求。
本发明的具体技术方案中,可以利用现有的UDP技术方案,在UDP通信协议层之上封装一层,即在原有的UDP数据包上载封装一层报文头,提供用户进程简单适用的应用程序编程接口(Application ProgrammingInterface,以下简称:API),进程之间可以通过API来使用这种传输方式进行通信。数据发送端将要发送的用户进程数据封装一层报文头后,通过标准的UDP端口进行发送。数据接收端通过标准的UDP端口接收到消息后,解析报文头即可找到对应的接收进程。
在本发明的具体实施方案中,可以应用于集群路由器的通信中,上述数据发送端和数据接收端可以是同一通信过程中的不同路由器。其中UDP包上封装的一层报文头可以包含源端口号、目的端口号、当前序列号、确认序列号、窗口大小、消息类型以及消息长度等信息。具体的消息类型可以分为连接(SYN)消息、连接响应(SYN_ACK)消息、数据包(DATA)消息、探测(PROBE)消息、确认(ACK)消息、重传请求(NACK)消息、关闭(FIN)消息、关闭响应(FIN_ACK)消息以及探测回复(PROBE_ACK)消息等。其中的源端口号和目的端口号用来标识数据发送端和数据接收端的应用进程,这是与现有技术中类似;而当前序列号用来标识从发送端向接收端发送的每个消息,具体的序列号是为了保证消息能够有序可靠的到达,基于包进行排序的,对于DATA以及FIN消息类型,每个消息是基于包按序加1;对于其他的消息类型包,包的序列号和前一个包的序列号保持一致,不进行加1,因此,当建立连接并发送若干个DATA消息后,发送的PROBE消息的报文头中携带的其中的序列号,即为已发送的DATA消息数量,也就是数据发送端最后向所述数据接收端发送的数据包的序列号,在本发明实施例中,一个DATA消息发送的数据称为一个数据包。确认序列号即为上述的数据接收端已经按序接收的最后一个数据包的序列号。窗口大小用来表示数据接收端可接收的最大数据包数目。消息长度即为整个消息的总长度。上述的SYN消息、SYN_ACK消息、PROBE消息、ACK消息、FIN消息、FIN_ACK消息以及PROBE_ACK消息可以是仅仅包括报文头即可,而对于DATA消息、NACK消息需要包括消息体,DATA消息的消息体为具体发送的数据,例如可以是UDP包,而NACK消息的消息体可以是需要重传的数据包的序列号。
在本发明的具体实施方案中,其中的数据发送端和数据接收端可以通过二次握手的方式建立连接和关闭连接,采用序列号、确认技术、重传机制、滑窗和流控机制以及定时器策略保证了消息能够按序、可靠的到达。
具体的,本发明可采用面向连接的技术方案,在发送数据之前,采用二次握手机制在双方之间建立一条连接,其中图3为本发明实施例中连接建立时状态机的变化示意图,如图3所示,客户端(Client)首先处于关闭状态(CLOSE),客户端向服务器发送一个带有初始序列号的建立连接(SYN)消息,客户端状态转换为等待状态(SYN SENT),而服务器侧的主端口(MasterEP)处于监听状态(LISTEN),在接收到上述的建立连接消息后,派生出一个备端口(Slave EP)与客户端通信,发送对SYN消息的确认消息(SYN_ACK)作为应答,同时备端口的状态转换为建立状态(ESTABLISHED),客户端在接收到上述的确认消息后,也会将状态转换为建立状态(ESTABLISHED)。这样客户端和发送端就完成了连接的建立。其中初始序列号随时间变化,能够保证每个连接都具有不同的初始序列号。在客户端和服务器间建立连接后,就可以根据本发明提供的探测确认以及探测重传的技术方案在客户端和服务器间进行可靠性通信。
具体的,确认技术就是指数据接收端接收到数据发送端的数据时,发送一个确认消息给数据发送端已经按序可靠收到的包。
确认技术的实现直接影响着传输方式的性能,如果确认太慢,数据发送端有可能因为未能及时收到确认信息而停止发送,如果确认太过频繁,则会影响系统带宽。
本发明上述实施例提供了一种探测确认的技术方案,即可以在数据发送端启动一个定时器,每隔一段时间进行探测,但是如果发送队列已经满,则说明数据发送端有可能因为没有及时收到对端的确认信息而导致发送队列满,所以这个时候会给对端发送一个探测消息来等待对端的探测回复消息,在探测回复消息中就会获得对端的确认信息。另外,如果探测时钟到期,数据发送端没有发送任何包且发送队列不为空,这个时候数据发送端有可能因为没有及时收到对端的确认信息而停止发送,所以也会向数据接收端发送探测消息并等待接收端的探测回复消息。这种探测确认的技术方案保证了在需要的时候能够及时的获得对端的确认信息,而且避免了确认的不必要重复发送,提高了网络性能,节约带宽。
在具体的实施例中,除上述的探测确认的技术方案外,还可以与其他现有的确认方式结合使用,例如和延迟确认方式相结合,延迟确认方式是指数据接收端接收到一个数据包后,并不是立即发送确认信息,而是推迟一段时间再发送确认信息,但是不能无限延迟。具体实施例时,可以累计收到16个连续的数据包后发送确认信息,上述确认信息可以是数据包的序列号,表示数据接收端已经累计接收到了该序列号之前的所有数据包。上述采取各种确认相结合的确认机制,能够保障系统性能。
另外,本发明上述实施例中,数据接收端在向数据发送端回复确认信息时,可以采取捎带的方式,将确认信息携带在数据包消息中,具体的针对探测确认的技术方案,探测回复消息不需要单独设置,而是扩展数据包消息,在数据包消息的报文头中携带所述数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号,以作为探测回复消息使用,实现探测确认机制,这样可以提高网络的通信效率,节约带宽。
另外在传输过程中,消息都有可能会丢失,一定要有重传机制来保证消息能够可靠的到达。本发明实施例提供的探测触发重传机制,可以与请求重传相结合使用。
其中请求重传是数据接收端将按序收到的数据包放到接收队列中,将收到的失序数据包放到失序队列中。然后在失序队列大小达到16个数据包或者其他数量时,数据接收端就发送重传请求消息请求对方重传,数据接收端会通过查看接收队列以及失序队列,得到没有收到的数据包的序列号,在数据接收端发送给对端的重传请求消息中携带数据接收端没有收到的数据包的序列号,这样数据发送端收到重传请求消息后,就可以从重传请求消息中提取出所述数据接收端没有收到的数据包的序列号,即所述数据接收端所丢失的数据包的序列号,然后根据所述数据接收端没有收到的数据包的序列号只将这些序列号对应的数据包重传给数据接收端。这种重传方式只重传丢失的数据包,可以提高网络利用率。
探测触发重传机制是用来保证如果失序队列达不到一定数量时也能够及时通知对端丢包。当数据接收端收到对端的探测消息时,解析探测消息的报文头,获取其中携带的数据发送端最后向数据接收端发送的数据包的序列号,如果发现已接收到的数据包中未全部包括上述数据发送端最后向数据接收端发送的数据包的序列号之前的数据包,则认为中间有丢包,具体也可以采取上述查看接收队列和失序队列的方式确认丢包,这个时候会立即发送重传请求消息要求对方重传中间没有收到的那些包。重传请求消息发送的频率同样也会极大的影响网络的性能,探测触发重传的技术方案能够在节约NACK消息包的同时保证及时通知对端,节约了网络带宽。
本发明的具体技术方案中还可以利用了滑窗和流控机制,其中数据发送端将已经按序发送的数据包保存到发送队列中,数据接收端发送的探测回复消息携带自己的接收窗口大小和已经确认收到的数据包的序列号,数据发送端收到数据接收端返回的已经确认接收到的数据包的序列号等信息后,将从发送队列中清除掉已经收到的那些数据包;同时数据发送端进一步考虑数据接收端通告的接收窗口的大小,以及发送队列中数据包的数量,从发送队列中发送一定数量的数据包。
本发明的具体技术方案,在进程中启动一个定时器作为探测时钟,当时钟到期时,根据不同的情况执行不同的处理:例如在时钟期间没有任何消息发送并且发送队列为空,则停止时钟;在时钟期间没有任何消息发送并且发送队列不为空,则发送探测消息并将时钟改成重传探测时钟;如果发送队列已满,则发送探测消息并将时钟改成重传探测时钟;如果发送了探测消息,在重传探测时钟到期一定次数之内都没有收到对方对这个探测消息的回应,则认为连接已经中断,关闭连接。上述定时器即可实现探测确认、探测重传以及保活探测等功能。
在面向连接的通信完成后,可以由服务器或者客户端的任一方发起连接关闭,图4为本发明实施例中连接关闭时的状态机的变化示意图,如图4所示,本实施例中采用二次关闭的方式,首先服务器和客户端的端口都处于连接建立状态(ESTABLISHED),当一方想关闭连接时,首先发送连接关闭(MSG_FIN)消息执行主动关闭,并将状态转换为等待状态(FIN_SENT),而另一方收到上述消息后,状态转换为关闭状态(CLOSE),并将返回一个确认消息(MSG_FIN_ACK)执行被动关闭,发起关闭的一方接收到上述消息后将状态转换为关闭状态(CLOSE)。
与上述方法实施例对应的,本发明实施例还提供了一种数据发送端,图5为本发明数据发送端实施例一的结构示意图,如图5所示,该装置包括第一消息发送模块11和第一消息接收模块12,其中第一消息发送模块11用于在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送所述发送队列中的任何数据包而发送队列不为空时,向数据接收端发送报文头中携带探测类型标识的探测消息;第一消息接收模块12用于接收数据接收端返回的探测回复消息,所述探测回复消息的报文头中携带数据接收端按序接收到的来自所述数据发送端的最后一个数据包的序列号。
该实施例中由数据发送端主动发起探测确认,并接收数据接收端返回的探测回复消息,在探测回复消息中携带数据接收端按序接收到的来自所述数据发送端的最后一个数据包的序列号,使得数据发送端可以及时调整发送窗口,进行后续的数据包发送,确保数据连接的可靠性传输。
进一步的,如图6所示,还可以在数据发送端中增加发送窗口调整模块13,该模块与第一消息接收模块12连接,用于根据从所述第一消息接收模块所接收的探测回复消息中获取的所述数据接收端按序接收的最后一个数据包的序列号移动发送窗口。并且针对数据重传的技术方案,还可以进一步的在数据发送端设置第二消息接收模块14和数据包重发送模块15,该第二消息接收模块14用于接收数据接收端返回的重传请求消息,所述重传请求消息中携带了所述数据发送端已经发送但所述数据接收端未接收到的数据包的序列号,即所述数据接收端丢失的数据包的序列号,所述未接收到的数据包的序列号为数据接收端在接收到所述探测消息后,根据所述探测消息的报文头中携带的数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,以及数据接收端已接收到的数据包信息获取得到;数据包重发送模块15用于根据所述重传请求消息中携带的数据发送端已发送而数据接收端未接收到的数据包的序列号重新向所述数据接收端发送所述未接收到的数据包。
本发明实施例还提供了一种数据接收端,图7为本发明数据接收端实施例一的结构示意图,如图7所示,该数据接收端包括第三消息接收模块21、包序列号获取模块22和第三消息发送模块23,其中第三消息接收模块21用于接收数据发送端发送的报文头中携带探测类型标识的探测消息;包序列号获取模块22用于在所述第三消息发送模块23接收到探测消息后,根据所述数据接收端已接收到的来自数据发送端的数据包信息获取按序接收的来自数据发送端的最后一个数据包的序列号;第三消息发送模块23与上述的包序列号获取模块22连接,用于生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带所述数据接收端按序接收的来自数据发送端的最后一个数据包的序列号。
本发明上述实施例中的数据接收端,与数据发送端配合实现对数据包传输过程的确认,实现数据包的可靠传输。
图8为本发明数据接收端实施例二的结构示意图,如图8所示,数据接收端包括第三消息接收模块21、包序列号获取模块22和第三消息发送模块23,还包括第四消息发送模块24,且上述实施例中的第三消息接收模块21接收到的探测消息的报文头中还携带有数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,第四消息发送模块24用于根据所述数据发送端在发送所述探测消息之前向所述数据接收端发送的数据包的序列号,以及已接收到的来自数据发送端的数据包信息获取所述数据发送端已发送但所述数据接收端未接收到的数据包的序列号,生成重传请求消息并发送给数据发送端,所述重传请求消息中携带所述数据发送端已发送但所述数据接收端未接收到的数据包的序列号。
本发明实施例还提供了一种通信系统,该通信系统包括上述各实施例中的数据发送端和数据接收端。
本发明上述各个实施例提供的探测确认以及探测重传的技术方案,能够实现数据包的可靠传输,并能够简单、高效的满足集群间进程通信的要求。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种探测处理方法,其特征在于,包括:
数据发送端在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送所述发送队列中的任何数据包而发送队列不为空时,向所述数据接收端发送报文头中携带探测类型标识的探测消息,并将所述定时器的时钟改成重传探测时钟;
数据接收端在接收到所述报文头中携带探测类型标识的探测消息后,根据已接收到的数据包信息获取按序接收的来自所述数据发送端的最后一个数据包的序列号,生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带所述数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号;
所述向所述数据接收端发送报文头中携带探测类型标识的探测消息之后还包括:对所述重传探测时钟的到期次数进行计数;若所述数据发送端在重传探测时钟到期一定次数之内都没有收到所述探测回复消息,则所述数据发送端停止向所述数据接收端发送探测消息。
2.根据权利要求1所述的探测处理方法,其特征在于,还包括:
数据发送端根据数据接收端按序接收的最后一个数据包的序列号移动发送窗口。
3.根据权利要求1所述的探测处理方法,其特征在于,所述数据发送端向数据接收端发送的探测消息的报文头中还携带有数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,所述方法还包括:
数据接收端根据所述数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,以及已接收到的数据包信息获取数据发送端已发送而数据接收端未接收到的数据包的序列号,生成重传请求消息并发送给数据发送端,所述重新请求消息中携带所述数据发送端已发送而数据接收端未接收到的数据包的序列号;
数据发送端接收到来自所述数据接收端的重传请求消息后,根据所述重传请求消息中携带的数据发送端已发送而数据接收端未接收到的数据包的序列号重新发送所述数据接收端未接收到的数据包。
4.一种数据发送端,其特征在于,包括:
第一消息发送模块,用于在根据定时器获知已达到预定探测时间,如果所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送所述发送队列中的任何数据包而发送队列不为空时,向所述数据接收端发送报文头中携带探测类型标识的探测消息,并将所述定时器的时钟改成重传探测时钟;
第一消息接收模块,用于接收数据接收端返回的探测回复消息,所述探测回复消息的报文头中携带数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号;
所述第一消息发送模块,还用于在向所述数据接收端发送报文头中携带探测类型标识的探测消息之后,对所述重传探测时钟的到期次数进行计数;若所述第一消息接收模块在重传探测时钟到期一定次数之内都没有收到所述探测回复消息,则停止向所述数据接收端发送探测消息。
5.根据权利要求4所述的数据发送端,其特征在于,还包括:
发送窗口调整模块,与所述第一消息接收模块连接,用于根据从所述第一消息接收模块所接收的探测回复消息中获取的所述数据接收端按序接收的最后一个数据包的序列号移动发送窗口。
6.根据权利要求4所述的数据发送端,其特征在于,还包括:
第二消息接收模块,用于接收数据接收端返回的的重传请求消息,所述重传请求消息中携带了数据发送端已发送而数据接收端未接收到的数据包的序列号,所述数据发送端已发送而数据接收端未接收到的数据包的序列号为数据接收端在接收到所述探测消息后,根据所述探测消息的报文头中携带的数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,以及数据接收端已接收到的数据包信息获取得到;
数据包重发送模块,用于根据所述重传请求消息中携带的数据发送端已发送而数据接收端未接收到的数据包的序列号重新向所述数据接收端发送所述未接收到的数据包。
7.一种数据接收端,其特征在于,包括:
第三消息接收模块,用于接收数据发送端在根据定时器获知已达到预定探测时间,所述数据发送端中与数据接收端对应的发送队列已满,或者所述数据发送端没有发送发送队列中的任何数据包而发送队列不为空时发送的报文头中携带探测类型标识的探测消息;
包序列号获取模块,用于在所述第三消息接收模块接收到探测消息后,根据所述数据接收端已接收到的来自数据发送端的数据包信息获取按序接收的来自所述数据发送端的最后一个数据包的序列号;
第三消息发送模块,与所述包序列号获取模块连接,用于生成探测回复消息并发送给数据发送端,所述探测回复消息的报文头中携带所述数据接收端按序接收的来自所述数据发送端的最后一个数据包的序列号,以实现所述数据发送端在重传探测时钟到期一定次数之内未接收到所述探测回复消息时,停止向所述第三消息接收模块发送所述探测消息。
8.根据权利要求7所述的数据接收端,其特征在于,所述第三消息接收模块接收到的探测消息的报文头中还携带有数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,所述数据接收端还包括:
第四消息发送模块,用于根据所述数据发送端在发送所述探测消息之前最后向所述数据接收端发送的数据包的序列号,以及已接收到的来自数据发送端的数据包信息获取数据发送端已发送而数据接收端未接收到的数据包的序列号,生成重传请求消息并发送给数据发送端,所述重传请求消息中携带所述数据发送端已发送而数据接收端未接收到的数据包的序列号。
9.一种通信系统,其特征在于,包括权利要求4-6中任一项所述的数据发送端,以及权利要求7或8所述的数据接收端。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/072673 WO2011100911A2 (zh) | 2011-04-12 | 2011-04-12 | 探测处理方法、数据发送端、数据接收端以及通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102217258A CN102217258A (zh) | 2011-10-12 |
CN102217258B true CN102217258B (zh) | 2015-08-19 |
Family
ID=44483381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180000753.7A Active CN102217258B (zh) | 2011-04-12 | 2011-04-12 | 探测处理方法、数据发送端、数据接收端以及通信系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102217258B (zh) |
WO (1) | WO2011100911A2 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162706B (zh) * | 2014-05-28 | 2018-07-31 | 华为技术有限公司 | 组播传输方法、装置及系统 |
CN104102605B (zh) * | 2014-06-25 | 2018-03-09 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
CN105228181B (zh) * | 2015-10-21 | 2018-07-03 | 北京星网锐捷网络技术有限公司 | 一种基于ap优化tcp连接的方法、ap和系统 |
CN106856457B (zh) * | 2015-12-09 | 2019-09-20 | 华为技术有限公司 | 一种数据传输方法、发送装置及接收装置 |
CN106789732B (zh) * | 2016-11-21 | 2019-08-06 | 华胜信泰信息产业发展有限公司 | 基于消息队列的路由建立方法及系统 |
CN106452692A (zh) * | 2016-11-30 | 2017-02-22 | 网宿科技股份有限公司 | 一种数据传输方法和系统 |
CN107491356A (zh) * | 2017-08-28 | 2017-12-19 | 广州市百果园信息技术有限公司 | 基于序号的消息处理方法、终端设备和服务器 |
CN107733906B (zh) * | 2017-10-24 | 2020-04-17 | 北京全路通信信号研究设计院集团有限公司 | 一种基于udp通信的rssp-ii通信方法 |
CN111355669B (zh) * | 2018-12-20 | 2022-11-25 | 华为技术有限公司 | 控制网络拥塞的方法、装置及系统 |
CN112398744A (zh) * | 2019-08-16 | 2021-02-23 | 阿里巴巴集团控股有限公司 | 网络通信方法、装置及电子设备 |
CN112448898A (zh) * | 2019-08-28 | 2021-03-05 | 无锡江南计算技术研究所 | 基于序列号机制的消息保序方法 |
CN114124841A (zh) * | 2021-11-19 | 2022-03-01 | 青岛信大云谷信息科技有限公司 | 一种高速转发数据轻量级流量控制的方法 |
CN115250288A (zh) * | 2022-07-18 | 2022-10-28 | 国仪量子(合肥)技术有限公司 | 数据通信方法、下位机、上位机、数据传输系统和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101636957A (zh) * | 2007-03-16 | 2010-01-27 | 高通股份有限公司 | 用于在无线通信系统中进行轮询的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030128681A1 (en) * | 2001-12-29 | 2003-07-10 | Dennis Rauschmayer | Method and apparatus for implementing an automatic repeat request ("ARQ") function in a fixed wireless communication system |
US8122313B2 (en) * | 2007-10-08 | 2012-02-21 | Nokia Siemens Networks Oy | Acknowledgment packet |
-
2011
- 2011-04-12 CN CN201180000753.7A patent/CN102217258B/zh active Active
- 2011-04-12 WO PCT/CN2011/072673 patent/WO2011100911A2/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101636957A (zh) * | 2007-03-16 | 2010-01-27 | 高通股份有限公司 | 用于在无线通信系统中进行轮询的方法和装置 |
Non-Patent Citations (1)
Title |
---|
多重抑制自动重传请求协议的实现与仿真;王绪国等;《计算机应用》;20060331;第26卷(第3期);534-539 * |
Also Published As
Publication number | Publication date |
---|---|
CN102217258A (zh) | 2011-10-12 |
WO2011100911A2 (zh) | 2011-08-25 |
WO2011100911A3 (zh) | 2012-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102217258B (zh) | 探测处理方法、数据发送端、数据接收端以及通信系统 | |
CN102006283B (zh) | 数据传输的方法和装置 | |
KR102136563B1 (ko) | 패킷 전송 방법 및 사용자 장비 | |
CN106559739B (zh) | 适于蓝牙低功耗无线通信系统的轻量级数据传输方法 | |
WO2018121294A1 (zh) | 一种报文传输方法、终端、网络设备及通信系统 | |
TWI309115B (en) | Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same | |
WO2018205688A1 (zh) | 一种数据传输的方法、装置和系统 | |
KR102046792B1 (ko) | 송신 노드로부터 목적지 노드로의 데이터 전송 방법 | |
US20110252152A1 (en) | Reliable messaging system and method | |
AU746179B2 (en) | Communication method and system | |
JP4648457B2 (ja) | 適当な通信プロトコルを用いてメッセージ送信を提供する方法 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
WO2020147453A1 (zh) | 数据传输方法及相关装置 | |
CN108886713B (zh) | 一种数据传输方法、数据接收设备及数据发送设备 | |
CN102868609A (zh) | 一种最大传输单元协商方法及数据终端 | |
CN103546258A (zh) | 一种数据传输方法及装置 | |
CN101325539B (zh) | 一种局域网内可靠通信的方法 | |
CN102769520A (zh) | 基于sctp协议的无线网络拥塞控制方法 | |
WO2022083371A1 (zh) | 一种数据传输方法和装置 | |
EP2299618B1 (en) | Method and system for transmitting and receiving management message in communication network | |
US9510242B2 (en) | Reducing superfluous traffic in a network | |
CN108432287A (zh) | 一种数据传输方法及网络侧设备 | |
JP2005136684A (ja) | データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム | |
JP2023062123A (ja) | 無線通信装置、無線通信方法、及び無線通信システム | |
WO2018218996A1 (zh) | 数据包传输方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211229 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |