任何事物都有它不利的一面,网络也是如此,网络的障碍多种多样,这其中最难避免的莫过于网络的异常流量,它是针对某一特定端口发起犹如洪水般的非正常的流量,导致网络瘫痪,网络的瘫痪给我们带来的巨大损失是可以想象的,客户之间无法通信,商务无法进行,直接给我们带来巨大的经济损失。这样的例子在世界各国都有发生,可见网络的稳定对我们来说是何等的重要。因此,我们利用各种工具,各种安全策略来监控、维护我们的网络,使网络故障在第一时间被发现,及时地采取合理快速的方法定位故障并处理,使之给我们带来的经济损失最小。

网络数据的传输是高速的,通常人们考察网络性能总是以计算机数据包来作为衡量和测试的手段,因此,模型也在此基础上建立。将计算机网络在物理上当作一维的管道,数据的传输都在一维的管道中进行。可以将高速网络中一个一个包的传输想象为汽车在高速公路上运行,包具有速度,包和包之间由于到达时间和传输设备延迟的原因有一定时间上的距离,表现在管道中就是包之间的距离。当负载达到一定程度时,笔者认为网络中的数据具有流体的特征,进而可以将这种高速的运动流想象为流体运动。

根据对网络流量行为特征的分析和对当前一些网络流量数据采样方法研究的分析,同时也为了解决当前许多基于泊松模型的采样算法在对网络流量信息进行采样时,不能很好地解决网络流量具有自相似性特征的突发现象等问题。当前,网络流量采集技术已经相对成熟,通过各种流量采集技术已经可以获得不同的粒度和时间尺度上的流量数据,这为进行全面的网络流量分析提供了丰富的数据信息。而针对采集到的大量流量数据,流量分析技术也已经得到极大发展。通过对不同的粒度和时间尺度上的流量进行统计分析,已经寻找到了网络所表现出来的诸多不同的行为规律。通过对网络流量进行数学建模研究,经归纳出其具有的某些数学特性;面向具体的应用,针对网络流量的某些特征,对流量进行预测或异常检测的研究也进行的如火如茶。

由以上内容可以看出,无论是性能管理、网络监测还是异常检测,都离不开网络流量特征分析技术的支持。因此,如何利用各种分析手段对网络流量进行分析,使用户了解网络流量的变化情况,掌握网络状态己经成为当前网络管理领域研究的热点问题。

因此,采用网络流量采集软件进行流量采集,然后对网络流量行为特征进行分析对及时了解网络实时运行状态和了解网络行为特征十分重要。同时,对重新设计高效的网络系统,重新进行网络性能设施的配置和为不同的网络客户提供优质服务起到了指导性作用。

1.2 国内外研究现状

有关网络业务流量的研究主要涉及两个方面:网络流量特性分析和网络流量建模预测。目前,国内、外对业务流量特性分析的研究还在进行中,其中也取得了一些成果。本课题也将从概率统计方面对网络流量的特性做研究和分析。

早期的网络应用对象主要为电话网,其流量特性遵循泊松分布;但是随着网络规模的增大,网络应用的多样化,网络特性也随之变得多样化、复杂化,研究人员在对网络流量不断研究中发现了其他的特性。由于人们生活网络行为习惯,网络流量很自然地体现出周期性;1994年,Leland等人通过对LAN的流量分析及Klivansky等人对WAN流量分析发现流量的自相似性;基于自相似特征与混沌吸引子之间的紧密联系,近几年,研究人员又证明了网络流量存在混沌性。此外大量的研究表明,网络流量最重要的特性仍旧是自相似性,甚至是最新发现的混沌性也是基于自相似性的,因此,自相似性仍是网络流量特性研究的重点。

1.2.1 国外研究现状

国外最早的网络测量始于70年代初,逐渐成熟于80年代,90年代已渐成体系。1995年美国科学基金会系统地进行了因特网通信量的较大规模测量。1996年初,美国应用网络研究国家实验室在美国科学基金会支持下召开了有关因特网统计与分析的研讨ISMA。此后,依托于美国加州大学圣地亚哥分校超级计算中心的因特网数据分析合作组织,对网络测量的相关理论和方法展开了系统性研究。1997年,V.Paxson的博士学位论文“因特网的端到端动态性能的测量与分析”成为网络测量领域中的经典文献。这些研究在网络测量的方法、工具以及网络基础设施框架和流量的测量模型等方面都做了探索和改进。NIMI是美国在1992年开始Internet特征研究中比较著名的项目。其主要目的是要测量全球的Internet,建立一个总体的可扩展的网络测量基础框架,而不是为特定的分析目的的特定测量。因此它的设计原则是:建立一定的测量基础架构,支持测量工具的发布和运行、测量数据的采集和分析和对自身的维护和控制,使测量工具在整个Internet范围内适用。

IETF网络协议性能指标工作组(IPPM WG)为互联网的测量做了很多工作,拥有众多的RFC(Request for Comments)和实验草案,制定了一些性能指标定义的标准,以应用于互联网数据传输服务的质量、性能和可靠性的测量。这些指标向网络操作者、终端用户和独立的测试组提供无偏差的性能测量。而且,IPPM WG推动有效指标测量工具和过程的共享,提供一个论坛,共享实施和应用这些指标的信息,但实际的实施和应用并不在工作组范围之内。IPPM WG已经完成的工作包括近期制定的RFC和一些协议草案,其框架主要是关于信息分类。

除美国外,其他国家也开展了对Internet的大规模测量和研究,如加拿大的TRIUMF网络监视(主要目的是对国家Internet路径上的包丢失情况和路由特征进行测量)以及新西兰的WAND(Waikato Applied Network Dynamics)中的被动测量子项目WITS(Waikato Internet Traffic Storage)(主要目的是创建用于统计分析和创建模拟模型的Internet流量模型)等。欧洲于1995年也开展了对Internet的测量,其中PPNCG(粒子物理网络协作组)是在这方面做得较为成功的一个组织。

