Διπλωματική Εργασία ΑΠΟΔΟΣΗ ΣΥΣΤΗΜΑΤΩΝ THIN CLIENT ΠΑΝΩ ΑΠΟ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. κ. Γ.



Σχετικά έγγραφα
Απόδοση συστηµάτων thin-client σε ασύρµατα δίκτυα

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

Προετοιμασία σύνδεσης του modem. Εγκατάσταση του Modem

ΕΓΚΑΤΑΣΤΑΣΗ ΣΥΝ ΕΣΗΣ DIAL-UP ΣΕ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINDOWS XP

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

Εγχειρίδιο εγκατάστασης και βασικής παραμετροποίησης σεναρίου εστίασης

MCSS Medical Center Support Systems. Setup Instructions

Σενάριο Εστίασης Win XP:

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P.

ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΑΣΥΡΜΑΤΟ ΔΙΚΤΥΟ eduroam

Εγκατάσταση Microsoft SQL Server

Συγχρηµατοδοτούµενο από το ΥΠΕΠΘ και την Ευρωπαϊκή Ένωση

MS SQL 2005 Standard (Εγκατάσταση)

Κέντρο υποστήριξης HP. Εισαγωγή. Τι χρειάζεται να γνωρίζετε. Λήψη και εγκατάσταση της λύσης Vista στα Windows 8. 1 of 5 1/7/2014 2:09 μμ

XnetTrader: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ σε ΔΧΣ Τερματικό

Οδηγός Εγκατάστασης

MS SQL 2000 Standard (Εγκατάσταση)

MS SQL 2012 Express (Εγκατάσταση με Advanced Services)

Οδηγίες Χρήσης EAP Controller Software

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Επεξεργασίας Κειμένου. 2. Κύρια Οθόνη Της Εφαρμογής Κειμένου ΣΤΟΧΟΙ:

Epsilon Net PYLON Platform

NOAS. Οδηγίες Εγκατάστασης και Λειτουργίας. Πακέτου Εφαρµογών. (Network On Line Advertisement System) Θεσσαλονίκη Νοέµβριος 2007.

Χρήσιμες Ρυθμίσεις του Windows 7 στον Η/Υ σας

Οδηγός Σύνδεσης στο Ασύρματο Δίκτυο cs-wifi του Τμήματος Πληροφορικής του Πανεπιστημίου Κύπρου για Windows 7

Με λίγα λόγια, το TCP/IP καθορίζει τον τρόπο που πακετάρονται και μεταφέρονται τα δεδομένα της σύνδεσής μας.

ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

α) η καταγραφή και η σύλληψη της δικτυακής κίνησης (capture) και β) η ανάλυση της δικτυακής κίνησης.

Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ. MS SQL Server Για τις ανάγκες των εφαρµογών της

Σύνδεση στο δίκτυο του Πανεπιστηµίου µέσω modem (dial-up πρόσβαση) σελ. 1

Οδηγός Σύνδεσης στο Ασύρματο Δίκτυο cs-wifi του Τμήματος Πληροφορικής του Πανεπιστημίου Κύπρου για Windows 7, CentOS 6, Mac OS, IOS, και Android

Εγκατάσταση του εκτυπωτή από το CD λογισμικού και τεκμηρίωσης

ιαδικασία εγκατάστασης - αναβάθµισης MS SQL Server 2014 Express Edition για SingularLogic Control, Accountant, Λογιστικά

Συνοπτικός Οδηγός Χρήσης του MySQL Workbench

ADSL USB MODEM. Εγχειρίδιο Χρήστη

Οδηγός σύνδεσης στο δίκτυο του ΤΕΠΑΚ μέσα από την υπηρεσία απομακρυσμένης πρόσβασης VPN Τεχνολογικό Πανεπιστήμιο Κύπρου

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

Υπηρεσία Πληροφορικών Συστημάτων Τομέας Συστημάτων

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή)

Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π. Οδηγίες Σύνδεσης για λοιπά Linux/Unix Συστήματα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ OTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΛΟΓΙΣΜΙΚΟ CISCO JABBER ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/76

ΕΠΛ : Εισαγωγή στην Επιστήμη της Πληροφορικής Σημειώσεις Εργαστηρίων (2009)

ΒΟΗΘΕΙΑ ΓΙΑ ΤΟ ΗΛΕΚΤΡΟΝΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ( )

TeleCost Hotel για Panasonic TDA

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ SQL SERVER 2008 R2 Express

Εγκατάσταση IIS (Internet Information Server) 7.0 / 7.5 / 8.0

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

ΕΝΤΑΞΗ ΣΤΑΘΜΟΥ ΕΡΓΑΣΙΑΣ ΣΕ DOMAIN

Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ. MS SQL Server 2005 Για τις ανάγκες των εφαρµογών της SingularLogic

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Οδηγίες Εγκατάστασης Βάσης Δεδομένων MySQL 5.6 Για Λειτουργικό Σύστημα Windows

Για περισσότερες πληροφορίες σχετικά με τη συμβατότητα του λογισμικού με άλλα λειτουργικά συστήματα, επικοινωνήστε με το τμήμα υποστήριξης πελατών.

Οδηγίες προς τον τελικό χρήστη για τη σύνδεση στο Ασύρματο Δίκτυο Δεδομένων του ΤΜΗΥ&Π

Οδηγίες EQL Desktop (rev ) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

Οδηγίες Ρύθμισης ΖΤΕ ΖΧΗΝ Η108Ν

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ COSMOTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

X-Order Client: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ σε ΔΧΣ Τερματικό

ΣΥΝΔΕΣΗ ΚΑΤΑΓΡΑΦΙΚΟΥ ΣΤΟ INTERNET

