[go: up one dir, main page]

CN100438438C - 一种网络实体接口状态维护的方法 - Google Patents

一种网络实体接口状态维护的方法 Download PDF

Info

Publication number
CN100438438C
CN100438438C CNB2006100337078A CN200610033707A CN100438438C CN 100438438 C CN100438438 C CN 100438438C CN B2006100337078 A CNB2006100337078 A CN B2006100337078A CN 200610033707 A CN200610033707 A CN 200610033707A CN 100438438 C CN100438438 C CN 100438438C
Authority
CN
China
Prior art keywords
connection
journey
sequence number
take
hair line
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.)
Expired - Fee Related
Application number
CNB2006100337078A
Other languages
English (en)
Other versions
CN1863091A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2006100337078A priority Critical patent/CN100438438C/zh
Publication of CN1863091A publication Critical patent/CN1863091A/zh
Application granted granted Critical
Publication of CN100438438C publication Critical patent/CN100438438C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种网络实体接口状态维护的方法,该方法包括:收线程及发线程在重建连接时对接口状态的切换进行记录,收线程在检测到网络连接异常时,若当前的序列号与记录的序列号相同,重新建立连接;若不同,不重新建立连接。设置对状态切换进行标识的序列号,收线程及发线程在重建连接时修改该序列号。收线程在检测到网络连接异常时,判断当前的序列号与记录的序列号是否相同,若相同,则重建连接。发线程在检测到网络连接异常时,判断当前的序列号与记录的序列号是否相同,若相同,则重建连接。本发明实现了根据接口状态的切换记录判断是否重建连接,从而可有效避免接口状态的无谓迁移,并可节约系统资源,提高系统效率和可靠性。

Description