由于Internet网络的异构性,纵观国外这些网络测量项目都存在着测量项目之间的数据不能共享,彼此软、硬件之间不能兼容等一系列问题。解决的方法是尽量使设计的测量项目具有可扩展性、通用性、可靠性,而没有较强的针对性和局限性。

1.2.2 国内研究现状

我国网络的发展起步较晚,90年代初才引入Internet,大规模的快速发展于90年代末,中国科学院计算技术研究所、东南大学、西安交通大学等单位相继开展了网络测量系统和方法的研究工作。如可扩展的主动测量模型NEPM采用主动测量技术,通过在网络中配置少量主动测量器,就可测量许多条路径的端到端性能。NEPM是一种层次结构的可扩展模型,它的定义为主动测量提供了一个体系结构上的框架。由于以数据流动所处的阶段划分层次,这种层次结构有以下优点:各层次功能和结构相互独立,每个层次可以选用最优的技术,层次间数据接口比较简单,各层易于实现和维护,具有良好的扩展性和开放性。

近来随着Internet网络的发展,我国已成为世界上Internet用户第二的国家。网络流量的成倍增加同样需要解决流量的监测、预测和网络规划的问题。我国的一些大的ISP和网络规划及运营者也在进行网络流量测量、网络行为、性能分析这方面的工作,正逐步缩小和国外的差距。

2.1 网络测量概述

人们对互联网的流量特征、性能特征、可靠性与安全性特征以及网络行为模型等缺乏理解和缺乏精确描述的问题已经严重影响到因特网的发展和对因特网更加有效的利用,因此,许多专家提出应当更加深入地认识现有因特网的一些内在机制。而认识事物的第一步就是要测量它,并用数字表示出来,然后通过一些数学知识进行分析,提取其网络流量的数据特征。

对网络进行研究的最终目的是为了建立高效、稳定、安全、互操作性强、可预测以及可控制的网络,而网络特征测量是获得第一手网络行为指标和参数的最有效的手段。在对网络进行测量和测试的基础上建立网络行为模型,并用模拟仿真方法搭建从理论到实践的桥梁,是理解网络行为的十分有效的途径。

网络特征测量是高性能协议设计、网络设备开发、网络规划与建设、网络管理与操作的基础,同时也是开发高效能网络应用的基础。网络特征测量可以为互联网的科学管理和有效控制以及为互联网的发展与利用提供科学的依据。网络流量特征是高性能通信协议与网络设备设计、网络性能分析、网络设计及其网络负载均衡等QoS保证和性能提升的基础,也是网络服务监控和异常、故障、安全攻击发现的重要手段。可以帮助人们设计更好的网络协议、更合理的网络拓扑结构、更高效的QoS保证手段、更智能的网络监控系统,保证网络高效、稳定、高性能安全地运行。

2.2 网络测量的作用

网络测量的具体用途可分为故障诊断、网络流量特征化、性能评价和其它用途几大类:

·故障诊断。

某些网络部件的故障会干扰整个网络的运行,例如,广播风暴、非法分组长度、地址错误、安全性攻击等,需要对这些故障进行诊断。

·网络流量特征化。

网络测量可使用统计技术来分析经验数据,从而提取出网络应用或网络协议的特征。流量特征化使设计的网络协议和网络设备具有更好的特性。

·性能评价。

网络测量可用来考察某个协议或某个应用在因特网中的性能水平。网络测量的详细分析能够帮助确定性能“瓶颈”。一旦解决了被确定的性能问题,就能够研制性能更好的新协议。

 

2.3 网络流量的特点

因特网的通信量连续地变化。不仅是通信量本身,通信量的组成、协议、应用以及用户等也都在改变。对现有网络收集的数据仅仅是在因特网演化过程中的一个“快照”。不能把通信量的结构视为不变的。

由于因特网的异构特性,描述聚合的网络流量特点很困难。在因特网中存在着大量不同类型的应用、多种协议、多种接入技术和多种接入速率,同时用户行为及因特网本身也是变化的。

网络流量具有“邻近相关性”效应。表明因特网流量的模式非完全随机。因特网流量的结构与用户在应用层发生的任务有关,因此网络中传送的各分组并非是独立的。邻近相关性包括时间上的邻近相关性和空间上的邻近相关性。在主机级、路由器级和应用级都有该效应。

分组长度分布呈双模态(双尖峰分布)。许多短分组包括交互式的流量和确认;许多长分组是批量数据文件传输类型的应用,这些应用使用尽可能长的分组(基于最大传送单元),中等长度的分组很少。

分组到达不是泊松分布。经典的排队论和网络设计是基于分组的到达过程是泊松分布(无记忆的指数分布)的假定。然而大量的实验结果指出,分组是突发式到达的(分组有成群的特性),分组到达的前后有关联,分组的到达时间并非独立和服从指数分布的。突发到达的特点是:平均值可能很低,但峰值可能很高,这与使用的时间段有关。流量可能是自相似的,在较长的时间范围内存在突发性(突发性难以精确定义)。

流量是双向的,通常是不对称的。数据通常在两个方向流动,但两个方向的数据量往往相差很大(尤其是下载万维网的大文件)。多数应用都使用TCP/IP流量。

在因特网的分组流量中,TCP的份额占绝大部分,至今为止TCP协议一直是最重要的协议。即使目前IP电话和多播技术(这些应用是在UDP上运行)得到广泛应用,TCP仍处于主导地位。在可预见的未来仍是如此。正因为这样,许多研究仅关注TCP。

2.4 网络流量测量方法与常用分析工具

网络流量测量主要分为性能监测与分析、网络拓扑探测、网络的流量分析等三个方面。性能监测与分析,主要是通过监测网络的端到端的时延、抖动、丢包率等特性,了解网络的可达性、利用率以及网络负荷等。网络拓扑探测,主要是通过主动发送TCP包或UDP包,对某一段网络进行探测,以得到这一网段的大致拓扑结构。网络的流量分析,主要是对网络“流”的特性进行测量和分析,以掌握网络的流量特性,比如协议的使用情况,应用的使用情况,用户的行为特征等。网络测量技术总体上可分为主动测量、被动测量和基于SNMP的网络测量三种。由于方法实现方式的不同以及适用范围不同而各有利弊。

·主动测量

主动测量是为了监测两指定端点之间的性能而向网络中注入流量的方法,跟踪和可视化Internet拓扑结构是主动测量最主要的应用,同时主动测量可以探测网络的特定现象。

但是,主动测量给网络增加了潜在的荷载负担,特别是如果没有仔细设计使得该方法产生的流量数最小,那么附加的流量会扰乱网络,歪曲分析结果。

·被动测量

被动测量是直接利用网络中已有的流量,通常采用在网络硬件设备中嵌入智能代理来收集流量信息、监视网络链路的流量,收集到的数据可以用于进行各种流量分析。被动测量可以完全取消附加流量和Heisenberg效应。利用一定的软硬件,被动的监测记录网络上的“流”的情况。优点是一般不会增加额外的网络流量,能够监测网络的流量情况;缺点是不够灵活,一般只能探测某一网段的情况。网络的流量分析一般采用被动监测。

·基于SNMP的网络测量

基于SNMP的网络测量是通过读取相关网络设备的管理信息库(MIB),来得到反映网络状况的性能指标。它无须主动发送探测包,但是读取MIB中的信息仍将占用网络的带宽,而且它需要相关网络设备的访问权限及SNMP协议的支持。SNMP的简单并不在于它的规范和目标,其协议中集成的概念都具有既完美又普通的简单。目前绝大多数网络设备都支持SNMP协议。该方法存在以下优点:

(1)可以在任何时候,收集任何地点的网络的流量。

(2)能够收集到某个网络中大量设备的同步流量信息。

(3)能够获得流量间的相互关系。

(4)能够收集到网络设备自身的工作信息。

2.5 常用分析工具

·Sniffer

美国网络联盟公司的著名网络管理解决方案Sniffer,目前已成为企业首选的网络故障和性能管理的解决方案,它能够自动地帮助网络管理人员维护网络、查找故障,有效简化了发现及解决网络问题的过程。Sniffer Portable(便携式Sniffer)通过提供可以快速识别并解决网络性能问题的便携式分析解决方案来帮助网络技术人员弥补他们欠缺的知识。它能帮助我们解决所有LAN和WAN拓扑结构中最困难的问题。

Sniffer Distributed(分布式Sniffer)为当今多拓扑、多协议分布式网络提供功能强大的网络查错和性能管理解决方案,能够对局域网(LAN)、广域网(WAN)、异步传输模式(ATM)以及千兆以太网等所有网络中的关键网段进行有效的监视、协议解码和分析,充分利用美国网络联盟网络管理专家丰富的知识和经验,在单一的管理控制平台上高效率管理整个企业网络,准确诊断故障,及时解决问题。

一旦发生安全问题,网络流量通常也会发生异常。Sniffer通过对网络流量的分析,可以帮助用户及时找出引发异常流量的症结所在,以便确定安全隐患所在。目前,Sniffer不仅能面向局域网和广域网,同时,还支持无线局域网和移动通信的网络监视和故障解决。它具有便携式、分布式、光网络、无线网络等多种形式,采取软硬件相结合,以便于用户使用。同时,美国网络联盟公司又和ISS达成一个全面合作协议,它将把ISS的Realsecure入侵检测技术和Sniffer先进的网络故障隔离和性能管理技术相结合,在网络管理系统中提供一流的网络入侵方案,确保企业的网络安全。

·MRTG

Mrtg是一个监控网络链路流量负载的工具软件,它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载。MRTG具有以下特色:

·可移植性。目前可以运行在大多数Unix系统和Windows NT之上。

·源码开放。Mrtg是用perl编写的,源代码完全开放。

·高可移植性的SNM支持。Mrtg采用了Simon Leinen编写的具有高可移植性的SNMP实现模块,从而不依赖于操作系统的SNMP模块支持。

·支持SNMPv2c。MRTG可以读取SNMPv2c的64位的记数器,从而大大减少了记数器回转次数。

·可靠的接口标识。被监控的设备的接口可以以IP地址、设备描述、SNMP对接口的编号及Mac地址来标识。

·常量大小的日志文件。MRTG的日志不会变大,因为这里使用了独特的数据合并算法。

·自动配置功能。MRTG自身有配置工具套件,使得配置过程非常简单。

·性能。时间敏感的部分使用C代码编写,因此具有很好的性能。

·PNG格式图形。图形采用GD库直接产生PNG格式。

·可定制性。MRTG产生的web页面是完全可以定制的。

·winpcap

winpcap的主要功能在于独立于主机协议(如TCP-IP)而发送和接收原始数据包。也就是说,winpcap不能阻塞,过滤或控制其他应用程序数据包的发收,它仅仅只是监听共享网络上传送的数据包。因此,它不能用于QoS调度程序或个人防火墙。目前,winpcap开发的主要对象是windows NT/2000/XP,这主要是因为在使用winpcap的用户中只有一小部分是仅使用windows 95/98/Me,并且M$也已经放弃了对win9x的开发。因此本文相关的程序T-ARP也是面向NT/2000/XP用户的。其实winpcap中的面向9x系统的概念和NT系统的非常相似,只是在某些实现上有点差异,比如说9x只支持ANSI编码,而NT系统则提倡使用Unicode编码。有个软件叫sniffer pro.可以作网管软件用,有很多功能,可监视网络运行情况,每台网内机器的数据流量,实时反映每台机器所访问IP以及它们之间的数据流通情况,可以抓包,可对过滤器进行设置,以便只抓取想要的包,比如POP3包,smtp包,ftp包等,并可从中找到邮箱用户名和密码,还有ftp用户名和密码。它还可以在使用交换机的网络上监听,不过要在交换机上装它的一个软件。还有一个简单的监听软件叫Passwordsniffer,可截获邮箱用户名和密码,还有ftp用户名和密码,它只能用在HUB网络上。著名软件tcpdump及ids snort都是基于libpcap编写的,此外Nmap扫描器也是基于libpcap来捕获目标主机返回的数据包的。

2.6 基于概率统计的网络流量特征分析技术介绍

    本课题我们将采用一组名为“capture-H.exe”,“UDPdump.exe”的流量分析工具,完成对各种应用流平均分组大小,平均吞吐量,平均持续时间等测度的采集。完成对采集的各种应用流平均分组大小,平均吞吐量,平均持续时间等测度实现概率分布和一些相关性的分析。

    分组:在数据网络中,是在网络中传输的二进制格式的一个个体。为了提高通信性能和可靠性,每条发送在两个网络设备之间的信息通常被分为一些分组,通过基本的硬件和软件。分组格式通常包括一个头部,身体包括信息数据(也叫做有效载荷),和有时候一个脚部(也叫做尾部)。这个分组头部列出了分组的源地和目的地和通常指出信息数据的长度。这个分组脚部包括表示分组末端的数据。分组头部和脚部可能包括错误检测信息。

平均吞吐量:网络中的数据是由一个个数据包组成,防火墙对每个数据包的处理要耗费资源。吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。其测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。吞吐量测试结果以比特/秒或字节/秒表示。

    在本课题,我们将使用这些概率统计方面的分析方法进行测试研究,得到网络应用流的一个基本特征分析结果。

2.7 TCP/IP原理

TCP/IP是指一整套数据通信协议, 其名字是由这些协议中的两个协议组成的,即传输控制协议(Transmission Control Protocol­ ­——TCP)和网间协议(Internet Protocol——IP)。虽然还有很多其他协议,但是TCP和IP显然是两个最重要的协议。

TCP/IP协议族分层结构主要包括应用层,传输层,网络层,链路层,在应用层主要包括FTP,WWW,DFS,SNMP,传输层主要为TCP,UDP,而网络层主要为ICMP,IP,IGMP,链路层为ARP,ETHERNET,RARP。然后就是传输线路。

网际协议IP是TCP/IP的核心,也是网络层中最重要的协议。网际协议IP是一种不可靠、无连接的协议。它允许两个主机系统在没有任何预先调用设置的情况下交换信息。因为IP是无连接的,所以数据报有可能在两个末端用户站点之间丢失。国际协议IP对它的末端用户把其底层子网隐藏起来。从这个角度来看,它给末端用户建立了一个虚拟网络,允许不同类型的网络和IP网关相连。其结果使得IP的安装非常简单,并且由于IP的无连接设计,它的扩展性也非常好。但是,因为IP是一个不可靠的数据类型协议,所以它没有可靠性机制。它不给底层子网提供容错恢复功能,也没有流量控制。用户数据可能会丢失,甚至不按顺序到达。

传输控制协议TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,逐级交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。通过每个TCP传输的字段指定顺序号,以获得可靠性。如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。通过发送应答,用以确认别的主机收到了数据。

用户数据报协议UDP提供了无连接的数据报服务。它适用于无须应答并且通常一次只传送少量数据的应用软件。

TCP/IP的协议分析过程的基本流程如图2.1所示。

在描述TCP/IP时,一般只定义如图所示的4层模型:应用层、主机对主机传输层、网络层和网络访问层。

图2-2 TCP/IP协议结构中的各层

 

在TCP的应用层中,将数据称为“数据流(stream)“;而在用户数据报协议(UDP)的应用层中,则将数据称为 “报文(message)”。TCP将它的数据结构称作“段(segment)“,而UDP将它的数据结构称作“分组(packet)”;网间层则将所有数据看作是一个块,称为“数据报(datagram)“。TCP/IP使用很多种不同类型的底层网络,每一种都用不同的术语定义它传输的数据,大多数网络将传输的数据称为“分组”或“帧(frame)”。

TCP提供的可靠性是利用一种称为“重传肯定确认(Positive Acknowledgment With Retranmission——PAR)”机制来实现的。换句话说,除非一个利用PAR的系统接收到从远端系统发来的肯定确认,否则就重发原数据。

每一段包含一个校验值,接收方用它来验证数据是否遭到破坏。如果接受到的数据段没有遭到破坏,接收者就发送一个肯定确认应答给发送者;如果遭到破坏,接收者就废弃该段。过了一段时间后,发送端TCP就重新发送没有受到肯定确认的任何段。

TCP是面向连接的,它在两个通信主机之间建立一个逻辑的端对端连接。在传输数据之前,建立对话的两个端点之间交换称为握手的控制信息。TCP通过在段头第4个字的标志字段中设置相应的位来表示一个段的控制功能。

TCP有三个段要交换,故称为“三段试握手”。如图:

图2-3三段试握手

主机A通过将一个具有“同步序列号(SYN)”的段发送给主机B而开始连接,该段告诉主机B:主机A希望建立连接并且使用哪个序列号作为主机A的段的起始号(序列号可用来保持数据的正确顺序);主机B用一个带有“确认应答(ACK)”和“同步序列号(SYN)”位的段响应主机A,以确认收到了A的段,并通知A它将从哪个序列号开始;最后,A发送一个段,确认收到了B的段,并开始传送第一个实际数据。

    TCP还负责将从IP接收到的数据传送给合适的应用程序。接收该数据的应用程序是用一个16位的“端口号”标识的。源端口和目的端口是包含在段头的第一个字节中,使数据正确地传进和传出应用层,这是传输层的一个重要服务。

对传输的数据进行特征分析的前提就是选定目标,进而可以采集有关的数据。一般情况下,数据的采集有主动数据采集和被动数据采集两类。主动数据采集主要是用在对服务器的性能进行测试。被动数据采集是指在流量通过时,在网络某个观测点得到的网络流量数据,其使用范围比较广,大都会采用这种形式来进行数据采集。

    本课题,我们将采用一个比较简单的采集工具进行,采集软件如下所示:

图3-2 采集界面

软件使用方法如下所示:

1.先运行udpdump1命令.bat,选择适当的网络适配器,并只打开一种网络应用程序(如关闭QQ等仅用Web浏览器)访问相应的服务程序,以产生网络流量,再关闭udpdump1命令.bat即可得到一个原始数据文件。

2.拷贝原始数据文件名,用记事本打开capture-H-2007-12-20-MIN.bat,并替换其中>后面的 ...-,保存;

