Απόδοση συστηµάτων thin-client σε ασύρµατα δίκτυα ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Λάζαρη Ιωάννα 3030084 p3030084@dias.aueb.gr Επιβλέπων καθηγητής κος Γ.Ξυλωµένος
ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ...3 ΣΧΕΤΙΚΑ ΜΕ ΤΑ ΠΡΩΤΟΚΟΛΛΑ...4 ΔΙΑΔΙΚΑΣΙΑ ΜΕΤΡΗΣΕΩΝ...6 ΜΕΤΡΗΣΕΙΣ ΜΕ ΤΟ HTTP...6 ΜΕΤΡΗΣΕΙΣ ΜΕ ΤΟ VNC...7 ΜΕΤΡΗΣΕΙΣ ΜΕ ΤΟ RDP...8 ΕΞΑΓΩΓΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΑΠΟ ΤΙΣ ΜΕΤΡΗΣΕΙΣ...10 ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕ ΤΟ HTTP...10 ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕ ΤΟ VNC...11 ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕ ΤΟ RDP...12 ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕΤΡΗΣΕΩΝ...13 ΒΙΒΛΙΟΓΡΑΦΙΑ...15
ΕΙΣΑΓΩΓΗ Η δι λωµατική αυτή εργασία µε θέµα Α όδοση συστηµάτων thin-client σε ασύρµατα δίκτυα ραγµατο οιήθηκε κατά τη διάρκεια του χειµερινού εξαµήνου 2007-2008 στα λαίσια του ρο τυχιακού ρογράµµατος σ ουδών του τµήµατος Πληροφορικής του Οικονοµικού Πανε ιστηµίου Αθηνών. Ε ιβλέ ων καθηγητής είναι ο Γ. Ξυλωµένος. Στην εργασία αυτή, γίνεται µια ροσ άθεια µέτρησης της α όδοσης των thin-client συστηµάτων στο web-browsing µεταξύ τους και σε σχέση µε τα fat-client συστήµατα. Οι web εφαρµογές σε συνδυασµό µε τις δυνατότητες των ασύρµατων δικτύων έχουν γίνει ολύ δηµοφιλείς, καθώς χρησιµο οιούνται για τη δηµιουργία φορητών συστηµάτων και συσκευών. Η υλο οίηση των συστηµάτων αυτών γίνεται µε αρχιτεκτονική client-server. Ανάλογα µε την εφαρµογή διαφέρει ο καταµερισµός όρων και εργασίας στον client και στον server. Η κατανοµή αυτή ε ηρεάζει σηµαντικά την α όδοση, το κόστος και την ασφάλεια του συστήµατος και ανάλογα µε τη µορφή της µ ορεί να είναι είτε thin-client αρχιτεκτονική, είτε fat-client αρχιτεκτονική, είτε συνδυασµός των δύο. Στην αρχιτεκτονική fat-client (ή thick-client) το µεγαλύτερο µέρος των α αιτούµενων όρων είναι εγκατεστηµένο στον client, ό ου γίνεται και όσο το δυνατόν ερισσότερη ε εξεργασία των δεδοµένων. Αντίθετα, στην αρχιτεκτονική thin-client (ή lean-client) οι α αιτούµενοι όροι βρίσκονται κυρίως στον server, ό ου γίνεται και η ε εξεργασία των δεδοµένων και στον client α λά ε ιστρέφονται τα α οτελέσµατα των διεργασιών. Για το λόγο αυτό ο client και ο server θα ρέ ει άντα να συνδέονται µε κά οιο δίκτυο, γεγονός ου δεν είναι α αραίτητο στα συστήµατα µε αρχιτεκτονική fat-client. Ό ως είναι φανερό α ό τα αρα άνω για τις web εφαρµογές ου χρησιµο οιούνται για φορητές συσκευές ιο κατάλληλα είναι τα συστήµατα
thin-client, γιατί αφού το µεγαλύτερο µέρος του hardware και του λογισµικού θα βρίσκεται στον server, ο client θα είναι µια α λή συσκευή, βολική για το χρήστη, µε µικρότερη κατανάλωση ενέργειας και ερισσότερο ασφαλής, αφού ακόµα και σε ερί τωση α ώλειας ή βλάβης τα δεδοµένα του χρήστη δε χάνονται, αφού θα βρίσκονται στο server, και η συσκευή λόγω της α λότητας της κατασκευής της θα είναι εύκολο να αντικατασταθεί. Στη συνέχεια της εργασίας θα γίνει µια ροσ άθεια σύγκρισης της α όδοσης των αρα άνω αρχιτεκτονικών σε web εφαρµογές σε ασύρµατο δίκτυο. Για να γίνει η σύγκριση αυτή χρειάστηκε να γίνουν µετρήσεις για την α όδοση των αρχιτεκτονικών σε web browsing. Για τις µετρήσεις χρησιµο οιήθηκαν δύο διαφορετικά ρωτόκολλα thin-client, το Remote Desktop Protocol (RDP) και το Virtual Network Computing (VNC.) Συγκεκριµένα για τις µετρήσεις µε το VNC χρησιµο οιήθηκε το UltraVNC, εφαρµογή βασισµένη στο VNC. Για τις µετρήσεις χρησιµο οιήθηκε το i-bench, το ο οίο είναι ένα σύνολο α ό tests για φυλλοµετρητή, το ο οίο µέσω ενός javascript καλεί διαδοχικά σελίδες. Παρέχει ε ιλογή για tests ολλών µορφών, για τις µετρήσεις µας όµως χρησιµο οιήσαµε τα τεστ σε µορφή html. Ε ίσης χρησιµο οιήθηκε το wireshark (έκδοση 0.996a), το ο οίο είναι ουσιαστικά µετονοµασία του Ethereal και αρέχει τη δυνατότητα καταγραφής των ακέτων ου ανταλλάσσουν ο server και ο client, και µέσω αυτού µ ορούµε να υ ολογίσουµε το χρονικό διάστηµα ου µεσολάβησε µεταξύ των κλήσεων των σελίδων. ΣΧΕΤΙΚΑ ΜΕ ΤΑ ΠΡΩΤΟΚΟΛΛΑ Στα δίκτυα fat-client οι κλήσεις του web browser γίνονται µε το ρωτόκολλο ΗΤΤΡ (Hypertext Transfer Protocol), το ο οίο χρησιµο οιεί την τεχνολογία TCP/IΡ. Ο client υ οβάλλει ένα αίτηµα και στη συνέχεια δηµιουργείται σύνδεση TCP σε µια συγκεκριµένη θύρα (συνήθως τη θύρα 80) σε κά οιον host. Ο ΗΤΤΡ server ου ακούει σε αυτήν τη θύρα λαµβάνει το αίτηµα και στέλνει στον client µια εριγραφή της κατάστασης και ένα αντίγραφο της σελίδας ου ζήτησε (σε html ή άλλη µορφή). Το Remote Desktop Protocol (RDP) είναι ένα ρωτόκολλο ου αρέχει στον χρήστη του α οµακρυσµένου υ ολογιστή (client) τη δυνατότητα να δει την οθόνη του server καθώς και δυνατότητες εισόδου. Στηρίζεται στην οικογένεια
ρωτοκόλλων ITU T.120 και ε ιτρέ ει τη χρήση εικονικών καναλιών για τη µεταφορά κρυ τογραφηµένων δεδοµένων (είτε για αρουσίαση είτε δεδοµένα ου αντιστοιχούν σε γεγονότα οντικιού και άτηµα λήκτρου) και για την ε ικοινωνία µεταξύ client και server. Ο server, στο RDP χρησιµο οιεί τον δικό του driver οθόνης για να κατασκευάσει ακέτα µε τις α αιτούµενες ληροφορίες, τα ο οία α οστέλλει στον client, ώστε να διαµορφωθεί η οθόνη εξόδου του. Ο client λαµβάνει τα ακέτα δεδοµένων και τα µετατρέ ει σε κλήσεις του Microsoft Win32 graphics device interface (GDI) API. Με τον ίδιο τρό ο α οστέλλονται οι είσοδοι α ό το οντίκι και το ληκτρολόγιο α ό την λευρά του client. Και άλι ο server χρησιµο οιεί τους δικούς του drivers για να εκτελέσει τα αντίστοιχα events. To VNC ανα τύχθηκε α ό την ΑΤ&Τ και α οτελείται α ό τον VNC server, τον VNC client (viewer) και το VNC protocol, το ο οίο βασίζεται στο ρωτόκολλο RFB (Remote Frame Buffer). Μεταδίδει τις κινήσεις του οντικιού και τα ατήµατα των λήκτρων α ό τον client στον server και screen updates α ό τον server στον client. Χρησιµο οιεί εξ ορισµού τις θύρες α ό 5900 έως 5906, ό ου κάθε θύρα αντιστοιχεί σε µια ξεχωριστή οθόνη. Βασική διαφορά του VNC α ό το RDP είναι ότι την οθόνη του server µ ορούν να τη δουν και ο server και ο client, ενώ στο RDP την οθόνη του server µ ορεί να τη δει µόνο ο client. Ο server α οστέλλει µικρά ορθογώνια του framebuffer στον client. Στην α λούστερή του µορφή, το VNC µ ορεί να χρησιµο οιήσει µεγάλο οσοστό του διαθέσιµου εύρους, και για τον εριορισµό του φαινοµένου αυτού έχουν δηµιουργηθεί διάφοροι αλγόριθµοι, ώστε να εριοριστεί η υ ερβολική του χρήση. Για αράδειγµα, µ ορεί να α οφασιστεί µεταξύ του server και του client οια κωδικο οίηση θα χρησιµο οιηθεί. Η ιο α λή κωδικο οίηση ου υ οστηρίζεται α ό clients και servers λέγεται raw encoding, στην ο οία τα δεδοµένα α οστέλλονται ανά pixel και α ό αριστερά ρος τα δεξιά στην οθόνη του client και αφού ολοκληρωθεί η συµ λήρωση της οθόνης α λά ανανεώνονται τα pixel ου αλλάζουν. Η κωδικο οίηση αυτή δουλεύει ολύ καλά µόνο όταν υ άρχουν µικρές αλλαγές µεταξύ των διαδοχικών frames (ό ως.χ. κίνηση οντικιού) και δε δουλεύουν καλά σε ερι τώσεις ό ου µεγάλο λήθος pixel αλλάζει σε κάθε frame (ό ως.χ. όταν γίνεται scroll down).
Στον αρακάτω ίνακα φαίνονται µερικά χαρακτηριστικά και οι βασικές διαφορές µεταξύ του VNC και του RDP: Οθόνη στον client Οθόνη στον server Κωδικο- οίηση Μεταφορά Αρχείων Υ οστήριξη Ήχου Πολλα- λές οθόνες Linux Mac OSX Microsoft Windows rdp NAI OXI NAI ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΧΙ ΝΑΙ vnc NAI NAI Α αιτεί ΝΑΙ ΟΧΙ ΝΑΙ NAI ΟΧΙ ΝΑΙ plug-in ΙΑ ΙΚΑΣΙΑ ΜΕΤΡΗΣΕΩΝ Για την ραγµατο οίηση των µετρήσεων χρησιµο οιήθηκαν 3 υ ολογιστές, των ο οίων τα χαρακτηριστικά φαίνονται στον αρακάτω ίνακα: Client Server Web Server Χαρακτηριστικά Λειτουργικό ιεύθυνση IP Intel Core 2 Duo 3,4GHz Windows Vista 2 GB RAM Intel Core 2 Duo 2GHz Windows XP 195.251.248.151 512 MB RAM 195.251.234.41 Οι Client συνδέεται στο δίκτυο µέσω του ασύρµατου δικτύου του Οικονοµικού Πανε ιστηµίου Αθηνών, ενώ ο Server βρίσκεται µόνιµα συνδεδεµένος στο δίκτυο του Πανε ιστηµίου. Οι σελίδες του ibench φιλοξενούνταν σε ξεχωριστό web server (mm.aueb.gr) ο ο οίος βρίσκεται σε άλλο σηµείο στο δίκτυο του Πανε ιστηµίου. Για τις µετρήσεις τα τεστ του ibench τρο ο οιήθηκαν έτσι ώστε αφού γίνει το "κατέβασµα" κάθε σελίδα να µεσολαβούν 5 δευτερόλε τα µέχρι την κλήση της ε όµενης σελίδας. Η τεχνική αυτή χρησιµο οιείται ώστε να εξασφαλίσουµε ότι θα ολοκληρωθεί το φόρτωµα της σελίδας και η εµφάνιση της οθόνης των α οτελεσµάτων στον client, γεγονός ου µ ορεί να µην συµβεί χωρίς τις καθυστερήσεις, ράγµα ου θα µας οδηγούσε σε λανθασµένα συµ εράσµατα. ΜΕΤΡΗΣΕΙΣ ΜΕ ΤΟ HTTP Για να κάνουµε µετρήσεις µε το http ανοίγουµε το wireshark, ε ιλέγουµε Capture->Options, στο εδίο Interface ε ιλέγουµε Realtek: \Device\NPF_{E68B30AF-D173-4442-928E-A6AB904D1C19}, ου αντιστοιχεί στην κάρτα δικτύου µας, τσεκάρουµε το Capture Packets in promiscuous mode και στο εδίο host γράφουµε host και τη διεύθυνση του host, στην ερί τωσή µας 195.251.248.151, και το port 80 (HTTP). Στο τέλος ε ιλέγουµε start για να ξεκινήσουν οι µετρήσεις.
Όταν ολοκληρωθούν οι µετρήσεις ε ιλέγουµε stop και για να εξάγουµε τα α οτελέσµατα ε ιλέγουµε File->Export-> File, συµ ληρώνουµε το όνοµα του αρχείου, τον φάκελο στον ο οίο θα α οθηκευτεί το αρχείο και α ό τις ε ιλογές του packet format ε ιλέγουµε µόνο το packet summary line. ΜΕΤΡΗΣΕΙΣ ΜΕ ΤΟ VNC Για τις µετρήσεις µε το VNC οι ε ιλογές είναι ίδιες µε τις αρα άνω, µόνο ου στη θέση του host βάζουµε tcp port 5901 and host 195.251.248.151, αφού αυτή είναι η θύρα ου χρησιµο οιεί το VNC.
Στη συνέχεια ε ιλέγουµε start, όταν ολοκληρωθεί η µέτρηση ε ιλέγουµε stop και εξάγουµε το α οτέλεσµα σε µορφή.txt, ό ως αρα άνω. ΜΕΤΡΗΣΕΙΣ ΜΕ ΤΟ RDP Για τις µετρήσεις µε το RDP οι ε ιλογές είναι ίδιες µε τις αρα άνω, α λά στη θέση του host βάζουµε host mm.aueb.gr. Μια ε ι λέον διαφορά είναι ότι το wireshark έχει ανοιχτεί α ό την λευρά του server, συνε ώς καταγράφει τα ακέτα ου κινούνται σε αυτόν και όχι στον client (ό ως γίνεται στις µετρήσεις µε το http και το VNC).
Στη συνέχεια ε ιλέγουµε start και όταν ολοκληρωθεί η µέτρηση ε ιλέγουµε stop και εξάγουµε το α οτέλεσµα σε µορφή.txt, ό ως αρα άνω.
ΕΞΑΓΩΓΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΑΠΟ ΤΙΣ ΜΕΤΡΗΣΕΙΣ ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕ ΤΟ HTTP Τα α οτελέσµατα των µετρήσεων µε το http έχουν την αρακάτω µορφή: Ό ως αρατηρούµε, οι κλήσεις των σελίδων µέσω του ibench γίνονται µε ακέτα της µορφής GET /~xgeorge/performance_tests1/loadspeed/όνοµα_σελίδας ό ου στο όνοµα_σελίδας, το όνοµα της σελίδας ου καλείται. Συνε ώς, για να µ ορέσουµε να υ ολογίσουµε το µέσο χρόνο εµφάνισης µιας σελίδας αρκεί να υ ολογίσουµε το χρόνο µεταξύ της κλήσης της σελίδας και της κλήσης της ε όµενης σελίδας.
ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕ ΤΟ VNC Τα α οτελέσµατα των µετρήσεων µε το vnc έχουν την αρακάτω µορφή: Παρατηρούµε ότι συχνά εµφανίζεται η αρακάτω τριάδα ακέτων: Client pointer event Client pointer event 5901 > 49250 [ACK] Seq= Ack= Win= Οι τριάδες αυτές είναι ακέτα keep alive, τα ο οί στέλνει ο server στον client για να διατηρηθεί η σύνδεση. Η κλήση της ε όµενης σελίδας γίνεται ακριβώς µετά
την εµφάνιση µιας τέτοιας τριάδας. Συνε ώς, για να υ ολογίσουµε το µέσο χρόνο εµφάνισης µιας σελίδας αρκεί να υ ολογίσουµε το χρόνο α ό την κλήση µιας σελίδας µέχρι την κλήση µιας άλλης σελίδας. ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕ ΤΟ RDP Τα α οτελέσµατα των µετρήσεων µε το rdp έχουν την αρακάτω µορφή: Ό ως και µε τις µετρήσεις µε το http, οι κλήσεις των σελίδων µέσω του ibench γίνονται µε ακέτα της µορφής GET /~xgeorge/performance_tests1/loadspeed/όνοµα_σελίδας. Παρακάτω αρατηρούµε ότι γίνεται α οστολή ακέτου α ό τον server στον client. Το ακέτο αυτό είναι αντίγραφο της σελίδας την ο οία κάλεσε ο server. Στο συµ έρασµα αυτό µας βοηθά να καταλήξουµε και το γεγονός ότι µετά την
κλήση της σελίδας του ibench και ριν την α οστολή του ακέτου α ό τον server στον client υ άρχουν ακέτα α ό τον α οµακρυσµένο υ ολογιστή στον server, τα ο οία κατα άσα ιθανότητα στέλνουν το εριεχόµενο της σελίδας ου ζήτησε ο server (άρα στον server υ άρχουν ακέτα µε το εριεχόµενο της νέας σελίδας, τα ο οία µετά στέλνει στον client). ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕΤΡΗΣΕΩΝ Αν και ραγµατο οιήθηκε σηµαντικός αριθµός µετρήσεων, τα ακέτα δεν α εικονίστηκαν µε σωστό τρό ο στο wireshark, µε α οτέλεσµα να µην µ ορεί να γίνει η ε εξεργασία τους. Παρακάτω αρουσιάζονται τα α οτελέσµατα των µετρήσεων ου α εικονίστηκαν σωστά και µε βάση αυτά θα γίνει µια ροσ άθεια ερµηνείας τους. Στα αρακάτω διαγράµµατα αρουσιάζονται τα α οτελέσµατα των µετρήσεων ιάγραµµα1 : Συγκεντρωτικά α οτελέσµατα Με βάση τα α οτελέσµατα βλέ ουµε ότι στα tests ου έγιναν χωρίς να αρεµβάλλεται χρόνος ανάµεσα στις κλήσεις των σελίδων, τα thin-client δίκτυα είχαν µικρότερη καθυστέρηση σε σχέση µε το fat-client δίκτυο, ενώ στο test ου αρεµβάλλονταν χρόνος µεταξύ των κλήσεων των σελίδων ( ερί τωση ilong), το fat-client δίκτυο έχει µικρότερη καθυστέρηση. Αυτό συµβαίνει για τον εξής λόγο:
Όταν γίνονται µετρήσεις χωρίς να αρεµβάλλεται χρόνος µεταξύ των κλήσεων των σελίδων στο http θα ρέ ει να ολοκληρωθεί η µεταφορά των ακέτων α ό τον server στον client ριν γίνει η κλήση της ε όµενης σελίδας. Αντίθετα στο vnc δε χρειάζεται να ολοκληρωθεί η µεταφορά των ακέτων στον client, α λά να φορτώσει η σελίδα στον server. Έτσι µ ορεί στον server να εναλλάσσονται σελίδες, χωρίς α αραίτητα να φτάνει εικόνα της σελίδας στον client. Ενώ όταν γίνονται µετρήσεις στις ο οίες υ άρχει χρονική α όσταση µεταξύ των κλήσεων των σελίδων στο http η κατάσταση αραµένει ίδια, ενώ στο vnc υ άρχει ο χρόνος να ολοκληρωθεί και η µεταφορά της εικόνας της σελίδας στον client, άρα αυξάνεται και ο χρόνος µεταφοράς της κάθε σελίδας. Μεταξύ των δικτύων thin-client αρατηρούµε ότι στο rdp υ άρχει µεγαλύτερη καθυστέρηση α ό ότι στο vnc.
ΒΙΒΛΙΟΓΡΑΦΙΑ [1]. www.wikipedia.org [2]. www.42u.com/remote-access.htm [3]. Msdn2/Microsoft.com/en-us/library/aa383015.aspx [4]. www.codinghorror.com [5]. portal.acm.org/citation.cfm?id=511363 [6]. Searchwinit.techtarget.com