ITRM20110436A1 - METHOD OF MONITORING TIME OF DOWNLOAD CLIENT SIDE OF AN HTML PAGE, AND RELATED MONITORING SYSTEM. - Google Patents
METHOD OF MONITORING TIME OF DOWNLOAD CLIENT SIDE OF AN HTML PAGE, AND RELATED MONITORING SYSTEM. Download PDFInfo
- Publication number
- ITRM20110436A1 ITRM20110436A1 IT000436A ITRM20110436A ITRM20110436A1 IT RM20110436 A1 ITRM20110436 A1 IT RM20110436A1 IT 000436 A IT000436 A IT 000436A IT RM20110436 A ITRM20110436 A IT RM20110436A IT RM20110436 A1 ITRM20110436 A1 IT RM20110436A1
- Authority
- IT
- Italy
- Prior art keywords
- data
- page
- http
- hash table
- packet
- Prior art date
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/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- 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/0852—Delays
-
- 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/0876—Network utilisation, e.g. volume of load or congestion level
-
- 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/18—Protocol analysers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/875—Monitoring of systems including the internet
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Description
Metodo di monitoraggio del tempo di download lato client di una pagina HTML, e relativo sistema di monitoraggio Method for monitoring the client-side download time of an HTML page, and related monitoring system
La presente invenzione riguarda un metodo di monitoraggio del tempo di download lato client di una pagina HTML, e relativo sistema di monitoraggio. The present invention relates to a client-side download time monitoring method of an HTML page, and related monitoring system.
Più precisamente, la presente invenzione riguarda un metodo per l'analisi del traffico di rete utilizzante il protocollo TCP/IP, in cui si misura il tempo di download lato client di una pagina HTML. L'invenzione riguarda altresì un sistema che implementa il metodo secondo l'invenzione. More precisely, the present invention relates to a method for analyzing network traffic using the TCP / IP protocol, in which the client-side download time of an HTML page is measured. The invention also relates to a system which implements the method according to the invention.
La diffusione e la crescita inarrestabile di Internet ha, nel corso degli anni, promosso una sempre maggiore specializzazione delle aree della comunicazione e tecnologia dell'informazione ("Information Technology & Communication", ITC). Il software, 1'hardware e i sistemi di telecomunicazione sono normalmente e necessariamente componenti integrate e tutte cooperanti tra loro. Ma, a causa della crescente complessità, sempre più isolate come singoli pezzi del puzzle contribuendo ad ampliare un gap sempre più definito tra loro. The spread and unstoppable growth of the Internet has, over the years, promoted an ever greater specialization of the areas of communication and information technology ("Information Technology & Communication", ITC). The software, the hardware and the telecommunication systems are normally and necessarily integrated components and all cooperating with each other. But, due to increasing complexity, they are increasingly isolated as individual pieces of the puzzle helping to widen an increasingly defined gap between them.
D'altro canto, un qualsiasi cliente di un qualsiasi sistema informativo ha la necessità di vedere soddisfatte le sue richieste indipendentemente dalla complessità del sistema che le sta erogando. On the other hand, any customer of any information system needs to have his requests satisfied regardless of the complexity of the system that is providing them.
Per contenere la complessità dei nuovi sistemi, si è diffusa, a corredo delle applicazioni, la presenza di strumenti di monitoraggio e controllo convenzionali di tipo applicativo, funzionamento e manutenzione. Tali strumenti hanno la caratteristica di offrire efficaci soluzioni per il controllo applicativo e gestionale, ma hanno, purtroppo, il limite della eccessiva specializzazione. È oggi, infatti, assolutamente normale disporre di una piattaforma di monitore applicativo a corredo della piattaforma di sviluppo scelta così come accade nel dominio del networking, dotarsi di piattaforme (indipendente dal fornitore) per la gestione di rete (tra le principali: TIVOLI, HPOpenview) che assicurano ai clienti finali il controllo capillare di tutti gli apparati della propria rete. Questo va inteso nel senso che gli attuali sistemi informativi hanno tutti gli strumenti di analisi necessari per capire il funzionamento dei singoli blocchi applicativi. To contain the complexity of the new systems, the presence of conventional monitoring and control instruments of application, operation and maintenance has become widespread. These tools have the characteristic of offering effective solutions for application and management control, but unfortunately they have the limit of excessive specialization. Today, in fact, it is absolutely normal to have an application monitor platform accompanying the chosen development platform as it happens in the networking domain, to equip oneself with platforms (independent of the supplier) for network management (among the main ones: TIVOLI, HPOpenview ) which ensure to end customers the capillary control of all the devices of their network. This must be understood in the sense that current information systems have all the analysis tools necessary to understand the functioning of the individual application blocks.
Va considerato, tuttavia, che parallelamente alla spinta sempre maggiore del libero mercato dove tutte le organizzazioni, in concorrenza tra loro, si trovano ad affrontare la complessa sfida della conformità tra i requisiti regolatori provenienti dalle istituzioni governative e la tutela dei propri asset e dei relativi titoli di proprietà intellettuale, l'innovazione costringe tutti gli addetti ai lavori a trovare sempre nuove soluzioni con cui migliorare i propri posizionamenti. E allora, più esplicitamente, come si risponde alla seguente domanda: "è veramente esaustiva la conoscenza che oggi è possibile avere circa che cosa succede all'interno del proprio sistema informativo e come comunicano tra di loro i vari processi aziendali?". It should be considered, however, that parallel to the ever-increasing thrust of the free market where all organizations, in competition with each other, are faced with the complex challenge of compliance between the regulatory requirements coming from government institutions and the protection of their own assets and related intellectual property titles, innovation forces all professionals to always find new solutions with which to improve their rankings. And then, more explicitly, how do you answer the following question: "is the knowledge that today it is possible to have about what happens within one's information system and how the various business processes communicate with each other really exhaustive?".
Secondo fonti autorevoli (Gartner Group), in tutti i sistemi informativi esiste un'area grigia circa pari al 20%, che sfugge sistematicamente a tutti i controlli, soprattutto a causa del tremendo tasso di obsolescenza del software. According to authoritative sources (Gartner Group), in all information systems there is a gray area equal to about 20%, which systematically escapes all controls, mainly due to the tremendous rate of software obsolescence.
I software dei principali operatori del settore (IBM, Oracle, BEA, Tibco, Microsoft) e dei principali operatori del settore comunicazione (Cisco, 3com, ecc.) utilizzano soluzioni e piattaforme proprietarie per i problemi di analisi e individuazione di problema efficacissimi ma non integrati tra loro demandando agli esperti di integrazione di sistema l'onere di questo aspetto all'interno del dominio applicativo. The software of the main operators in the sector (IBM, Oracle, BEA, Tibco, Microsoft) and of the main operators in the communication sector (Cisco, 3com, etc.) use proprietary solutions and platforms for analysis and problem identification problems that are very effective but not integrated with each other, leaving the burden of this aspect within the application domain to system integration experts.
Se, per esempio, si desidera misurare l'indice di performance ("Key Performance Index", KPI) applicativo o l'indice di qualità del servizio QoS ("Quality of Service") di una semplice applicazione web, ad oggi, la metodologia adottata, comporta un elenco di attività di misura definite ed eseguite in ambito, esclusivamente, applicativo. If, for example, you want to measure the application performance index ("Key Performance Index", KPI) or the QoS service quality index ("Quality of Service") of a simple web application, to date, the methodology adopted, involves a list of measurement activities defined and carried out exclusively in the application area.
Questo approccio, però, si sta dimostrando inefficace per diversi motivi, il più importante dei quali è sicuramente il tasso di obsolescenza delle applicazioni e, quindi, la conseguente incapacità di congelare sistemi di misura efficaci per il controllo degli indicatori di performance nel solo dominio applicativo e quindi l'inefficacia dell'utilizzo di soluzioni tradizionali. This approach, however, is proving to be ineffective for several reasons, the most important of which is certainly the rate of application obsolescence and, therefore, the consequent inability to freeze effective measurement systems for controlling performance indicators in the application domain alone. and therefore the ineffectiveness of using traditional solutions.
Nell'ambito di questo problema generale, se ne pone uno più specifico della misura del tempo di download di una pagine HTML dal latoClient. As part of this general problem, a more specific problem arises than the measurement of the download time of an HTML page from the Client side.
La soluzione di questo specifico problema è necessaria per risolvere il problema più generale. Del resto, esiste in letteratura la definizione del tempo di download di una pagina HTML (cfr. figura 1), ma non esiste alcuna metodologia per calcolarlo. The solution of this specific problem is necessary to solve the more general problem. Moreover, the definition of the download time of an HTML page exists in the literature (see Figure 1), but there is no methodology to calculate it.
Scopo della presente invenzione è quello di fornire un metodo di monitoraggio del tempo di download lato client di una pagina HTML, che risolva i problemi e superi gli inconvenienti della tecnica anteriore. The object of the present invention is to provide a client-side download time monitoring method of an HTML page, which solves the problems and overcomes the drawbacks of the prior art.
E' ulteriore scopo specifico della presente invenzione un sistema di monitoraggio del tempo di download lato client di una pagina HTML che implementi il metodo scopo dell'invenzione. A further specific object of the present invention is a client-side download time monitoring system of an HTML page which implements the method which is the object of the invention.
E' oggetto della presente invenzione un metodo per il calcolo del tempo di caricamento di una pagina web in un traffico di rete utilizzante la suite di protocolli TCP/IP, utilizzante uno sniffer per la cattura di pacchetti di dati scambiati tra gli applicativi che girano su dispositivi client ed un server, il metodo essendo caratterizzato dal fatto di catturare detti pacchetti di dati tramite una libreria Pcap, generando ed aggiornando continuamente un file di traffico le cui righe o colonne corrispondono ai singoli pacchetti di dati catturati, e dall'esecuzione delle seguenti fasi successive: The object of the present invention is a method for calculating the loading time of a web page in network traffic using the TCP / IP protocol suite, using a sniffer for capturing data packets exchanged between applications running on client devices and a server, the method being characterized by the fact of capturing said data packets through a Pcap library, continuously generating and updating a traffic file whose rows or columns correspond to the individual data packets captured, and by executing the following next steps:
A. per ogni riga o colonna di detto file di traffico, decidere se il pacchetto di dati è relativo ad una richiesta http, o una risposta http, o un pacchetto grezzo, costruendo continuamente una tabella hash ed un file di pagina relativi alle richieste http, secondo le seguenti sotto fasi: Al . nel caso di richiesta http, viene definita una corrispondente coppia chiave-valore all'interno di detta tabella hash, in cui la chiave è 1'acknowledge della get e il valore contiene il sequence, il referer e l'IP di detto pacchetto di dati ; A. for each row or column of said traffic file, decide if the data packet is related to an http request, or an http response, or a raw packet, continuously building a hash table and a page file related to the http requests , according to the following sub-phases: Al. in the case of an http request, a corresponding key-value pair is defined within said hash table, in which the key is the acknowledgment of the get and the value contains the sequence, the referer and the IP of said data packet ;
A2 . nel caso di una risposta http, trovare la corrispondenza tra una get in detta tabella hash e l'http della risposta cercando il valore di acknowledge della get che sia identico al valore di sequence della http di risposta, e: A2. in the case of an http response, find the correspondence between a get in said hash table and the http of the response by looking for the acknowledge value of the get that is identical to the sequence value of the response http, and:
A2a. se viene trovata la corrispondenza, la corrispondente riga o colonna della tabella hash verrà modificata aggiungendo nel corrispondente valore uno o più parametri contenuti nel pacchetto di dati della risposta http, tra cui almeno il nextseq, e salvare in detto un file di pagina i pacchetti di dati identificati nelle fasi Al e A2; A2a. if the match is found, the corresponding row or column of the hash table will be modified by adding in the corresponding value one or more parameters contained in the data packet of the http response, including at least the nextseq, and saving the packets of data identified in phases Al and A2;
A3 . nel caso di un pacchetto di dati grezzo, cercare la corrispondenza tra uno degli elementi della tabella hash e il pacchetto di dati grezzo tramite l'uguaglianza del valore di nextseq in detta tabella hash e il valore di sequence del pacchetto di dati grezzo, e: A3. in the case of a raw data packet, search for the correspondence between one of the elements of the hash table and the raw data packet by equating the value of nextseq in said hash table and the sequence value of the raw data packet, and:
A3a. se viene trovata la corrispondenza, modificare l'elemento trovato nella tabella hash aggiungendo uno o più dati del pacchetto grezzo di dati, comprendenti almeno il nextseq, e salvare detto elemento trovato su detto un file di pagina; A3a. if the match is found, modifying the element found in the hash table by adding one or more data of the raw data packet, including at least the nextseq, and saving said found element on said a page file;
A3b. se viene trovato il carattere end-chunk, l'elemento trovato della tabella hash di cui alla fase A3a viene salvato su detto file di pagina e poi rimosso dalla stessa tabella hash; A3b. if the end-chunk character is found, the found element of the hash table referred to in step A3a is saved on said page file and then removed from the same hash table;
B. effettuata la fase A per una o più righe o colonne del file di traffico fino a che sia individuata ed isolata la collezione dei pacchetti di dati TCP/IP relativi ad una richiesta http in detto file di pagina, calcolare il tempo di caricamento della pagina web corrispondente a detta richiesta http eseguendo le seguenti fasi: B. Once phase A has been carried out for one or more rows or columns of the traffic file, until the collection of TCP / IP data packets relating to an http request in said page file is identified and isolated, calculate the loading time of the web page corresponding to said http request by performing the following steps:
Bl. inserire in una mappa di sessione utente, le cui righe o colonne consistono di una coppia chiave-valore, una riga o colonna in cui la chiave è l'IP del client ed il referer di detta una richiesta http, ed il valore è un sottoinsieme della collezione dei pacchetti di dati in detto file di pagina che hanno gli stessi IP del client e referer, contenente il primo e l'ultimo pacchetto nel tempo; Bl. insert in a user session map, whose rows or columns consist of a key-value pair, a row or column in which the key is the client's IP and the referer of said http request, and the value is a subset the collection of data packets in said page file which have the same IP as the client and referer, containing the first and last packet in time;
B2. dopo un predefinito timeout, calcolare il tempo pagina semplicemente come differenza tra i tempi di detto ultimo e detto primo pacchetto; B2. after a predefined timeout, calculating the page time simply as the difference between the times of said last and said first packet;
le righe o colonne di detta mappa di sessione utente corrispondendo ad altrettante pagine web. the rows or columns of said user session map corresponding to as many web pages.
Preferibilmente secondo l'invenzione, il tempo di caricamento pagina con relativi riferimenti di pagina si salvano in un file da caricare successivamente su un DBMS. Preferably according to the invention, the page loading time with relative page references are saved in a file to be subsequently loaded on a DBMS.
Preferibilmente secondo l'invenzione, nella fase Bl, detto sottoinsieme coincide con la collezione dei pacchetti di dati. Preferably according to the invention, in step B1, said subset coincides with the collection of the data packets.
E' ulteriore oggetto specifico della presente invenzione un sistema per l'analisi del traffico di rete utilizzante la suite di protocolli TCP/IP, caratterizzato dal fatto di comprendere: A further specific object of the present invention is a system for analyzing network traffic using the suite of TCP / IP protocols, characterized in that it comprises:
- uno o più dispositivi connessi alla rete e generanti traffico di dati; - one or more devices connected to the network and generating data traffic;
- un router e un commutatore interposti tra detto uno o più dispositivi e la rete; - a router and a switch interposed between said one or more devices and the network;
- uno sniffer per la cattura dei pacchetti di dati dal traffico dati, collegato a detto commutatore; - un dispositivo di analisi dati, che analizza i pacchetti catturati, - a sniffer for capturing the data packets from the data traffic, connected to said switch; - a data analysis device, which analyzes the captured packets,
detto dispositivo di analisi dati comprendendo mezzi a codice atti ad eseguire il metodo oggetto dell'invenzione . said data analysis device comprising code means suitable for carrying out the method object of the invention.
Preferibilmente secondo l'invenzione, detto commutatore non ha la funzionalità di mirror port o spam port, si ricorre all'uso dei "tap" collegati tra commutatore e sniffer. Preferably according to the invention, said switch does not have the functionality of mirror port or spam port, the use of the "taps" connected between switch and sniffer is used.
L'invenzione verrà ora descritta a titolo illustrativo ma non limitativo con particolare riferimento ai disegni delle figure allegate, in cui: - la figura 1 mostra la visualizzazione a strati del funzionamento del metodo secondo l'invenzione; The invention will now be described for illustrative but not limitative purposes with particular reference to the drawings of the attached figures, in which: - figure 1 shows the layered display of the operation of the method according to the invention;
- la figura 2 mostra uno schema a blocchi di una possibile configurazione del sistema secondo 1'invenzione; Figure 2 shows a block diagram of a possible configuration of the system according to the invention;
- la figura 3 è una rappresentazione schematica del processo di analisi secondo l'invenzione. Figure 3 is a schematic representation of the analysis process according to the invention.
— la figura 4 mostra un diagramma di misura del tempo di download secondo la tecnica anteriore; — la figura 5 mostra un diagramma a blocchi del sistema secondo la presente invenzione; Figure 4 shows a download time measurement diagram according to the prior art; Figure 5 shows a block diagram of the system according to the present invention;
— la figura 6 mostra un diagramma misto a blocchi e di flusso che illustra il metodo ed il sistema secondo l'invenzione; Figure 6 shows a mixed block and flow diagram illustrating the method and the system according to the invention;
— la figura 7 mostra un diagramma di flusso che illustra il metodo secondo l'invenzione; Figure 7 shows a flow chart illustrating the method according to the invention;
— la figura 8 mostra un ulteriore diagramma di flusso che illustra il metodo secondo 1'invenzione; Figure 8 shows a further flow diagram illustrating the method according to the invention;
— la figura 9 mostra i dati di un esempio specifico di funzionamento del metodo secondo l'invenzione; — la figura 10 mostra ulteriori dati di un esempio specifico di funzionamento del metodo secondo 1'invenzione; Figure 9 shows the data of a specific example of operation of the method according to the invention; Figure 10 shows further data of a specific example of operation of the method according to the invention;
— la figura 11 mostra ulteriori dati di un esempio specifico di funzionamento del metodo secondo 1'invenzione; Figure 11 shows further data of a specific example of operation of the method according to the invention;
— la figura 12 mostra i dati aggregati finali relativi all'esempio specifico di funzionamento delle figure 9-11. - figure 12 shows the final aggregate data relating to the specific example of operation of figures 9-11.
Il metodo generale di diagnostica The general method of diagnostics
Il metodo generale di diagnostica secondo l'invenzione ha l'obiettivo di colmare il vuoto lasciato dalle soluzioni tradizionali a partire dall'analisi del flusso dati, ricostruendo le varie sessioni applicative in modo da sostenere l'algoritmo di definizione dell'indice di qualità, sia esso KPI che QoS. The general diagnostic method according to the invention aims to fill the gap left by traditional solutions starting from the analysis of the data flow, reconstructing the various application sessions in order to support the algorithm for defining the quality index, be it KPI or QoS.
In buona sostanza, ciò che accade è aver spostato l'obiettivo dal contesto applicativo a quello del servizio avendo a disposizione uno strumento capace di comportarsi come un cliente dell'applicazione a partire dalla conoscenza delle risposte che il server applicativo dà alle richieste dei Client. Basically, what happens is having shifted the objective from the application context to that of the service by having a tool capable of behaving like a client of the application starting from the knowledge of the answers that the application server gives to client requests.
In questo modo e senza impatti sull'architettura applicativa, si risolve il problema della elaborazione degli indicatori di performance indipendentemente dal tasso di obsolescenza dell'applicazione. In this way, and without impacting the application architecture, the problem of processing performance indicators is solved regardless of the application obsolescence rate.
Il protocollo TCP/IP The TCP / IP protocol
Il traffico dati, nella rete, è organizzato su diversi livelli. Il modello attualmente in uso dalla maggior parte delle applicazioni in esecuzione su Internet è il TCP/IP. La pila (o "stack") di protocolli TCP/IP è composta da 4 livelli : Data traffic in the network is organized on different levels. The model currently used by most applications running on the Internet is TCP / IP. The stack (or "stack") of TCP / IP protocols consists of 4 levels:
I. elaboratore centrale-rete, I. central computer-network,
II . rete II. net
III . trasporto, III. transport,
IV. applicazione. IV. application.
Lo strato elaboratore centrale-rete è utilizzato per trasportare bit tra i due capi di un canale fisico. Il livello di rete è utilizzato per instradare i pacchetti. Il livello di trasporto è usato per gestire il flusso di comunicazione "da estremità a estremità" (o "end-t o-end" ) ed il controllo degli errori. Il livello applicazione ha come scopo quello di rendere il traffico utile per il funzionamento degli applicativi in esecuzione sui nodi della rete. The central processor-network layer is used to carry bits between the two ends of a physical channel. The network layer is used to route packets. The transport layer is used to handle "end-to-end" (or "end-t or-end") communication flow and error control. The application layer has the purpose of making the traffic useful for the operation of the applications running on the network nodes.
Ogni strato ha i suoi protocolli ad esso associati . Each layer has its own protocols associated with it.
Relativamente allo strato elaboratore centralerete, lo standard attualmente predominante è Ethernet (IEEE 802.3) . L'intestazione (header) Ethernet consiste di indirizzi sorgente e destinazione (ciascuno di 48 bit), un codice di tipo ("type code"), dati, ed infine un "CRC checksum". Regarding the central processor layer, the currently predominant standard is Ethernet (IEEE 802.3). The Ethernet header consists of source and destination addresses (each of 48 bits), a type code, data, and finally a "CRC checksum".
Incapsulati all'interno della sezione dati della trama ci sono le informazioni relative agli altri protocolli . Encapsulated within the data section of the frame are information relating to the other protocols.
Lo strato rete è dominato dal protocollo IP. Ci sono due versioni di IP attualmente in uso, IPv4 e IPv6 . Mentre Ipv6 si appresta ad essere il nuovo standard, la maggior parte delle applicazioni fa uso di Ipv4 . Un header Ipv4 consiste di 13 campi differenti per un totale di 196 bit. The network layer is dominated by the IP protocol. There are two versions of IP currently in use, IPv4 and IPv6. While Ipv6 is set to be the new standard, most applications make use of Ipv4. An Ipv4 header consists of 13 different fields for a total of 196 bits.
Per gli scopi del problema generale qui trattato, solo 3 di questi campi saranno presi in considerazione. Gli indirizzi indicati sono: For the purposes of the general problem dealt with here, only 3 of these fields will be considered. The addresses indicated are:
I. sorgente, I. source,
II. destinazione (32 bit ciascuno), II. destination (32 bits each),
III. l'indicatore di protocollo di 8 bit. III. the 8-bit protocol flag.
Come si può osservare, gli indirizzi di questo strato sono end-to-end, diversamente dagli indirizzi Ethernet che sono point-to-point . As can be seen, the addresses of this layer are end-to-end, unlike Ethernet addresses which are point-to-point.
Il successivo strato nella pila TCP/IP è il livello di trasporto. A differenza dei primi due strati, ci sono numerosi protocolli al livello trasporto. Il TCP è quello che sarà preso in considerazione per la presente invenzione. The next layer in the TCP / IP stack is the transport layer. Unlike the first two layers, there are numerous protocols at the transport layer. TCP is what will be considered for the present invention.
Questo protocollo gestisce il controllo di flusso end-to-end e di errore. La sua funzione è quella di assicurare che i dati trasmessi dal mittente siano ricevuti in ordine e senza errori dal destinatario. In cima alla pila di protocolli c'è il livello applicazione . This protocol handles end-to-end flow control and error control. Its function is to ensure that the data transmitted by the sender is received in order and without errors by the recipient. At the top of the protocol stack is the application layer.
Il protocollo di livello applicazione, che è di interesse, in questa descrizione, per l'attività di intercettazione passiva o "sniffing" è HTTP: "Hyper Text Transfer Protocol". La prima versione, la 0.9, dell'HTTP risale alla fine degli anni '80 e costituiva, insieme con l'HTML e l'URL il nucleo base della "World Wide Web Global Information Initiative" portata avanti da Sir Tim Berners Lee al CERN di Ginevra per la condivisione delle informazioni (documenti e articoli scientifici) tra la comunità dei fisici delle alte energie . The application layer protocol, which is of interest, in this description, for passive interception or "sniffing" activity is HTTP: "Hyper Text Transfer Protocol". The first version, 0.9, of HTTP dates back to the late 1980s and constituted, together with HTML and URL, the core of the "World Wide Web Global Information Initiative" carried out by Sir Tim Berners Lee at CERN of Geneva for the sharing of information (documents and scientific articles) among the community of high energy physicists.
L'HTTP opera attraverso un meccanismo richiesta/risposta: il client invia un messaggio di richiesta ed il server restituisce la risposta, Nell'uso comune il client corrisponde al browser ed il server al sito web. Vi sono perciò due ti])i di messaggi HTTP: messaggi di richiesta e messaggi di risposta . HTTP operates through a request / response mechanism: the client sends a request message and the server returns the response. In common use, the client corresponds to the browser and the server to the website. There are therefore two types of HTTP messages: request messages and response messages.
Lo sniffer The sniffer
Gli sniffer, meglio conosciuti come analizzatori di protocollo, possono essere utilizzati per una moltitudine di scopi. Sniffers, better known as protocol analyzers, can be used for a multitude of purposes.
Uno sniffer è un'applicazione che accede a basso livello ai dati che transitano su una scheda di rete prima che questi vengano manipolati dallo stack di protocolli; questa operazione viene detta cattura o snif fing. A sniffer is an application that low-level accesses data passing through a network card before it is manipulated by the protocol stack; this is called capture or sniff fing.
Per qualunque proposito essi vengano utilizzati, due componenti che uno sniffer di rete deve possedere sono un "tap" e un filtro. For whatever purpose they are used, two components a network sniffer must have are a "tap" and a filter.
Il tap è un meccanismo che permette allo sniffer di ricevere tutto il traffico in transito su una scheda di rete ("Network Interface Card", NIC) . Questo è possibile attraverso l'attivazione del cosiddetto "Promiscuous Mode" della NIC in questione. Il Promiscuous Mode è una modalità di funzionamento in cui la scheda di rete ignora il campo destinazione di un header Ethernet e accetta tutto il traffico in transito. Senza la sua attivazione, una NIC accetterà solo il traffico che è diretto verso di essa, cioè unità Ethernet che abbiano il suo indirizzo fisico nel campo destinazione. The tap is a mechanism that allows the sniffer to receive all traffic in transit on a network card ("Network Interface Card", NIC). This is possible by activating the so-called "Promiscuous Mode" of the NIC in question. Promiscuous Mode is a mode of operation in which the network card ignores the destination field of an Ethernet header and accepts all traffic in transit. Without its activation, a NIC will only accept traffic that is directed towards it, ie Ethernet units that have its physical address in the destination field.
Che si tratti di Sistema Operativo Windows o Unix, l'attivazione del Promiscuous Mode è possibile solo attraverso l'utilizzo di librerie per la cattura di pacchetti (PCAP). Whether it is a Windows or Unix Operating System, the activation of Promiscuous Mode is possible only through the use of libraries for packet capture (PCAP).
PCAP, inizialmente sviluppato per sistemi operativi di tipo Unix (e.g. BSD) è oggi disponibile anche per i sistemi Windows e il suo nome è cambiato in WINPCAP. PCAP, initially developed for Unix-like operating systems (e.g. BSD) is now also available for Windows systems and its name has changed to WINPCAP.
Prima di analizzare ulteriormente il funzionamento di uno sniffer è necessario prendere in considerazione la posizione che il computer, su cui è in esecuzione il programma di sniffing, deve occupare affinché sia in grado di intercettare il traffico. Esso infatti deve trovarsi collegato ad un HUB che si trovi su uno strato a metà tra i nodi di interesse e la rete esterna oppure si deve trovare presso un commutatore che effettui la replicazione o "mirroring" di una porta attraverso cui transitano i dati tra un client ed un server. Questo principio è illustrato in figura 2'. Before further analyzing the functioning of a sniffer it is necessary to take into consideration the position that the computer, on which the sniffing program is running, must occupy in order to be able to intercept the traffic. In fact, it must be connected to a HUB that is located on a layer halfway between the nodes of interest and the external network or it must be located at a switch that performs the replication or "mirroring" of a port through which data transit between a client and a server. This principle is illustrated in Figure 2 '.
Il grosso del lavoro svolto da un sistema come WinPcap è relativo all'interfacciamento con la scheda di rete tramite il driver che la governa, l'estrazione del traffico che circola sulla rete, la scrematura ( "filtering") dei dati ottenuti in base alle specifiche dell'utente, tutte operazioni che non sono permesse ad una normale applicazione. Questo è il motivo per cui è necessario appoggiarsi ad un driver di periferica, il quale rappresenta un'estensione dei servizi offerti dal nucleo del sistema operativo (kernel). The bulk of the work done by a system such as WinPcap is related to interfacing with the network card through the driver that governs it, the extraction of the traffic that circulates on the network, the filtering of the data obtained on the basis of user-specific, all operations that are not allowed to a normal application. This is why it is necessary to rely on a device driver, which represents an extension of the services offered by the core of the operating system (kernel).
Inoltre la cattura dei pacchetti e la loro consegna alle applicazioni è da effettuare con molta attenzione se si vogliono ottenere delle buone prestazioni. Furthermore, the capture of packets and their delivery to applications must be done very carefully if good performance is to be achieved.
La prima operazione eseguita dal NPF è il filtraggio; al fine di evitare copie superflue e risparmiare spazio sul buffer, questa operazione viene, normalmente, eseguita all'inizio della catena di manipolazioni del pacchetto. Il filtro è creato dall'utente tramite un compilatore fornito da WinPcap. Esso consiste in un predicato espresso secondo la logica proposizionale, ossia in un set di condizioni concatenate da opportuni operatori booleani. The first operation performed by the NPF is filtering; in order to avoid unnecessary copies and save space on the buffer, this operation is normally performed at the beginning of the packet manipulation chain. The filter is created by the user through a compiler provided by WinPcap. It consists of a predicate expressed according to propositional logic, that is, in a set of conditions linked by suitable Boolean operators.
Il NPF è realizzato utilizzando l'interfaccia "NDIS" ("Network Driver Interface Specification") che rappresenta lo standard per la comunicazione tra una scheda di rete e il driver che implementa il protocollo. La funzione principale di NDIS è quella di operare da "wrapper" per permettere ai driver di protocollo di inviare e ricevere pacchetti sul network senza preoccuparsi della natura dell'hardware o della particolare versione di Win32. The NPF is made using the "NDIS" interface ("Network Driver Interface Specification") which represents the standard for communication between a network card and the driver that implements the protocol. The main function of NDIS is to act as a "wrapper" to allow protocol drivers to send and receive packets over the network without worrying about the nature of the hardware or the particular version of Win32.
Il NPF è quindi implementato come driver di protocollo e, sebbene questa scelta non sia orientata alla performance, essa garantisce una considerevole indipendenza dal sottolivello MAC e il completo accesso al traffico dei dati grezzi. The NPF is therefore implemented as a protocol driver and, although this choice is not performance oriented, it guarantees considerable independence from the MAC sublayer and full access to raw data traffic.
Facendo riferimento alla figura 1', il metodo secondo l'invenzione è in grado di analizzare i pacchetti catturati tramite le librerie WinPcap o altra Pcap (il primo livello dal basso in figura rappresenta i driver della scheda di rete presenti sul sistema operativo, il secondo livello è la parte relativa alla cattura dei pacchetti ed è qui che agisce WinPcap). Referring to figure 1 ', the method according to the invention is able to analyze the packets captured through the WinPcap or other Pcap libraries (the first level from the bottom in the figure represents the network card drivers present on the operating system, the second level is the packet capture part and this is where WinPcap works).
I pacchetti vengono quindi analizzati (terzo livello della pila in figura) in base a regole predeterminate. L'analisi è in realtà un primo filtro del dato per estrarre i dati del dominio applicativo interesse. The packets are then analyzed (third level of the stack in the figure) on the basis of predetermined rules. The analysis is actually a first data filter to extract the data of the application domain of interest.
Tali dati filtrati vengono inviati allo strato successivo (quarto strato in figura 1) che li cataloga per tipologia a seconda del protocollo richiesto dall'utente finale del sistema secondo l'invenzione. Si estraggono qui dai dati in ciascuna categoria i parametri e le informazioni necessarie per l'analisi della funzionalità di risposta di applicativi che girano al livello dei dispositivi 10 e comunicano dall'esterno verso l'interno e dall'interno verso l'interno. Ad esempio, se il sistema rileva il passaggio di una richiesta, aspetta poi il passaggio della relativa risposta, quindi analizza il contenuto di entrambi al fine di costruire un KPI ("Key Performance Indicator") attraverso il quale monitorare il funzionamento dell'applicazione che ha generato la risposta. These filtered data are sent to the next layer (fourth layer in Figure 1) which catalogs them by type according to the protocol requested by the end user of the system according to the invention. Here, the parameters and information necessary for the analysis of the response functionality of applications running at the level of the devices 10 and communicating from the outside to the inside and from the inside to the inside are extracted from the data in each category. For example, if the system detects the passage of a request, it then waits for the passage of the relative response, then analyzes the content of both in order to build a KPI ("Key Performance Indicator") through which to monitor the operation of the application that generated the response.
I dati catalogati vengono allora inviati al livello successivo (quinto strato in figura 1) per la scrittura di tali dati in un database. The cataloged data is then sent to the next level (fifth layer in figure 1) for writing such data into a database.
L'ultimo strato in figura riguarda la visualizzazione dei dati. The last layer in the figure concerns the visualization of the data.
Facendo ora riferimento alla figura 2', si illustra di seguito un esempio di architettura del sistema 100 secondo l'invenzione. Vari apparati 10 connessi alla rete 50 generano traffico di dati. Tra gli apparati 10 e la rete 50 viene interposto un classico router 40 e un commutatore 20 (se tale commutatore non ha la funzionalità di mirror port o spam port, allora si ricorre all'uso dei tap di cui sopra collegati tra commutatore e sniffer) . A tale commutatore 20 viene collegato uno sniffer 30 per la cattura dei pacchetti di cui sopra. With reference now to Figure 2 ', an example of architecture of the system 100 according to the invention is illustrated below. Various apparatuses 10 connected to the network 50 generate data traffic. Between the devices 10 and the network 50 a classic router 40 and a switch 20 are interposed (if this switch does not have the function of mirror port or spam port, then the above taps connected between switch and sniffer are used) . A sniffer 30 is connected to this switch 20 for capturing the above packets.
I pacchetti vengono poi analizzati come sopra da un dispositivo 60 e visualizzati su un dispositivo 70. The packets are then analyzed as above by a device 60 and displayed on a device 70.
Facendo riferimento ora alla figura 3, si descrive in maggiore dettaglio il processo di estrazione dati secondo l'invenzione. Referring now to Figure 3, the data extraction process according to the invention is described in greater detail.
Un pacchetto dati 80 estratto dallo sniffer 30 è diviso per indirizzo IP o Vlan, ed il sistema si trova di fronte ad una stringa come la sottostante: A data packet 80 extracted from sniffer 30 is divided by IP or Vlan address, and the system is faced with a string like the one below:
148394(MS) ;192. 168.0.1 (IPSORG);192 .168.0.4 (IP_DEST); 2567543324 (SEQ) ;9827397927 (ACK);GET :google .it/open/inde x.html(URL) | (esempio richiesta) 148394 (MS); 192. 168.0.1 (IPSORG); 192 .168.0.4 (IP_DEST); 2567543324 (SEQ); 9827397927 (ACK); GET: google .it / open / inde x.html (URL) | (example request)
148542(MS); 192. 168.0.4 (IPSORG);192. 168.0.1 (IP_DEST); 9827399004 (SEQ); 256 7543325 (ACK); HTTP: 404(CODICE HTTP) | (esempio risposta) 148542 (MS); 192.168.0.4 (IPSORG); 192. 168.0.1 (IP_DEST); 9827399004 (SEQ); 256 7543325 (ACK); HTTP: 404 (HTTP CODE) | (example answer)
Da questa stringa il software cattura una serie di informazioni come: From this string the software captures a series of information such as:
- IP Sorgente - Source IP
- IP Destinazione - Destination IP
- Millisecondi - Milliseconds
- Sequence Number - Sequence Number
- Acknowledgement number - Acknowledgment number
- URL - URL
- Codice http - Http code
Si deve innanzitutto dividere il traffico in richieste e in risposte. You must first divide the traffic into requests and responses.
Le richieste partono dal client verso il server, quindi in questo caso l'IP sorgente sarà il client che effettua la richiesta e l'IP Destinazione quello del server su cui si trovano i dati richiesti, il tempo in millisecondi determina il ritardo con cui si registra la risposta del server dal momento in cui arriva la richiesta del client. Il "Sequence Number" è un numero sequenziale generato durante la transazione per ricostruire i dati alla fine della trasmissione, mentre 1' "acknowledgement " è un codice di conferma inviato dalla macchina di destinazione per dire che il pacchetto precedente è arrivato con successo. The requests depart from the client to the server, so in this case the source IP will be the client making the request and the Destination IP that of the server on which the requested data are located, the time in milliseconds determines the delay with which records the server response from the moment the client request arrives. The "Sequence Number" is a sequential number generated during the transaction to reconstruct the data at the end of the transmission, while the "acknowledgment" is a confirmation code sent by the destination machine to say that the previous packet has arrived successfully.
Nelle risposte i dati sono gli stessi (invertendo la posizione di client e server) con in più l'informazione inerente il codice http che è stato risposto alla URL richiesta. In the replies the data are the same (inverting the position of client and server) with the additional information concerning the http code that was replied to the requested URL.
In tal modo, si hanno tutte le informazioni necessarie per l'analisi della funzionalità degli applicativi che girano sui dispositivi 10 e della funzionalità della loro connessione al server. In this way, all the information necessary for analyzing the functionality of the applications running on the devices 10 and the functionality of their connection to the server is available.
La soluzione secondo l'invenzione è in grado di garantire : The solution according to the invention is able to guarantee:
- un unico punto per l'acquisizione delle informazioni ; - a single point for the acquisition of information;
- un elevato tasso di acquisizione (>= 500 Mbit/s) con aggregazione di canale. - a high acquisition rate (> = 500 Mbit / s) with channel aggregation.
Il monitoraggio in tempo reale dei KPI applicativi : Real-time monitoring of application KPIs:
- QoS ("Quality of Services"), - QoS ("Quality of Services"),
- "trouble Ticketing Time Through" (il sistema è grado di avvisare il personale preposto al controllo dei sistemi informatici in tempo quasi reale (un minuto di ritardo), in modo da diminuire il numero di chiamate da parte degli utenti finali che fruiscono dell'applicazione), - "trouble Ticketing Time Through" (the system is able to notify the staff responsible for controlling the computer systems in near real time (one minute delay), in order to reduce the number of calls from end users who use the application),
- la capacità di auto-riparazione; - the ability to self-repair;
- la completa e non-intrusiva integrazione con tutti i processi aziendali esistenti; - complete and non-intrusive integration with all existing business processes;
- il 100% di scalabilità e continuità commerciale. - 100% scalability and business continuity.
Misura del tempo di download Measurement of download time
Il metodo più specifico secondo l'invenzione ha lo scopo di monitorare il tempo di download lato client di una pagina HTML comunque complessa, a meno del tempo di latenza della rete, per dati trasmessi in chiaro. The more specific method according to the invention has the purpose of monitoring the download time on the client side of a complex HTML page, less than the network latency time, for data transmitted in clear text.
Per tempo di download della pagina intendiamo il tempo intercorso dal momento in cui ha inizio la richiesta HTTP dal browser a quando lo stesso da il messaggio di fine. Eventuali richieste che partano dall'interno della pagina (come ad esempio richieste ajax o animazioni) vengono calcolate separatamente. By page download time we mean the time elapsed from the moment the HTTP request starts from the browser to when the browser gives the end message. Any requests originating from within the page (such as ajax requests or animations) are calculated separately.
E' possibile così monitorare ed archiviare il traffico in transito di tipologia HTTP per l'analisi dei carichi di lavoro sul portale monitorato o su un generico dominio HTTP. It is thus possible to monitor and archive HTTP traffic in transit for the analysis of workloads on the monitored portal or on a generic HTTP domain.
Facendo riferimento alla figura 4, si analizzano nel dettaglio i parametri monitorati e come si interviene nel procedimento di rilevazione del tempo di download. Referring to figure 4, the monitored parameters are analyzed in detail and how to intervene in the download time detection procedure.
Quando un utente richiede una pagina WEB, egli richiede implicitamente un insieme di URL, che sono costituite dalla pagina propriamente richiesta e da tutti gli elementi in essa inclusi quali: immagini, fotogramma, filmati ecc. When a user requests a WEB page, he implicitly requests a set of URLs, which consist of the page properly requested and all the elements included in it such as: images, frames, videos, etc.
Secondo l'invenzione, il tempo rilevato inizia dal momento della richiesta da parte del client fino al momento in cui arriva l'ultimo pacchetto contenente una "HTTP RESPONSE" relativa alla pagina in questione. Nel rilevamento del tempo pagina non viene tenuto conto di eventuali richieste HTTP che partono dalla pagina in maniera asincrona, come ad esempio le richieste relative ai componenti ajax. Queste richieste vengono rilevate in maniera autonoma. According to the invention, the detected time starts from the moment of the request by the client up to the moment in which the last packet arrives containing an "HTTP RESPONSE" relative to the page in question. The detection of page time does not take into account any HTTP requests that originate from the page asynchronously, such as requests relating to ajax components. These requests are detected autonomously.
La finalità ultima è quella di fornire al gestore di rete uno strumento esterno al colloquio che permetta il suo costante monitoraggio e l'archiviazione dello stesso al fine di risalire ad eventuali malfunzionamenti e/o mancata erogazione di servizi. Il metodo secondo l'invenzione viene configurato al fine di erogare le seguenti funzionalità: The ultimate purpose is to provide the network operator with a tool external to the interview that allows its constant monitoring and archiving of the same in order to trace any malfunctions and / or failure to provide services. The method according to the invention is configured in order to provide the following functionalities:
— integrazione con una rete LAN per l'intercettazione di un flusso dati su TCP/IP in protocollo applicativo HTTP (dati in chiaro); - integration with a LAN for the interception of a data flow on TCP / IP in HTTP application protocol (data in clear text);
— intercettazione e successivo salvataggio del medesimo flusso di dati; - interception and subsequent saving of the same data flow;
— analisi sintattica ("parsing") del flusso dati salvato su file al fine di analizzare e ricostruire i dati di interesse; - syntactic analysis ("parsing") of the data flow saved on file in order to analyze and reconstruct the data of interest;
— salvataggio dei dati di interesse su RDBMS; - saving data of interest on RDBMS;
— consultazione dei dati collezionati mediante interfaccia WEB con accesso protetto da password e profilatura utente. - consultation of the collected data via WEB interface with password protected access and user profiling.
L'architettura del metodo secondo l'invenzione e del relativo modulo di elaborazione prevede che le elaborazioni siano effettuate preferibilmente da un sistema proprietario realizzato prevalentemente in C/C++ in ambiente Linux; per l'archiviazione dei dati viene preferibilmente utilizzato un database relazionale quale ORACLE o Postegresql. The architecture of the method according to the invention and of the related processing module provides that the processing is preferably carried out by a proprietary system made mainly in C / C ++ in a Linux environment; a relational database such as ORACLE or Postegresql is preferably used for data storage.
Il modulo di elaborazione secondo l'invenzione si interfaccerà ad esempio all'interno di una VLAN per l'intercettazione di un flusso dati, tale flusso TCP/IP verrà opportunamente reindirizzato da un apparato di rete dedicato (switch, dispatcher, tap, span port) su un'interfaccia ethernet della SONDA o delle SONDE che partecipano al processo (con SONDA intendiamo un dispositivo dedicato ad uno specifico compito definito nell'architettura secondo l'invenzione). The processing module according to the invention will interface for example within a VLAN for the interception of a data flow, this TCP / IP flow will be suitably redirected by a dedicated network device (switch, dispatcher, tap, span port ) on an Ethernet interface of the PROBE or PROBES participating in the process (with PROBE we mean a device dedicated to a specific task defined in the architecture according to the invention).
Relativamente alle tecnologie di intercettazione dei pacchetti in transito sulla rete verrà preferibilmente utilizzato un modulo software in C che fa uso delle funzionalità fornite dalla libreria PCAP. L'analisi sintattica dei pacchetti è preferibilmente realizzata mediante un programma in C++ e la memorizzazione delle informazioni sul RDBMS è realizzata mediante un LOADER scritto interamente in linguaggio JAVA. La gestione del dato all'interno del RDBMS è preferibilmente realizzata attraverso procedure PLSQL (Oracle) - PLPGSQL (Postgresql) che utilizzano concetti avanzati dell'archiviazione tipica della metodologia del data warehouse. L'acceso ai dati e la loro presentazione avviene preferibilmente tramite un'interfaccia WEB realizzata in PHP: la sicurezza dell'informazione è preservata grazie all'accesso tramite autenticazione ed attraverso la profilatura dell'utente autenticato. Le funzionalità del metodo secondo la presente invenzione possono essere integrate all'interno di una piattaforma integrata di diagnostica web. With regard to the technologies for interception of packets in transit on the network, a C software module will preferably be used which makes use of the functions provided by the PCAP library. The syntactic analysis of the packages is preferably carried out by means of a program in C ++ and the storage of the information on the RDBMS is carried out by means of a LOADER written entirely in JAVA language. Data management within the RDBMS is preferably carried out through PLSQL (Oracle) - PLPGSQL (Postgresql) procedures that use advanced archiving concepts typical of the data warehouse methodology. Access to the data and their presentation preferably takes place via a WEB interface created in PHP: information security is preserved thanks to access through authentication and through the profiling of the authenticated user. The functionalities of the method according to the present invention can be integrated within an integrated web diagnostics platform.
Facendo ora riferimento alla figura 2 ("deployment diagram"), è possibile per prima cosa individuare l'oggetto del monitoraggio: nel nostro caso si tratta di un portale che contiene applicazioni WEB. Il traffico di rete indirizzato/generato su questo portale dovrà essere reso accessibile, tramite opportuni meccanismi/apparati di replica, all'appliance dedicato allo sniffing dei pacchetti TCP/IP (SONDA). Referring now to figure 2 ("deployment diagram"), it is possible first of all to identify the object of monitoring: in our case it is a portal that contains WEB applications. The network traffic directed / generated on this portal must be made accessible, through appropriate replication mechanisms / apparatuses, to the appliance dedicated to sniffing TCP / IP packets (PROBE).
Il metodo secondo l'invenzione comprende l'uso delle seguenti componenti hardware/software. The method according to the invention comprises the use of the following hardware / software components.
Anzitutto è utilizzata una SONDA: essa contiene mezzi per l'effettuazione del processo di sniffing ed del processo di parsering e salvataggio dei dati di interesse (preferibilmente, il primo è in C mentre il secondo in C++) . Il trasferimento dei dati sul db avviene preferibilmente tramite un jar JAVA. First of all, a PROBE is used: it contains means for carrying out the sniffing process and the parsering and saving process of the data of interest (preferably, the first is in C while the second in C ++). The data transfer on the db is preferably done through a JAVA jar.
E' utilizzato un modulo software qui chiamato "EVENT COLLECTOR": esso contiene l'RDBMS con la base dati della piattaforma integrata secondo l'invenzione. Nella base dati sono implementate tecniche di conservazione dei dati che permettono di salvare i dati aggregati e di dettaglio, permettendo di definire per questi ultimi il tempo desiderato di archiviazione . A software module called "EVENT COLLECTOR" is used: it contains the RDBMS with the database of the integrated platform according to the invention. In the database, data retention techniques are implemented that allow you to save aggregate and detailed data, allowing you to define the desired storage time for the latter.
Infine è utilizzato un WEB SERVER, che contiene la componente di presentazione con la quale è possibile accedere alle funzionalità della suddetta piattaforma integrata di diagnostica. Finally, a WEB SERVER is used, which contains the presentation component with which it is possible to access the functions of the aforementioned integrated diagnostic platform.
Il software relativo al metodo secondo l'invenzione si può installare direttamente sulla macchina EVENT COLLECTOR, anche se per ragioni di efficienza si preferisce l'installazione sulla SONDA come in figura 5. The software relating to the method according to the invention can be installed directly on the EVENT COLLECTOR machine, even if, for reasons of efficiency, installation on the PROBE is preferred as in figure 5.
Per descrivere il processo generale di HTTP CRONO PAGE si fa ora riferimento al diagramma della figura 6. Dall'architettura riportata, si evince il processo che subisce l'informazione quando arriva all'interno del sistema. Gli attori che si possono individuare sono 3: To describe the general process of HTTP CRONO PAGE, reference is now made to the diagram in figure 6. From the architecture shown, the process that undergoes the information when it arrives inside the system can be deduced. The actors that can be identified are 3:
- SONDA; - PROBE;
- EVENT COLLECTOR; e - EVENT COLLECTOR; And
WEB SERVER. WEB SERVER.
Facendo riferimento alla figura 7, si illustra ora nel dettaglio il funzionamento del blocco INTERPRETER installato sulla SONDA, che calcola il tempo di download. Questo algoritmo trova le sue fondamenta nel campo Referer, che è un campo dell'header HTTP. Il Referer è l'URL della richiesta HTTP precedente. Referring to figure 7, the operation of the INTERPRETER block installed on the PROBE, which calculates the download time, is now illustrated in detail. This algorithm has its foundation in the Referer field, which is a field of the HTTP header. The Referer is the URL of the previous HTTP request.
L'interprete opera su tre passi fondamentali: The interpreter works on three basic steps:
— Ricostruzione della singola richiesta http; - Reconstruction of the single http request;
— Collezione di tutte le richieste divise per IP Client e Referer (individuando la richiesta precedente); successivamente, per ogni singola collezione si prende il primo e l'ultimo pacchetto inviato che risulta così essere il tempo trascorso per il download della pagina; - Collection of all requests divided by IP Client and Referer (identifying the previous request); subsequently, for each single collection, the first and last packet sent is taken, which thus turns out to be the time elapsed for the page download;
— Dumping di un file dati che poi sarà caricato sulla base dati. - Dumping of a data file which will then be loaded on the database.
L'algoritmo riportato in figura 7 viene eseguito per ogni file di tipo pcap catturato dalla rete. L'invio del file .pcap avviene ad intervalli temporali predefiniti (ad esempio ogni 60 secondi): quindi il programma secondo l'invenzione sarà attivato da un generatore di evento all'arrivo del file e comincerà l'attività riportata nel diagramma. The algorithm shown in figure 7 is performed for each pcap type file captured by the network. The .pcap file is sent at predefined time intervals (for example every 60 seconds): therefore the program according to the invention will be activated by an event generator when the file arrives and the activity shown in the diagram will begin.
Il file .pcap viene aperto e per ogni riga si decide: The .pcap file is opened and for each line you decide:
- Se è una richiesta http (get/post, vedi appendice); - If it is an http request (get / post, see appendix);
- Se è una risposta http; - If it is an http response;
- Se è un pacchetto grezzo. - If it's a raw package.
Nel primo caso viene definito un nuovo elemento all'interno di un contenitore di tipo tabella hash (per la definizione di tabella hash o "mappa" si veda la pagina http ://it.wikipedia.org/wiki/Hash_table). L'elemento avrà una coppia chiave-valore che avrà come chiave iniziale 1'acknowledge della get e come valore i parametri contenuti nel pacchetto: sequence, acnnowledge, porta srg, mac_server, current milsec, uri, host, referer. In the first case, a new element is defined inside a hash table type container (for the definition of hash table or "map" see the page http: //it.wikipedia.org/wiki/Hash_table). The element will have a key-value pair that will have as its initial key the acknowledgment of the get and as its value the parameters contained in the package: sequence, acnnowledge, port srg, mac_server, current milsec, uri, host, referer.
Nel secondo caso si tratterà di trovare la corrispondenza tra le get (elementi inseriti nella mappa) e l'http di risposta (pacchetto corrente) tramite 1'acknowledge della get e il sequence della http di risposta, in breve 1'acknowledge della get dovrà essere uguale al sequence dell'http di risposta. Se viene trovata la corrispondenza l'elemento della mappa (la get) verrà modificato aggiungendo i parametri contenuti nel pacchetto di risposta http: content type, content lenght (grandezza totale in byte dell'oggetto richiesto), packet lenght (grandezza in byte del pacchetto corrente (TCP/IP))), nextseq (il prossimo sequence valido per l'aggregazione), byte di dati che compongono l'oggetto. In questo caso l'elemento viene salvato su un nuovo file .txt che sarà poi elaborato nel passo successivo dell'algoritmo. In the second case it will be a question of finding the correspondence between the get (elements inserted in the map) and the response http (current packet) through the get acknowledgment and the response http sequence, in short the get acknowledgment must be equal to the sequence of the response http. If the match is found, the map element (the get) will be modified by adding the parameters contained in the response packet http: content type, content length (total size in bytes of the requested object), packet length (size in bytes of the packet current (TCP / IP))), nextseq (the next valid sequence for aggregation), bytes of data that make up the object. In this case the element is saved on a new .txt file which will then be processed in the next step of the algorithm.
Nel terzo caso si cercherà la corrispondenza tra uno degli elementi della mappa e il pacchetto grezzo corrente tramite i valori nextseq del primo (elemento della mappa) e sequence del secondo(pacchetto grezzo corrente). Se viene trovata la corrispondenza l'elemento della mappa verrà modificato aggiungendo i dati del pacchetto grezzo corrente: byte di dati che compongono l'oggetto richiesto, packet len, nextseq, anche in questo caso l'elemento viene salvato sul file .txt elaborato nello passo successivo dell'algoritmo. In the third case we will search for the correspondence between one of the map elements and the current raw package through the nextseq values of the first (map element) and sequence of the second (current raw package). If the match is found, the map element will be modified by adding the data of the current raw package: bytes of data that make up the requested object, packet len, nextseq, also in this case the element is saved on the .txt file processed in the next step of the algorithm.
Nel caso in cui nella http di risposta o nel pacchetto grezzo viene a trovarsi il carattere endchunk (che indica la fine della sequenza di dati che compongono l'oggetto) l'elemento viene salvato sul file .txt di elaborazione e poi rimosso dalla mappa. If the endchunk character (which indicates the end of the sequence of data making up the object) is found in the response http or in the raw package, the element is saved on the processing .txt file and then removed from the map.
Effettuata la ricostruzione delle sessioni, cioè avendo individuato ed isolato la sequenza dei pacchetti tcp/ip relativi ad una singola richiesta http, si descrive in riferimento alla figura 8 come dall'insieme di queste si calcola il tempo pagina. Once the sessions have been reconstructed, that is, having identified and isolated the sequence of tcp / ip packets relating to a single http request, it is described with reference to Figure 8 how the page time is calculated from all of these.
Nel diagramma è evidenziato che l'attività si compone di due azioni. The diagram shows that the activity consists of two actions.
La prima è quella di ricostruire la User Session Map che ha come chiave <ip del Client, referer> della pagina mentre il valore è la collezione dei pacchetti che hanno lo stesso <ip del Client, referer> (per motivi di performance si possono memorizzare solo il primo e l'ultimo pacchetto della collezione). The first is to reconstruct the User Session Map which has as key <ip of the Client, referer> of the page while the value is the collection of packages that have the same <ip of the Client, referer> (for performance reasons they can be stored only the first and last pack of the collection).
La seconda è, per ogni collezione completata - e l'invenzione la considera completata se è passato un predefinito timeout - calcolare il tempo pagina semplicemente come differenza tra l'ultimo de il primo pacchetto inviato. Il timeout può dipendere dalla configurazione della piattaforma host monitorata o da una specifica del cliente. Se il timeout ancora non è superata la colleziona viene memorizzato ed analizzato nel successivo intervallo temporale: questo perché la pagina potrebbe essere ancora in fase di download. The second is, for each completed collection - and the invention considers it completed if a predefined timeout has passed - calculate the page time simply as the difference between the last and the first packet sent. The timeout may depend on the configuration of the monitored host platform or a customer specification. If the timeout is not yet exceeded, the collection is stored and analyzed in the next time interval: this is because the page may still be downloading.
Una terza fase è inclusa nel diagramma precedente e prevede il salvataggio dei tempi pagina calcolati con i relativi riferimenti (esempio IPClient, tempo inizio download, size della pagina, etc.) in un file da caricare successivamente sul DBMS. A third phase is included in the previous diagram and involves saving the calculated page times with the relative references (eg IPClient, download start time, page size, etc.) in a file to be subsequently uploaded to the DBMS.
Esempio specifico di realizzazione Specific example of realization
Di seguito si riporta un esempio di calcolo realizzato con il metodo dell'invenzione. An example of calculation carried out with the method of the invention is reported below.
La pagina di cui si è misurato il tempo di download è la home page di Google<®>Italia. Le informazioni che si ricevono in una normale sessione di cattura dati sono un insieme di record uguali a quelli qui presentati ma, ovviamente, con valori diversi. The page whose download time was measured is the home page of Google <®> Italy. The information received in a normal data capture session is a set of records identical to those presented here but, obviously, with different values.
In questa sequenza di record si riconosce secondo l'invenzione una richiesta http di tipo get/post (qui non riportata in quanto ben nota in letteratura). Una volta che si è individuato il pacchetto definito in precedenza (abbiamo visto che nel flusso di traffico si isola un pacchetto che ha i parametri di una richiesta HTTP e da questo pacchetto inizia l'analisi secondo l'invenzione; i parametri per riconoscere una richiesta HTTP sono la porta, standard la 80, ed il carico pagante o "payload" che comincia con GET, POST od altri indici meno frequenti ma noti in letteratura), si è isolato il record della figura 9. According to the invention, this sequence of records recognizes an http request of the get / post type (not reported here as it is well known in the literature). Once the previously defined packet has been identified (we have seen that in the traffic flow a packet that has the parameters of an HTTP request is isolated and from this packet the analysis according to the invention begins; the parameters to recognize a request HTTP are the port, standard 80, and the paying load or "payload" that begins with GET, POST or other less frequent indexes but known in the literature), the record of figure 9 has been isolated.
Ora si va a cercare nella sequenza di pacchetti catturati quello il cui sequence avrà valore Sequence+PacketSize = 1314709076+1430 = 1314710506. Questo sarà il pacchetto successivo nella trasmissione dati. Il pacchetto in questione è riportato come elemento nella tabella della figura 10. Now we go to search in the captured packet sequence the one whose sequence will have the value Sequence + PacketSize = 1314709076 + 1430 = 1314710506. This will be the next packet in the data transmission. The package in question is shown as an element in the table in Figure 10.
Questo tipo di attività viene ripetuta ricorsivamente sino a trovare il segnale end-chunk che indica la fine della trasmissione dati relativa alla richiesta. In questo modo si riesce ad isolare la singola richiesta http che si definisce "atomica" all'interno di una pagina complessa. This type of activity is recursively repeated until the end-chunk signal is found which indicates the end of the data transmission relating to the request. In this way it is possible to isolate the single http request that is defined as "atomic" within a complex page.
Una volta ricostruiti tutti questi insiemi, essi vengono discriminati per indirizzo IP e per referer: si avrà così un insieme di tutte le sequenze che hanno tutti e due questi parametri uguali. Questo insieme è presentato nella tabella della figura 11. In figura sono riportate tutte le richieste HTTP che concorrono a formare la pagina in questione. La colonna evidenziata in giallo è quella che rappresenta il tempo di arrivodei singoli pacchetti (tempo in cui il pacchetto è catturato) in millisecondi mentre si possono vedere nell'ultima colonna le componenti della pagina. Once all these sets have been reconstructed, they are discriminated by IP address and by referer: in this way we will have a set of all the sequences that have both these parameters equal. This set is presented in the table of figure 11. The figure shows all the HTTP requests that concur to form the page in question. The column highlighted in yellow is the one that represents the arrival time of the individual packets (time in which the packet is captured) in milliseconds while the components of the page can be seen in the last column.
In figura 12 si mostra l'informazione aggregata che verrà poi salvata sulla base dati. Sempre in giallo è rappresentato il tempo di download (in millisecondi) della pagina che viene così salvato sulla base dati e sarà poi fruibile all'utente finale attraverso l'interfaccia WEB del sistema integrato dell'invenzione . Figure 12 shows the aggregate information which will then be saved on the database. Also in yellow is the download time (in milliseconds) of the page which is thus saved on the database and will then be available to the end user through the WEB interface of the integrated system of the invention.
I benefici che si possono ottenere dal sistema secondo l'invenzione sono molteplici, si sottolineano qui i seguenti aspetti: The benefits that can be obtained from the system according to the invention are manifold, the following aspects are emphasized here:
- monitoraggio "near reai time" delle richiesteClient su un portale WEB; - "near real time" monitoring of Client requests on a WEB portal;
- misura del tempo che impiega ciascuna pagina HTTP ad essere scaricata lato Client; - measurement of the time it takes each HTTP page to be downloaded on the Client side;
- salvataggio dell'andamento dei dati con una finestra temporale definita su richiesta dell'utente; - saving of the data trend with a time window defined at the request of the user;
- fornitura di dati utili ad un sistema di reportistica orientato all'utente ed integrato e.g. in un portale di diagnostica web. - provision of useful data to a user-oriented and integrated reporting system e.g. in a web diagnostics portal.
Il metodo è utilizzabile all'interno di un sistema informativo complesso al fine di monitorare ed archiviare lo stato globale dello stesso. The method can be used within a complex information system in order to monitor and archive its global status.
In quel che precede sono state descritte le preferite forme di realizzazione e sono state suggerite delle varianti della presente invenzione, ma è da intendersi che gli esperti del ramo potranno apportare modificazioni e cambiamenti senza con ciò uscire dal relativo ambito di protezione, come definito dalle rivendicazioni allegate. In the foregoing, the preferred embodiments have been described and variants of the present invention have been suggested, but it is to be understood that those skilled in the art will be able to make modifications and changes without thereby departing from the relative scope of protection, as defined by the claims attached.
Claims (5)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IT000436A ITRM20110436A1 (en) | 2011-08-11 | 2011-08-11 | METHOD OF MONITORING TIME OF DOWNLOAD CLIENT SIDE OF AN HTML PAGE, AND RELATED MONITORING SYSTEM. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IT000436A ITRM20110436A1 (en) | 2011-08-11 | 2011-08-11 | METHOD OF MONITORING TIME OF DOWNLOAD CLIENT SIDE OF AN HTML PAGE, AND RELATED MONITORING SYSTEM. |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ITRM20110436A1 true ITRM20110436A1 (en) | 2013-02-12 |
Family
ID=44899071
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| IT000436A ITRM20110436A1 (en) | 2011-08-11 | 2011-08-11 | METHOD OF MONITORING TIME OF DOWNLOAD CLIENT SIDE OF AN HTML PAGE, AND RELATED MONITORING SYSTEM. |
Country Status (1)
| Country | Link |
|---|---|
| IT (1) | ITRM20110436A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6446028B1 (en) * | 1998-11-25 | 2002-09-03 | Keynote Systems, Inc. | Method and apparatus for measuring the performance of a network based application program |
| US6493754B1 (en) * | 1995-08-10 | 2002-12-10 | Computer Associates Think, Inc. | Method and apparatus for analyzing communications on different threads |
-
2011
- 2011-08-11 IT IT000436A patent/ITRM20110436A1/en unknown
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6493754B1 (en) * | 1995-08-10 | 2002-12-10 | Computer Associates Think, Inc. | Method and apparatus for analyzing communications on different threads |
| US6446028B1 (en) * | 1998-11-25 | 2002-09-03 | Keynote Systems, Inc. | Method and apparatus for measuring the performance of a network based application program |
Non-Patent Citations (1)
| Title |
|---|
| HONG JAMES W: "TU18: Interne Traffic Monitoring and Analysis: Methods and Applications", GLOBAL TELECOMMUNICATIONS CONFERENCE WORKSHOPS, 2004. GLOBECOM WORKSHO PS 2004. IEEE DALLAS, TX, USA 29 NOV. - 3 DEC., 2004, PISCATAWAY, NJ, USA,IEEE, 29 November 2004 (2004-11-29), pages 1 - 63, XP002609903, ISBN: 978-0-7803-8798-0 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Chen et al. | Measuring TCP round-trip time in the data plane | |
| Chen et al. | A provider-side view of web search response time | |
| US20080209045A1 (en) | Capture and Resumption of Network Application Sessions | |
| CN107771320A (en) | System and method for improving secure sockets layer (SSL) communication security | |
| CN103905406B (en) | A kind of detection method and device of the firewall policy that fails | |
| BRPI0821370B1 (en) | METHOD FOR CONFIGURING ACLS ON NETWORK DEVICE BASED ON FLOW INFORMATION | |
| JP2023530828A (en) | Rapid identification of violations and attack executions in network traffic patterns | |
| WO2019006018A1 (en) | Apparatus and method for establishing baseline network behavior and producing reports therefrom | |
| CN110048908A (en) | Instruction Network Test System Platform, network test method and device | |
| CN103780454A (en) | Distributed network performance measuring system and method based on access gateways | |
| Luo et al. | Design and Implementation of TCP Data Probes for Reliable and Metric-Rich Network Path Monitoring. | |
| CN104243230B (en) | The method and apparatus of monitoring data in a kind of acquisition Linux server | |
| WO2019089256A1 (en) | Auto discovery of network proxies | |
| EP2772019B1 (en) | Methods, systems, and computer readable media for testing a diameter routing node | |
| Iurman et al. | Towards cross-layer telemetry | |
| CN104104548B (en) | A kind of network safety situation Information Acquisition System and method based on SFLOW and OWAMP | |
| CN108039986A (en) | Monitor the method, apparatus and storage medium of web application performances | |
| Sheoran et al. | Invenio: Communication affinity computation for low-latency microservices | |
| CN206461664U (en) | A kind of data collecting system | |
| López et al. | Effective analysis of secure web response time | |
| CN108011776A (en) | A kind of system and method for realizing real time monitoring cloud computing host resource operation information | |
| ITRM20110436A1 (en) | METHOD OF MONITORING TIME OF DOWNLOAD CLIENT SIDE OF AN HTML PAGE, AND RELATED MONITORING SYSTEM. | |
| CN106161339A (en) | Obtain the method and device of IP access relation | |
| JP2013243534A (en) | Delay time evaluation device and method for evaluating delay time | |
| CN103259804B (en) | Method and system for obtaining and comparing network service quality information |