3.再运行capture-H-2007-12-20-MIN.bat,点击界面左上角-编辑-粘贴,再回车,过一会儿键入e,回车,结束程序可以得到一个文本文件;该文本包含流记录(.......TCP或UDP流.......后)以及给出每个流包含的分组。

下面我们将使用这个软件进行流量的采集。

    首先我们选择一个网络软件,比如QQ,网页,或者别的下载工具,这里我们为了使得到的数据更加的符合要求,我们采用下载工具进行测试。首先我们web浏览器。

图3-3 打开web浏览器

·运行udpdump1命令.bat

  打开这个指令,我们会得到如下的界面效果,系统提示选择一个合适的网络适配器。

图3-4 选择合适的网络适配器

    这里我选择第5种,键盘输入5,

图3-5 软件开始采集数据

这个时候,我们进行常规的网页数据的采集以产生流量。然后输入CRTL+C停止数据采集。

图3-6 结束数据采集

这个时候我们会得到采集得到文件:

图3-7 采集得到的数据文件

 

·拷贝原始数据文件名

打开capture-H-2007-12-20-MIN.bat,我们将得到的流量文件的文件名覆盖掉里面的默认文件名。

·生成文本文件

运行capture-H-2007-12-20-MIN.bat点击界面左上角-编辑-粘贴,再回车,过一会儿键入e,回车,结束程序可以得到一个文本文件。

图3-8 保存为文本文件

此时,我们已经得到了网络流量数据。

图3-9 网络流量数据

3.3 基于概率统计的网络流量数据的特征分析

    下面,我们将对得到的数据中的有用信息进行分析,研究网络应用流的特征数据。在本课题我们主要完成对各种应用流平均分组大小,平均吞吐量,平均持续时间等测度的采集。完成对采集的各种应用流平均分组大小,平均吞吐量,平均持续时间等测度实现概率分布和一些相关性的分析。

    通过网络数据流的分析,我们将得到TCP流和UDP流两种数据。我们分别提取其中的数据分别加以保存。

3.3.1利用MATLAB进行仿真

 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类,一类是数值计算型软件,如MATLABXmathGauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,MathematicaMaple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低。MATLAB是矩阵实验室(Matrix Laboratory)的缩写。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用CFORTRAN等语言完成相同的事情简捷得多。

MATLAB通信工具箱中的系统仿真,分为用SIMULINK模块框图进行仿真和用MATLAB函数进行的仿真两种。在用SIMULINK模块框图的仿真中,每个模块,在每个时间步长上执行一次,就是说,所有的模块在每个时间步长上同时执行。这种仿真被称为时间流的仿真。而在用MATLAB函数的仿真中,函数按照数据流的顺序依次执行,意味着所处理的数据,首先要经过一个运算阶段,然后再激活下一个阶段,这种仿真被称为数据流仿真。某些特定的应用会要求采用两种仿真方式中的一种,但无论是哪种,仿真的结果是相同的。

    由于通过C++直接进行数据分析比较繁琐,所以我们在进行实际程序开发之前,我们将首先通过MATLAB进行数据的简单的分析,对所要得到的结果进行初步分析,在本系统中,通过网络流量数据的采集,我们得到了如下的结果。

首先将所要分析的数据导入MATLAB,然后画图查看数据的基本走势。

图3-1 UDP包发送接收对比图

图3-2 UDP字节发送接收对比图

 

图3-3 TCP包发送接收对比图

图3-4 TCP字节发送接收对比图

    这里我们给出了UDP,TCP网络发送数据包字节的发送接收对比图以及发送接收的比率。一般情况下,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试。

    在MATLAB中,我们可以通过概率统计函数进行分析,每种情况下的各种大小字节出现的概率情况。下面我们对上面讲到的四组数据进行统计分析。

图3-5 UDP发送接收包/字节大小分布图

图3-6 TCP发送接收包/字节大小分布图

至此,我们已经完成了网络应用流的简要的概率统计分析,我们对数据的直观波形有了进一步的了解,下面我们将在C++环境下,对系统继续统计分析。

    此处MATLAB的代码如下所示:

clc;

close all;

clear;

UDPs_lrPkt   = xlsread('UDP.xls','Sheet1','H2:H86');

UDPs_rlPkt   = xlsread('UDP.xls','Sheet1','J2:J86');

UDPs_rllrPkt = xlsread('UDP.xls','Sheet1','L2:L86');

UDPs_lrByte  = xlsread('UDP.xls','Sheet1','I2:I86');

UDPs_rlByte  = xlsread('UDP.xls','Sheet1','K2:K86');

UDPs_rllrByte= xlsread('UDP.xls','Sheet1','M2:M86');

TCPs_lrPkt    = xlsread('TCP.xls','Sheet1','I2:I459');

TCPs_rlPkt    = xlsread('TCP.xls','Sheet1','K2:K459');

TCPs_rllrPkt  = xlsread('TCP.xls','Sheet1','M2:M459');

TCPs_lrByte   = xlsread('TCP.xls','Sheet1','J2:J459');

TCPs_rlByte   = xlsread('TCP.xls','Sheet1','L2:L459');

TCPs_rllrByte = xlsread('TCP.xls','Sheet1','N2:N459');

figure(1)

subplot(311);plot(UDPs_lrPkt);title('UDPs_lrPkt');

subplot(312);plot(UDPs_rlPkt);title('UDPs_rlPkt');

subplot(313);plot(UDPs_rlPkt,'r');title('UDPs_rllrPkt');

figure(2)

subplot(311);plot(UDPs_lrByte);title('UDPs_lrByte');

subplot(312);plot(UDPs_rlByte);title('UDPs_rlByte');

subplot(313);plot(UDPs_rllrByte,'r');title('UDPs_rllrByte');

figure(3)

subplot(311);plot(TCPs_lrPkt);title('TCPs_lrPkt');

subplot(312);plot(TCPs_rlPkt);title('TCPs_rlPkt');

subplot(313);plot(TCPs_rllrPkt,'r');title('TCPs_rllrPkt');

figure(4)

subplot(311);plot(TCPs_lrByte);title('TCPs_lrByte');

subplot(312);plot(TCPs_rlByte);title('TCPs_rlByte');

subplot(313);plot(TCPs_rllrByte,'r');title('TCPs_rllrByte');

figure(5)

subplot(221);hist(UDPs_lrPkt);title('UDPs_lrPkt');

subplot(222);hist(UDPs_rlPkt);title('UDPs_lrPkt');

subplot(223);hist(UDPs_lrByte);title('UDPs_lrPkt');

subplot(224);hist(UDPs_rlByte);title('UDPs_lrPkt');

figure(6)

subplot(221);hist(TCPs_lrPkt);title('TCPs_lrPkt');

subplot(222);hist(TCPs_rlPkt);title('TCPs_rlPkt');

subplot(223);hist(TCPs_lrByte);title('TCPs_lrByte');

subplot(224);hist(TCPs_rlByte);title('TCPs_rlByte');

3.3.2 通过C++进行仿真数据运算

C语言之所以要起名为“C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子名字的第一个字母是B; 当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class关键字和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++运算符来体现它是C语言的进步,故而叫C++,成立了C++标准委员会。目前最符合和接近C++标准的编译器有为 GNU GCC 4.5.0 和 Visual Studio 2010 等。   

    下面,我们将对采集到的数据在C++环境下进行分析。

首先要读取保存在txt文件中的数据:

int TCP_lrByte[1000];

ifstream infile1("TCP_lrByte.txt");

for(i=0;i<1000;i++)

infile1>>TCP_lrByte[i];

通过这个代码,我们可以将保存在TXT文件夹下的数据读取,并存入到数组中,之后的操作我们都将基于数组进行。

    下面我们将利用这些数据进行一些概率统计方面的数据运行。

  ·对采集时间内的数据包和字节求和统计

    为了统计分析的需要,我们一般首先计算一定时间内样本数据的总和。这里C++代码如下所示:

double     sum_UDP_rlpkt;

double     sum_UDP_lrpkt;

double     sum_UDP_rlByte;

double     sum_UDP_lrByte;

double     sum_TCP_rlpkt;

double     sum_TCP_lrpkt;

double     sum_TCP_rlByte;

double     sum_TCP_lrByte;

 for(i=0;i<400;i++)

 {

    sum_UDP_rlpkt  = sum_UDP_rlpkt  +  UDP_rlpkt[i];

    sum_UDP_lrpkt  = sum_UDP_lrpkt  +  UDP_lrpkt[i];

    sum_UDP_rlByte = sum_UDP_rlByte +  UDP_rlByte[i];

    sum_UDP_lrByte = sum_UDP_lrByte +  UDP_lrByte[i];

    sum_TCP_rlpkt  = sum_TCP_rlpkt  +  TCP_rlpkt[i];

    sum_TCP_lrpkt  = sum_TCP_lrpkt  +  TCP_lrpkt[i];

    sum_TCP_rlByte = sum_TCP_rlByte +  TCP_rlByte[i];

    sum_TCP_lrByte = sum_TCP_lrByte +  TCP_lrByte[i];

 }

 cout <<"01:The number of tranfram UDP packet is : " << sum_UDP_rlpkt <<endl;

 cout <<"02:The number of receive  UDP packet is : " << sum_UDP_lrpkt <<endl;

 cout <<"03:The number of tranfram UDP byte is   : "   << sum_UDP_rlByte <<endl;

 cout <<"04:The number of receive UDP byte is    : "  << sum_UDP_lrByte <<endl;

 cout <<"01:The number of tranfram TCP packet is : " << sum_TCP_rlpkt <<endl;

 cout <<"02:The number of receive  TCP packet is : " << sum_TCP_lrpkt <<endl;

 cout <<"03:The number of tranfram TCP byte is   : "   << sum_TCP_rlByte <<endl;

 cout <<"04:The number of receive TCP byte is    : "  << sum_TCP_lrByte <<endl;

其运行结果如下所示:

图3-7 对接收到的数据包和字节进行求和

  ·求接收发送比

    在统计吞吐量的时候,我们经常需要计算接到的包/字节除发送的包/字节,在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。

    其对应的C++代码如下所示:

double     TR_UDP_rllrpkt[100];

double     TR_UDP_rllrByte[100];

double     TR_TCP_lrlrpkt[400];

double     TR_TCP_lrlrByte[400];

 for(i=0;i<400;i++)

 {

   TR_TCP_lrlrpkt[i]  =(double)TCP_rlpkt[i]/TCP_lrpkt[i];

   TR_TCP_lrlrByte[i] =(double)TCP_rlByte[i]/TCP_lrByte[i];

   cout<<"TCP_Packet_R/T :"<<TR_TCP_lrlrpkt[i]<<"; TCP_byte_R/T :"<<TR_TCP_lrlrByte[i]<<endl;

 }

 for(i=0;i<50;i++)

 {

   TR_UDP_rllrpkt[i]  =(double)UDP_rlpkt[i]/UDP_lrpkt[i];

   TR_UDP_rllrByte[i] =(double)UDP_rlByte[i]/UDP_lrByte[i];    cout<<"UDP_Packet_R/T:"<<TR_UDP_rllrpkt[i]<<";UDP_byte_R/T :"<<TR_UDP_rllrByte[i]<<endl;

 }

其运行结果如下所示:

图3-8 TCP/UDP接收包字节/发送包字节

·概率区间分布

    我们在上面的MATLAB分析中已经得到了概率分布的效果,这里我们将通过C++进行区间的分别。

for(i=0;i<50;i++)

 {

   if (UDP_rlpkt[i] >=0 && UDP_rlpkt[i] <4)

   {

    UDP_rlpkt_hist[0] = UDP_rlpkt_hist[0] + 1;

    UDP_rlpkt_hist[1] = UDP_rlpkt_hist[1];

    UDP_rlpkt_hist[2] = UDP_rlpkt_hist[2];

    UDP_rlpkt_hist[3] = UDP_rlpkt_hist[3];

   }

 else   if (UDP_rlpkt[i] >=4 && UDP_rlpkt[i] <8)

   {

    UDP_rlpkt_hist[0] = UDP_rlpkt_hist[0] ;

    UDP_rlpkt_hist[1] = UDP_rlpkt_hist[1]+ 1;

    UDP_rlpkt_hist[2] = UDP_rlpkt_hist[2];

    UDP_rlpkt_hist[3] = UDP_rlpkt_hist[3];

   }

  else   if (UDP_rlpkt[i] >=8 && UDP_rlpkt[i] <12)

   {

    UDP_rlpkt_hist[0] = UDP_rlpkt_hist[0] ;

    UDP_rlpkt_hist[1] = UDP_rlpkt_hist[1];

    UDP_rlpkt_hist[2] = UDP_rlpkt_hist[2]+ 1;

    UDP_rlpkt_hist[3] = UDP_rlpkt_hist[3];

   }

 else   if (UDP_rlpkt[i] >=12)

   {

    UDP_rlpkt_hist[0] = UDP_rlpkt_hist[0] ;

    UDP_rlpkt_hist[1] = UDP_rlpkt_hist[1];

    UDP_rlpkt_hist[2] = UDP_rlpkt_hist[2];

    UDP_rlpkt_hist[3] = UDP_rlpkt_hist[3]+ 1;

   }

 }

其运行结果如下所示:

图3-9 UDP包/字节分别区间统计

3.4 本章总结

    本章我们主要对UDP,TCP发送接收的数据包和字节进行了分别统计分析,通过本章的统计研究发现,UDP,TCP的发送和接收的数据包和字节的概率分布基本相同,具有一定的相似性。

 

 

第四章 总结

本文以实际运行的网络环境为对象,有针对性地选择测试目标设备和目标性能参数,进而选择相应的测试方法,并利用统计分析方法,对网络的流量特征作出了分析。

·主要工作总结

本文的主要工作有理论研究及工程实现两个方面。首先从理论上系统地对针对网络流量在特征信息进行分析,其后设计实现了一个基于该技术的流量分析原型系统进行分析验证。本文的主要工作具体包括以下几个方面:

本文从研究流量在概率统计方面的特征信息的角度,来完成对流量数据的分析,这主要涉及到网络流量的提取和数据的分析。

利用C++设计并实现了基于流量分布特征的网络流量监测与分析原型系统。在对上述理论进行了深入分析研究的基础上,设计实现了一个基于流量分布特征的网络流量监测与分析原型系统,其能够分别针对网络流量的大小和流量在特征参数上的分布信息进行监测,来完成较为完善的分析,并最终通过合理的图形方式给用户以直观的展示。