ΑΝΑΠΑΡΑΓΩΓΗ ΜΑΘΗΣΙΑΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ ΦΩΤΟΔΕΝΤΡΟ ΜΑΘΗΣΙΑΚΑ ΑΝΤΙΚΕΙΜΕΝΑ. Οδηγίες για Java

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΥΠΟΔΟΜΗΣ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΤΗΛΕΟΜΟΙΟΤΥΠΟΥ (FAX) ΜΕΣΩ ΤΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ WEBUTIL

Εισαγωγή. Εγκατάσταση για Windows XP και Vista. Ελληνική έκδοση. LW056V2 Sweex - Ασύρματος προσαρμογέας LAN Cardbus 54 Mbps

Οδηγίες εγκατάστασης Δορυφορικής κάρτας Technisat

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ COSMOTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Οδηγός Εγκατάστασης Pylon Auto Moto Cube

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

Κεφάλαιο 1. Εγκατάσταση και Περιβάλλον του SQL Server 2014

Share and Storage Management. Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ

Εγχειρίδιο Χρήσης Ενημέρωσης Λογισμικού Bluetooth Windows 7

ARTius με PostgreSQL

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΕΝΗΜΕΡΩΤΙΚΟ ΦΥΛΛΑΔΙΟ ΠΡΩΤΟΕΤΩΝ ΦΟΙΤΗΤΩΝ

Δημιουργία μιας εφαρμογής Java με το NetBeans

ΠΡΟΓΡΑΜΜΑ ΑΠΟΜΑΚΡΥΣΜΕΝΗΣ ΕΙΣΑΓΩΓΗΣ ΒΑΘΜΟΛΟΓΙΩΝ ΑΠΟ ΔΙΔΑΣΚΟΝΤΕΣ

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 -

Εισαγωγή WMS στο QGIS

Αν παρ όλα αυτά αντιμετωπίζετε πρόβλημα, επικοινωνήστε με το Κέντρο Δικτύου της ΑΣΠΑΙΤΕ Τηλ , , ,

PRISMA WIN APPLICATION SERVER. ιαχείριση υπηρεσιών στοιχείων (COM+) Οδηγός διαχείρισης δικαιωµάτων πρόσβασης & εκκίνησης PRISMA Win Application Server

ADB P.RG A4201G. 2play Internet & Σταθερή 1play Internet

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ OUTLOOK EXPRESS ΡΥΘΜΙΣΗ ΤΟΥ ΛΟΓΑΡΙΣΑΜΟΥ

Οδηγός γρήγορης εγκατάστασης. (Για Windows και MAC) Ασύρματη κάμερα IP HD περιστροφής / κλισης για εσωτερικούς χώρους v3.14

Πρόσβαση μέσω webdav. ΚΕ.Δ.Δ. Τ.Ε.Ι. Μεσολογγίου. 3. Στην συνέχεια πληκτρολογούμε το username και το password και πατάμε στο κουμπί Είσοδος.

ΔΗΜΙΟΥΡΓΙΑ ΕΝΟΣ DOMAIN CONTROLLER

Εγχειρίδιο εγκατάστασης Megasoft 2009

1. Τρόποι πρόσβασης στο σας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Υπολογιστικών Φύλλων. 2. Κύρια Οθόνη Της Εφαρμογής Υπολογιστικών Φύλλων ΣΤΟΧΟΙ:

στο δικό σου προσωπικό χώρο my Cyta

ΚΕΦΑΛΑΙΟ Web Services

Transcript:

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Διπλωματική Εργασία Επιβλέπων καθηγητής κ. Γ. ΞΥΛΩΜΕΝΟΣ ΑΠΟΔΟΣΗ ΣΥΣΤΗΜΑΤΩΝ THIN CLIENT ΠΑΝΩ ΑΠΟ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ Όνομα: ΜΙΚΕΛΗ ΑΓΓΕΛΙΚΗ Α.Μ.: 3020099 Email: p3020099@dias.aueb.gr

2 Περιεχόμενα 1. ΠΡΟΛΟΓΟΣ...3 2. ΕΝΑΡΞΗ ΣΤΗΣΙΜΟ...4 2.1 Εγκατάσταση IIS στον server:...4 2.2 Turn off logging:...4 2.3 Εγκατάσταση των αρχείων του ibench:...4 2.4 Δημιουργία μιας MySQL βάσης δεδομένων του i-bench...5 2.4.1 Εγκατάσταση της MySQL...5 2.4.2 Δημιουργία της i-bench βάσης δεδομένων...5 2.4.3 Εγκατάσταση του MyODBC...6 2.4.4 Δημιουργία ODBC DSN...6 2.4.5 Εκτέλεση της i-bench Database Maintenance Utility...6 2.4.6 Τροποποίηση του i-bench...7 2.5 UltraVNC...9 2.6 Wireshark...11 3. ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΤΩΝ ΜΕΤΡΗΣΕΩΝ...12 3.1 Μετρήσεις με το UltraVNC...12 3.2 Μετρήσεις με το HTTP...14 3.3 Αποτελέσματα μετρήσεων...17 4. ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗ ΑΝΑΛΥΣΗ ΠΑΚΕΤΩΝ...19 4.1 Για το πρωτόκολλο HTTP...19 4.2 Για το πρωτόκολλο VNC...22

3 1. ΠΡΟΛΟΓΟΣ Η διπλωματική αυτή εργασία πραγματοποιήθηκε στα πλαίσια του προπτυχιακού προγράμματος σπουδών του τμήματος Πληροφορικής του Οικονομικού Πανεπιστημίου Αθηνών, κατά το εαρινό εξάμηνο του έτους 2006-07. Επιβλέπων καθηγητής και καθοδηγητής της εργασίας είναι ο κ. Ξυλωμένος Γεώργιος. Το θέμα της εργασίας είναι ο «Υπολογισμός του χρόνου μεταφοράς φορτίου πάνω από ασύρματα δίκτυα thin client». Στα πλαίσια του θέματος αυτού έγινε προσπάθεια μελέτης και «στησίματος» του περιβάλλοντος που απαιτούν οι μετρήσεις για τον υπολογισμό αυτό, πραγματοποίησης κάποιων ενδεικτικών μετρήσεων και τέλος έγινε προσπάθεια «κατασκευής» μεθοδολογίας και κώδικα για την υλοποίηση των μετρήσεων αυτών αυτόματα. Με τον τρόπο αυτό θα μπορούν να επαναληφθούν κάποιες μετρήσεις που έχουν ήδη πραγματοποιηθεί και δημοσιευθεί, ώστε να γίνει εξεταστεί η ορθότητα των δικών μας μετρήσεων, και η συνέχιση των πειραμάτων αυτών όσο το δυνατόν πιο αυτόματα.

