CN105577468B - 一种机载网络服务的tcp连接处理方法 - Google Patents

一种机载网络服务的tcp连接处理方法 Download PDF

Info

Publication number
CN105577468B
CN105577468B CN201510918133.1A CN201510918133A CN105577468B CN 105577468 B CN105577468 B CN 105577468B CN 201510918133 A CN201510918133 A CN 201510918133A CN 105577468 B CN105577468 B CN 105577468B
Authority
CN
China
Prior art keywords
tcp connection
tcpmannode
tcp
tcpmantable
connection
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
CN201510918133.1A
Other languages
English (en)
Other versions
CN105577468A (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.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
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 Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201510918133.1A priority Critical patent/CN105577468B/zh
Publication of CN105577468A publication Critical patent/CN105577468A/zh
Application granted granted Critical
Publication of CN105577468B publication Critical patent/CN105577468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

本发明是一种机载网络服务的TCP连接处理方法,包括以下步骤:1)建立TCP连接和消息收发模块;包括TCP监听连接、TCP连接建立和TCP消息收发的功能;2)建立TCP连接管理模块;提供对TCP连接管理表的管理功能;3)建立TCP连接监控模块;提供对TCP连接管理模块中创建的TCP连接管理表的监控,对于TCP连接空闲超时的连接和异常的连接进行处理。本发明提出了一种机载网络服务的TCP连接处理方法,用于在机载网络TCP服务系统,对来自外部的TCP连接进行消息处理和监控管理,确保TCP连接在机载嵌入式系统的可承载范围。

Description

一种机载网络服务的TCP连接处理方法
技术领域
本发明属于计算机软件-系统领域,尤其涉及一种机载网络服务的TCP连接处理方法。
背景技术
随着信息技术在民用航空电子系统中的大量应用,为了向飞机使用者(如飞机运营商、飞行员、维护人员等)提供更多、更便利的服务,引入了由不同平台组成的、由以太网网络构建的机载网络服务系统,形成一个空地一体的开放的环境。ARINC821(AircraftNetwork Server System(NSS)Functional Definition)中定义了机载网络服务系统的具体功能,并且采用TCP协议作为数据传输的协议。机载网络应用程序采用TCP协议传输数据时,由于TCP是长连接,而且TCP连接数是有限的,如果不采取措施保护正常的TCP连接和处理长时间空闲的TCP连接,会造成TCP连接资源的浪费;如果恶意用户发起许多TCP连接,建立连接之后,长时间的不关闭连接,超出了TCP连接的最大数目,形成大量的僵尸TCP连接,将可能导致后续的正常应用的TCP连接不能建立,保证不了机载网络应用的正常工作。
解决机载网络服务的TCP长耗时空闲连接和僵尸连接是机载应用服务的重要问题之一。一种高性能的嵌入式系统的TCP消息处理方法,通过对机载网络服务的每一条TCP连接进行监控和管理,能够有效的解决长耗时空闲TCP连接和僵尸TCP连接,保证机载网络应用程序的正常工作。
发明内容
为了解决背景技术中所存在的技术问题,本发明提出了一种机载网络服务的TCP连接处理方法,用于在机载网络TCP服务系统,对来自外部的TCP连接进行消息处理和监控管理,确保TCP连接在机载嵌入式系统的可承载范围。
本发明的技术解决方案是:一种机载网络服务的TCP连接处理方法,其特征在于:所述方法包括以下步骤:
1)建立TCP连接和消息收发模块;包括TCP监听连接、TCP连接建立和TCP消息收发的功能;
2)建立TCP连接管理模块;提供对TCP连接管理表的管理功能;
3)建立TCP连接监控模块;提供对TCP连接管理模块中创建的TCP连接管理表的监控,对于TCP连接空闲超时的连接和异常的连接进行处理。
上述步骤1)TCP连接建立和消息收发模块的流程是:
1.1)创建监听套接字ListenSock;创建成功,将监听套接字ListenSock赋值给TCPManNode的元素SockID,TCPManNode的元素SockType赋值为1,获取系统时间并且赋值给TCPManNode的元素ConnTime;
1.2)绑定监听套接字关联的IP地址和公开端口号,绑定成功;
1.3)开始监听监听套接字,监听成功,将步骤1.1)中TCPManNode加入到TCPManTable,TCPManTable的元素TableStorageNodeCount的值加1;
上述步骤1.3)之后还包括以下步骤:
1.4)循环执行步骤1.5)到1.11);
1.5)清零类型是FD_SET的readSet,将TCPManTable中的TCPManNode的元素SockID加入到readSet集合;
1.6)调用select函数,以100ms时间来监听处理readSet中的SockID;
1.7)检查select返回值iSelRetValue,若返回值iSelRetValue大于0,说明有TCP事件发生,需处理TCP事件,跳转到步骤1.8),否则跳转到步骤1.11);
1.8)当iSelRetValue大于0时,循环执行步骤1.9)和1.10);
1.9)若是监听套接字有事件发生,说明是由连接请求事件,需接收TCP连接,并且生成新的TCP连接套接字newTCPSock,将TCPManNode的SockID赋为newTCPSock;SockType赋为0;ConnTime赋为获取的当前系统的时间,将TCPManNode加入到TCPManTable,TCPManTable的元素TableStorageNodeCount值加1;iSelRetValue自减1;
1.10)循环处理TCPManTable的TableStorageNodeCount个数目的TCPManNode,只处理SockType类型是0的SockID;若SockID在readSet中,说明有消息接收,通过SockID接收消息,接收成功后,更新此SockID在TCPManTable中对应的TCPManNode的LeastRecvTime和RecvDataSum,并且iSelRetValue自减1;
1.11)获取数据发送队列中的数据,根据数据头中的SockID来发送数据,发送成功时,更新此SockID在TCPManTable中对应的TCPManNode的LeastSendTime和SendDataSum。
上述步骤3)TCP连接监控模块的处理流程是:
3.1)获取TCP连接管理表表头锁,成功执行步骤3.2);
3.2)获取当前系统时间CurSysTime;
3.3)循环处理TCP连接管理表中已存储的TCPManNode,循环计数变量iIndex循环的次数是TCPManTable中的TableStorageNodeCount次,执行步骤3.4)—3.7)。
步骤3.3)之后包括以下步骤:
3.4)获取以iIndex为下标的TCPManTable中的TCPManNode,若获取的TCPManNode的SockType等于0,说明是普通连接,则执行步骤3.5);
3.5)获取TCPManNode的Max<ConnTime,LeastRecvTime,LeastSendTime>中的最大值CptMaxTime;
3.6)计算CurSysTime与CptMaxTime的差值,赋值给TCPManNode的元素IdleTime;
3.7)如果TCPManTable中元素MaxIdleTime的值小于f中TCPManNode的元素IdleTime,说明此TCP连接已超出最大空闲时间,则关闭此TCPManNode的元素SockId对应的TCP连接,并且将此TCPManNode从TCPManTable中删除。
本发明具有的优点效果:
提高机载网络应用的可靠性:通过对机载网络应用的每一条TCP连接进行管理和监控,确保了TCP连接在可控制范围内,从而提高了机载网络应用的可靠性;
提高机载网络应用的可用性:通过对机载网络应用的长耗时空闲连接和僵尸连接的处理,保证了机载网络应用的正常工作。
方法的通用性:本方法可以运用于采用TCP协议的其他的应用软件对TCP连接监控管理方式。
本方法的设计针对机载网络服务系统的TCP长耗时空闲连接和僵尸连接的问题,通过设计对机载网络服务系统中每一条TCP连接进行监控和管理及记录每一条TCP连接的时间信息和数据信息,并且设计了TCP连接监控和管理的数据方式,从而确保机载网络服务在运行时能够对每一条TCP连接进行合理的监控和时间性能保证,也能为正常的网络应用提供可用的TCP连接,本方法同样可以适用于机载网络的其他采用TCP连接的网络应用,能够提高机载网络应用的可靠性和可用性。
附图说明
图1为本发明的整体结构图;
图2为本发明的数据模型图;
图3TCP连接建立和消息接收模块(101)的处理流程图;
图4TCP连接监控模块处理流程图;
具体实施方式
1.架构组成
架构组成如图1所示,架构的内部组成包括:
(1)TCP连接建立和消息收发模块(简称TCP服务模块,101):建立TCP监听连接、TCP连接建立和TCP消息收发的功能;
(2)TCP连接管理模块(简称TCP管理模块,102):提供对TCP连接管理表的管理功能。
(3)TCP连接监控模块(简称TCP监控模块:103):提供对102中创建的TCP连接表的监控,对于TCP连接空闲超时的连接和异常的连接进行处理。
2.数据模型
数据模型如表1、表2和图2所示,是102模块的TCP连接管理表的数据模型。
TCP连接管理表的特点是:根据SockID套接字号由小到大排序,便于TCP连接管理。
表1 TCP连接管理表表头
表2 TCP连接管理表表体节点(TCPManNode)
3.运行过程
本方法的具体运行过程为:
(1)TCP连接建立和消息收发模块(101)的运行过程:
a.创建监听套接字ListenSock;创建成功,将监听套接字ListenSock赋值给TCPManNode的元素SockID,TCPManNode的元素SockType赋值为1(监听),获取系统时间并且赋值给TCPManNode的元素ConnTime;跳转到b。
b.绑定监听套接字关联的IP地址和公开端口号,绑定成功;跳转到c;
c.开始监听监听套接字,监听成功,将步骤a中TCPManNode加入到TCPManTable,TCPManTable的元素TableStorageNodeCount的值加1;跳转到d;
d.循环执行e到k;
e.清零类型是FD_SET的readSet,将TCPManTable中的TCPManNode的元素SockID加入到readSet集合;
f.调用select函数,以100ms时间来监听处理readSet中的SockID;
g.检查select返回值iSelRetValue,若返回值iSelRetValue大于0,说明有TCP事件发生,需处理TCP事件,跳转到h,否则跳转到k;
h.当iSelRetValue大于0时,循环执行步骤i和j;
i.若是监听套接字有事件发生,说明是由连接请求事件,需接收TCP连接,并且生成新的TCP连接套接字newTCPSock,将TCPManNode的SockID赋为newTCPSock;SockType赋为0;ConnTime赋为获取的当前系统的时间,将TCPManNode加入到TCPManTable,TCPManTable的元素TableStorageNodeCount值加1;iSelRetValue自减1;
j.循环处理TCPManTable的TableStorageNodeCount个数目的TCPManNode,只处理SockType类型是0的SockID;若SockID在readSet中,说明有消息接收,通过SockID接收消息,接收成功后,更新此SockID在TCPManTable中对应的TCPManNode的LeastRecvTime和RecvDataSum,并且iSelRetValue自减1;
k.获取数据发送队列中的数据,根据数据头中的SockID来发送数据,发送成功时,更新此SockID在TCPManTable中对应的TCPManNode的LeastSendTime和SendDataSum
(2)TCP连接监控模块(103)的运行过程:
a.获取TCP连接管理表表头锁,成功执行b;
b.获取当前系统时间CurSysTime;
c.循环处理TCP连接管理表中已存储的TCPManNode,循环计数变量iIndex循环的次数是TCPManTable中的TableStorageNodeCount次,执行d--g;
d.获取以iIndex为下标的TCPManTable中的TCPManNode,若获取的TCPManNode的SockType等于0,说明是普通连接,则执行e:
e.获取TCPManNode的Max<ConnTime,LeastRecvTime,LeastSendTime>中的最大值CptMaxTime;
f.计算CurSysTime与CptMaxTime的差值,赋值给TCPManNode的元素IdleTime;
g.如果TCPManTable中元素MaxIdleTime的值小于f中TCPManNode的元素IdleTime,说明此TCP连接已超出最大空闲时间,则关闭此TCPManNode的元素SockId对应的TCP连接,并且将此TCPManNode从TCPManTable中删除;
(3)模块处理流程
a.TCP连接建立和消息接收模块(101)的处理流程,见图1。
b.TCP连接监控模块处理流程,见图2:
在C919机载信息系统机载网络应用功能中,采用本方法来处理采用TCP协议的机载网络应用对TCP连接的监控和管理。

Claims (2)

1.一种机载网络服务的TCP连接处理方法,其特征在于:所述方法包括以下步骤:
1)建立TCP连接和消息收发模块;包括TCP监听连接、TCP连接建立和TCP消息收发的功能;
2)建立TCP连接管理模块;提供对TCP连接管理表的管理功能;
3)建立TCP连接监控模块;提供对TCP连接管理模块中创建的TCP连接管理表的监控,对于TCP连接空闲超时的连接和异常的连接进行处理;
所述步骤1)TCP连接建立和消息收发模块的流程是:
1.1)创建监听套接字ListenSock;创建成功,将监听套接字ListenSock赋值给TCPManNode的元素SockID,TCPManNode的元素SockType赋值为1,获取系统时间并且赋值给TCPManNode的元素ConnTime;
1.2)绑定监听套接字关联的IP地址和公开端口号,绑定成功;
1.3)开始监听监听套接字,监听成功,将步骤1.1)中TCPManNode加入到TCPManTable,TCPManTable的元素TableStorageNodeCount的值加1;
1.4)循环执行步骤1.5)到1.11);
1.5)清零类型是FD_SET的readSet,将TCPManTable中的TCPManNode的元素SockID加入到readSet集合;
1.6)调用select函数,以100ms时间来监听处理readSet中的SockID;
1.7)检查select返回值iSelRetValue,若返回值iSelRetValue大于0,说明有TCP事件发生,需处理TCP事件,跳转到步骤1.8),否则跳转到步骤1.11);
1.8)当iSelRetValue大于0时,循环执行步骤1.9)和1.10);
1.9)若是监听套接字有事件发生,说明是有连接请求事件,需接收TCP连接,并且生成新的TCP连接套接字newTCPSock,将TCPManNode的SockID赋为newTCPSock;SockType赋为0;ConnTime赋为获取的当前系统的时间,将TCPManNode加入到TCPManTable,TCPManTable的元素TableStorageNodeCount值加1;iSelRetValue自减1;
1.10)循环处理TCPManTable的TableStorageNodeCount个数目的TCPManNode,只处理SockType类型是0的SockID;若SockID在readSet中,说明有消息接收,通过SockID接收消息,接收成功后,更新此SockID在TCPManTable中对应的TCPManNode的LeastRecvTime和RecvDataSum,并且iSelRetValue自减1;
1.11)获取数据发送队列中的数据,根据数据头中的SockID来发送数据,发送成功时,更新此SockID在TCPManTable中对应的TCPManNode的LeastSendTime和SendDataSum。
2.根据权利要求1所述的机载网络服务的TCP连接处理方法,其特征在于:所述步骤3)TCP连接监控模块的处理流程是:
3.1)获取TCP连接管理表表头锁,成功执行步骤3.2);
3.2)获取当前系统时间CurSysTime;
3.3)循环处理TCP连接管理表中已存储的TCPManNode,循环计数变量iIndex循环的次数是TCPManTable中的TableStorageNodeCount次,执行步骤3.4)—3.7);
3.4)获取以iIndex为下标的TCPManTable中的TCPManNode,若获取的TCPManNode的SockType等于0,说明是普通连接,则执行步骤3.5);
3.5)获取TCPManNode的Max<ConnTime,LeastRecvTime,LeastSendTime>中的最大值CptMaxTime;
3.6)计算CurSysTime与CptMaxTime的差值,赋值给TCPManNode的元素IdleTime;
3.7)如果TCPManTable中元素MaxIdleTime的值小于3.6)中TCPManNode的元素IdleTime,说明此TCP连接已超出最大空闲时间,则关闭此TCPManNode的元素SockID对应的TCP连接,并且将此TCPManNode从TCPManTable中删除。
CN201510918133.1A 2015-12-10 2015-12-10 一种机载网络服务的tcp连接处理方法 Active CN105577468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510918133.1A CN105577468B (zh) 2015-12-10 2015-12-10 一种机载网络服务的tcp连接处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510918133.1A CN105577468B (zh) 2015-12-10 2015-12-10 一种机载网络服务的tcp连接处理方法

Publications (2)

Publication Number Publication Date
CN105577468A CN105577468A (zh) 2016-05-11
CN105577468B true CN105577468B (zh) 2019-04-05

Family

ID=55887163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510918133.1A Active CN105577468B (zh) 2015-12-10 2015-12-10 一种机载网络服务的tcp连接处理方法

Country Status (1)

Country Link
CN (1) CN105577468B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420771A (zh) * 2011-12-28 2012-04-18 中国科学技术大学苏州研究院 高速网络环境中提高tcp并发连接速度的方法
CN102523531A (zh) * 2011-12-08 2012-06-27 深圳市同洲视讯传媒有限公司 视频点播系统中处理会话的接入实体及方法
CN104246737A (zh) * 2011-12-01 2014-12-24 华为技术有限公司 在内容分发网络中使用视频流的连接池技术的系统和方法
CN104519036A (zh) * 2013-09-30 2015-04-15 腾讯科技(深圳)有限公司 一种发送业务请求消息的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387143B2 (en) * 2009-11-30 2013-02-26 Citrix Systems, Inc. Systems and methods for aggressive window probing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104246737A (zh) * 2011-12-01 2014-12-24 华为技术有限公司 在内容分发网络中使用视频流的连接池技术的系统和方法
CN102523531A (zh) * 2011-12-08 2012-06-27 深圳市同洲视讯传媒有限公司 视频点播系统中处理会话的接入实体及方法
CN102420771A (zh) * 2011-12-28 2012-04-18 中国科学技术大学苏州研究院 高速网络环境中提高tcp并发连接速度的方法
CN104519036A (zh) * 2013-09-30 2015-04-15 腾讯科技(深圳)有限公司 一种发送业务请求消息的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于TCP/IP协议的客户/服务器实现》;倪伟 等;《计算机工程》;20000331;第26卷(第3期);第85-87页
《基于TCP三次握手特定的高效连接管理方法》;熊兵 等;《计算机工程》;20131130;第39卷(第11期);第83-86、90页

Also Published As

Publication number Publication date
CN105577468A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN106612225B (zh) 一种基于openstack的代理部署系统及方法
US20150382132A1 (en) Method and Device for Monitoring
CN110557437B (zh) 基于自定义协议的普适性拟态分发表决调度装置及方法
US11140137B2 (en) Method and industrial computing apparatus for performing a secure communication
CN107888613B (zh) 一种基于云平台的管理系统
CN105337756A (zh) 一种集中运维的方法及装置
CN105052076B (zh) 一种基于云计算的网元管理系统及网元管理方法
EP2911439B1 (en) Management method and apparatus for monitoring task
CN105897652A (zh) 一种基于标准协议的异构终端动态接入方法
CN102404326B (zh) 一种验证报文安全性的方法、系统以及装置
CN101808112A (zh) 一种基于telnet和代理的设备远程维护方法
CN110855794A (zh) 一种基于TCP协议的数据库Socket网关实现方法及装置
CN106027287A (zh) 一种配电通信网统一管控平台
CN107995019B (zh) 一种基于虚拟链接的远程调试维护网络设备方法及系统
CN112468592A (zh) 一种基于电力信息采集的终端在线状态侦测方法及系统
Rath et al. MAQ system development in mobile ad-hoc networks using mobile agents
CN103684792A (zh) 一种oam的安全认证方法以及oam报文发送/接收装置
CN106487598B (zh) 异构冗余Snmp协议多实例实现系统及其实现方法
CN102238571B (zh) 物联网m2m业务处理的装置、系统以及方法
CN108011870B (zh) 一种软件远程在线升级信息自动识别管理方法
CN112422348A (zh) 一种电力信息数据采集通信系统及方法
CN107528705A (zh) 故障处理方法及装置
CN101394467A (zh) 一种增强型数字视频监控终端系统的智能主控系统
CN105577468B (zh) 一种机载网络服务的tcp连接处理方法
CN109040086A (zh) 一种工业控制系统ddos攻击仿真方法及装置

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