CN110048958A - 一种系统间消息流传输的缓冲区控制方法 - Google Patents
一种系统间消息流传输的缓冲区控制方法 Download PDFInfo
- Publication number
- CN110048958A CN110048958A CN201810039627.6A CN201810039627A CN110048958A CN 110048958 A CN110048958 A CN 110048958A CN 201810039627 A CN201810039627 A CN 201810039627A CN 110048958 A CN110048958 A CN 110048958A
- Authority
- CN
- China
- Prior art keywords
- message
- size
- buffer area
- target
- host
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明公开的一种系统间消息流传输的缓冲区控制方法,包括步骤:设置TARGET的缓冲区为最大消息长度的2倍以上;消息通道建立的时候,TARGET将其当前缓冲区大小的信息发送HOST;计算得到TARGET剩余缓冲区大小;HOST每次发送消息之前,检查发送的消息长度是否小于TARGET剩余缓冲区大小;TARGET接收消息到缓冲区,并从缓冲区取消息进行处理,处理完之后更新已处理消息长度为TARGET剩余缓冲区大小加此消息长度,当TARGET剩余缓冲区大小大于缓冲区总长度的1/4时,TARGET发送消息通知HOST其缓冲区大小发生变化;HOST收到缓冲区大小发生变化的消息后,修正其记录的TARGET剩余缓冲区大小。本发明可实现消息传输和消息处理大部分时间并发,提高了消息传输效率,同时避免了消息丢失。
Description
技术领域
本发明涉及系统间消息传输技术领域,具体涉及一种系统间消息流传输的缓冲区控制方法。
背景技术
嵌入式系统中,有很多产品需要上位机与下位机配合进行工作,我们称之为HOST(主控端) 和TARGET(目标端)。它们之间通过各种硬件接口进行通信,如SPI/USB/UART等,由HOST发送消息给TARGET,而TARGET执行消息处理动作并反馈结果给HOST。
很多时候TARGET 的内存有限,不能无限制地接收消息到缓冲区等待处理,那样缓冲区会溢出,消息会丢失。
因此需要一种缓冲区控制方法来确保消息不丢失,并且确保消息传输效率不变低。
现有的一个解决方案是:HOST发送消息之后等待TARGET完成消息处理之后,再发送下一个消息。确保TARGET缓冲区不会因为消息太多而溢出。该方案缺陷在于:等待TARGET回复之后再发送下一个消息的方法相当于传输和消息处理不能并发进行,只能顺序进行,因此降低了消息传输的效率。
发明内容
本发明的目的在于提供一种系统间消息流传输的缓冲区控制方法,以确保TARGET缓冲区不会因为消息太多而溢出,防止消息丢失以及确保消息传输率不变低。
为了实现上述目的,本发明的技术方案如下:
一种系统间消息流传输的缓冲区控制方法,包括以下步骤:
1、设置TARGET的缓冲区为最大消息长度的2倍以上;
2、消息通道建立的时候,TARGET将其当前缓冲区大小的信息发送HOST;
3、HOST将总的缓冲区大小减去最大消息长度,得到TARGET剩余缓冲区大小;
4、HOST每次发送消息之前,检查发送的消息长度是否小于TARGET剩余缓冲区大小;是则正常发送,并更新TARGET剩余缓冲区大小为当前的TARGET剩余缓冲区大小减去此消息长度;否则HOST等待TARGET剩余缓冲区大小大于消息长度时再进行发送;
5、TARGET接收消息到缓冲区,并从缓冲区取消息进行处理,处理完之后更新已处理消息长度为TARGET剩余缓冲区大小加此消息长度,当TARGET剩余缓冲区大小大于缓冲区总长度的1/4 时,TARGET发送消息通知HOST其缓冲区大小发生变化;
6、HOST收到缓冲区大小发生变化的消息后,修正其记录的TARGET剩余缓冲区大小,此时如果有HOST的线程正在等待TARGET剩余缓冲区大小变足够,那么在其等到时继续发送消息。
采用上述方案后,本发明具有以下优点:
(1)通过HOST维持一个HOST缓冲区长度的变量,在HOST进行判断target缓冲区是否会溢出,避免以为缓冲区溢出而消息丢失;
(2)不是每处理一个消息就反馈HOST缓冲区长度的变化到HOST ,而是消息处理到一定门限长度之后再通知HOST更新其len长度。
以下结合附图及具体实施例对本发明做进一步说明。
附图说明
图1是一种系统间消息流传输的缓冲区控制方法的流程简图。
具体实施方式
如图1所示,本发明揭示的一种系统间消息流传输的缓冲区控制方法,包括以下步骤:
1、首先HOST向TARGET发送启动命令,TARGET返回启动成功,HOST再向TARGET发送主控端支持特性信息,设置TARGET的缓冲区为最大消息长度的2倍以上(含2倍),也即HOST的本地缓冲区控制的最大小心长度为TARGET的缓冲区一半大小;
2、消息通道建立的时候,TARGET将其当前缓冲区大小的信息发送HOST;
3、HOST依次发送控制命令1以及2、3、4、5、6,每次发送控制命令HOST都将总的缓冲区大小(total buffer size)减去最大消息长度,得到TARGET剩余缓冲区大小(target remainbuffer size);
4、HOST每次发送消息之前,检查发送的消息长度是否小于TARGET剩余缓冲区大小;是则正常发送,并更新TARGET剩余缓冲区大小为当前的TARGET剩余缓冲区大小减去此消息长度,这样TARGET剩余缓冲区大小总是为target端缓冲区剩余的空间大小;否则HOST等待TARGET剩余缓冲区大小大于消息长度再进行发送,例如上述最后一个命令6发送之前HOST检查发送的消息长度大于TARGET剩余缓冲区大小时,进入线程睡眠等待状态,这是需要TARGET执行完命令1-5之后,更新其缓冲区并将更新信息返回给HOST,HOST才能够将剩下的控制命令6发送出去;
5、TARGET接收消息到缓冲区,并从缓冲区取消息进行处理,处理完之后更新已处理消息长度(processed msg len)为TARGET剩余缓冲区大小加此消息长度,当TARGET剩余缓冲区大小大于缓冲区总长度的1/4 时,TARGET发送消息通知HOST其缓冲区大小发生变化;
6、HOST收到缓冲区大小发生变化的消息后,修正其记录的TARGET剩余缓冲区大小,此时如果有HOST的线程正在等待TARGET剩余缓冲区大小变足够,那么在其等到时继续发送消息。
通过本发明的缓冲器控制方法,实现消息传输和消息处理大部分时间并发,提高了消息传输效率,同时避免了消息丢失。
以上仅为本发明的具体实施例,并非对本发明的保护范围的限定。凡依本案的设计思路所做的等同变化,均落入本案的保护范围。
Claims (1)
1.一种网络传输特性友好的实时图像自适应恢复方法,其特征在于,包括:
一、设置TARGET的缓冲区为最大消息长度的2倍以上;
二、消息通道建立的时候,TARGET将其当前缓冲区大小的信息发送HOST;
三、HOST将总的缓冲区大小减去最大消息长度,得到TARGET剩余缓冲区大小;
四、HOST每次发送消息之前,检查发送的消息长度是否小于TARGET剩余缓冲区大小;是则正常发送,并更新TARGET剩余缓冲区大小为当前的TARGET剩余缓冲区大小减去此消息长度;否则HOST等待TARGET剩余缓冲区大小大于消息长度时再进行发送;
五、TARGET接收消息到缓冲区,并从缓冲区取消息进行处理,处理完之后更新已处理消息长度为TARGET剩余缓冲区大小加此消息长度,当TARGET剩余缓冲区大小大于缓冲区总长度的1/4 时,TARGET发送消息通知HOST其缓冲区大小发生变化;
六、HOST收到缓冲区大小发生变化的消息后,修正其记录的TARGET剩余缓冲区大小,此时如果有HOST的线程正在等待TARGET剩余缓冲区大小变足够,那么在其等到时继续发送消息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810039627.6A CN110048958A (zh) | 2018-01-16 | 2018-01-16 | 一种系统间消息流传输的缓冲区控制方法 |
PCT/CN2018/078201 WO2019140757A1 (zh) | 2018-01-16 | 2018-03-07 | 一种系统间消息流传输的缓冲区控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810039627.6A CN110048958A (zh) | 2018-01-16 | 2018-01-16 | 一种系统间消息流传输的缓冲区控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110048958A true CN110048958A (zh) | 2019-07-23 |
Family
ID=67273549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810039627.6A Pending CN110048958A (zh) | 2018-01-16 | 2018-01-16 | 一种系统间消息流传输的缓冲区控制方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110048958A (zh) |
WO (1) | WO2019140757A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389032B1 (en) * | 1999-02-11 | 2002-05-14 | International Business Machines Corporation | Internet voice transmission |
CN1836410A (zh) * | 2003-08-20 | 2006-09-20 | 日本电气株式会社 | 会话中继设备和中继方法 |
CN1859318A (zh) * | 2005-12-30 | 2006-11-08 | 华为技术有限公司 | 消息传输系统及其消息缓冲装置及方法 |
CN101540769A (zh) * | 2008-03-19 | 2009-09-23 | 索尼株式会社 | 信息处理单元、客户端设备、信息处理方法和系统 |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
CN102508812A (zh) * | 2011-11-30 | 2012-06-20 | 上海大学 | 一种基于spi总线的双处理器通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013044438A1 (zh) * | 2011-09-26 | 2013-04-04 | 中兴通讯股份有限公司 | 一种拥塞避免方法及装置 |
-
2018
- 2018-01-16 CN CN201810039627.6A patent/CN110048958A/zh active Pending
- 2018-03-07 WO PCT/CN2018/078201 patent/WO2019140757A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389032B1 (en) * | 1999-02-11 | 2002-05-14 | International Business Machines Corporation | Internet voice transmission |
CN1836410A (zh) * | 2003-08-20 | 2006-09-20 | 日本电气株式会社 | 会话中继设备和中继方法 |
CN1859318A (zh) * | 2005-12-30 | 2006-11-08 | 华为技术有限公司 | 消息传输系统及其消息缓冲装置及方法 |
CN101540769A (zh) * | 2008-03-19 | 2009-09-23 | 索尼株式会社 | 信息处理单元、客户端设备、信息处理方法和系统 |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
CN102508812A (zh) * | 2011-11-30 | 2012-06-20 | 上海大学 | 一种基于spi总线的双处理器通信方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019140757A1 (zh) | 2019-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043804B2 (en) | Parallel computer system and program | |
JP5138608B2 (ja) | 低電力無線ネットワーク上のフィールドデバイスの制御 | |
CN111488202B (zh) | 多链系统的事务处理方法、装置、设备、系统和介质 | |
US20160359736A1 (en) | Data Packet Forwarding Method, Apparatus, and System | |
CA2313715A1 (en) | Enhanced network monitor system for automated banking machines | |
WO2006006084A8 (en) | Establishing command order in an out of order dma command queue | |
EP3255553A1 (en) | Transmission control method and device for direct memory access | |
EP3514690A1 (en) | Non-volatile memory persistence method and computing device | |
EP3377432B1 (en) | A method and an apparatus for determining an allocation decision for at least one elevator | |
US8726288B2 (en) | Improving data processing efficiency based on data behavior type | |
EP2157488A3 (en) | Systems and methods for simulating plant operations | |
CN106027341A (zh) | 一种智能家居设备的控制方法 | |
CN104965798A (zh) | 一种数据处理方法、相关设备以及系统 | |
US10747550B2 (en) | Method, terminal and storage medium for starting software | |
US10305772B2 (en) | Using a single work item to send multiple messages | |
CN110048958A (zh) | 一种系统间消息流传输的缓冲区控制方法 | |
CN110913423A (zh) | 终端可达性识别方法、数据传送方法、装置和存储介质 | |
EP3678340A1 (en) | Software-defined network setting method, controller, switch, and storage medium | |
CN103034480B (zh) | 一种嵌入式系统定时器实现方法 | |
CN105262604A (zh) | 虚拟机迁移方法及设备 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
JP2006245882A (ja) | 送信タイミング制御装置 | |
CN109491331A (zh) | 控制系统、副控制装置及控制方法 | |
CN109547277A (zh) | 数据传输的限速方法、系统、设备、计算机可读存储介质 | |
CN104731747A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190723 |