4 2. ΕΝΑΡΞΗ ΣΤΗΣΙΜΟ Για την πραγματοποίηση των μετρήσεων δημιουργήθηκε ένα μικρό ασύρματο τοπικό δίκτυο, το οποίο περιελάμβανε ένα φορητό υπολογιστή (laptop) που ορίσθηκε ως client, έναν σταθερό υπολογιστή (desktop) που ορίσθηκε ως server και ένα router, το οποίο μπορούσε να επιτρέπει την ασύρματη διασύνδεση μεταξύ τους. Το στήσιμο του συστήματος έγινε με βάση μέρος των οδηγιών που συνοδεύουν το i-bench, το οποίο αποτελεί μία σουίτα από test για φυλλομετρητή. Συγκεκριμένα χρησιμοποιήθηκε το ibench 5.0 των Lionbridge και VeriTest και το οποίο είναι γραμμένο σε Javascript και PHP. Για να «τρέξει» τα επιμέρους test το ibench πρέπει να είναι εγκατεστημένα στο server MySQL, MySQL ODBC Connector και IIS. Χρησιμοποιήθηκαν οι εξής εκδόσεις των παραπάνω: MySQL 5.0, MySQL ODBC Connector 3.51 και ο IIS 6.0. Οι πληροφορίες αυτές βρίσκονται στo html αρχείο DOCS/SERVER_SETUP.htm μέσα στο φάκελο του ibench. Πιο συγκεκριμένα, από τις οδηγίες αυτές εκτελέσθηκαν οι εξής: 2.1 Εγκατάσταση IIS στον server: 1. Άνοιγμα του Control Panel. 2. Επιλογή Add/Remove Windows Components. 3. Επιλογή του Internet Information Service και OK. Αναμονή μέχρι να εγκατασταθεί. 2.2 Turn off logging: Το πρώτο βήμα είναι να απενεργοποιηθεί το logging, καθώς έτσι θα εξοικονομηθεί χώρος στον δίσκο και θα βελτιωθεί η απόδοση. 1. Με δεξί κλικ στο My Computer και επιλογή Manage. 2. Επιλογή Services and Applications και από το υπομενού που εμφανίζεται Internet Information Service. 3. Δεξί κλικ στο Default Web Site κι επιλογή Properties. 4. Στο παράθυρο διαλόγου που εμφανίστηκε γίνεται επιλογή εμφάνισης της Web Site καρτέλας και στη συνέχεια uncheck το Enable Logging. 5. Επιλογή Apply. 2.3 Εγκατάσταση των αρχείων του ibench: Πριν συνεχιστούν οι ακόλουθες οδηγίες πρέπει να τοποθετηθεί ο φάκελος, έστω ibench, που περιέχει τα αρχεία του i-bench, στο φάκελο C:\Inetpub\wwwroot\, ώστε να γίνει δυνατό το τρέξιμο των σελίδων αυτών από το φυλλομετρητή. Για να ελεγθεί ότι έχουν γίνει όλα σωστά, θα πρέπει ο φυλλομετρητής να ανοίγει σωστά τη σελίδα της διεύθυνσης http://localhost/ibench/i-bench.htm.

5 2.4 Δημιουργία μιας MySQL βάσης δεδομένων του i-bench 2.4.1 Εγκατάσταση της MySQL Το πρώτο βήμα είναι η προμήθεια του λογισμικού της MySQL. Οι οδηγίες του i- Bench προτείνουν να χρησιμοποιηθεί η έκδοση 3.23.51, η οποία όμως δεν διατίθεται πλέον από το official site της MySQL. Για το λόγο αυτό έγινε εγκατάσταση της έκδοσης 5.0. Το λογισμικό αυτό διατίθεται ελεύθερα από το site http://www.mysql.com και πιο συγκεκριμένα στο τμήμα Community/Downloads ( http://dev.mysql.com/downloads/ ). Στον wizard που εμφανίζεται αφήνονται όλα by default. Στη συνέχεια εμφανίζεται ο wizard για το configuration. Και σε αυτόν τον wizard αφήνονται όλα by default, ενώ στο τέλος, επειδή είναι αυτόματα ενεργοποιημένη η επιλογή εγκατάσταση του MySQL ως υπηρεσίας, πρέπει να καθοριστεί το administration password. Αν ο wizard δεν τρέξει άμεσα, μπορεί να κληθεί με τον Instance Configuration Wizard, ο οποίος βρίσκεται στο Start -> All Programs -> MySQL. 2.4.2 Δημιουργία της i-bench βάσης δεδομένων Επόμενο βήμα ήταν η δημιουργία της i-bench database. Για να γίνει αυτό: 1. Ανοίχθηκε το MySQL Command Line Client που βρίσκεται στο Start -> All Programs -> MySQL. Αφού πραγματοποιήθηκε η σύνδεση με τον server δίνοντας το administrator password, πληκτρολογήθηκε: create database ibench; [Enter] Αυτή η εντολή δημιουργεί μία άδεια i-bench database. 2. Στη συνέχεια δημιουργήθηκαν και έγιναν grant τα δικαιώματα στον ibench user, χρησιμοποιώντας τις παρακάτω εντολές: PROMPT RESPONSE mysql> grant all on ibench.* to ibench [Enter] -> identified by 'ibench'; [Enter] mysql> exit [Enter]