一种网络实体接口状态维护的方法
技术领域
本发明涉及一种网络实体接口状态维护的方法,尤其是一种网络实体接口通过收线程和发线程维护接口连接状态的方法。
背景技术
在网络实体互联时,通常通过套接字(socket)的输入输出流进行数据交换。端设备通过输出流发送数据到对端,通过输入流读取对端发来的数据,由于需要对输入输出两个方向的数据分别处理,一般的设备会分不同线程来实现上述两种操作,在收、发线程中同时维护连接的状态。
收线程则等待读取对端数据,当网络连接异常时,收线程会检测到连接异常,从而进行状态的迁移和维护。如图1所示,为现有技术中收线程在连接异常时进行状态维护的方法流程图,包括如下步骤:
步骤11、收线程重建连接,在重建连接的过程中,进行连接状态变更;
步骤12、收线程等待读取数据,有数据则读取并解析。
发线程负责在应用层有数据发送到对端时,检测连接状态,若连接状态正常,则发送数据,若连接状态异常,重新建立连接发送数据。如图2所示,为现有技术中发线程发送数据的方法流程图,包括如下步骤:
步骤21、发线程在发送数据前,检测网络连接状态;
步骤22、发线程判断网络连接是否异常,若异常,执行步骤23,否则,执行步骤24;
步骤23、发线程重建连接,在重建连接的过程中,进行连接状态变更;
步骤24、发线程发送数据,若在发送数据过程中网络连接异常,执行步骤23。
网络接口通过收线程和发线程接收和发送数据,收发线程共同维护连接状态,当发生网络异常时,各线程同步维护连接状态。
在一般情况下,网络发生异常时,收线程最先检测到错误,并恢复物理连接,保证在发线程发送数据时,网络连接是正常的。但在极少数情况下,网络正好在发送数据时发生异常,此时发线程检测到网络异常后,为了保证数据发送的可靠性,会重新建立物理连接发送数据,与此同时,收线程也会发现网络异常,于是在发线程重建物理连接的过程中,收线程可能也去完成这个重建动作,两边都在维护连接状态,造成状态被重复迁移。例如,在步骤21中发线程检测到网络连接状态正常,而执行步骤24中,网络连接发生异常,此时,发线程和收线程都会检测到网络连接异常,发线程会执行步骤23,重新建立连接,而收线程会执行11,重新建立连接,于是会出现重复建连接的情况,而实际上只需要发线程建立连接就可以了。虽然这种重复建立连接对发送接收数据功能没有影响,但无谓地耗费了系统性能。
发明内容
本发明的目的在于针对现有技术中,在多线程同时维护网络实体的连接状态时,可能出现的一次连接异常导致多次状态迁移的问题,提供一种网络实体接口状态维护的方法,避免状态的无谓迁移,节约系统资源,提高系统效率和可靠性。
为了实现上述目的,本发明提供了一种网络实体接口状态维护的方法,该方法包括:收线程及发线程在重建连接时对接口状态的切换进行记录,收线程在检测到网络连接异常时,若当前的序列号与记录的序列号相同,重新建立连接;若不同,不重新建立连接。
可设置一对状态切换进行标识的序列号,收线程及发线程在重建连接时,通过修改该序列号来记录接口状态的切换。修改序列号可为:将序列号递增或将序列号设置为一随机产生的值。
所述的收线程在检测到网络连接异常时,根据切换记录判断是否需要重建连接的步骤具体为:收线程检测到网络连接异常时,判断当前的序列号与记录的序列号是否相同,若相同,则需要重建连接,若不同,则不需重建连接。
本方法还包括:所述的发线程在检测到网络连接异常时,根据切换记录判断是否需要重建连接。该步骤具体为:发线程检测到网络连接异常时,判断当前的序列号与记录的序列号是否相同,若相同,则需要重建连接,若不同,则不需重建连接。
本发明实现了根据接口状态的切换记录判断是否重建连接,从而可有效避免接口状态的无谓迁移,并可节约系统资源,提高系统效率和可靠性。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有技术中收线程在连接异常时进行状态维护的方法流程图;
图2为现有技术中发线程发送数据的方法流程图;
图3为本发明的收线程在连接异常时进行状态维护的方法流程图;
图4为本发明的发线程发送数据流程图;
图5为本发明的发线程在连接异常时根据序列号进行状态维护的方法流程图。
具体实施方式
在网络实体接口状态维护时,重建连接的过程是不可重入的,也就是说当收线程重建连接时,发线程无法重建连接,而当发线程重建连接时,收线程也无法进入重建连接的过程。因此,可对接口状态的切换进行记录,实现线程间接口状态的同步,避免无谓的状态迁移。
在维护网络接口的状态时,一般是通过特定的数值、对象等形式来表示某个状态,不论网络接口的状态以何种方式表示,都可以在这个表示方法上增加一个纬度,用于对状态切换进行记录。例如,当某系统通过数值来表示一个网络接口的状态时:STATUS=0表示初始化;STATUS=1表示连接状态;STATUS=2表示断开状态,增加切换记录的状态可以通过一维数组STATUS[]表示,STATUS[0]为状态值,STATUS[1]为状态的切换记录;当某系统通过对象来表示状态时:STATUS.STATE=INIT表示初始化;STATUS.STATE=CONNECTED表示连接状态;STATUS.STATE=DISCONNECTED表示断开状态,那么,可以在STATUS中增加成员STATUS.SEQUENCEID来记录状态的切换。
切换记录可以序列号表示。序列号可为通过整数或可以转换成数字的字符串表示,当连接状态进行切换时,修改序列号并记录到状态中。序列号的修改可以为序列号递增,或者为将序列号设置为一随机产生的值。切换记录也可通过其他方式表示,只要保证在状态切换时,能将切换记录修改为与当前记录不同的值即可。
下面对根据序列号进行接口状态维护的方法进行详细说明。
如图3所示,为收线程在连接异常时进行状态维护的方法流程图,执行以下步骤:
步骤101、当连接异常时,收线程判断当前的序列号是否与记录的发生异常前的序列号相同,若相同,执行步骤102,否则,执行步骤103;
如果相同,说明发线程没有重建连接,状态没有迁移,所以收线程需要执行重建连接的步骤。如果不同,说明发线程已经重新建立连接,因此,收线程不需重建连接。
步骤102、收线程重建连接,进行连接状态变更,并修改序列号;
序列号的修改可以为递增,或是设置为一随机生成的值。
步骤103、收线程进入等待读数据状态,并记录当前的序列号;
步骤104、收线程等待读数据,有数据则读取并解析;
如图4所示,为发线程发送数据流程图,在有数据需要发送时,发线程执行以下步骤:
步骤201、发线程检测连接状态;
步骤202、发线程判断连接是否异常,若异常,执行步骤203,否则,执行步骤204;
步骤203、发线程重建连接,进行连接状态变更,并修改序列号;
步骤204、发线程发送数据。
由于收线程一直阻塞等待接受数据,一旦连接发生异常,大部分情况都是收线程最先发现,并且将连接重新建立成功。因此,发线程在发送数据时,大部分情况下连接是正常的,只有极少的情况下,在发送消息的时刻,连接发生异常,发送线程才能感知连接异常,经过测试,在这种情况下一般都是发线程最先将连接建好。但是,如果是收线程先建好,那么还会发生状态的无谓迁移,因此,可在发线程也加入对序列号的判断,从而,能更为有效地避免状态的无谓迁移。
如图5所示,为发线程在连接异常时根据序列号进行状态维护的方法流程图。发线程在数据需要发送时,若遇到连接异常的情况,执行以下步骤:
步骤301、发线程判断当前的序列号是否与发生异常前记录的序列号相同,若相同,执行步骤302,否则,执行步骤303;
如果相同,说明收线程没有重建连接,状态没有迁移,所以发线程需要执行重建连接的步骤。如果不同,说明收线程已经重新建立连接,因此,发线程不需重建连接。
步骤302、发线程重建连接,进行连接状态变更,修改序列号并记录;
步骤303、发线程发送数据。
本发明可以根据状态序列号来进行线程间的通信,判断出多余的状态迁移情况,避免不必要的消耗,从而提高系统效率和可靠性。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解,依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (7)

