一种TCP链接的检测方法和装置与流程
未命名
08-17
阅读:132
评论:0
一种tcp链接的检测方法和装置
技术领域
1.本发明涉及计算机网络技术领域,尤其涉及一种tcp链接的检测方法和装置。
背景技术:
2.如图1所示,数据网关gateway用于通讯中数据高流量、低延迟、高可靠的数据传输,数据传输采用100ge的网络,传输采用双链路互备模式,即同一条数据,只在一个链路中传输,当link_a发生故障时,能在瞬时(0.5秒内)通知到link_b,以便link_b接替所有数据传输。
3.该设计的目的有两个:1、用于数据割接,即切换链路,通过双链路切换保证数据不丢失。2、双链路主备,任一链路断开,都能保证数据从另外一个链路进行通讯。
4.该网关切换性能需求:1、主链路发生断链,备用链路在0.5秒内启动。通讯流量能承载50gbps,即50g比特/秒。2、切换过程中保证数据不丢失,保证保持数据通讯序列。
5.需求关键点分析
6.1、该传输网络为100g的网络,要求保证能承载峰值流量50gbps,流量大。
7.2、要求0.5秒内完成链路切换。
8.3、该网络断开包括数据割接,这样就存在网络物理中段的情况,这样就存在网络中断在传输过程中软件判断不及时的问题,本gateway要求完成的链路切换包括物理链路断开。
9.基于以上三个需求关键点,要求必须在极短的时间内判断出网络断开,并且要在网络出现物理硬件异常情况下监测到网络中断。
10.程序和进程异常
11.如果tcp(传输控制协议,transmission control protocol)链接异常而程序正常,tcp应用程序会被关掉并且告诉应用,gateway也就关闭了该异常的tcp链接。这种情况会在tcp链接异常后的一次socket调用中通过返回值或者异常代码得知。因此在做程序开发的时候比较容易处理,如下步骤:
12.接收到数据时会返回,
13.程序接收到信号时返回-1,errno=eintr。
14.此判断简单及时,能够满足需求,但是该需求重点出来的情况是物理链路一场情况。
15.物理链路异常
16.如果拔掉link_a或者link_b之间的传输的光纤,此时gateway_a和gateway_b无法知道此链路的tcp连接的失效,并一直认为连接正常。网络硬件故障gateway_a和gateway_b都无法知道此tcp连接的失效,并一直认为连接正常。
17.以上这两种情况在编程时会变的非常糟糕,因为tcp连接将一直被认为有效,所有对此tcp socket的调用都会正确返回,这显然是错误的,并且这种错误情况通常会持续很久。
18.因此,现有技术都是通过tcp链接间的心跳进行判断,如果连续发送指定次数的心跳没有收到心跳响应,认为网络中断。
19.参考图1,现有技术方案需要在通讯双方进行心跳监测,即gateway_a和gateway_b之间发送心跳信息,步骤如下:
20.1、gateway_a每隔一个时间间隔发生一个探测包给gateway_b。
21.2、gateway_a发包时启动一个超时定时器。
22.3、gateway_b端接收到检测包,应该回应一个包。
23.4、如果gateway_a收到服务器的应答包,则说明链路正常,删除超时定时器。
24.5、如果gateway_a的超时定时器超时,依然没有收到应答包,则说明链路出问题了。
25.因此,现有技术存在以下问题:等待超时,就必须有一定时间的延时才能解决,这个如果设置成0.5秒超时,就需要频繁发送检测包,占用大量网络带宽的前提下,依然不能满足需求。
技术实现要素:
26.鉴于上述的分析,本发明实施例旨在提供一种tcp链接的检测方法和装置,用以解决现有心跳检测方法由于频繁发送检测包而占用大量网络带宽且无法判断物理链路及程序和进程异常的问题。
27.一方面,本发明实施例提供了一种tcp链接的检测方法,包括:在利用主链路进行数据传输过程中,在三个处理器上同时运行以下三种网络检测方式以判断网络是否异常,其中,所述三种网络检测方式包括ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式;当所述三种网络检测方式中的任一种判断出所述网络异常时,将网络异常信息返回至所述三个处理器中的相应处理器;以及根据相应处理器接收到的所述网络异常信息将主链路切换为备用链路或重新建立主链路,并利用所述备用链路或重新建立的主链路进行数据传输。
28.上述技术方案的有益效果如下:本技术实施例通过ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式这三种检测方式即能够检测出程序和进程异常,同时能够检测出物理链路异常,因此能够根据不同的网络异常采取不同的措施进行数据传输。在判断硬件断网时效性上大大提高,能够保证迅速判断出硬件网络中断故障。
29.基于上述方法的进一步改进,当所述三种网络检测方式中的任一种判断出所述网络异常时,将网络异常信息返回至所述三个处理器中的相应处理器包括:当所述ifconfig状态检测方式判断出数据链路层处于光口的非连通状态以判断拔出网线或者网卡故障时,将所述数据链路层处于光口的非连通状态返回至所述三个处理器中的第一处理器;当所述icmp数据包检测方式判断出网络路由异常时,将所述网络路由异常返回至所述三个处理器中的第二处理器;以及当所述心跳检测方式判断出传输层处于链路断开状态时,将所述传输层处于链路断开状态返回至所述三个处理器中的第三处理器。
30.基于上述方法的进一步改进,根据相应处理器接收到的所述网络异常信息将主链路切换为备用链路或重新建立主链路,并利用所述备用链路或重新建立的主链路进行数据传输进一步包括:根据所述第一处理器接收到的所述数据链路层处于光口的非连通状态,
将所述主链路直接切换到所述备用链路,并通过所述备用链路进行数据传输;根据所述第二处理器接收到网络路由异常,再次对所述备用链路进行检测并且二次检测结果为网络正常时,所述主链路切换到所述备用链路,并通过所述备用链路进行数据传输;以及根据所述第三处理器接收到的所述传输层处于链路断开状态,重新建立主链路,并利用重新建立的主链路进行数据传输。
31.基于上述方法的进一步改进,所述ifconfig状态检测方式进一步包括:将ifconfig命令发送给linux操作系统;根据所述ifconfig命令查询系统状态中的网卡接通的状态信息;以及读取所述系统状态中的网卡接通的状态信息并根据所述网卡接通的状态信息判断所述网络是否正常。
32.基于上述方法的进一步改进,根据所述网卡接通的状态信息判断所述网络是否正常进一步包括:当所述网卡接通的状态信息包括字符串multicast和字符串running时,所述网卡接通的状态为网络正常,否则网络异常。
33.基于上述方法的进一步改进,所述icmp数据包检测方式进一步包括:生成icmp数据包并将所述icmp数据包提供给服务器端;通过udp将所述icmp数据包直接发送到接收服务器;当所述接收服务器支持标准的ping命令时,根据所述icmp数据包中的icmp报文立即将反馈信息返回所述服务器端;以及获取并解析所述反馈信息,并根据解析后的反馈信息判断所述网络是否正常,其中,根据解析后的反馈信息判断所述网络是否正常进一步包括:当解析的反馈信息是正确的回复信息时,所述网络正常,否则所述网络异常。
34.基于上述方法的进一步改进,所述心跳检测方式进一步包括:每隔预定时间间隔定时发送心跳信息;启动超时定时器,并记录发送心跳的时间戳作为超时等待的时间起点;以及当在超时时间范围内收到回复时,判断网络正常,否则网络异常。
35.另一方面,本发明实施例提供了一种tcp链接的检测装置,包括:网络检测模块,用于在利用主链路进行数据传输的情况下,在三个处理器上同时运行以下三种网络检测模块以判断网络是否异常,其中,所述网络检测模块包括ifconfig状态检测模块、icmp数据包检测模块和心跳检测模块;网络异常确认模块,用于当所述三种网络检测方式中的任一种判断出所述网络异常时,将网络异常信息返回至所述三个处理器中的相应处理器;以及网络传输模块,用于根据相应处理器接收到的所述网络异常信息将主链路切换为备用链路或重新建立主链路,并利用所述备用链路或重新建立的主链路进行数据传输。
36.基于上述装置的进一步改进,所述网络异常确认模块包括第一判断模块、第二判断模块和第三判断模块,其中,所述第一判断模块,用于当所述ifconfig状态检测方式判断出数据链路层处于光口的非连通状态以判断拔出网线或者网卡故障时,将所述数据链路层处于光口的非连通状态返回至所述三个处理器中的第一处理器;所述第二判断模块,用于当所述icmp数据包检测方式判断出网络路由异常时,将所述网络路由异常返回至所述三个处理器中的第二处理器;以及所述第三判断模块,用于当所述心跳检测方式判断出传输层处于链路断开状态时,将所述传输层处于链路断开状态返回至所述三个处理器中的第三处理器。
37.基于上述装置的进一步改进,所述网络传输模块用于:根据所述第一处理器接收到的所述数据链路层处于光口的非连通状态,将所述主链路直接切换到所述备用链路,并通过所述备用链路进行数据传输;根据所述第二处理器接收到网络路由异常,再次对所述
备用链路进行检测并且二次检测结果为网络正常时,所述主链路切换到所述备用链路,并通过所述备用链路进行数据传输;以及根据所述第三处理器接收到的所述传输层处于链路断开状态,重新建立主链路,并利用重新建立的主链路进行数据传输。
38.与现有技术相比,本发明至少可实现如下有益效果之一:
39.1、通过ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式这三种检测方式即能够检测处程序和进程异常,同时能够检测出物理链路异常,因此根据不同的网络异常类型(包括数据链路层异常、网络路由异常和传输层异常)能够采取不同的措施进行数据传输;
40.2、在判断硬件断网时效性上大大提高,能够保证迅速判断出硬件网络中断故障;
41.3、本技术能够在极短的时间内判断出网络断开,并且要在网络出现物理硬件异常的情况下监测到网络中断;
42.4、ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式分别运行在3个不同的cpu上,在三个互补相关的时序上运行,任何一个发现网络出了问题都会反馈,会大大提高及时性。
43.本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
44.附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
45.图1为现有数据网关的网络结构图;
46.图2为根据本发明实施例的检测tcp链接断开的方法的流程图;
47.图3为根据本发明实施例的检测tcp链接断开的方法的具体流程图;
48.图4为根据本发明实施例的检测tcp链接断开的装置的框图。
具体实施方式
49.下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
50.本发明的一个具体实施例,参考图2,公开了一种tcp链接的检测方法,包括:在步骤s202中,在利用主链路进行数据传输过程中,在三个处理器上同时运行以下三种网络检测方式以判断网络是否异常,其中,三种网络检测方式包括ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式;在步骤s204中,当三种网络检测方式中的任一种判断出网络异常时,将网络异常信息返回至三个处理器中的相应处理器;以及在步骤s206中,根据相应处理器接收到的网络异常信息将主链路切换为备用链路或重新建立主链路,并利用备用链路或重新建立的主链路进行数据传输。
51.与现有技术相比,本实施例提供的tcp链接的检测方法中,通过ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式这三种检测方式即能够检测处程序和进程异
常,同时能够检测出物理链路异常,因此能够根据不同的网络异常采取不同的措施进行数据传输。在判断硬件断网时效性上大大提高,能够保证迅速判断出硬件网络中断故障。
52.下文中,参考图2,对根据本发明实施例的tcp链接的检测方法中的各个步骤进行详细描述。
53.参考图2,在步骤s202中,在利用主链路进行数据传输过程中,在三个处理器上同时运行以下三种网络检测方式以判断网络是否异常,其中,三种网络检测方式包括ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式。下文中,分别对这三种检测方式进行详细描述。
54.具体地,ifconfig状态检测方式进一步包括:将ifconfig命令发送给linux操作系统;根据ifconfig命令查询系统状态中的网卡接通的状态信息;以及读取系统状态中的网卡接通的状态信息并根据网卡接通的状态信息判断网络是否正常。根据网卡接通的状态信息判断网络是否正常进一步包括:当网卡接通的状态信息包括字符串multicast和字符串running时,网卡接通的状态为网络正常,否则网络异常。
55.具体地,icmp数据包检测方式进一步包括:生成icmp数据包并将icmp(internet control message protocol,即,internet控制报文协议)数据包提供给服务器端,其中,icmp数据包包括ip头部、icmp报头和icmp报文;通过用户数据报协议udp(user datagram protocol)将icmp数据包直接发送到接收服务器;当接收服务器支持标准的ping命令时,根据icmp数据包中的icmp报文立即将反馈信息返回服务器端;以及获取并解析反馈信息,并根据解析后的反馈信息判断网络是否正常。根据解析后的反馈信息判断网络是否正常进一步包括:当解析的反馈信息是正确的回复信息时,网络正常,否则网络异常。
56.具体地,心跳检测方式进一步包括:每隔预定时间间隔定时发送心跳信息;启动超时定时器,并记录发送心跳的时间戳作为超时等待的时间起点;以及当在超时时间范围内收到回复时,判断网络正常,否则网络异常。
57.在步骤s204中,当三种网络检测方式中的任一种判断出网络异常时,将网络异常信息返回至三个处理器中的相应处理器。具体地,当三种网络检测方式中的任一种判断出网络异常时,将网络异常信息返回至三个处理器中的相应处理器包括:当ifconfig状态检测方式判断出数据链路层处于光口的非连通状态以判断拔出网线或者网卡故障时,将数据链路层处于光口的非连通状态返回至三个处理器中的第一处理器;当icmp数据包检测方式判断出网络路由异常时,将网络路由异常返回至三个处理器中的第二处理器;以及当心跳检测方式判断出传输层处于链路断开状态时,将传输层处于链路断开状态返回至三个处理器中的第三处理器。
58.在步骤s206中,根据相应处理器接收到的网络异常信息将主链路切换为备用链路或重新建立主链路,并利用备用链路或重新建立的主链路进行数据传输。具体地,根据相应处理器接收到的网络异常信息将主链路切换为备用链路或重新建立主链路,并利用备用链路或重新建立的主链路进行数据传输进一步包括:根据第一处理器接收到的数据链路层处于光口的非连通状态,将主链路直接切换到备用链路,并通过备用链路进行数据传输;根据第二处理器接收到网络路由异常,再次对备用链路进行检测并且二次检测结果为网络正常时,主链路切换到备用链路,并通过备用链路进行数据传输;以及根据第三处理器接收到的传输层处于链路断开状态,重新建立主链路,并利用重新建立的主链路进行数据传输。
59.本发明的另一个具体实施例,参考图4,公开了一种tcp链接的检测装置,包括:网络检测模块402、网络异常确认模块404和网络传输模块406。
60.网络检测模块402用于在利用主链路进行数据传输的情况下,在三个处理器上同时运行以下三种网络检测模块以判断网络是否异常。网络检测模块402包括ifconfig状态检测模块、icmp数据包检测模块和心跳检测模块。
61.网络异常确认模块404用于当三种网络检测方式中的任一种判断出网络异常时,将网络异常信息返回至三个处理器中的相应处理器。网络异常确认模块404包括第一判断模块、第二判断模块和第三判断模块。第一判断模块,用于当ifconfig状态检测方式判断出数据链路层处于光口的非连通状态以判断拔出网线或者网卡故障时,将数据链路层处于光口的非连通状态返回至三个处理器中的第一处理器;第二判断模块,用于当icmp数据包检测方式判断出网络路由异常时,将网络路由异常返回至三个处理器中的第二处理器;以及第三判断模块,用于当心跳检测方式判断出传输层处于链路断开状态时,将传输层处于链路断开状态返回至三个处理器中的第三处理器。
62.网络传输模块406用于根据相应处理器接收到的网络异常信息将主链路切换为备用链路或重新建立主链路,并利用备用链路或重新建立的主链路进行数据传输。具体地,网络传输模块406用于根据第一处理器接收到的数据链路层处于光口的非连通状态,将主链路直接切换到备用链路,并通过备用链路进行数据传输;根据第二处理器接收到网络路由异常,再次对备用链路进行检测并且二次检测结果为网络正常时,主链路切换到备用链路,并通过备用链路进行数据传输;以及根据第三处理器接收到的传输层处于链路断开状态,重新建立主链路,并利用重新建立的主链路进行数据传输。
63.下文中,参考图3,以具体实例的方式对根据本发明实施例的检测tcp链接断开的方法的具体流程图。
64.本技术通过3种判断网络断网方式结合起来,同时探测网络状态,解决判断时效问题,三种方式在快速探测网络异常上各有其场景,ifconfig通过在数据链路层可快速判断光口的连通状态以判断是否拔插网线或者网卡故障等,icmp检测方式在网络层快速判断网络路由是否正常,心跳检测在传输层判断链路状态,可进行互相弥补。以保障不同场景下海量数据发送时快速保障数据链路切换和恢复的选择。比如当进行网线拔插时,通过ifconfig方式探测到后,可直接进行数据切换到备用链路进行传输,当网络调整时可通过icmp检查方式探测到后,进行备用链路网络探测,探测成功后进行数据切换到备用链路。当传输层链路产生问题后,将优先进行重新建链操作,恢复数据传输。3种方式包括如下:
65.1、读取ifconfig状态
66.ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。linux ifconfig命令用于显示或设置网络设备。ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。
67.通过读取状态判断,可以得到网络当前状态。
68.实现步骤1,发送ifconfig命令给linux操作系统,读取返回文本中的字符串,gateway_a通过操作系统提供的ifconfig命令,对系统的状态进行查询,得到网卡接通的状态信息,其中,返回文本包括网卡接通状态、缓冲信息和接收发送数据包信息等。
69.步骤2、对字符串(即,网卡接通状态)进行解析,判断字符串中是否存在正常运行信息,如果存在,即认为网络正常,反之可以判断网络出现问题,如下:
[0070][0071][0072]
读ifconfig配置信息,为3种组合中运行最快,效率最高的方法。
[0073]
程序解释:
[0074]
(1)通过linux的命令ifconfig抓取指定网卡的状态,如果抓取eth0网卡的状态,命令为ifconfig|grep eth0
[0075]
(2)对命令返回的信息进行判断。
[0076]
如果命令返回信息里包含“multicast”和“running”就表示网络正常,其它情况,代表网络不正常。
[0077]
2、发送icmp命令探测
[0078]
icmp是tcp/ip协议簇的一个子协议,用于在ip主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。icmp是(internet control message protocol)internet控制报文协议。它是tcp/ip协议族的一个子协议,用于在ip主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
[0079]
该方法是现有方法,是通用的判断网络通断方法。
[0080]
处理步骤如下:
[0081]
(1)组合icmp(internet control message protocol,因特网控制报文协议)数据包,打包数据。
[0082]
(2)发送icmp到服务器端,通过udp,直接发送到接收服务器,只要服务器支持标准的ping命令,就能接收该命令并给出反馈。
[0083]
(3)接收icmp数据反馈信息,解包后进行判断,如果收到正确的回复信息,认为网络正常,否则,可以判断网络有问题,如果超时未收到回复,也证明网络存在问题。
[0084]
(4)icmp是通过udp发送命令到对端网卡,对端网卡接收到命令后,会立即给出答复,通过一问一答格式进行网络状态确认。
[0085]
icmp(internet control message protocol,internet控制报文协议)特点包括:udp(用户数据报协议(udp,user datagram protocol))协议,面向无连接状态,通讯效率高,迅速。结构简单成熟,反馈准确可靠。
[0086]
3、心跳判断
[0087]
传统的网络硬件中断判断方式,效率低,但是可以作为其它实现方式的补充。
[0088]
心跳消息步骤:
[0089]
1、定时发送心跳信息,心跳信息为客户端和服务端的通讯协议的一部分,心跳信息,一般20秒内会发送一次发送心跳消息。
[0090]
2、设置超时,发送心跳消息后,会记录发送时间戳,作为超时等待的时间起始,等在回复。
[0091]
3、如果在超时时间范围内收到回复,可以判断网络正常,如果到了超时时间没有收到回复,即可认为网络异常。
[0092]
(1)通过3种类方式结合解决探测时效问题
[0093]
三种方式结合,三种方式如下:
[0094]
(1)通过读取ifconfig状态,抓取命令返回状态中的信息,判断网络运行状态。
[0095]
(2)通过发送icmp数据包,根据返回数据,判断网络状态。
[0096]
(3)通过心跳超时来判断。
[0097]
以上三个方式同时运行,只要其中一个方式判断得到网络已经中断的反馈,即认为网络已经中断。
[0098]
通常3种方式结合,会在程序的3个不通的线程进行处理,运行在3个不同的cpu上,在三个互补相关的时序上运行,任何一个发现网络出了问题都会反馈,会大大提高及时性。
[0099]
经过我们测试的效果,反馈平均时效会加快30%至50%,甚至更多。
[0100]
本技术利用读取ifconfig配置文件,icmp协议和心跳三种方式结合来进行硬件网络断链判断,是技术关键点。因此,与现有技术方案相比,本技术的实施例在判断硬件断网时效性上大大提高,能够保证迅速判断出硬件网络中断故障。
[0101]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0102]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
技术特征:
1.一种tcp链接的检测方法,其特征在于,包括:在利用主链路进行数据传输过程中,在三个处理器上同时运行以下三种网络检测方式以判断网络是否异常,其中,所述三种网络检测方式包括ifconfig状态检测方式、icmp数据包检测方式和心跳检测方式;当所述三种网络检测方式中的任一种判断出所述网络异常时,将网络异常信息返回至所述三个处理器中的相应处理器;以及根据相应处理器接收到的所述网络异常信息将主链路切换为备用链路或重新建立主链路,并利用所述备用链路或重新建立的主链路进行数据传输。2.根据权利要求1所述的tcp链接的检测方法,其特征在于,当所述三种网络检测方式中的任一种判断出所述网络异常时,将网络异常信息返回至所述三个处理器中的相应处理器包括:当所述ifconfig状态检测方式判断出数据链路层处于光口的非连通状态以判断拔出网线或者网卡故障时,将所述数据链路层处于光口的非连通状态返回至所述三个处理器中的第一处理器;当所述icmp数据包检测方式判断出网络路由异常时,将所述网络路由异常返回至所述三个处理器中的第二处理器;以及当所述心跳检测方式判断出传输层处于链路断开状态时,将所述传输层处于链路断开状态返回至所述三个处理器中的第三处理器。3.根据权利要求2所述的tcp链接的检测方法,其特征在于,根据相应处理器接收到的所述网络异常信息将主链路切换为备用链路或重新建立主链路,并利用所述备用链路或重新建立的主链路进行数据传输进一步包括:根据所述第一处理器接收到的所述数据链路层处于光口的非连通状态,将所述主链路直接切换到所述备用链路,并通过所述备用链路进行数据传输;根据所述第二处理器接收到网络路由异常,再次对所述备用链路进行检测并且二次检测结果为网络正常时,所述主链路切换到所述备用链路,并通过所述备用链路进行数据传输;以及根据所述第三处理器接收到的所述传输层处于链路断开状态,重新建立主链路,并利用重新建立的主链路进行数据传输。4.根据权利要求1所述的tcp链接的检测方法,其特征在于,所述ifconfig状态检测方式进一步包括:将ifconfig命令发送给linux操作系统;根据所述ifconfig命令查询系统状态中的网卡接通的状态信息;以及读取所述系统状态中的网卡接通的状态信息并根据所述网卡接通的状态信息判断所述网络是否正常。5.根据权利要求4所述的tcp链接的检测方法,其特征在于,根据所述网卡接通的状态信息判断所述网络是否正常进一步包括:当所述网卡接通的状态信息包括字符串multicast和字符串running时,所述网卡接通的状态为网络正常,否则网络异常。6.根据权利要求1所述的tcp链接的检测方法,其特征在于,所述icmp数据包检测方式进一步包括:
生成icmp数据包并将所述icmp数据包提供给服务器端;通过udp将所述icmp数据包直接发送到接收服务器;当所述接收服务器支持标准的ping命令时,根据所述icmp数据包中的icmp报文立即将反馈信息返回所述服务器端;以及获取并解析所述反馈信息,并根据解析后的反馈信息判断所述网络是否正常,其中,根据解析后的反馈信息判断所述网络是否正常进一步包括:当解析的反馈信息是正确的回复信息时,所述网络正常,否则所述网络异常。7.根据权利要求1所述的tcp链接的检测方法,其特征在于,所述心跳检测方式进一步包括:每隔预定时间间隔定时发送心跳信息;启动超时定时器,并记录发送心跳的时间戳作为超时等待的时间起点;以及当在超时时间范围内收到回复时,判断网络正常,否则网络异常。8.一种tcp链接的检测装置,其特征在于,包括:网络检测模块,用于在利用主链路进行数据传输的情况下,在三个处理器上同时运行以下三种网络检测模块以判断网络是否异常,其中,所述网络检测模块包括ifconfig状态检测模块、icmp数据包检测模块和心跳检测模块;网络异常确认模块,用于当所述三种网络检测方式中的任一种判断出所述网络异常时,将网络异常信息返回至所述三个处理器中的相应处理器;以及网络传输模块,用于根据相应处理器接收到的所述网络异常信息将主链路切换为备用链路或重新建立主链路,并利用所述备用链路或重新建立的主链路进行数据传输。9.根据权利要求8所述的tcp链接的检测装置,其特征在于,所述网络异常确认模块包括第一判断模块、第二判断模块和第三判断模块,其中,所述第一判断模块,用于当所述ifconfig状态检测方式判断出数据链路层处于光口的非连通状态以判断拔出网线或者网卡故障时,将所述数据链路层处于光口的非连通状态返回至所述三个处理器中的第一处理器;所述第二判断模块,用于当所述icmp数据包检测方式判断出网络路由异常时,将所述网络路由异常返回至所述三个处理器中的第二处理器;以及所述第三判断模块,用于当所述心跳检测方式判断出传输层处于链路断开状态时,将所述传输层处于链路断开状态返回至所述三个处理器中的第三处理器。10.根据权利要求9所述的tcp链接的检测装置,其特征在于,所述网络传输模块用于:根据所述第一处理器接收到的所述数据链路层处于光口的非连通状态,将所述主链路直接切换到所述备用链路,并通过所述备用链路进行数据传输;根据所述第二处理器接收到网络路由异常,再次对所述备用链路进行检测并且二次检测结果为网络正常时,所述主链路切换到所述备用链路,并通过所述备用链路进行数据传输;以及根据所述第三处理器接收到的所述传输层处于链路断开状态,重新建立主链路,并利用重新建立的主链路进行数据传输。
技术总结
本发明涉及一种TCP链接的检测方法和装置,属于计算机网络技术领域,解决了现有心跳检测方法由于频繁发送检测包而占用大量网络带宽且无法快速判断物理链路及程序和进程异常的问题。TCP链接的检测方法包括:在利用主链路进行数据传输过程中,在三个处理器上同时运行以下三种网络检测方式以判断网络是否异常,三种网络检测方式包括ifconfig状态检测方式、ICMP数据包检测方式和心跳检测方式;当三种网络检测方式中的任一种判断出网络异常时,将网络异常信息返回至三个处理器中的相应处理器;根据相应处理器接收到的网络异常信息将主链路切换为备用链路或重新建立主链路并进行数据传输。在判断硬件断网时效性上大大提高,能够保证迅速判断出硬件网络中断故障。够保证迅速判断出硬件网络中断故障。够保证迅速判断出硬件网络中断故障。
技术研发人员:曾志 崔传金
受保护的技术使用者:北京中创信测科技股份有限公司
技术研发日:2022.02.07
技术公布日:2023/8/16
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