·进一步工作展望

    在研究和实践中,我们主要是通过网络流量监控软件来获得数据流量,所以这中间存在这么一个问题,系统不能够实时的工作,每次只能分析一段数据的概率统计特性。所以在未来的系统完善过程中,我们需要设计一款实时性的软件进行网络流量的概率统计分析。

     

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 基因测序技术发展历史及一、二、三代测序技术原理和应用

    基因测序技术发展历史及一、二、三代测序技术原理和应用 红皇后学术 公众号&#xff1a;红皇后学术&#xff08;ID: zzlphs2516&#xff09; 已关注 125 人赞同了该文章 基因测序技术 基因测序技术也称作DNA测序技术&#xff0c;即获得目的DNA片段碱基排列顺序的技术&…...

    2024/4/21 6:48:34
  2. K8S

    k8s是资源管理器&#xff1a;为了给容器做集群化 使用的是apache的开源协议&#xff1b;是一个开源的分布式资源管理框架&#xff1b; 谷歌有一个组件叫做borg&#xff0c;是管理容器的资源管理器&#xff0c;当时只有谷歌自己可以用&#xff0c;后来用go语言采用corg设计思路…...

    2024/5/6 21:44:26
  3. Android WebView无法加载图片或视频问题

    WebView 如果同时存在 http 及 https无法加载图片或者视频问题 解决方案 if (Build.VERSION.SDK_INT > 21) {// 5.0及以上系统&#xff0c;指定可以HTTPS跨域访问HTTPsettings.setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}但是你会发现&…...

    2024/5/8 5:27:14
  4. C#-如何用SharpDevelop在同一个解决方案里新建程序文件

    一、先新建一个文件夹 二、打开SharpDevelop 三、新建解决方案Solution 四、选择模板&#xff08;从左到右依次是控制台应用程序、Windows用户控件库、Windows应用程序、任务栏图标应用程序、Windows服务&#xff09; 五、这里选择控制台程序&#xff0c;位置选择刚刚创建的…...

    2024/4/24 8:03:42
  5. web 服务器有哪些

    web服务器有哪些 转载自http://blog.csdn.net/weixin_41646716/article/details/82114269 原文的版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;http://blog.csdn.net/wei…...

    2024/4/7 13:07:33
  6. STM32定时器配置与PWM输出比较详解

    STM32定时器配置详解 STM32拥有三种定时器 基本功能 其通用定时器可以被用于&#xff1a;测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)、定时、计数等。 其通用定时器&#xff08;TIM2、TIM3、TIM4、TIM5&#xff09;的功能包括&#xff1a; 1&#x…...

    2024/5/7 5:18:28
  7. Opencv学习笔记 边缘检测

    原图Roberts Mat output null; Mat src_gray null; Mat dstImageX null; Mat dstImageY null; try {src_gray new Mat();Cv2.CvtColor(src, src_gray, ColorConversionCodes.BGR2GRAY);dstImageX src_gray.Clone();dstImageY src_gray.Clone();//Robert算子 X向量Inpu…...

    2024/4/18 8:14:45
  8. HDU 2897 邂逅明下 (SG函数打表+规律)

    Description 当日遇到月&#xff0c;于是有了明。当我遇到了你&#xff0c;便成了侣。 那天&#xff0c;日月相会&#xff0c;我见到了你。而且&#xff0c;大地失去了光辉&#xff0c;你我是否成侣&#xff1f;这注定是个凄美的故事。&#xff08;以上是废话&#xff09; 小t和…...

    2024/4/23 11:35:39
  9. 尚硅谷2019年Netty教程 netty server client 基础版代码讲解 ----目标netty---step5.01

    https://www.bilibili.com/video/BV1jK4y1s7GV?p47 --- client server 端代码调试 https://www.bilibili.com/video/BV1jK4y1s7GV?p46 --- client 端代码编写及讲解 https://www.bilibili.com/video/BV1jK4y1s7GV?p45 --- server端代码编写及讲解 https://www.bilib…...

    2024/4/21 1:22:29
  10. vscode自定义代码模板

    vscode自定义代码模板声明&#xff1a;本次演示以react中的jsx代码的生成模板为例&#xff0c;最终的目标&#xff1a;输入MyComponent回车即可产生下面的代码段&#xff1a; 第一步&#xff1a;在vscode中&#xff0c;file->preferences->User Snippets打开以下界面&…...

    2024/4/27 1:27:46
  11. PointNet++

    PointNet&#xff1a;使用set abstraction结构逐层提取特征&#xff0c;采样后的点融合了邻域点的特征信息&#xff0c;同时每次采样只保留一半的点云&#xff0c;后续网络层的感受野逐渐扩大&#xff0c;最后通过聚合函数得到紧密的全局点云特征表示。 Set abstraction 包括 s…...

    2024/5/2 18:10:05
  12. 小米K20开启开发者模式

    https://www.znj.com/news/37094.html...

    2024/4/30 9:34:29
  13. V - Array Cancellation(贪心,模拟)

    V - Array Cancellation&#xff08;贪心&#xff0c;模拟&#xff09; 题目 You’re given an array a of n integers, such that a1a2⋯an0. In one operation, you can choose two different indices i and j (1≤i,j≤n), decrement ai by one and increment aj by one.…...

    2024/5/1 14:16:27
  14. C++Primer第五版练习14.38、14.39

    练习 14.38&#xff1a;编写一个类令其检查某个给定的string对象的长度是否与一个阈值相等。使用该对象编写程序&#xff0c;统计并报告在输入的文件中长度为1的单词有多少个、长度为2的单词有多少个、长度为10的单词又有多少个。 代码&#xff1a; class CheckLength { publ…...

    2024/5/1 15:51:21
  15. 7-17 符号配对 (20分)

    请编写程序检查C语言源程序中下列符号是否配对&#xff1a;/与/、(与)、[与]、{与}。 输入格式: 输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候&#xff0c;标志着输入结束。程序中需要检查配对的符号不超过100个。 输出格式: 首先&#xff0c;如果所…...

    2024/4/24 0:28:38
  16. LeetCode刷题日记-数组-1128. 等价多米诺骨牌对的数量

    题目描述 题目链接&#xff1a;https://leetcode-cn.com/problems/number-of-equivalent-domino-pairs/ 解题思路 根据1 < dominoes[i][j] < 9&#xff0c;每一对符合条件的数组&#xff0c;例如[1,2]和[2,1]&#xff0c;他们进行排序sorted之后&#xff0c;我们可以…...

    2024/5/1 14:22:59
  17. JAVA 简易的文件读取与写入小程序

    JAVA 简易的文件读取与写入小程序 FileInputStream && FileOutputStream(刚学的I/O流心血来潮做出来的) package IO;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Map; import java.util.Scanner;public …...

    2024/4/27 4:18:16
  18. python学习科普--http返回状态

    python学习科普--http返回状态 一、状态1&#xff1a;信息 100 Continue&#xff1a;服务器仅接收到部分请求&#xff0c;但是一旦服务器并没有拒绝该请求&#xff0c;客户端应该继续发送其余的请求。101 Switching Protocols &#xff1a;服务器转换协议&#xff1a;服务器将…...

    2024/4/27 8:40:10
  19. 初次远程面试蚂蚁金服,三面过后本以为凉凉,没想到直接被录取了

    当前环境&#xff0c;很多公司都采取了远程办公&#xff0c;远程面试。有一说一&#xff0c;第一次远程面试&#xff0c;还是比较紧张的。 蚂蚁金服面试&#xff08;视频一面&#xff09; Java容器有哪些&#xff1f;哪些是同步容器,哪些是并发容器&#xff1f;为什么 Java 要…...

    2024/4/23 15:27:26
  20. 阿里云域名和ip绑定最新详细步骤

    只要申请了域名和IP就可以绑定了之前以为要公安备案啥的 主要步骤 域名解析填写IP地址 进入域名 新手引导 输入IP 转自...

    2024/4/28 20:12:39

最新文章

  1. 小语言模型的潜力

    想象一下这样一个世界&#xff1a;智能助手不在云端&#xff0c;而是在你的手机上&#xff0c;无缝了解你的需求并以闪电般的速度做出响应。这不是科幻小说&#xff0c;而是科幻小说。这是小语​​言模型 (SLM) 的希望&#xff0c;这是一个快速发展的领域&#xff0c;有可能改变…...

    2024/5/8 6:49:48
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 【THM】Protocols and Servers(协议和服务器)-初级渗透测试

    介绍 这个房间向用户介绍了一些常用的协议,例如: HTTP协议文件传输协议POP3邮件传输协议IMAP每个协议的每个任务都旨在帮助我们了解底层发生的情况,并且通常被优雅的GUI(图形用户界面)隐藏。我们将使用简单的 Telnet 客户端来使用上述协议进行“对话”,以充分了解GUI客户…...

    2024/5/7 16:00:50
  4. 最新AI智能系统ChatGPT网站源码V6.3版本,GPTs、AI绘画、AI换脸、垫图混图+(SparkAi系统搭建部署教程文档)

    一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…...

    2024/5/7 0:27:49
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/7 19:05:20
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/7 22:31:36
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/8 1:37:40
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/7 14:19:30
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/8 1:37:39
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/7 16:57:02
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/7 14:58:59
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/7 21:15:55
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/8 1:37:35
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/7 16:05:05
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/7 16:04:58
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/8 1:37:32
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/7 16:05:05
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/8 1:37:31
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/8 1:37:31
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/7 11:08:22
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/7 7:26:29
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/8 1:37:29
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/7 17:09:45
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57