CN104869073A - 一种流量控制方法及装置 - Google Patents

一种流量控制方法及装置 Download PDF

Info

Publication number
CN104869073A
CN104869073A CN201410067255.XA CN201410067255A CN104869073A CN 104869073 A CN104869073 A CN 104869073A CN 201410067255 A CN201410067255 A CN 201410067255A CN 104869073 A CN104869073 A CN 104869073A
Authority
CN
China
Prior art keywords
data queue
data
transmitting terminal
receiving terminal
speed
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.)
Granted
Application number
CN201410067255.XA
Other languages
English (en)
Other versions
CN104869073B (zh
Inventor
王诚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201410067255.XA priority Critical patent/CN104869073B/zh
Priority to PCT/CN2014/076898 priority patent/WO2015127717A1/zh
Publication of CN104869073A publication Critical patent/CN104869073A/zh
Application granted granted Critical
Publication of CN104869073B publication Critical patent/CN104869073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/061Adapt frequency, i.e. clock frequency at one side is adapted to clock frequency, or average clock frequency, at the other side; Not pulse stuffing only

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种流量控制方法及装置,其中,该方法包括:S10、流量控制装置获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E;S20、所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机。采用本发明,可防止数据传输溢出和进行速度控制。

Description

一种流量控制方法及装置
技术领域
本发明涉及到通信领域,特别涉及到一种流量控制方法及装置。
背景技术
在当前的通信系统中,数据业务协议的层与层之间,同一系统之内的模块与模块之间、局域网或无线网络的两个节点之间,存在端对端的大量数据传输。通常,发送端和接收端的速度总是存在差异,若发送端速度大于接收端,则存在数据溢出问题,会导致数据丢失;若接收端速度大于发送端,存在数据读空问题,会导致读入错误数据;且在速度方面,需要一种机制来根据需求调节收发速度。因此,如何提供一种可靠的流量控制方法,以防止数据传输溢出和进行速度控制,将是我们亟待解决的问题。
发明内容
本发明的主要目的为提供一种流量控制方法及装置,旨在防止数据传输溢出和进行速度控制。
本发明提供一种流量控制方法,该方法包括:
S10、流量控制装置获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E;
S20、所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机。
优选地,所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机的步骤包括:
S21、所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V和该流量控制装置中的缓存模块中的数据队列的容量大小L计算延时时间t:
t=(V1*L*(V2-V))/((V1-V)*V2);
S22、判断所述写入速度V1是否大于读取速度V2;
S23、在所述写入速度V1大于读取速度V2,且在所述流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据;及向所述接收端发送停止读取指令并开始计时得到第一计时时间t1,以使得所述接收端停止从所述数据队列读取数据;
S24、在所述第一计时时间t1等于延时时间t时,所述流量控制装置向所述接收端发送读取指令,以使得所述接收端从所述数据队列读取数据;及所述流量控制装置监测所述数据队列的已使用大小E;
S25、在所述数据队列的已使用大小E等于L时,所述流量控制装置向所述发送端发送停止写入指令,以使得所述发送端停止向所述数据队列写入数据;及所述流量控制装置继续监测所述数据队列的已使用大小E;
S26、在所述数据队列的已使用大小E为零时,返回步骤S10。
优选地,在所述S22、判断所述写入速度V1是否大于读取速度V2之后,该方法还包括:
S31、在所述写入速度V1小于读取速度V2,且在所述流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据;及向所述接收端发送停止读取指令,以使得所述接收端停止从所述数据队列读取数据;及所述流量控制装置监测所述数据队列的已使用大小E;
S32、在所述数据队列的已使用大小E等于L时,所述流量控制装置向所述接收端发送读取指令,以使得所述接收端从所述数据队列中读取数据;及向所述发送端发送停止写入指令并开始计时得到第二计时时间t2,以使得所述发送端停止向所述数据队列写入数据;
S33、在所述第二计时时间t2等于延时时间t时,所述流量控制装置向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据;及所述流量控制装置继续检测所述数据队列的已使用大小E;
S34、在所述数据队列的已使用大小E为零时,返回步骤S10。
优选地,所述用户设置的传输速度V大于零且小于写入速度V1与读取速度V2中较小的一个。
优选地,所述控制发送端向所述缓存模块中的数据队列写入数据的步骤为:控制发送端向所述缓存模块中的数据队列的队列尾写入数据;
所述控制接收端从所述缓存模块中的数据队列读取数据的步骤为:控制接收端从所述缓存模块中的数据队列的队列头读取数据。
本发明还提供一种流量控制装置,该流量控制装置分别与发送端、接收端连接,所述流量控制装置包括:缓存模块,与所述缓存模块连接的获取模块,与所述获取模块连接控制模块,其中:
所述获取模块,用于获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E;
所述控制模块,用于根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机。
优选地,所述控制模块包括:
计算单元,用于根据获取的发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V和缓存模块中的数据队列的大小L计算延时时间t:
t=(V1*L*(V2-V))/((V1-V)*V2);
判断单元,用于判断所述写入速度V1是否大于读取速度V2;
第一控制单元,用于在所述写入速度V1大于读取速度V2,且所述数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据,及向所述接收端发送停止读取指令,以使得所述接收端停止从所述数据队列读取数据并开始计时得到第一计时时间t1;及用于所述第一计时时间t1等于延时时间t时,向所述接收端发送读取指令,以使得所述接收端从所述数据队列读取数据,及监测所述数据队列的已使用大小E;及用于在所述数据队列的已使用大小E等于L时,向所述发送端发送停止写入指令,以使得所述发送端停止向所述数据队列写入数据,直到所述数据队列的已使用大小E为零。
优选地,控制模块还包括:
第二控制单元,用于在所述写入速度V1小于读取速度V2,且在所述数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据,及向所述接收端发送停止读取指令,以使得所述接收端停止从所述数据队列读取数据,及监测所述数据队列的已使用大小E;及用于在所述数据队列的已使用大小E为L时,向所述接收端发送读取指令,以使得所述接收端从所述数据队列读取数据,及向所述发送端发送停止写入指令并开始计时得到第二计时时间t2,以使得所述发送端停止向所述数据队列写入数据;及用于在第二计时时间t2等于延时时间t时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据,直到所述缓存中数据队列的已使用大小E为零。
优选地,所述用户设置的传输速度V大于零且小于写入速度V1与读取速度V2中较小的一个。
优选地,所述控制模块控制发送端向所述缓存模块中的数据队列写入数据为:控制发送端向所述缓存模块中的数据队列的队列尾写入数据;
所述控制模块控制接收端从所述缓存模块中的数据队列读取数据为:控制接收端从所述缓存模块中的数据队列的队列头读取数据。
实施本发明,流量控制装置获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E;然后所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机;可防止数据传输溢出和进行速度控制。
附图说明
图1为本发明流量控制方法的优选实施例流程示意图;
图2为步骤S20的第一实施例流程示意图;
图3为步骤S20的第二实施例流程示意图;
图4为本发明流量控制装置的优选实施例结构示意图;
图5为图4中控制模块的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明流量控制方法的优选实施例流程示意图,该方法包括:
S10、流量控制装置获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和该数据队列的已使用大小E。
该流量控制装置分别与发送端和接收端连接,用于控制该发送端与接收端之间的数据传输速度。
该流量控制装置包括缓存模块,缓存模块中的数据以数据队列形式保存,该数据队列的容量大小L不超过缓存模块的最大容量。该数据队列的容量大小L可由根据实际需要设置,如将L设置为20。
该用户设置的传输速度V即为用户希望的该发送端与接收端之间的平均传输速度,该传输速度V大于零且小于写入速度V1与读取速度V2中较小的一个;即,如果写入速度V1大于读取速度V2,则传输速度V大于零且小于读取速度V2,如果写入速度V1小于读取速度V2,则传输速度V大于零且小于写入速度V1。用户可根据实际需要设置该传输速度V。
在该步骤S10中,流量控制装置获取发送端的写入速度V1、接收端的读取速度V2,该流量控制装置可向该发送端和接收端发送获取指令,以使得该发送端和接收端将写入速度V1和读取速度V2反馈给流量控制装置。该发送端的写入速度V1是指该发送端将数据写入缓存模块的数据队列的速度,该接收端的读取速度V2是指该接收端从缓存模块的数据队列将数据读出的速度。
S20、该流量控制装置根据该获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和该数据队列的已使用大小E,控制发送端向该缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从该缓存模块中的数据队列读取数据的开始时机和停止时机。
在该步骤S20中,该流量控制装置控制发送端向该缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从该缓存模块中的数据队列读取数据的开始时机和停止时机;可包括以下几种情况:该流量控制装置只控制发送端向数据队列写入数据、该流量控制装置同时控制发送端向数据队列写入数据和控制接收端从数据队列读取数据、该流量控制装置只控制接收端从数据队列读取数据。
该流量控制装置控制发送端向该缓存模块中的数据队列写入数据的步骤为:流量控制装置控制发送端向该缓存模块中的数据队列的队列尾写入数据;该控制接收端从该缓存模块中的数据队列读取数据的步骤为:流量控制装置控制接收端从该缓存模块中的数据队列的队列头读取数据;即该保证该数据队列中的数据保持先写入先读出的顺序。
具体的,该步骤S20包括(如图2所示):
S21、该流量控制装置根据该获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V和该流量控制装置中的缓存模块中的数据队列的容量大小L计算延时时间t:
t=(V1*L*(V2-V))/((V1-V)*V2)。
S22、判断该写入速度V1是否大于读取速度V2,若该写入速度V1大于读取速度V2,则执行步骤S23。
S23、在该流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,向该发送端发送写入指令,以使得该发送端向该数据队列写入数据;及向该接收端发送停止读取指令并开始计时得到第一计时时间t1,以使得该接收端停止从该数据队列读取数据。
当该流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,为该发送端与接收端之间的数据传输的一个循环的开始。因为该缓存模块中的数据队列的使用大小E为0(即该数据队列为空),且因为发送端的写入速度V1大于接收端的读取速度V2,则该流量控制装置向发送端发送写入指令,以使得该发送端向该数据队列写入数据,及向该接收端发送停止读取指令并开始计时得到第一计时时间t1,以使得该接收端停止从该数据队列读取数据。即在该步骤S23中,该流量控制装置控制发送端向数据队列写入数据,且控制接收端停止从该数据队列读取数据,以避免数据读空,导致数据读取错误。在该步骤S23中,该流量控制装置还计算该接收端停止从数据队列读取数据的持续时间。
S24、在该第一计时时间t1等于延时时间t时,该流量控制装置向该接收端发送读取指令,以使得该接收端从该数据队列读取数据;及该流量控制装置监测该数据队列的已使用大小E。
在该步骤S24中,在该第一计时时间t1等于延时时间t时,该流量控制装置继续控制发送端向该数据队列写入数据,且该流量控制装置向该接收端发送读取指令,以使得该接收端从该数据队列读取数据。即在该步骤S24中,该流量控制装置同时控制发送端向数据队列写入数据和控制接收端从数据队列读取数据,对该数据队列的读写操作同时进行。
在该步骤S24中,该流量控制装置还监测该数据队列的已使用大小E,因为写入速度V1大于读取速度V2,该数据队列的已使用大小E会逐渐增长至最大(数据队列写满)。
S25、在该数据队列的已使用大小E等于L时,该流量控制装置向该发送端发送停止写入指令,以使得该发送端停止向该数据队列写入数据;及该流量控制装置继续监测该数据队列的已使用大小E。
在该步骤S25中,在该数据队列的已使用大小E等于L时(即在该数据队列已写满时),为防止该数据队列的数据溢出,导致数据丢失,该流量控制装置向该发送端发送停止写入指令,以使得该发送端停止向该数据队列写入数据;即在该步骤S25中,该流量控制装置控制发送端停止向数据队列写入数据,该流量控制装置未向该接收端发送停止读取指令,即该流量控制装置继续控制接收端从数据队列读取数据。在该步骤S25中,只对该数据队列执行读操作,而不执行写操作。
在该步骤S25中,该流量控制装置继续监测该数据队列的已使用大小E,因为只有接收端对该数据队列进行读取操作,该数据队列的已使用大小E会逐渐减小到零(数据队列为空)。
S26、在该数据队列的已使用大小E为零时,返回步骤S10。
在该数据队列的已使用大小E为零时,为该发送端与接收端之间的数据传输的一个循环的结束。
进一步的,当在步骤S22的判断结果为该写入速度V1小于读取速度V2,则执行以下步骤(如图3所示):
S31、在该流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,向该发送端发送写入指令,以使得该发送端向该数据队列写入数据;及向该接收端发送停止读取指令,以使得该接收端停止从该数据队列读取数据;及该流量控制装置监测该数据队列的已使用大小E。
当该流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,为该发送端与接收端之间的数据传输的一个循环的开始。因为该缓存模块中的数据队列的使用大小E为0(即该数据队列为空),且因为发送端的写入速度V1小于接收端的读取速度V2,则该流量控制装置向发送端发送写入指令,以使得该发送端向该数据队列写入数据;及向该接收端发送停止读取指令,以使得该接收端停止从该数据队列读取数据。即在该步骤S31中,该流量控制装置控制发送端向数据队列写入数据,且控制接收端停止从该数据队列读取数据,以避免数据读空,导致数据读取错误。
在该步骤S31中,该流量控制装置监测该数据队列的已使用大小E,因为在该步骤S31中,只对数据队列进行写操作,而不进行读操作,该数据队列的已使用大小E会逐渐增长至最大(即数据队列写满)。
S32、在该数据队列的已使用大小E等于L时,该流量控制装置向该接收端发送读取指令,以使得该接收端从该数据队列中读取数据;及向该发送端发送停止写入指令并开始计时得到第二计时时间t2,以使得该发送端停止向该数据队列写入数据。
在该数据队列的已使用大小E等于L时,说明该数据队列已写满。该流量控制装置向该接收端发送读取指令,以使得该接收端从该数据队列中读取数据,及向该发送端发送停止写入指令,以使得该发送端停止向该数据队列写入数据,即在该步骤S32中,该流量控制装置只控制接收端从数据队列读取数据,即只对该数据队列执行读操作,而不执行写操作。
在该步骤S32中,该流量控制装置还计算该发送端停止向数据队列写入数据的持续时间。
S33、在该第二计时时间t2等于延时时间t时,该流量控制装置向该发送端发送写入指令,以使得该发送端向该数据队列写入数据;及该流量控制装置继续检测该数据队列的已使用大小E。
在该步骤S33中,在该第二计时时间t2等于延时时间t时,该流量控制装置继续控制接收端从该数据队列读取数据(该流量控制装置并未向该接收端发送停止读取指令),该流量控制装置向该发送端发送写入指令,以使得该发送端向该数据队列写入数据。即在该步骤S33中,该流量控制装置同时控制发送端向数据队列写入数据和控制接收端从数据队列读取数据,对该数据队列的读写操作同时进行。
在该步骤S33中,该流量控制装置还监测该数据队列的已使用大小E,因为写入速度V1小于读取速度V2,该数据队列的已使用大小E会逐渐减小到零(数据队列为空)。
S34、在该数据队列的已使用大小E为零时,返回步骤S10。
在该数据队列的已使用大小E为零时,为该发送端与接收端之间的数据传输的一个循环的结束。
图4为本发明流量控制装置的优选实施例结构示意图,该流量控制装置100,该流量控制装置100分别与发送端200、接收端300连接,该流量控制装置100包括:缓存模块20,与该缓存模块20连接的获取模块10,与该获取模块10连接控制模块30,其中:
该获取模块10,用于获取发送端200的写入速度V1、接收端300的读取速度V2、用户设置的传输速度V、该缓存模块20中的数据队列的容量大小L和该数据队列的已使用大小E;
该控制模块30,用于根据该获取发送端200的写入速度V1、接收端300的读取速度V2、用户设置的传输速度V、缓存模块20中的数据队列的容量大小L和该数据队列的已使用大小E,控制发送端200向该缓存模块20中的数据队列写入数据的开始时机和停止时机,及/或控制接收端300从该缓存模块20中的数据队列读取数据的开始时机和停止时机。
该缓存模块20中的数据以数据队列形式保存,该数据队列的容量大小L不超过缓存模块的最大容量。该数据队列的容量大小L可由根据实际需要设置,如将L设置为20。
该用户设置的传输速度V即为用户希望的该发送端与接收端之间的平均传输速度,该传输速度V大于零且小于写入速度V1与读取速度V2中较小的一个;即,如果写入速度V1大于读取速度V2,则传输速度V大于零且小于读取速度V2,如果写入速度V1小于读取速度V2,则传输速度V大于零且小于写入速度V1。用户可根据实际需要设置该传输速度V。
该获取模块10获取发送端200的写入速度V1、接收端300的读取速度V2,该获取模块10可向该发送端200和接收端300发送获取指令,以使得该发送端200和接收端300将写入速度V1和读取速度V2反馈给流量控制装置100。该发送端200的写入速度V1是指该发送端200将数据写入缓存模块20的数据队列的速度,该接收端300的读取速度V2是指该接收端300从缓存模块20的数据队列将数据读出的速度。
该控制模块30控制发送端200向该缓存模块20中的数据队列写入数据的开始时机和停止时机,及/或控制接收端300从该缓存模块20中的数据队列读取数据的开始时机和停止时机;可包括以下几种情况:该控制模块30只控制发送端200向数据队列写入数据、该控制模块30同时控制发送端200向数据队列写入数据和控制接收端300从数据队列读取数据、该控制模块30只控制接收端300从数据队列读取数据。
该控制模块30控制发送端200向该缓存模块20中的数据队列写入数据为:控制发送端200向该缓存模块20中的数据队列的队列尾写入数据;该控制模块30控制接收端300从该缓存模块20中的数据队列读取数据为:控制接收端300从该缓存模块20中的数据队列的队列头读取数据;即该保证该数据队列中的数据保持先写入先读出的顺序。
进一步的,该控制模块30包括(如图5所示):计算单元31,与该计算单元31连接的判断单元32,与该判断单元32连接的第一控制单元33,其中:
该计算单元31,用于根据获取的发送端200的写入速度V1、接收端300的读取速度V2、用户设置的传输速度V和缓存模块中的数据队列的大小L计算延时时间t:
t=(V1*L*(V2-V))/((V1-V)*V2);
该判断单元32,用于判断该写入速度V1是否大于读取速度V2;
该第一控制单元33,用于在该写入速度V1大于读取速度V2,且该数据队列的已使用大小E为0时,向该发送端200发送写入指令,以使得该发送端200向该数据队列写入数据,及向该接收端300发送停止读取指令,以使得该接收端300停止从该数据队列读取数据并开始计时得到第一计时时间t1;及用于该第一计时时间t1等于延时时间t时,向该接收端200发送读取指令,以使得该接收端300从该数据队列读取数据,及监测该数据队列的已使用大小E;及用于在该数据队列的已使用大小E等于L时,向该发送端200发送停止写入指令,以使得该发送端200停止向该数据队列写入数据,直到该数据队列的已使用大小E为零。
当该获取模块10获取的缓存模块20中的数据队列的已使用大小E为0时,为该发送端200与接收端300之间的数据传输的一个循环的开始。因为该缓存模块20中的数据队列的使用大小E为0(即该数据队列为空),且因为发送端200的写入速度V1大于接收端300的读取速度V2,则该第一控制单元33向发送端200发送写入指令,以使得该发送端200向该数据队列写入数据,及向该接收端300发送停止读取指令并开始计时得到第一计时时间t1,以使得该接收端300停止从该数据队列读取数据,即该第一控制单元33控制发送端200向数据队列写入数据,且控制接收端300停止从该数据队列读取数据,以避免数据读空,导致数据读取错误;此时,该第一控制单元33还计算该接收端300停止从数据队列读取数据的持续时间。
在该第一计时时间t1等于延时时间t时,该第一控制单元33继续控制发送端200向该数据队列写入数据,且该第一控制单元33向该接收端300发送读取指令,以使得该接收端300从该数据队列读取数据;即此时该该第一控制单元33同时控制发送端200向数据队列写入数据和控制接收端300从数据队列读取数据,对该数据队列的读写操作同时进行;同时,该第一控制单元33还监测该数据队列的已使用大小E,因为写入速度V1大于读取速度V2,该数据队列的已使用大小E会逐渐增长至最大(数据队列写满)。
在该数据队列的已使用大小E等于L时(即在该数据队列已写满时),为防止该数据队列的数据溢出,导致数据丢失,该第一控制单元33向该发送端200发送停止写入指令,以使得该发送端200停止向该数据队列写入数据;即此时该第一控制单元33控制发送端200停止向数据队列写入数据,该第一控制单元33未向该接收端发送停止读取指令,即该第一控制单元33继续控制接收端300从数据队列读取数据。即数据队列的已使用大小E等于L后,该第一控制单元33只对该数据队列执行读操作,而不执行写操作;该第一控制单元33继续监测该数据队列的已使用大小E,因为只有接收端300对该数据队列进行读取操作,该数据队列的已使用大小E会逐渐减小到零(数据队列为空)。在该数据队列的已使用大小E为零时,为该发送端200与接收端300之间的数据传输的一个循环的结束。
进一步的,该控制模块30还包括与该判断模块32连接的第二控制单元34。
该第二控制单元34,用于在该写入速度V1小于读取速度V2,且在该数据队列的已使用大小E为0时,向该发送端200发送写入指令,以使得该发送端200向该数据队列写入数据,及向该接收端300发送停止读取指令,以使得该接收端300停止从该数据队列读取数据,及监测该数据队列的已使用大小E;及用于在该数据队列的已使用大小E为L时,向该接收端发送读取指令,以使得该接收端从该数据队列读取数据,及向该发送端发送停止写入指令并开始计时得到第二计时时间t2,以使得该发送端停止向该数据队列写入数据;及用于在第二计时时间t2等于延时时间t时,向该发送端发送写入指令,以使得该发送端向该数据队列写入数据,直到该缓存中数据队列的已使用大小E为零。
当该获取模块10获取的缓存模块20中的数据队列的已使用大小E为0时,为该发送端200与接收端300之间的数据传输的一个循环的开始。因为该缓存模块20中的数据队列的使用大小E为0(即该数据队列为空),且因为发送端的写入速度V1小于接收端300的读取速度V2,则该第二控制单元34向发送端200发送写入指令,以使得该发送端200向该数据队列写入数据,及向该接收端300发送停止读取指令,以使得该接收端300停止从该数据队列读取数据。即该第二控制单元34控制发送端200向数据队列写入数据,且控制接收端300停止从该数据队列读取数据,以避免数据读空,导致数据读取错误。此时,该第二控制单元34还监测该数据队列的已使用大小E,因为在数据队列的已使用大小E为0后,只对数据队列进行写操作,而不进行读操作,该数据队列的已使用大小E会逐渐增长至最大(即数据队列写满)。
在该数据队列的已使用大小E等于L时,说明该数据队列已写满,则该第二控制单元34向该接收端300发送读取指令,以使得该接收端300从该数据队列中读取数据,及向该发送端200发送停止写入指令,以使得该发送端200停止向该数据队列写入数据,即此时,该第二控制单元34只控制接收端300从数据队列读取数据,即只对该数据队列执行读操作,而不执行写操作;该第二控制单元34还计算该发送端200停止向数据队列写入数据的持续时间。
在该第二计时时间t2等于延时时间t时,该第二控制单元34继续控制接收端300从该数据队列读取数据(该第二控制单元34并未向该接收端300发送停止读取指令),该第二控制单元34向该发送端200发送写入指令,以使得该发送端200向该数据队列写入数据。即此时,该第二控制单元34同时控制发送端200向数据队列写入数据和控制接收端300从数据队列读取数据,对该数据队列的读写操作同时进行。此时,该第二控制单元34还监测该数据队列的已使用大小E,因为写入速度V1小于读取速度V2,该数据队列的已使用大小E会逐渐减小到零(数据队列为空)。在该数据队列的已使用大小E为零时,为该发送端与接收端之间的数据传输的一个循环的结束。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。

Claims (10)

1.一种流量控制方法,其特征在于,该方法包括:
S10、流量控制装置获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E;
S20、所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机。
2.根据权利要求1所述的方法,其特征在于,所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该流量控制装置中的缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机的步骤包括:
S21、所述流量控制装置根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V和该流量控制装置中的缓存模块中的数据队列的容量大小L计算延时时间t:
t=(V1*L*(V2-V))/((V1-V)*V2);
S22、判断所述写入速度V1是否大于读取速度V2;
S23、在所述写入速度V1大于读取速度V2,且在所述流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据;及向所述接收端发送停止读取指令并开始计时得到第一计时时间t1,以使得所述接收端停止从所述数据队列读取数据;
S24、在所述第一计时时间t1等于延时时间t时,所述流量控制装置向所述接收端发送读取指令,以使得所述接收端从所述数据队列读取数据;及所述流量控制装置监测所述数据队列的已使用大小E;
S25、在所述数据队列的已使用大小E等于L时,所述流量控制装置向所述发送端发送停止写入指令,以使得所述发送端停止向所述数据队列写入数据;及所述流量控制装置继续监测所述数据队列的已使用大小E;
S26、在所述数据队列的已使用大小E为零时,返回步骤S10。
3.根据权利要求2所述的方法,其特征在于,在所述S22、判断所述写入速度V1是否大于读取速度V2之后,该方法还包括:
S31、在所述写入速度V1小于读取速度V2,且在所述流量控制装置获取的缓存模块中的数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据;及向所述接收端发送停止读取指令,以使得所述接收端停止从所述数据队列读取数据;及所述流量控制装置监测所述数据队列的已使用大小E;
S32、在所述数据队列的已使用大小E等于L时,所述流量控制装置向所述接收端发送读取指令,以使得所述接收端从所述数据队列中读取数据;及向所述发送端发送停止写入指令并开始计时得到第二计时时间t2,以使得所述发送端停止向所述数据队列写入数据;
S33、在所述第二计时时间t2等于延时时间t时,所述流量控制装置向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据;及所述流量控制装置继续检测所述数据队列的已使用大小E;
S34、在所述数据队列的已使用大小E为零时,返回步骤S10。
4.根据权利要求1所述的方法,其特征在于,所述用户设置的传输速度V大于零且小于写入速度V1与读取速度V2中较小的一个。
5.根据权利要求1所述的方法,其特征在于,所述控制发送端向所述缓存模块中的数据队列写入数据的步骤为:控制发送端向所述缓存模块中的数据队列的队列尾写入数据;
所述控制接收端从所述缓存模块中的数据队列读取数据的步骤为:控制接收端从所述缓存模块中的数据队列的队列头读取数据。
6.一种流量控制装置,其特征在于,该流量控制装置分别与发送端、接收端连接,所述流量控制装置包括:缓存模块,与所述缓存模块连接的获取模块,与所述获取模块连接控制模块,其中:
所述获取模块,用于获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、该缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E;
所述控制模块,用于根据所述获取发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V、缓存模块中的数据队列的容量大小L和所述数据队列的已使用大小E,控制发送端向所述缓存模块中的数据队列写入数据的开始时机和停止时机,及/或控制接收端从所述缓存模块中的数据队列读取数据的开始时机和停止时机。
7.根据权利要求6所述的装置,其特征在于,所述控制模块包括:
计算单元,用于根据获取的发送端的写入速度V1、接收端的读取速度V2、用户设置的传输速度V和缓存模块中的数据队列的大小L计算延时时间t:
t=(V1*L*(V2-V))/((V1-V)*V2);
判断单元,用于判断所述写入速度V1是否大于读取速度V2;
第一控制单元,用于在所述写入速度V1大于读取速度V2,且所述数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据,及向所述接收端发送停止读取指令,以使得所述接收端停止从所述数据队列读取数据并开始计时得到第一计时时间t1;及用于所述第一计时时间t1等于延时时间t时,向所述接收端发送读取指令,以使得所述接收端从所述数据队列读取数据,及监测所述数据队列的已使用大小E;及用于在所述数据队列的已使用大小E等于L时,向所述发送端发送停止写入指令,以使得所述发送端停止向所述数据队列写入数据,直到所述数据队列的已使用大小E为零。
8.根据权利要求7所述的装置,其特征在于,控制模块还包括:
第二控制单元,用于在所述写入速度V1小于读取速度V2,且在所述数据队列的已使用大小E为0时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据,及向所述接收端发送停止读取指令,以使得所述接收端停止从所述数据队列读取数据,及监测所述数据队列的已使用大小E;及用于在所述数据队列的已使用大小E为L时,向所述接收端发送读取指令,以使得所述接收端从所述数据队列读取数据,及向所述发送端发送停止写入指令并开始计时得到第二计时时间t2,以使得所述发送端停止向所述数据队列写入数据;及用于在第二计时时间t2等于延时时间t时,向所述发送端发送写入指令,以使得所述发送端向所述数据队列写入数据,直到所述缓存中数据队列的已使用大小E为零。
9.根据权利要求6所述的装置,其特征在于,所述用户设置的传输速度V大于零且小于写入速度V1与读取速度V2中较小的一个。
10.根据权利要求6所述的装置,其特征在于,所述控制模块控制发送端向所述缓存模块中的数据队列写入数据为:控制发送端向所述缓存模块中的数据队列的队列尾写入数据;
所述控制模块控制接收端从所述缓存模块中的数据队列读取数据为:控制接收端从所述缓存模块中的数据队列的队列头读取数据。
CN201410067255.XA 2014-02-26 2014-02-26 一种流量控制方法及装置 Active CN104869073B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410067255.XA CN104869073B (zh) 2014-02-26 2014-02-26 一种流量控制方法及装置
PCT/CN2014/076898 WO2015127717A1 (zh) 2014-02-26 2014-05-06 一种流量控制方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410067255.XA CN104869073B (zh) 2014-02-26 2014-02-26 一种流量控制方法及装置

Publications (2)

Publication Number Publication Date
CN104869073A true CN104869073A (zh) 2015-08-26
CN104869073B CN104869073B (zh) 2019-09-06

Family

ID=53914605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410067255.XA Active CN104869073B (zh) 2014-02-26 2014-02-26 一种流量控制方法及装置

Country Status (2)

Country Link
CN (1) CN104869073B (zh)
WO (1) WO2015127717A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108696451A (zh) * 2017-04-06 2018-10-23 上海诺基亚贝尔股份有限公司 一种用于控制流量的方法和装置
CN109995666A (zh) * 2019-04-12 2019-07-09 深圳市元征科技股份有限公司 一种消息传输方法及相关装置
CN110912830A (zh) * 2018-09-17 2020-03-24 杭州海康威视系统技术有限公司 传输数据的方法和装置
CN111835651A (zh) * 2019-04-19 2020-10-27 上海哔哩哔哩科技有限公司 数据写入方法、系统、设备及计算机可读存储介质
CN115344396A (zh) * 2022-10-19 2022-11-15 势加透博(成都)科技有限公司 一种基于LabVIEW的面板间同步控制方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988496A (zh) * 2005-12-21 2007-06-27 华为技术有限公司 一种对光纤通道数据流速率进行调节的方法
CN101369957A (zh) * 2007-08-13 2009-02-18 硅谷数模半导体(北京)有限公司 数据传输系统及方法
CN101534173A (zh) * 2009-04-20 2009-09-16 福建星网锐捷网络有限公司 一种数据流量控制方法和系统
CN101959245A (zh) * 2009-07-13 2011-01-26 中兴通讯股份有限公司 一种WiMAX系统中流量控制的方法、装置及系统
CN102264103A (zh) * 2010-05-28 2011-11-30 大唐移动通信设备有限公司 数据发送方法和装置
CN103401804A (zh) * 2013-06-06 2013-11-20 中国人民解放军理工大学 无线传感器网络节点数据缓存转发控制系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047310B2 (en) * 2003-02-25 2006-05-16 Motorola, Inc. Flow control in a packet data communication system
CN101340358B (zh) * 2007-07-04 2011-04-20 鼎桥通信技术有限公司 一种流量控制方法、系统及流量控制实体
CN101272331A (zh) * 2008-04-09 2008-09-24 重庆重邮信科(集团)股份有限公司 终端设备和终端适配器数据传输的流量控制方法及装置
CN101656588A (zh) * 2009-09-21 2010-02-24 中兴通讯股份有限公司 一种传输数据的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988496A (zh) * 2005-12-21 2007-06-27 华为技术有限公司 一种对光纤通道数据流速率进行调节的方法
CN101369957A (zh) * 2007-08-13 2009-02-18 硅谷数模半导体(北京)有限公司 数据传输系统及方法
CN101534173A (zh) * 2009-04-20 2009-09-16 福建星网锐捷网络有限公司 一种数据流量控制方法和系统
CN101959245A (zh) * 2009-07-13 2011-01-26 中兴通讯股份有限公司 一种WiMAX系统中流量控制的方法、装置及系统
CN102264103A (zh) * 2010-05-28 2011-11-30 大唐移动通信设备有限公司 数据发送方法和装置
CN103401804A (zh) * 2013-06-06 2013-11-20 中国人民解放军理工大学 无线传感器网络节点数据缓存转发控制系统及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108696451A (zh) * 2017-04-06 2018-10-23 上海诺基亚贝尔股份有限公司 一种用于控制流量的方法和装置
CN108696451B (zh) * 2017-04-06 2021-09-14 上海诺基亚贝尔股份有限公司 一种用于控制流量的方法和装置
CN110912830A (zh) * 2018-09-17 2020-03-24 杭州海康威视系统技术有限公司 传输数据的方法和装置
CN110912830B (zh) * 2018-09-17 2023-05-02 杭州海康威视系统技术有限公司 传输数据的方法和装置
CN109995666A (zh) * 2019-04-12 2019-07-09 深圳市元征科技股份有限公司 一种消息传输方法及相关装置
CN111835651A (zh) * 2019-04-19 2020-10-27 上海哔哩哔哩科技有限公司 数据写入方法、系统、设备及计算机可读存储介质
CN115344396A (zh) * 2022-10-19 2022-11-15 势加透博(成都)科技有限公司 一种基于LabVIEW的面板间同步控制方法和装置
CN115344396B (zh) * 2022-10-19 2023-02-28 势加透博(成都)科技有限公司 一种基于LabVIEW的面板间同步控制方法和装置

Also Published As

Publication number Publication date
WO2015127717A1 (zh) 2015-09-03
CN104869073B (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
US10552352B2 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
CN104869073A (zh) 一种流量控制方法及装置
US8214552B2 (en) Transmission apparatus, transmission method, communication apparatus, and program
US8799531B2 (en) Data transferring apparatus and control method thereof
US8930599B2 (en) Data transmission system and method thereof
CN104904169B (zh) 调整线程优先级以改进点到点(p2p)器件之间的吞吐量
WO2020010730A1 (zh) 无人机系统的数据传输方法、装置、系统和地面图传模块
WO2011136480A9 (ko) 반도체 저장장치
TW201822010A (zh) 資料儲存裝置與資料傳輸速率控制方法
EP2846470B1 (en) A method of mobile terminal internal communications
CN101271387B (zh) 数据缓存器溢出的自动解除方法和装置
US20120047294A1 (en) Communication apparatus
EP1987631A1 (en) Method and device to transmit a busy medium signal to another device
WO2021136099A1 (zh) 数据传输方法、装置、设备及存储介质
US7840722B2 (en) Method for receiving data over an SDIO interface and device using the same
CN103873189A (zh) 数据发送方法及设备
CN107247638A (zh) 一种数据备份方法、装置和系统
JP4069125B2 (ja) 伝送方法、送信装置、および送受信システム
US20140347986A1 (en) Wireless communication device, wireless communication method, and wireless communication control program
CN110325975A (zh) 一种存储控制设备及其控制方法、移动存储设备
CN110096461A (zh) 一种基于usb3.0辅助协议的实时高速数据传输方法及系统
CN204256731U (zh) 一种fpga高速读取usb设备数据装置
CN116155843B (zh) 一种基于pynq的脉冲神经网络芯片数据通信方法及系统
JPWO2004068803A1 (ja) パス設定方法及びそれを用いた伝送装置及び監視制御装置及びそのプログラムを記録した記録媒体
CN205318375U (zh) 一种i2c总线传输装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant