CN105577468B - 一种机载网络服务的tcp连接处理方法 - Google Patents
一种机载网络服务的tcp连接处理方法 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-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连接处理方法。
背景技术
随着信息技术在民用航空电子系统中的大量应用,为了向飞机使用者(如飞机运营商、飞行员、维护人员等)提供更多、更便利的服务,引入了由不同平台组成的、由以太网网络构建的机载网络服务系统,形成一个空地一体的开放的环境。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中删除。
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)
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)
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 |
-
2015
- 2015-12-10 CN CN201510918133.1A patent/CN105577468B/zh active Active
Patent Citations (4)
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)
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 |