CN101145968B - 网管***和传输设备间数据发送及接收方法 - Google Patents

网管***和传输设备间数据发送及接收方法 Download PDF

Info

Publication number
CN101145968B
CN101145968B CN2007101401042A CN200710140104A CN101145968B CN 101145968 B CN101145968 B CN 101145968B CN 2007101401042 A CN2007101401042 A CN 2007101401042A CN 200710140104 A CN200710140104 A CN 200710140104A CN 101145968 B CN101145968 B CN 101145968B
Authority
CN
China
Prior art keywords
data
transmission
ram
task
message
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
Application number
CN2007101401042A
Other languages
English (en)
Other versions
CN101145968A (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 CN2007101401042A priority Critical patent/CN101145968B/zh
Publication of CN101145968A publication Critical patent/CN101145968A/zh
Application granted granted Critical
Publication of CN101145968B publication Critical patent/CN101145968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

本发明提出一种网管***发送数据到传输设备的方法,包含如下步骤:(a)发送任务从发送队列获取消息,将所述消息数据放入发送缓冲区中;(b)当下行随机存取存储器RAM需要写数据,且发送缓冲区不空时,发送任务从发送缓冲区中取出消息数据,写入下行RAM中。本发明还提出一种网管***从传输设备接收数据的方法,传输设备上传数据至上行RAM,产生中断信号,接收任务收到中断信号后,从上行RAM中读取数据。

Description

网管***和传输设备间数据发送及接收方法 
技术领域
本发明涉及网管***主控单板和传输设备的业务单板之间大数据量数据的发送和接收传输方法。 
背景技术
现有网管的层次结构中,板间通讯口是处于网管***和传输设备间的接口,如图1所示。 
单板间大量数据可靠高效传输机制是由一些模块组成的,包括发送任务、接收任务、分组包任务、定时任务等任务,以及发送队列,此外还包括发送缓冲区和接收缓冲区等两个缓冲区。 
在现有的通讯机制中,因为效率的原因,不能使用复杂的通讯协议,但是又要充分保证通讯的可靠行。所以怎么实现简单高效,但是可靠性强的协议和通讯机制成为目前急需解决的课题。 
另外,因为单板业务种类不断增多,数据量成倍增加,由于以前网管和传输设备之间没有统一的分包机制,导致每加一块新的单板,都要做一次分包处理,大大增加了工作代价,网管***和传输设备之间的通讯效率急待改进。 
发明内容
本发明要解决的技术问题是提供一种网管***和传输设备间简单高效、可靠性强的数据传输方法。 
为了解决上述技术问题,本发明提出了一种网管***发送数据到传输设备的方法,包含如下步骤: 
(a)发送任务从发送队列获取消息数据,将所述消息数据放入发送缓 冲区中; 
(b)当下行随机存取存储器RAM需要写数据,且发送缓冲区不空时,发送任务从发送缓冲区中取出消息数据,写入下行RAM中;传输设备收到网管***发送的所有消息数据后,向网管***发送一成功报文;如果网管***在指定时间内没有收到所述成功报文,则判断发送失败,重新进行消息数据的发送,重新发送消息数据的次数达到指定次数时,终结当前发送过程。 
进一步地,上述方法还可具有以下特点,所述步骤(b)中,发送任务从所述发送缓冲区取出消息数据后,判断是否需要分包,如果是,将所述消息数据进行分包,将分包后的发送数据写入下行RAM中。 
进一步地,上述方法还可具有以下特点,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明当前下行RAM需要写数据或下行RAM数据已被正确读取,则释放上一次写入RAM的消息数据,将消息数据写入下行RAM后置发送次数为1。 
进一步地,上述方法还可具有以下特点,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明下行RAM中的数据还未被读取,发送次数加1,并判断发送次数是否已达到最大发送次数,如果是,置发送次数为0,释放上一次写入RAM中的消息数据。 
进一步地,上述方法还可具有以下特点,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明被读取的数据校验出错,则再次写入上一次写入下行RAM的消息数据,发送次数加1,并判断发送次数是否已达到最大发送次数,如果是,置发送次数为0,释放本次写入RAM中的消息数据。 
进一步地,上述方法还可具有以下特点,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明读下行数据出错,则发送次数加1,并判断发送次数是否已达到最大发送次数,如果是,置发送次数为0,释放上一次写入RAM中的消息数据。 
一种网管***从传输设备接收数据的方法,传输设备上传数据至上行双口RAM,产生中断信号,接收任务收到中断信号;接收任务获取上行双口 RAM控制权成功时,从上行双口RAM取数据至接收缓冲区。 
进一步地,上述方法还可具有以下特点,所述接收任务收到一组分包数据时,对所述分包数据按照分包数据的序列号进行组包处理。 
进一步地,上述方法还可具有以下特点,接收任务设置一定时器,接收任务接收分包数据时,将收到的分包数据缓存,设置同组分包数据中未收到的分包数据的序列号最小的包为预期包,当预期包发生改变时定时器复位,如果定时器超时还未收到预期包,接收任务终止当前接收进程。 
本发明提出的传输方法,保证了板间大数据量通讯的可靠性和高效性。其中,本发明通过发送缓冲区和双口RAM控制字,实现通讯的流量控制和丢失报文重发功能,保证了通讯的可靠性;通过通讯口统一分包组包实现了大数据传输对业务层透明;在接收单板大量数据时,用中断方式,保证数据传输的速度,实现了通讯的高效性;在接收端组包时采用乱序数据报缓冲机制和超时要求单板重发,保证了可靠性。 
附图说明
图1板间通讯示意图; 
图2单板间大数据量通讯机制; 
图3本发明发送数据流程图; 
图4本发明从缓冲区到双口RAM写数据处理流程图。 
具体实施方式
本发明设计了一个具备流量控制和重传机制的板间通讯子***,通过这个子***能够保证板间大数据量通讯的可靠性和高效性。如图2所示,所述通讯口通讯模块包含如下模块:发送任务单元,接收任务单元,分组包任务单元,定时任务单元,以及发送队列,此外还包括发送缓冲区和接收缓冲区两个缓冲区,下行RAM(随机存取存储器)和上行RAM,其中上行RAM和下行RAM可以使用一个双口RAM。 
发送任务在发送队列、发送缓冲区、下行RAM三者之间进行轮询,利 用缓冲机制实现流量控制和简单重传功能。 
本发明从网管***到传输设备之间的发送数据流程描述如图3所示,具体包含如下步骤: 
步骤310,网管代理上层业务处理模块把下发消息数据发给发送队列,发送队列接收消息数据; 
步骤320,发送任务单元定时从发送队列获取消息数据,并将所获得的消息数据放入发送缓冲区; 
当发送队列有消息且发送缓冲区不满,发送任务单元就从发送队列中取出消息数据,放到发送缓冲区中。 
步骤330,发送缓冲区非空,获取下行双口RAM控制权,如果失败,则返回;否则,根据当前下行RAM读写控制字状态,分别进行下述处理: 
1)如果当前需要写新数据,则写新数据至下行RAM,并置发送次数为1; 
2)主控单板已经正确读取数据,则释放原有消息;如果发送缓冲区不空,则写新数据至下行RAM,并将发送次数置1,否则置0; 
3)如果主控单板还没有读数据,则发送次数加1;如果发送次数已经达到最大值,则置发送次数为0,并释放消息; 
4)如果主控单板读数据校验出错,则重新写一遍上一次写入的消息,发送次数加1;如果发送次数已经达到最值,则置发送次数为0,并释放消息; 
5)如果主控单板读数据出错,则发送次数加1;如果发送次数已经达到最值,则置发送次数为0,并释放消息。 
步骤340,当步骤330中判断需要写数据(如下行RAM数据被成功读取),且发送缓冲区不空,则发送任务从发送缓冲区取出消息数据,判断是否需要分包,如果需要,转入步骤360,否则,转入步骤370; 
步骤360,将所取出的消息数据进行分包处理,转入步骤370, 
步骤370,将分包数据写入下行RAM中,返回310。 
对于发送任务在收到大报文后分包下发,当单板接收端成功接收到所有分包报文后,应当向发送端发送一成功报文;发送端在发送完成之后随即启动一计时器,如果计时器超时仍然没有收到接收端上报的成功消息,那么判定为发送失败而重新开始分包发送过程。为了避免可能的无限循环发送,连续启动指定次数(如三次)重发机制后仍然不能成功则终结当前发送进程(归为通讯层的内部处理,不需要向网管上报命令失败消息)。 
本发明提出的网管***从传输设备接收数据的方法,从上行双口RAM到接收缓冲区采取中断方式,具体流程如下: 
步骤410,接收任务单元收到中断信号; 
传输设备上传数据至上行RAM,产生中断信号,接收任务单元收到中断信号; 
步骤420,接收任务单元获取上行双口RAM控制权,如果失败,则直接返回;否则,从上行双口RAM取数据至接收缓冲区; 
步骤430,如果取数据没有成功,则直接返回; 
步骤440,释放上行双口RAM控制权; 
步骤450,释放取出来的数据。 
其中,步骤420中,涉及到接收组包处理,具体如下: 
1)计算一共取到了多少个消息,当接收端在接收到一组多包报文后,应当依照收到数据中的序列号(报文头中)来进行报文合并。如果接收端收到的数据包没有严格按照正确的顺序,等待下一预期的数据包,以实现数据包的序列顺序恢复处理。 
2)为了避免可能出现的对预期包的无限等待,需要对当前接收进程设置一计时器,在计时器超时前缓存所有收到的属于当前大包的子包,期间预期包始终保持为还未收到的子包中序号最小的包,计时器不作复位处理;当预期包发生改变时计时器重新复位。如果计时器超时仍然没有收到预期包,那么接收端立即判定接收失败,结束当前接收进程(包括释放接收缓冲区)。不需要向发送端返回一接收失败报文以达到中止发送端继续发送的目的,因 为实际情况是当接收端通过计时器判定失败之前,发送端已经全部发送完毕了,所以此时的失败报文将没意义。 
实施例: 
图2中是一个完整的发送和接收数据的流程。 
1.当有大量数据下发时,发送任务定时从发送队列获取消息,并将数据放入发送缓冲区。当下行RAM中数据已被成功读取且发送缓冲区不空,则发送任务从缓冲区取出多条消息数据,如果是大包消息数据则启动分包机制,然后将消息数据写入下行RAM中。利用缓冲机制实现流量控制,如出现丢包或发送失败则启动简单重传功能,采取轮询方式。如图4所示。 
2.当传输设备有大量数据上传,则采取中断方式从上行双口RAM到接收缓冲区。如果是分包数据则进行组包处理。 