6 2.4.3 Εγκατάσταση του MyODBC Για το MyODBC αρχικά χρησιμοποιήθηκε η τελευταία έκδοση που παρέχει η MySQL. Τελικά όμως αποδείχθηκε ότι δεν ήταν συμβατή με τo i-bench. Για το λόγο αυτό εγκαταστάθηκε το MyODBC 3.51. 2.4.4 Δημιουργία ODBC DSN Αφού εγκαταστάθηκε το MyODBC, πρέπει να δημιουργηθεί ένα σύστημα DSN για την βάση δεδομένων i-bench. 1. Στο Control Panel επιλέγεται Administrative Tools και στη συνέχεια Data Sources (ODBC). 2. Στο παράθυρο του ODBC Data Source Administration, επιλέγεται η καρτέλα System DSN και γίνεται κλικ στο ADD. 3. Στο παράθυρο Create New Data Service, μέσω του menu με την μπάρα κύλισης, επιλέγεται MySQL από τη λίστα και στη συνέχεια FINISH. Το πλαίσιο διαλόγου που εμφανίζεται, ακολουθώντας και τις οδηγίες του i-bench, συμπληρώνεται με βάση τον παρακάτω πίνακα: Parameter Data Source Name Description Server User Password Setting ibenchmysql ibench Service localhost ibench ibench MySQL database name ibench Καλό είναι κάθε φορά που «στήνουμε» το σύστημα να δοκιμάζεται εάν λειτουργεί με τις by default ρυθμίσεις πριν προβεί ο χρήστης σε αλλαγές. Αυτό επιτυγχάνεται με την επιλογή Test στην παραπάνω οθόνη, η οποία εξετάζει αν είναι δυνατή η σύνδεση με τη βάση δεδομένων. 2.4.5 Εκτέλεση της i-bench Database Maintenance Utility Πριν εκτελεστεί κάποιο test του i-bench θα πρέπει να δημιουργηθούν οι πίνακες που θα κρατούν τα στοιχεία των αποτελεσμάτων. 1. Ανοίγει ένας φυλλομετρητής και στη γραμμή διεύθυνσης δίνεται η διεύθυνση http://localhost/ib50/results/admin.asp 2. Στον τομέα Database Setup επιλέγεται Create Tables. 3. Επιλέγεται Apply Changes.

7 Αν έχουν γίνει όλα σωστά θα πρέπει κάτω από το κουμπί Apply Changes να εμφανιστεί μία έξοδος παρόμοια με την: Creating ib_dv...done. Creating _dv...done. Creating ib_pv...done. Creating _pv...done. Creating ib_cv...done. Creating _cv...done. Creating ib_qv...done. Creating _qv...done. Creating ib_pc...done. Creating _pc...done. Creating ib_cc...done. Creating _cc...done. Creating ib_qc...done. Creating _qc...done. Finished! 2.4.6 Τροποποίηση του i-bench Ο στόχος των μετρήσεων είναι να υπολογιστεί ο χρόνος που χρειάζεται μία σελίδα του i-bench, το οποίο τρέχει στον server, από τη στιγμή που καλείται από τον client μέχρι να εμφανιστεί στην οθόνη του client. Για να είναι όμως πιο εμφανής η εναλλαγή των σελίδων και ο χρόνος που μεσολαβεί μεταξύ τους, αυξήθηκε ο χρόνος κλήσης κάθε σελίδας. Για να επιτευχθεί αυτό πραγματοποιήθηκαν τα εξής βήματα: (Θα δειχθεί πώς γίνεται η αλλαγή του χρόνου για τα html tests και ομοίως γίνεται και για τα υπόλοιπα tests). 1. Άνοιγμα του φακέλου όπου βρίσκονται τα αρχεία του i-bench, δηλαδή τον C:\Inetpub\wwwroot\ib50\. 2. Για αλλαγή των html αρχείων, ανοίγεται ο υποφάκελος PERFORMAnce_tests\loadspeed\. 3. Ανοίγονται ένα ένα τα αρχεία html που βρίσκονται στον υποφάκελο αυτό με τη βοήθεια του Notepad (ή κάποιου κειμενογράφου) ώστε να φαίνεται ο κώδικάς του. (δεξί κλικ στο κάθε html -> Open with -> Notepad) 4. Σε κάθε αρχείο, βρίσκεται η συνάρτηση function NextPage() settimeout("document.location='etca01.html'", 1);

και αλλάζει η 2 η παράμετρος, δηλαδή το 1, με τον επιθυμητό χρόνο. Ο χρόνος είναι μετρημένος σε ms. Εδώ τέθηκε ο χρόνος ίσος με 5000ms, έτσι ώστε να υπάρχει καθυστέρηση εναλλαγής σελίδων 5 sec, ώστε να είναι εύκολα εντοπίσημη και από το Wireshark. 8

9 2.5 UltraVNC Επόμενο βήμα είναι η εγκατάσταση του UltraVNC, το οποίο είναι opensource λογισμικό που χρησιμοποιεί το πρωτόκολλο VNC για απομακρυσμένο έλεγχο ενός υπολογιστή. Έχει αναπτυχθεί με C, C++ και Java και είναι κατασκευασμένο για Microsoft Windows. Για να λειτουργήσει το UltraVNC, πρέπει να πραγματοποιηθεί η εγκατάστασή του και στους δύο υπολογιστές του τοπικού μας δικτύου. Στη συνέχεια πρέπει να τρέξει το αντίστοιχο πρόγραμμα στον αντίστοιχο υπολογιστή. Πιο συγκεκριμένα, στο δικό μας σύστημα το UltraVNC Server «έτρεξε» στον σταθερό υπολογιστή, ο οποίος θα λειτουργεί ως server και στον οποίο πραγματοποιήθηκαν και οι πιο πάνω ρυθμίσεις με το ibench, και το UltraVNC Viewer «έτρεξε» στον φορητό υπολογιστή, ο οποίος είναι ο client. Όταν εκτελεστεί το πρόγραμμα UltraVNC Server στον server μας εμφανίζεται το παράθυρο Current User Properties και στο τμήμα Authentication, στο VNC Password θέτεται το password που έχει ο server για να πραγματοποιείται login στον UltraVNC Server. Γίνεται κλικ στο OK και ο VNC Server αρχίζει να «τρέχει» στον υπολογιστή μας και να περιμένει νέες συνδέσεις: Νέα σύνδεση πραγματοποιείται από έναν υπολογιστή που θα τρέχει το UltraVNC Viewer. Για να φανεί ο απομακρυσμένος υπολογιστής στην οθόνη του client, πρέπει να «τρέξει» το UltraVNC Viewer, στο παράθυρο Connection που εμφανίζεται πληκτρολογείται η IP που έχει ο server στο τοπικό δίκτυο και

10 ακολουθεί Connect. Στη συνέχεια στο νέο παράθυρο, δίνεται και το password του UltraVNC Server και έτσι εμφανίζεται η οθόνη του server στην οθόνη του client: Στο σύστημα μας θα πραγματοποιηθούν μετρήσεις χρησιμοποιώντας το VNC και το HTTP ώστε να γίνει δυνατή η σύγκριση των δύο πρωτοκόλλων.

11 2.6 Wireshark Το Wireshark είναι ένας protocol analyzer και διατίθεται ελεύθερα από το site http://www.wireshark.org. Το Wireshark είναι μετονομασία και συνέχεια του γνωστού προγράμματος Ethereal, το οποίο όμως δεν έγινε δυνατό να χρησιμοποιηθεί εξαιτίας ενός bug που συναντήθηκε κατά το export των μετρήσεων μας σε.txt ή σε άλλη μορφή αρχείων. Το Wireshark είναι βελτιωμένη έκδοση του Ethereal. Στην παρούσα εργασία χρησιμοποιήθηκε η τελευταία έκδοση του, η 0.99.6. Παράδειγμα μετρήσεων με το Wireshark

12 3. ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΤΩΝ ΜΕΤΡΗΣΕΩΝ Εφόσον έχουν εγκατασταθεί τα απαραίτητα προγράμματα που περιγράφηκαν παραπάνω, και τα IIS και MySQL τρέχουν κανονικά στον server, ακολουθεί η πραγματοποίηση των μετρήσεων. Θα περιγραφούν δύο μορφές μετρήσεων, μέσω των πρωτοκόλλων VNC και HTTP. 3.1 Μετρήσεις με το UltraVNC Οι πρώτες μετρήσεις πραγματοποιήθηκαν με τη βοήθεια του UltraVNC. Αρχικά άνοιξε το Wireshark στον client. Στη γραμμή menu επιλέχθηκε Capture και μετά Options. Στο παράθυρο που εμφανίζεται, επιλέχθηκε ο τύπος του Interface που θα χρησιμοποιηθεί (δηλαδή ποια από τις διαθέσιμες συνδέσεις του υπολογιστή μας θα χρησιμοποιηθεί). Ήταν επιθυμητό να είναι «τσεκαρισμένο» το Capture packets in promiscuous mode, ώστε να εντοπισθούν όλα τα πακέτα στη συγκεκριμένη σύνδεση, και προστέθηκε το επιθυμητό Capture Filter. Το VNC τυπικά χρησιμοποιεί τη θύρα 5900 επομένως χρειάστηκαν μόνο τα πακέτα που ανταλλάσει με τον server και συγκεκριμένα αυτά που έρχονται από τη θύρα 5900. Για το λόγο αυτό χρησιμοποιήθηκε το φίλτρο: tcp port 5900 and host 192.168.1.2 (έστω 192.168.1.2 η διεύθυνση του server μας): Πριν πραγματοποιηθεί κλικ στο Start ακολουθούνται τα παρακάτω βήματα. Ανοίγει το UltraVNC Viewer από τον client ώστε να φαίνεται ο server στην οθόνη μας. Μέσω αυτού ανοίγει ένας φυλλομετρητής (στην περίπτωσή μας χρησιμοποιήθηκε ο iexplorer 6.0) και ως διεύθυνση τέθηκε: http://localhost/ib50/i-

13 bench.html. Μετά από Start -> I accept -> Select tests, ο χρήστης βρίσκεται στη σελίδα που θα επιλέξει test. Στη συνέχεια γίνεται επιστροφή πάλι στο Wireshark ελαχιστοποιώντας το παράθυρο του UltraVNC, ακολουθεί Start και αμέσως γυρνώντας στο UltraVNC ξεκινάει το test. Όταν τελειώσει το test, γίνεται επιστροφή στο Wireshark και πάτημα του Stop. Έτσι παρατίθενται τα επιθυμητά πακέτα στην οθόνη. Τα δεδομένα αυτά μπορούν να εξαχθούν σε.txt μορφή ώστε να γίνει δυνατή η επεξεργασία τους. Για να γίνει αυτό επιλέγεται File -> Export -> File. Στο παράθυρο που εμφανίζεται δίνεται το όνομα.txt, επιλέγεται ο φάκελος και «ξετσεκάρεται» το Packet details στο Packet Format, ώστε να είναι πιο εύκολο για επεξεργασία, καθώς κάθε γραμμή θα περιέχει έτσι ένα μόνο πακέτο: Με τη χρήση του VNC, η εναλλαγή των σελίδων δεν φαίνεται πολύ καθαρά. Μετά από μελέτη όμως των μετρήσεων διαπιστώθηκε ότι η κλήση κάθε σελίδας γίνεται όταν εμφανίζεται το πακέτο Client framebuffer update request. Επίσης, εμφανίζεται συχνά η εξής τριάδα πακέτων: Client pointer event Client pointer event 5900 > [ACK] Seq= Ack= Win= Len=0

14 Αυτά θεωρούμε ότι είναι μηνύματα keep alive που στέλνει ο ένας υπολογιστής στον άλλον για να επιβεβαιώσουν ότι είναι «ζωντανή» ακόμη η σύνδεση. Επομένως τέτοια μηνύματα πιθανότατα στέλνονται κατά την αναμονή για την κλήση της επόμενης σελίδας, δηλαδή αυτές οι τριάδες σηματοδοτούν το τέλος της διαδικασίας εμφάνισης κάθε σελίδας. Το θέμα αυτό θα εντοπισθεί ξανά παρακάτω, στην ανάλυση των προγραμμάτων σε Perl. 3.2 Μετρήσεις με το HTTP Για να συγκριθούν οι χρόνοι που ελήφθησαν πιο πάνω, πραγματοποιήθηκαν και συγκρίσεις κατευθείαν με το πρωτόκολλο HTTP. Συγκεκριμένα, ανοίγεται και πάλι το Wireshark στον client και ξεκινάει μια καινούρια μέτρηση, επιλέγοντας Capture και Options. Επιλέγεται και πάλι το Interface αλλά στο Capture Filter αυτή τη φορά μπαίνει μόνο η διεύθυνση του server καθώς δεν υπάρχει βεβαιότητα ποια πόρτα χρησιμοποιεί το http. Έτσι ως φίλτρο θέτεται: host 192.168.1.2. Στη συνέχεια ανοίγει ένας φυλλομετρητής στον client και θέτεται ως διεύθυνση η θέση του ibench στον server. Δηλαδή, γράφεται http://<διεύθυνση_server>/ib50/ibench.html (στο δικό μας παράδειγμα http://192.168.1.2/ib50/i-bench.html. Πριν ξεκινήσει το test γίνεται εκκίνηση του Wireshark πατώντας το Start. Με τον τρόπο που περιγράφηκε πιο πάνω εξάγονται και αυτά τα αποτελέσματα σε.txt μορφή. Στα δεδομένα αυτά, η κλήση της επόμενης σελίδας γίνεται όταν εμφανίζεται πακέτο της μορφής GET /ibench/performance_tests/loadspeed/.html HTTP/1.1 του οποίου όμως χαρακτηριστικό είναι και ο χρόνος εμφάνισής του, ο οποίος είναι πολύ μεγαλύτερος σε σχέση με το χρόνο εμφάνισης των υπόλοιπων πακέτων. Πιο συγκεκριμένα, στο δικό μας σύστημα ο χρόνος εμφάνισης των πακέτων αυτών είναι περίπου 5 sec (ο χρόνος αδράνειας δηλαδή που προστέθηκε στις εναλλαγές των πακέτων) περισσότερος από αυτόν των άλλων πακέτων.

15 Ακολουθούν δύο τμήματα από txt αρχεία μετρήσεων HTTP και VNC αντίστοιχα: Παράδειγμα output των http μετρήσεων σε txt

Παράδειγμα output μετρήσεων μέσω VNC σε txt 16

17 3.3 Αποτελέσματα μετρήσεων Ο φορητός υπολογιστής που χρησιμοποιήθηκε έχει επεξεργαστή Intel Core2 Duo T7100 στα 1.80 GHz, μνήμη RAM 1023MB και «έτρεχε» το λειτουργικό σύστημα Windows Vista Home Premium. Ο σταθερός υπολογιστής έχει επεξεργαστή AMD Duron στα 800 MHz, μνήμη RAM 128 ΜΒ και «έτρεχε» Windows XP Professional SP2. Το router που χρησιμοποιήθηκε είναι το TECOM AH4222 της Hitachi και η ασύρματη δικτύωση επιτρέπει ταχύτητες που φθάνουν τα 54 Mbps. Μετρήσεις με HTTP: Παρουσιάζονται οι μέσοι όροι μερικών από τις μετρήσεις που έγιναν με τον τρόπο που περιγράφηκε πιο πάνω. 1 η μέτρηση: 0,44034576 2 η μέτρηση: 0,85252536 3 η μέτρηση: 1,09575800 4 η μέτρηση: 0,51358957 5 η μέτρηση: 0,78290170 Μέσος όρος χρόνου εμφάνισης μιας σελίδας που προκύπτει από τις μετρήσεις αυτές είναι : 0,73702408. Μετρήσεις με VNC: Παρόμοια παρουσιάζονται οι μέσοι όροι ορισμένων από τις μετρήσεις που έγιναν με τον τρόπο που περιγράφηκε προηγουμένως. 1 η μέτρηση: 0,9278363425 2 η μέτρηση: 0,8551110909 3 η μέτρηση: 1,1517455000 4 η μέτρηση: 0,9249863000 5 η μέτρηση: 0,8895040000 Μέσος όρος χρόνου εμφάνισης μιας σελίδας μέσω του UltraVNC, όπως προκύπτει από τις μετρήσεις αυτές είναι: 0,9498330467.

18

19 4. ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗ ΑΝΑΛΥΣΗ ΠΑΚΕΤΩΝ Για να επιτευχθεί η σύγκριση του χρόνου εμφάνισης των σελίδων όταν χρησιμοποιείται το πρωτόκολλο VNC και όταν χρησιμοποιείται το HTTP, πρέπει να ληφθεί ο μέσος όρος από κάθε test που πραγματοποιείται. Επειδή η διαδικασία αυτή είναι αρκετά χρονοβόρα, επιδιώχθηκε η κατασκευή κάποιων προγραμμάτων που να αυτοματοποιούν τη διαδικασία αυτή. Για το λόγο αυτό χρησιμοποιήθηκε η γλώσσα Perl, η οποία συναντάται κυρίως σε προγράμματα επεξεργασίας κειμένων. Τα προγράμματα αυτά χρησιμοποιούν τα txt αρχεία που προκύπτουν από το Wireshark. 4.1 Για το πρωτόκολλο HTTP Όπως αναφέρεται πιο πάνω, στις μετρήσεις που έγιναν μέσω του πρωτοκόλλου HTTP, η κλήση νέας σελίδας στις μετρήσεις σηματοδοτείται από πακέτα της μορφής GET /ibench/performance_tests/loadspeed/.html HTTP/1.1. Άλλο χαρακτηριστικό των πακέτων αυτών είναι πως ο χρόνος εμφάνισής τους κυμαίνεται κοντά στα 5 sec, δηλαδή στον χρόνο αδράνειας που έχει προστεθεί ανάμεσα στις σελίδες. Στην ανάπτυξη του προγράμματος για τον υπολογισμό του μέσου όρου κρίθηκε πιο εύχρηστο το χαρακτηριστικό του χρόνου. Έτσι γράφτηκε κώδικας σε Perl ο οποίος να εντοπίζει τα πακέτα τα οποία ο χρόνος τους να υπερβαίνει ένα προκαθορισμένο όριο. Μόλις εντοπίσει τέτοιο πακέτο, διαβάζει ένα ένα τα πακέτα που ακολουθούν και προσθέτει τον χρόνο τους, μέχρι να εντοπίσει ξανά πακέτο με χρόνο μεγαλύτερο του προκαθορισμένου ορίου. Το άθροισμα των χρόνων των πακέτων κάθε συνόλου αποθηκεύεται σε μία θέση του πίνακα athroisma. Στο τέλος βρίσκεται ο μέσος όρος των αθροισμάτων αυτών και τυπώνεται ως αποτέλεσμα. Πρέπει να σημειωθεί ότι ο τρόπος εμφάνισης του χρόνου θα πρέπει να είναι: Seconds Since Previous Captured Packet. Αυτό επιτυγχάνεται, πριν κάνουμε τη μετατροπή σε txt, με το να επιλέξουμε View -> Time Display Format -> Seconds Since Previous Captured Packet από το menu του Wireshark. Και επιπλέον θα πρέπει η στήλη που θα εμφανίζεται πρώτη στο txt με τα πακέτα να είναι αυτή του χρόνου. Αυτό γίνεται και πάλι από το menu του Wireshark επιλέγοντας Edit -> Preferences και στο παράθυρο που εμφανίζεται, επιλέγοντας το υπομενού Columns του User Interface και μεταφέροντας τη στήλη του χρόνου πρώτη χρησιμοποιώντας τα κουμπιά Up και Down. Παρατίθεται ο κώδικας του προγράμματος:

20 #!/usr/local/bin/perl #διάβασε από τη γραμμή εντολών chomp( $fname = <STDIN> ); #άνοιξε το αρχείο που διάβασες ή εμφάνισε λάθος open (LOGFILE, "$fname") or die("cannot open the file"); $i = 0; $sum[i] = 0.0; #για κάθε γραμμή του κειμένου for $line (<LOGFILE>) #γέμισε τον πίνακα fields με τους όρους της γραμμής που χωρίζονται με κενό @fields = split(/\s/, $line); if($fields[0] < 4) #αν ο χρόνος είναι μικρότερος του 4,πρόσθεσε τον στο άθροισμα $sum[$i] += $fields[0]; else #αλλιώς άλλαξε στοιχείο του πίνακα $i++; #για κάθε στοιχείο του πίνακα πρόσθεσε το άθροισμα χρόνων του στο athroisma for $j(0...$#sum) $athroisma += $sum[$j]; if ($#sum!= 0) #βρες το μέσο των χρόνων $mesos = $athroisma / $#sum; else print "No results captured";

#τύπωσε το μέσο και τη διάμεσο print "$mesos"; print "diamesos: $sum[$#sum/2]"; 21

22 4.2 Για το πρωτόκολλο VNC Στις μετρήσεις που έγιναν μέσω του πρωτοκόλλου VNC, όπως αναφέρθηκε και παραπάνω, η κλήση νέας σελίδας γίνεται από ένα Client framebuffer update request. Επίσης εμφανίζονται κάποια πακέτα που πιθανότατα είναι τύπου keep alive της σύνδεσης. Αυτά είναι τριάδες της μορφής Client pointer event Client pointer event 5900 > [ACK] Seq= Ack= Win= Len=0. Όταν εντοπίζονται πάνω από μια τέτοιες τριάδες, είναι πολύ πιθανό αυτό να σημαίνει το τέλος του χρόνου εμφάνισης της σελίδας. Συμπέρασμα αυτών είναι ότι για τον υπολογισμό του μέσου όρου των χρόνων εμφάνισης, θα πρέπει αρχικά να αφαιρεθούν οι τριάδες αυτές από το txt, αφήνοντας κενές γραμμές, ώστε να σηματοδοτείται η αλλαγή σελίδας. Προκύπτει λοιπόν ο εξής κώδικας, για τον οποίο θα πρέπει τα txt που προκύπτουν από το Wireshark να έχουν πρώτη τη στήλη Information και δεύτερη την Time, καθώς επίσης και ο χρόνος εμφάνισης των πακέτων να είναι στη μορφή Seconds Since Beginning of Capture (με τον ίδιο τρόπο που περιγράφηκε για τα HTTP πακέτα) : #!/usr/local/bin/perl #διάβασε από τη γραμμή εντολών τα txt για input και output και άνοιξε τα chomp( $fname = <STDIN> ); open (LOGFILE, "$fname") or die("cannot open the file"); chomp( $fnamewr = <STDIN> ); open (NEWFILE, ">$fnamewr") or die("cannot open the writingfile"); #κάλεσε την συνάρτηση bres() για πρώτη φορά bres(); #όσο έχει αδιάβαστες γραμμές το αρχείο, να καλείς την bres() while ($line = <LOGFILE>) bres(); sub bres #γέμισε τον πίνακα a με τους όρους της γραμμής που χωρίζονται με κενό @a = split(/\s/, $line); if ($a[0] ne 'Client') #αν ο πρώτος όρος της γραμμής δεν είναι client, τύπωσε τη γραμμή print NEWFILE "$line";