1、一种网络实体接口状态维护的方法,其特征在于,该方法包括:收线程及发线程在重建连接时对接口状态的切换进行记录,收线程在检测到网络连接异常时,若当前的序列号与记录的序列号相同,重新建立连接;若不同,不重新建立连接。
2、根据权利要求1所述的方法,其特征在于,设置对状态切换进行标识的序列号,所述的收线程及发线程在重建连接时对接口状态的切换进行记录的步骤具体为:收线程及发线程在重建连接时修改该序列号。
3、根据权利要求2所述的方法,其特征在于,所述的修改序列号的步骤具体为:将序列号递增。
4、根据权利要求2所述的方法,其特征在于,所述的修改序列号的步骤具体为:将序列号设置为一随机产生的值。
5、根据权利要求2至4任一所述的方法,其特征在于,所述的收线程在检测到网络连接异常时,根据切换记录判断是否需要重建连接的步骤具体为:收线程检测到网络连接异常时,判断当前的序列号与记录的序列号是否相同,若相同,则需要重建连接,若不同,则不需重建连接。
6、根据权利要求5所述的方法,其特征在于,该方法还包括:所述的发线程在检测到网络连接异常时,根据切换记录判断是否需要重建连接。
7、根据权利要求6所述的方法,其特征在于,所述的发线程在检测到网络连接异常时,根据切换记录判断是否需要重建连接的步骤具体为:发线程检测到网络连接异常时,判断当前的序列号与记录的序列号是否相同,若相同,则需要重建连接,若不同,则不需重建连接。
CNB2006100337078A 2006-02-15 2006-02-15 一种网络实体接口状态维护的方法 Expired - Fee Related CN100438438C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100337078A CN100438438C (zh) 2006-02-15 2006-02-15 一种网络实体接口状态维护的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100337078A CN100438438C (zh) 2006-02-15 2006-02-15 一种网络实体接口状态维护的方法

Publications (2)

Publication Number Publication Date
CN1863091A CN1863091A (zh) 2006-11-15
CN100438438C true CN100438438C (zh) 2008-11-26

Family

ID=37390424

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100337078A Expired - Fee Related CN100438438C (zh) 2006-02-15 2006-02-15 一种网络实体接口状态维护的方法

Country Status (1)