Claims (8)

1.一种网管***发送数据到传输设备的方法,其特征在于,包含如下步骤:
(a)发送任务从发送队列获取消息数据,将所述消息数据放入发送缓冲区中;
(b)当下行随机存取存储器RAM需要写数据,且发送缓冲区不空时,发送任务从发送缓冲区中取出消息数据,写入下行RAM中;传输设备收到网管***发送的所有消息数据后,向网管***发送一成功报文;如果网管***在指定时间内没有收到所述成功报文,则判断发送失败,重新进行消息数据的发送,重新发送消息数据的次数达到指定次数时,终结当前发送过程。
2.如权利要求1所述的方法,其特征在于,所述步骤(b)中,发送任务从所述发送缓冲区取出消息数据后,判断是否需要分包,如果是,将所述消息数据进行分包,将分包后的发送数据写入下行RAM中。
3.如权利要求1所述的方法,其特征在于,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明当前下行RAM需要写数据或下行RAM数据已被正确读取,则释放上一次写入RAM的消息数据,将消息数据写入下行RAM后置发送次数为1。
4.如权利要求1所述的方法,其特征在于,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明下行RAM中的数据还未被读取,发送次数加1,并判断发送次数是否已达到最大发送次数,如果是,置发送次数为0,释放上一次写入RAM中的消息数据。
5.如权利要求1所述的方法,其特征在于,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明被读取的数据校验出错,则再次写入上一次写入下行RAM的消息数据,发送次数加1,并判断发送次数是否已达到最大发送次数,如果是,置发送次数为0,释放本次写入RAM中的消息数据。
6.如权利要求1所述的方法,其特征在于,所述步骤(b)中,发送任务首先读取下行RAM的控制字,如果所述控制字表明读下行数据出错,则发送次数加1,并判断发送次数是否已达到最大发送次数,如果是,置发送次数为0,释放上一次写入RAM中的消息数据。
7.一种网管***从传输设备接收数据的方法,其特征在于,传输设备上传数据至上行双口RAM,产生中断信号,接收任务收到中断信号;接收任务获取上行双口RAM控制权,如果失败,则直接返回;否则,从上行双口RAM取数据至接收缓冲区;
所述接收任务收到一组分包数据时,对所述分包数据按照分包数据的序列号进行组包处理。
8.如权利要求7所述的方法,其特征在于,接收任务设置一定时器,接收任务接收分包数据时,将收到的分包数据缓存,设置同组分包数据中未收到的分包数据的序列号最小的包为预期包,当预期包发生改变时定时器复位,如果定时器超时还未收到预期包,接收任务终止当前接收进程。
CN2007101401042A 2007-08-02 2007-08-02 网管***和传输设备间数据发送及接收方法 Active CN101145968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101401042A CN101145968B (zh) 2007-08-02 2007-08-02 网管***和传输设备间数据发送及接收方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101401042A CN101145968B (zh) 2007-08-02 2007-08-02 网管***和传输设备间数据发送及接收方法