elsif ($a[1] ne 'pointer') #αν ο 2ος όρος της γραμμής δεν είναι pointer,τύπωσε τη γραμμή print NEWFILE "$line"; else #διαφορετικά διάβασε την επόμενη γραμμή $line2 = readline(*logfile); #γέμισε τον @b με τους όρους της γραμμής που χωρίζονται με κενό @b = split(/\s/, $line2); if ($b[0] ne 'Client') #αν ο 1 ος όρος δεν είναι client, τύπωσε αυτή και #την προηγούμενη γραμμή print NEWFILE "$line"; print NEWFILE "$line2"; elsif ($b[1] ne 'pointer') #αν ο 2 ος όρος δεν είναι pointer, τύπωσε αυτή και #την προηγούμενη γραμμή print NEWFILE "$line"; print NEWFILE "$line2"; else διάβασε την επόμενη γραμμή $line3 = readline(*logfile); #γέμισε τον @b με τους όρους της γραμμής που χωρίζονται #με κενό @c = split(/\s/, $line3); if($c[0] ne '5900') #αν ο 1 ος όρος της γραμμής δεν είναι 5900, τύπωσε και #τις τρεις προηγούμενες γραμμές print NEWFILE "$line"; print NEWFILE "$line2"; print NEWFILE "$line3"; else #διαφορετικά σβήσε τις 3 γραμμές και τύπωσε τρία \n for $i(0...$#a) $a[$i]=delete($a[$i]); 23

24 print NEWFILE "\n"; for $g(0...$#b) $b[$g]=delete($b[$g]); print NEWFILE "\n"; for $p(0...$#c) $c[$p]=delete($c[$p]); print NEWFILE "\n"; #κλείσε τα άρχεια txt close (LOGFILE); close (NEWFILE); Στη συνέχεια, θα πρέπει ένα πρόγραμμα να εντοπίζει σε κάθε σύνολο πακέτων το πρώτο Client framebuffer update request πακέτο, να προσθέτει το χρόνο του και τους χρόνους των πακέτων που ακολουθούν μέχρι να εντοπίσει ένα μεγάλο κενό, το οποίο θα σημαίνει πιθανό τέλος των πακέτων για την εμφάνιση της σελίδας και τέλος να υπολογίζει το μέσο όρο των αθροισμάτων αυτών. Έτσι προκύπτει ο παρακάτω κώδικας: #!/usr/local/bin/perl #διάβασε από τη γραμμή εντολών τo input txt και άνοιξε το chomp( $fname = <STDIN> ); open (NEWFILE, "$fname") or die("cannot open the file"); #αρχικοποίηση μεταβλητών $starttime = 0.0; $r = 0; $athroisma = 0; #μέχρι να εμφανιστεί κενή γραμμή διάβαζε την επόμενη γραμμή while($line!= null)

25 $line = readline(*newfile); #μέχρι να έχει διαβαστεί όλο το txt κάλεσε τη findstart και την findpage while ($line = <NEWFILE>) $starttime = 0.0; findstart(); $endtime = 0.0; findpage($starttime); sub findstart $kena = 0; if($line = <NEWFILE>) while($line == null) #όσο η γραμμή είναι κενή, διάβασε την επόμενη και αύξησε τη #μεταβλητή kena $kena++; $line = readline(*newfile); if($kena >= 6) #αν τα κενά που διαβάστηκαν είναι >=6, διάβασε την επόμενη #γραμμή μέχρι να βρεις τη γραμμή Client framebuffer $line = readline(*newfile); @a = split(/\s/, $line); while(@a[0] ne 'Client' @a[1] ne 'framebuffer') control(); #μόλις τη βρεις, βρες και αποθήκευσε τον χρόνο εμφάνισης της $i = 5; while ($a[$i] == ' ') $i++; $starttime = $a[$i]; #διάβασε την επόμενη γραμμή & επέστρεψε το αποτέλεσμα $line = readline(*newfile);

26 else print "starttime is $starttime\n"; return $starttime(); while($line!= null) $line = readline(*newfile); findstart(); sub control $line = readline(*newfile); @a = split(/\s/, $line); sub findpage($) if($line = <NEWFILE>) #όσο υπάρχει κενή γραμμή διάβαζε την επόμενη γραμμή while($line == null) $line = readline(*newfile); #διάβαζε την επόμενη γραμμή και αποθήκευε τον χρόνο της, ο οποίος είναι #ο πιθανός χρόνος τέλους εμφάνισης της σελίδας while($line!= null) @b = split(/\s/, $line); $line = readline(*newfile); $j = 12; while($b[$j] == ' ') $j++; $propend = $b[$j]; if($line = <NEWFILE>) #αν βρεις περισσότερα από 6 κενά, κράτα ως τελικό τον χρόνο propend που

27 #βρήκες τελευταίο και επέστρεψε τον while($line == null) $kena++; $line = readline(*newfile); if($kena >= 6) $endtime = $propend; print "endtime is $endtime\n"; if ($endtime > $_[0]) $result[$r] = $endtime - $_[0]; print "$result[$r]\n"; $r++; else findpage(); #πρόσθεσε τους χρόνους που υπάρχουν σε κάθε θέση του πίνακα αποτελεσμάτων for $d(0...$#result) $athroisma += $result[$d]; #βρες το μέσο και τύπωσε. Τύπωσε και τη διάμεσο. $mesos = $athroisma / $#result; print "O mesos einai $mesos\n"; print "H diamesos einai $result[$#result/2]\n"; close (NEWFILE); Αθήνα, Οκτώβριος 07