CN108173717A - 一种用户态下通过获取icmp差错报文监测网络状况的方法 - Google Patents
一种用户态下通过获取icmp差错报文监测网络状况的方法 Download PDFInfo
- Publication number
- CN108173717A CN108173717A CN201810028629.5A CN201810028629A CN108173717A CN 108173717 A CN108173717 A CN 108173717A CN 201810028629 A CN201810028629 A CN 201810028629A CN 108173717 A CN108173717 A CN 108173717A
- Authority
- CN
- China
- Prior art keywords
- icmp
- network
- datagram
- error message
- obtaining
- 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.)
- Pending
Links
Classifications
-
- 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/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- 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/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机领域,特别涉及一种用户态下通过获取ICMP差错报文监测网络状况的方法,本发明利用ICMP报文的差错控制功能,以***服务的形式,实时监测主机网络中收发的数据报,对包裹ICMP差错报文的数据报进行解析,及时报告某网口所发生的网络问题,实现对主机网络状况的实时监控。
Description
技术领域
本发明涉及计算机领域,特别涉及一种用户态下通过获取ICMP差错报文监测网络状况的方法。
背景技术
ICMP是Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息,对于网络安全具有极其重要的意义。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。
所以,通过监听以太网报文,对封装的ICMP差错报文解析,可以方便的获取当前网络的错误信息。例如linux和windows***中都有的ping命令,就是使用ICMP协议检测网络通不通的有效工具。
Ping(Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP echo(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。它所利用的原理是:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
Ping命令是主机以给目标主机发送请求获取响应为手段来检测网络连通性的工具,并不能做到对网络状态的实时检测。此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使***瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。本发明拟在***上运行监控服务,做到对主机网络的实时监控,当有网络链接出错时,及时报出,方便管理员查看,定位具体原因。
发明内容
本发明是通过如下技术方案实现的,一种用户态下通过获取ICMP差错报文监测网络状况的方法,包括以下步骤:第一步,创建原始套接字抓取所有的数据报;第二步,通过套接字sockfd接收消息,过滤掉非IP数据报;第三步,获取IP数据报首部;第四步,获取ICMP报文首部;第五步,通过调用函数获取网络接口地址,对比接收端地址,返回对应的网口名称。
优选的,所述第四步中,还包括获取ICMP报文的type和code字段。
本发明还提供一种计算机存储介质,其上存有计算机程序,该程序被处理器执行以实现所述的方法。
本发明相对于现有技术的有益效果是,本发明的特点是利用ICMP报文的差错控制功能,以***服务的形式,实时监测主机网络中收发的数据报,对包裹ICMP差错报文的数据报进行解析,及时报告某网口所发生的网络问题,实现对主机网络状况的实时监控。
附图说明
图1本发明一实施例提供的ICMP差错报文在以太网帧中的格式
图2本发明一实施例提供的监测以太网帧分析ICMP差错报文流程
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明通过主机监控以太网报文,剥取其中的ICMP差错报文头部信息,即可获知发生的错误类型;再根据IP地址来确定是哪个网络接口发生的问题。本发明可以实时监控主机的网络状况,如有ICMP差错报文产生,即可获取ICMP报告的出错信息。
本发明的功能实现可分为三步:利用原始套接字抓取数据帧,过滤出IP数据报;从IP数据报中剥离ICMP报文首部(参照图1),获取ICMP报文的type和code字段;根据ICMP差错报文的type和code值,找出具体出错说明,并根据IP地址定位网络接口名称。
本发明在Centos7.1***上实现了对主机网络状况的实时监测,整体的流程如图2。
第一步,创建原始套接字抓取所有的数据报,套接字创建方式如下:
sockfd=socket(PF_SOCKET,SOCK_RAW,htons(ETH_P_ALL));
第二步,通过套接字sockfd接收消息,过滤掉非IP数据报。接收消息方式如下:
recvfrom(sockfd,buf,10000,0,(struct sockaddr*)&clientaddr,&clientlen);
由图1可知,以太网帧的第13、14位代表了数据报的类型,本发明需要过滤掉非IP数据报,即过滤掉消息的第13、14位数值不等于ETH_P_IP的消息。
第三步,获取IP数据报首部,结构体类型为struct iphdr,struct iphdr结构体中的成员protocol等于1时表示IP数据报封装的是ICMP报文,所以需要过滤掉protocol不等于1的数据报;
第四步,获取ICMP报文首部,结构体类型为struct icmphdr,struct icmphdr结构体中的type和code成员代表了ICMP报文的类型,本发明只检测差错报文。ICMP差错报文包括type为3、4、11、12这几类。具体type和code值的意义如下表1所示:
表1 ICMP差错报文类型对照表
第五步,通过调用函数getifaddrs()获取网络接口地址,对比接收端地址clientaddr,返回对应的网口名称,例如“eth0”。如此,一个ICMP差错报文的检测结果就出来了,主机用户即可实时看到某个网口的网络状况。
当某网口监测到的结果数量出现大批量增加时,可根据结果的信息来判断该网口的网络状态是否出现断路或者遭受ICMP攻击等情况。
术语“计算机***”包括根据上述实施方式实现***或执行方法的硬件、软件和数据存储装置。例如,计算机***可包括中央处理单元(CPU)、输入装置、输出装置和数据存储。优选地,计算机***具有用于提供视觉输出显示的监视器(例如,商业处理设计)。数据存储可包括RAM、盘驱动器或其它计算机可读介质。计算机***可包括通过网络连接的多个计算装置,并且能够经过该网络彼此通信。
以上实施方式的方法可设为计算机程序或者携带计算机程序的计算机程序产品或者计算机可读介质,所述计算机程序设置成在计算机上运行时执行上述方法。
术语“计算机可读介质”包括(但不限于)可直接由计算机或者计算机***读取或者访问的任何非临时媒体或介质。所述介质可包括(但不限于)诸如软盘、硬盘存储媒体和磁带的磁存储介质;诸如光盘或者CD-ROM的光学存储介质;诸如存储器的电存储介质,包括RAM、ROM和闪速存储器;以及以上的混合和组合,诸如磁/光学存储介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种用户态下通过获取ICMP差错报文监测网络状况的方法,其特征在于:包括以下步骤:第一步,创建原始套接字抓取所有的数据报;第二步,通过套接字sockfd接收消息,过滤掉非IP数据报;第三步,获取IP数据报首部;第四步,获取ICMP报文首部;第五步,通过调用函数获取网络接口地址,对比接收端地址,返回对应的网口名称。
2.根据权利要求1所述的方法,其特征在于:所述第四步中,还包括获取ICMP报文的type和code字段。
3.一种计算机存储介质,其上存有计算机程序,该程序被处理器执行以实现权利要求1-2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028629.5A CN108173717A (zh) | 2018-01-11 | 2018-01-11 | 一种用户态下通过获取icmp差错报文监测网络状况的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028629.5A CN108173717A (zh) | 2018-01-11 | 2018-01-11 | 一种用户态下通过获取icmp差错报文监测网络状况的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108173717A true CN108173717A (zh) | 2018-06-15 |
Family
ID=62514438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810028629.5A Pending CN108173717A (zh) | 2018-01-11 | 2018-01-11 | 一种用户态下通过获取icmp差错报文监测网络状况的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173717A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113890838A (zh) * | 2021-09-24 | 2022-01-04 | 天津津航计算技术研究所 | 一种基于icmp协议的网络连通性能判断方法 |
CN115190070A (zh) * | 2022-06-07 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 路由探测方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020042875A1 (en) * | 2000-10-11 | 2002-04-11 | Jayant Shukla | Method and apparatus for end-to-end secure data communication |
CN1630298A (zh) * | 2003-12-19 | 2005-06-22 | 三星电子株式会社 | 用于ip包的多个字段错误的icmp包产生***及其方法 |
CN101026510A (zh) * | 2007-01-31 | 2007-08-29 | 华为技术有限公司 | 一种网络流量异常检测方法和*** |
CN102231748A (zh) * | 2011-08-02 | 2011-11-02 | 杭州迪普科技有限公司 | 一种客户端验证方法及装置 |
CN103560973A (zh) * | 2013-10-14 | 2014-02-05 | 深圳市同洲电子股份有限公司 | 一种数据包过滤的方法及装置 |
CN104135439A (zh) * | 2014-07-25 | 2014-11-05 | 西安空间无线电技术研究所 | 一种icmp差错报文快速生成方法 |
-
2018
- 2018-01-11 CN CN201810028629.5A patent/CN108173717A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020042875A1 (en) * | 2000-10-11 | 2002-04-11 | Jayant Shukla | Method and apparatus for end-to-end secure data communication |
CN1630298A (zh) * | 2003-12-19 | 2005-06-22 | 三星电子株式会社 | 用于ip包的多个字段错误的icmp包产生***及其方法 |
CN101026510A (zh) * | 2007-01-31 | 2007-08-29 | 华为技术有限公司 | 一种网络流量异常检测方法和*** |
CN102231748A (zh) * | 2011-08-02 | 2011-11-02 | 杭州迪普科技有限公司 | 一种客户端验证方法及装置 |
CN103560973A (zh) * | 2013-10-14 | 2014-02-05 | 深圳市同洲电子股份有限公司 | 一种数据包过滤的方法及装置 |
CN104135439A (zh) * | 2014-07-25 | 2014-11-05 | 西安空间无线电技术研究所 | 一种icmp差错报文快速生成方法 |
Non-Patent Citations (1)
Title |
---|
李娜,: ""网络数据包截获及分析***的研究"", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113890838A (zh) * | 2021-09-24 | 2022-01-04 | 天津津航计算技术研究所 | 一种基于icmp协议的网络连通性能判断方法 |
CN115190070A (zh) * | 2022-06-07 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 路由探测方法及装置 |
CN115190070B (zh) * | 2022-06-07 | 2024-06-25 | 阿里巴巴(中国)有限公司 | 路由探测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210258239A1 (en) | Network health data aggregation service | |
CA2698317C (en) | Router detection | |
US8135979B2 (en) | Collecting network-level packets into a data structure in response to an abnormal condition | |
Qadeer et al. | Network traffic analysis and intrusion detection using packet sniffer | |
US20060029016A1 (en) | Debugging application performance over a network | |
US7385937B2 (en) | Method and system for determining a path between two points of an IP network over which datagrams are transmitted | |
US20090010170A1 (en) | Varying the Position of Test Information in Data Units | |
US20080168177A1 (en) | Estimation of web client response time | |
CN1514625A (zh) | 检测网络攻击 | |
US7742415B1 (en) | Non-intrusive knowledge suite for evaluation of latencies in IP networks | |
WO2016110273A1 (zh) | 一种对访问请求进行限制的***和方法 | |
US11522765B2 (en) | Auto discovery of network proxies | |
WO1992019054A1 (en) | Network monitoring | |
CN107147655A (zh) | 一种网络双协议栈并行处理模型及其处理方法 | |
US20070255733A1 (en) | Method and system for performing simplified troubleshooting procedures to isolate connectivity problems | |
CN108173717A (zh) | 一种用户态下通过获取icmp差错报文监测网络状况的方法 | |
US8572245B1 (en) | Using the TCP window size for identifying packets and debugging | |
US20050283639A1 (en) | Path analysis tool and method in a data transmission network including several internet autonomous systems | |
Gad et al. | Employing the CEP paradigm for network analysis and surveillance | |
EP3944582A1 (en) | Monitoring of abnormal host | |
CN108153653A (zh) | 一种bmc日志管理方法、***、装置及计算机存储介质 | |
CN106161339A (zh) | 获取ip访问关系的方法及装置 | |
CN109302390A (zh) | 一种漏洞检测方法和装置 | |
Zhang et al. | High fidelity off-path round-trip time measurement via TCP/IP side channels with duplicate SYNs | |
US10887204B2 (en) | Network infrastructure management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180615 |