Publications (2)

Publication Number Publication Date
CN101145968A CN101145968A (zh) 2008-03-19
CN101145968B true CN101145968B (zh) 2011-01-05

Family

ID=39208282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101401042A Active CN101145968B (zh) 2007-08-02 2007-08-02 网管***和传输设备间数据发送及接收方法

Country Status (1)

Country Link
CN (1) CN101145968B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984086B (zh) * 2012-11-29 2015-10-28 迈普通信技术股份有限公司 数据通信中的数据发送方法和装置
CN105138410A (zh) * 2015-08-31 2015-12-09 北京锐安科技有限公司 一种基于磁盘缓存的消息队列的实现方法及装置
CN108737180A (zh) * 2018-05-22 2018-11-02 北京汉能光伏投资有限公司 数据采集方法、数据发送方法、数据采集设备及网络设备
CN112511573B (zh) * 2021-02-08 2021-05-11 全时云商务服务股份有限公司 一种udp数据包的传输控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2000-78243A 2000.03.14

Also Published As

Publication number Publication date
CN101145968A (zh) 2008-03-19

Similar Documents

Publication Publication Date Title
CN101179790B (zh) 一种移动终端处理器之间的串口通信方法
CN107087033B (zh) 消息推送方法、装置、存储介质及计算机设备
CN101047484B (zh) 一种传输层重传方法和***
CN109981480A (zh) 一种数据传输方法及第一设备
CN101079811B (zh) 飞机与地面***数据传输方法及***
CN111083161A (zh) 数据传输的处理方法及装置、物联网设备
CN101340268B (zh) 节点间通信确认机制的实现方法和实现***
CN105245271B (zh) 卫星通信网络加速装置以及方法
CN100454813C (zh) 一种计算机和移动终端之间数据文件传输的方法
CN102710758A (zh) 一种基于单片机***的数据流断点续传方法
CN106452833B (zh) 一种rtu多协议动态加载的数据传输方法
CN109547162B (zh) 基于两套单向边界的数据通信方法
CN103973421A (zh) 文件传送方法及装置
CN101145968B (zh) 网管***和传输设备间数据发送及接收方法
WO2011137640A1 (zh) 文件传输方法、文件发送装置和文件接收装置
CN112769939B (zh) 一种用于实时通讯的大数据可靠传输方法
CN110460412A (zh) 用于数据传输的方法和rdma网卡
CN103188059A (zh) 快速通道互联***中数据包重传方法、装置和***
CN112261142B (zh) 一种rdma网络的数据重传方法、装置及fpga
CN101605128A (zh) Linux主从设备通过以太网接口进行通信的方法
CN105933453A (zh) 一种传输数据的方法和***
CN100442755C (zh) 一种保证通用路由封装隧道传输可靠的方法
CN108737397B (zh) 一种实现路由器中业务与协议栈之间数据交互的方法
CN101951327B (zh) 一种iSCSI网络***以及检测网络故障的方法
WO2024131009A1 (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