Country Link
CN (1) CN100438438C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111419B (zh) * 2011-03-07 2014-06-25 浙江大学 一种基于消息中间件的客户端自动重连方法
CN104836683B (zh) * 2015-04-01 2018-06-05 上海大唐移动通信设备有限公司 一种线程重连的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003085A1 (en) * 2002-06-26 2004-01-01 Joseph Paul G. Active application socket management
CN1725757A (zh) * 2004-07-21 2006-01-25 三星电子株式会社 管理和检查套接字连接

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003085A1 (en) * 2002-06-26 2004-01-01 Joseph Paul G. Active application socket management
CN1725757A (zh) * 2004-07-21 2006-01-25 三星电子株式会社 管理和检查套接字连接

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
Unix套接口编程中的核心概念分析. 杜智华.新疆师范大学学报(自然科学版),第19卷第4期. 2000
Unix套接口编程中的核心概念分析. 杜智华.新疆师范大学学报(自然科学版),第19卷第4期. 2000 *
一种带有断开恢复功能的Socket通信方法. 薛海强,苏森.计算机应用研究,第10期. 2005
一种带有断开恢复功能的Socket通信方法. 薛海强,苏森.计算机应用研究,第10期. 2005 *
基于SOCKET 编程接口的网络通信. 李德水.渭南师范学院学报,第20卷第2期. 2005
基于SOCKET 编程接口的网络通信. 李德水.渭南师范学院学报,第20卷第2期. 2005 *
网络通信接口--Windows Socket 及其应用. 李南方.武钢职工大学学报,第12卷第1期. 2000
网络通信接口--Windows Socket 及其应用. 李南方.武钢职工大学学报,第12卷第1期. 2000 *
进程迁移中套接字迁移的研究与实现. 刘畅.重庆师范大学学报(自然科学版),第21卷第2期. 2004
进程迁移中套接字迁移的研究与实现. 刘畅.重庆师范大学学报(自然科学版),第21卷第2期. 2004 *

Also Published As

Publication number Publication date
CN1863091A (zh) 2006-11-15

Similar Documents

Publication Publication Date Title
CN102629225B (zh) 双控制器磁盘阵列、存储系统以及数据存储路径切换方法
US6516952B1 (en) Dual mode serializer-deserializer for data networks
CN1909559B (zh) 基于快速外围组件互连的接口板及其切换主控板的方法
CN101645915B (zh) 一种磁盘阵列主机通道子卡、在线切换系统及其切换方法
CN105406998A (zh) 基于fpga的双冗余千兆以太网介质访问控制器ip核
TW200809521A (en) Fault-isolating SAS expander
US20070214248A1 (en) Network management method, program, and system
CN101661454A (zh) 一种可动态重构的高速串行总线系统及控制方法
JPS58147260A (ja) 通信システム
CN101160794A (zh) 一种智能网业务控制设备容灾系统和方法
CN104410510A (zh) 通过接口卡传输信息、控制器故障处理方法、装置及系统
CN117478227B (zh) 一种高速光通信连接器和服务器
CN101009542B (zh) 一种数据网络节点设备端口的扩展装置
CN100438438C (zh) 一种网络实体接口状态维护的方法
CN101488105B (zh) 实现存储双控制器高可用性的方法及存储双控制器系统
JPH08507417A (ja) 制御可能な物理接続管理状態マシーン・ユーザ・インターフェース
CN102244589A (zh) 处理虚拟交换单元系统中链路故障的方法及对端设备
CN100495982C (zh) 在通信环境中实现故障切换的方法和系统
CN118606117A (zh) 一种四控互联镜像系统、数据传输方法、设备和介质
CN109561032A (zh) 一种交换机模块及包括其的交换机
CN102495815B (zh) I/o数据访问中断的处理方法和系统以及设备
CN102393791B (zh) 用于对硬件模块实现供电控制的装置及方法
CN101686119A (zh) 单板间通信的方法、装置、以及系统
US7512190B2 (en) Data transmission apparatus using asynchronous dual-rail bus and method therefor
CN110377238A (zh) 一种存储系统及其数据传输方法、装置和NVMe控制框

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081126

Termination date: 20130215