Δίκτυα και Internet στο επιχειρηµατικό περιβάλον Πρώτη οµάδα ασκήσεων Οδηγίες Η εργασία αυτή είναι ατοµική. Μπορείτε να µιλήσετε µε άλλους φοιτητές για να ανταλλάξετε ιδέες. Αν κάποιος συµφοιτητής σας σας βοηθήσει πολύ σε µία άσκηση να το γράψετε στην αρχή της λύσης (π.χ. "Ευχαριστώ τον χψζ για τη βοήθεια του σε αυτή την άσκηση.) Αν κάποιο βιβλίο ή κάποιο web site πλέον αυτών που έχουµε χρησιµοποιήσει στο µάθηµα σας βοηθήσει πολύ σε µία άσκηση να το γράψετε στην αρχή της λύσης (π.χ. "Το χψζ βιβλίο µε βοήθησε σε αυτή την άσκηση.) Η εργασία αυτή θα σας βοηθήσει να γράψετε καλά στις εξετάσεις µόνο αν την προσπαθήσετε µόνοι σας ΠΡΙΝ ζητήσετε βοήθεια από συµφοιτητές σας, το Internet, κ.τ.λ. Κάποιες ασκήσεις είναι δύσκολες. Πιο µεγάλη σηµασία έχει να προσπαθήσετε να σκεφτείτε τη λύση και να γράψετε κάτι λογικό έστω και αν δεν καλείπτει όλες τις περιπτώσεις ή είναι λάθος, παρά να αντιγράψετε τη λύση από κάπου αλλού. Η εµπειρία δείχνει τα εξής. Θα πάρετε καλύτερο βαθµό στο µάθηµα αν παραδώσετε µια εργασία µε λάθη που λύσατε µόνοι σας, παρά αν παραδώσετε µια εργασία χωρίς κανένα λάθος που αντιγράψατε από κάπου. Επίσης, θα πάρετε τον ίδιο ακριβώς (καλό) βαθµό στο µάθηµα αν κάνετε τις ασκήσεις µόνοι σας, είτε είναι εντελώς σωστές είτε αν έχουν κάποια λάθη. Αντιθέτως, αν πάρετε βοήθεια για τις ασκήσεις χωρίς να τις προσπαθήσετε πρώτα µόνοι σας για τουλάχιστον 2 ώρες ανά άσκηση, το ποιο πιθανό είναι να κοπείτε γιατί θα πάτε πολύ άσχηµα στο τελικό διαγώνισµα. Να είστε 100% βέβαιοι για τα παραπάνω. Η εργασία πρέπει να παραδοθεί στο εργαστήριο στον 3ο όροφο την Τρίτη 3 Μαίου µέχρι της 3µµ. Δεν θα δοθεί καµία παράταση. Σας δίνω 3 εβδοµάδες να κάνετε την εργασία! Επειδή θα σας πάρει χρόνο, κανονίστε να κάνετε 3 απο τα 9 προβλήµατα κάθε εβδοµάδα. Άµα τα αφήσετε όλα τελευταία στιγµή, δεν θα προλάβετε να τα λύσετε γιατί κάποια από τα προβλήµατα είναι δύσκολα. 1
Πρόβληµα 1. Κάποιοι χρήστες χρησιµοποιούν από κοινού ένα link µε ταχύτητα µετάδοσης (rate) 1Mbps. Κάθε χρήστης χρειάζεται 100Kbps όταν στέλνει δεδοµένα,και στέλνει δεδοµένα 10% του χρόνου. 1α. Πόσοι χρήστες µπορούν να υποστηριχτούν από circuit switching; 1b. Από εδώ και πέρα υποθέστε ότι χρησιµοποιείτε packet switching. Ποια είναι η πιθανότητα p να στέλνει δεδοµένα ένας χρήστης; 1c. 'Έστω ότι υπάρχουν 40 χρήστες. Ποια είναι η πιθανότητα αυτοί που στέλνουν δεδοµένα µια χρονική στιγµή να είναι ακριβώς n; 1d. 'Έστω ότι υπάρχουν 40 χρήστες. Ποια είναι η πιθανότητα να στέλνουν ταυτόχρονα δεδοµένα τουλάχιστον 11; Δώστε το αποτέλεσµα σε αριθµητική µορφή χρησιµοποιώντας την κανονική κατανοµή (συµβουλευθείτε τις σηµειώσεις σας από το µάθηµα στατιστικής/πιθανοτήτων). 1e. H γραµµή αντικαθιστάτε από µια νέα µε ταχύτητα 1Gbps. Πόσοι χρήστες µπορούν να υποστηριχτούν από circuit switching; 1f. Έστω ότι χρησιµοποιείτε packet switching και έχουµε Μ χρήστες. Γράψτε µια εξίσωση που να δίνει την πιθανότητα να στέλνουν ταυτόχρονα δεδοµένα τουλάχιστον Ν χρήστες. Πρόβληµα 2. Ένα µεγάλο αρχείο µεγέθους 7.5Mbits στέλνεται από το host A σε ένα packet switch R1 µέσω µιας γραµµής 1 και από εκεί σε ένα packet switch R2 µέσω µιας γραµµής 2 και από εκεί στο host B µέσω µιας άλλης γραµµής 3. Έστω ότι το propagation, το queueing, και το processing delay είναι µηδενικά και ότι η ταχύτητα κάθε γραµµής είναι 1.5Mbps. 2a. Αν το αρχείο σταλεί ολόκληρο, πόσο χρόνο πέρνει να πάει από τον Α στον R1; Δεδοµένου ότι κάθε packet switch χρησιµοποιεί store-and-forward (δηλαδή ξεκινάει να στείλει ένα πακέτο αφού το λάβει ολόκληρο) πόσο χρόνο πέρνει να πάει από τον Α στον Β; 2b. Έστω ότι το αρχείο το χωρίζουµε σε 5000 πακέτα (segments) ίσου µεγέθους. Πόσο χρόνο πέρνει να πάει το πρώτο πακέτο από τον Α στον R1; Μετά από πόσο χρόνο φτάνει το δεύτερο πακέτο στον R1 αν θεωρήσουµε ότι µόλις ο R1 λάβει το πρώτο πακέτο τότε ο Α ξεκινάει αµέσως το στένλει το δεύτερο στον R1 και ο R1 ξεκινάει να στένλει το πρώτο στον R2; 2c. Πόσο χρόνο πέρνει να πάει το αρχείο από τον Α στον Β; (Το αρχείο φτάνει στον Β µόλις όλα τα πακέτα στα οποία χωρίστηκε φτάσουν στον Β.) 2d. Συγκρίνετε τις απαντήσεις στο 2a kai 2c. Ποιά είναι τα θετικά και ποιά τα αρνητικά της ιδέας να σπάµε τα αρχεία σε πολλά πακέτα; Πρόβληµα 3. Κοιτάξτε την τοπολογία στα slides 41 και 42 του 2ου κεφαλαίου του ξενόγλωσσου βιβλίου. (Μπορείτε να βρείτε τα slides στο eduportal.) Έστω ότι ο institutional browser ζητάει 15 requests/sec από τους origin servers µέσω του access link το οποίο έχει ταχύτητα 15Mbps (αγνοήστε την ταχύτητα που δίνετε στα δυο slides), και έστω ότι το 2
response για κάθε request είναι κατά µέσο όρο 900000 bits. Έστω επίσης ότι παίρνει 2 δευτερόλεπτα κατά µέσο όρο από τη στιγµή που προωθείται ένα HTTP request από τον router από τη µεριά του public Internet µέχρι που έρχεται στον εν λόγω router η απάντηση, ότι παίρνει Δ/(1-Δβ) δευτερόλεπτα κατά µέσο όρο να σταλεί ένα response από τον router από τη µεριά του public Internet µέχρι τον router από τη µεριά του institutional network, όπου Δ είναι ο µέσος χρόνος µεταφοράς ανάµεσα στους δύο routers και β είναι ο ρυθµός άφιξης responses, και έστω ότι πέρνει µηδενικό χρόνο να φτάσει ένα response από τον router από τη µεριά του institutional network στον τελικό χρήστη/µηχάνηµα. 3a. Όσο µεγαλώνει το β, το Δ/(1-Δβ) µεγαλώνει η µικραίνει; Είναι λογικό αυτό; 3b. Όσο µεγαλώνει το Δ, το Δ/(1-Δβ) µεγαλώνει η µικραίνει; Είναι λογικό αυτό; 3c. Πόσο είναι το Δ για τα responses του προβλήµατος; 3d. Πόσο είναι το traffic intensity στο access link και πόσο το συνολικό µέσο response time; 3e. Έστω ότι βάζουµε ένα cache στο institutional network που έχει hit rate 0.4. Πόσο είναι το traffic intensity στο access link και πόσο το συνολικό µέσο response time θεωρώντας ότι πέρνει µηδενικό χρόνο να φτάσει στον τελικό χρήστη/µηχάνηµα ένα response που βρίσκεται στο cache; Πρόβληµα 4. Κοιτάξτε τα slides 78 και 79 του 2ου κεφαλαίου του ξενόγλωσσου βιβλίου. (Μπορείτε να βρείτε τα slides στο eduportal.) Έστω ότι στέλνουµε ένα αρχείο F bits σε N peers χρησιµοποιώντας αρχιτεκτονική client-server. Έστω ότι us, ui είναι τα upload rates του server και του peer i, i=1...n, di είναι το download rate του peer i, i=1...n, και dmin=minimum(di). 4a. Έστω ότι us/n <= dmin. Βρείτε ένα distribution scheme που να έχει distribution time NF/us. 4b. Έστω ότι us/n >= dmin. Βρείτε ένα distribution scheme που να έχει distribution time F/dmin. 4c. Δώστε µια εξίσωση για το γενικό distribution time της αρχιτεκτονικής client-server. Έστω ότι χρησιµοποιούµε τώρα αρχιτεκτονική P2P και ότι το dmin είναι πολύ µεγάλο σε σχέση µε τα ui's. 4d. Έστω ότι us <= (us+u1+...+un)/n. Βρείτε ένα distribution scheme που να έχει distribution time F/us. (Αυτή η ερώτηση είναι δύσκολη και αρκεί να γράψετε κάτι λογικό ακόµα και αν δεν καλύπτει πλήρως την ερώτηση.) 4e. Έστω ότι us >= (us+u1+...+un)/n. Βρείτε ένα distribution scheme που να έχει distribution time NF/(us+u1+...+uN). (Αυτή η ερώτηση είναι δύσκολη και αρκεί να γράψετε κάτι λογικό ακόµα και αν δεν καλύπτει πλήρως την ερώτηση.) 4f. Δώστε µια εξίσωση για το γενικό distribution time της αρχιτεκτονικής P2P. Πρόβληµα 5. (Αυτή την άσκηση τη λύσαµε µερικώς στο φροντιστήριο. Κάποιοι δεν ήταν στην αίθουσα και κάποιοι είχαν απορίες. Λύστε τη ξανά µόνοι σας χωρίς να κοιτάξετε τις σηµειώσεις σας από το φροντιστήριο. Αυτό θα σας δείξει τη µεγάλη διαφορά ανάµεσα στο να λύνει κάτι κάποιος µόνος του και στο να το βλέπει έτοιµο από αλλού.) 3
Έχουµε ένα host Α που στέλνει µηνύµατα σε δύο hosts B και C µέσω ενός broadcast channel (το κανάλι µεταφέρει τα πακέτα ταυτόχρονα και στους δύο). Το broadcast channel µπορεί να χάσει (loss) και να καταστρέψει (corrupt) πακέτα ανεξάρτητα για τον B και C (π.χ. µπορεί ο Β να πάρει σωστά ένα πακέτο αλλά ο C µπορεί να το πάρει λανθασµένα). Σχεδιάστε ένα Stop-and-Wait error control protocol για reliable transfer από τον Α στον Β και C λαµβάνοντας υπόψιν ότι ο Α δεν στέλνει ένα καινούργιο πακέτο αν δεν βεβαιωθέι πρώτα ότι το προηγούµενο το πήρε σωστά και ο Β και ο C. (Τα slides 25, 27, 28, 29, 31, 32, 35, 37 του 3ου κεφαλαίου του ξενόγλωσσου βιβλίου θα σας βοηθήσουν πολύ.) Πρόβληµα 6. Έστω ότι στέλνουµε ένα µεγάλο αρχείο µε TCP από ένα link χωρίς loss. 6a. Έστω ότι το TCP δεν χρησιµοποιεί slow start και άρα το congestion window µεγαλώνει κατά 1 maximum segment size (MSS) σε κάθε received ACK (received batch of ACKs). Πόσο χρόνο (µετρηµένο σε RTTs) παίρνει να µεγαλώσει το congestion window από 1 (MSS) σε 8 (MSS); 6b. Ποιο είναι το µέσο throuhput (σαν συνάρτηση του RTT και του MSS) απο το χρόνο 0 µέχρι το χρόνο 8*RTT; 6c. Έστω ότι το TCP χρησιµοποιεί slow start µε µεγάλο threshold. Πόσο χρόνο (µετρηµένο σε RTTs) παίρνει να µεγαλώσει το congestion window από 1 (MSS) σε 8 (MSS); 6d. Ποιο είναι το µέσο throuhput (σαν συνάρτηση του RTT και του MSS) από το χρόνο 0 µέχρι το χρόνο 8*RTT τώρα; 6e. Συγκρίνετε ξανά το 6b. και το 6d. απο το χρόνο 0 µέχρι το χρόνο 12*RTT. 6f. Συγκρίνετε ξανά το 6b. και το 6d. απο το χρόνο 0 µέχρι το χρόνο 12*RTT αν το threshold ισούται µε 32. Πρόβληµα 7. (Αυτή την άσκηση τη λύσαµε στο φροντιστήριο. Κάποιοι δεν ήταν στην αίθουσα και κάποιοι είχαν απορίες. Λύστε τη ξανά µόνοι σας χωρίς να κοιτάξετε τις σηµειώσεις σας από το φροντιστήριο. Αυτό θα σας δείξει τη µεγάλη διαφορά ανάµεσα στο να λύνει κάτι κάποιος µόνος του και στο να το βλέπει έτοιµο από αλλού.) Υποθέστε ότι το TCP σε κανονικές συνθήκες αποκτά ρυθµό W/(2RTT) ο οποίος αυξάνει γραµµικά (congestion avoidance phase) σε W/(RTT), στη συνέχεια λόγο κάποιου loss event πέφτει ξανά στο W/(2RTT) κ.ο.κ. µε αποτέλεσµα να έχουµε µια γραφική παράσταση σαν πριόνι. 7a. Ένας κύκλος είναι ο χρόνος που πέρνει για να πάει ο ρυθµός από W/(2RTT) σε W/(RTT) και πάλι πίσω σε W/(2RTT). Πόσα πακέτα στέλνονται επιτυχώς σε κάθε κύκλο; 7b. Πόσο είναι το loss rate L; (Το loss rate είναι ο ρυθµός µε τον οποίο χάνονται πακέτα, π.χ. εισούτε µε 1/Ν άµα χάνεται 1 πακέτο κάθε Ν πακέτα.) 7c. Ποιά είναι η µέση τιµή του congestion window σε ένα κύκλο; Θυµηθείτε ότι ο µέσος ρυθµός του TCP (σε pkts/sec) ισούται µε τη µέση τιµή του congestion window διά το 4
RTT αφού κατά µέσω όρο στέλνονται σε κάθε RTT τόσα πακέτα όσο το µέσο congestion window. 7d. Δείξτε ότι ο µέσος ρυθµός του TCP ισούτε µε 3W/(4RTT)=3/(4RTT)* (8/(3L)) για µεγάλο W όπου L είναι το loss rate. Γιατί είναι λογικό ο ρυθµός να είναι αντιστρόφος ανάλογος του RTT και (της ρίζας) του L; Πρόβληµα 8. Έστω ένας client και ένας web server που είναι συνδεδεµένοι µε ένα link ταχύτητας (rate) R. Έστω ότι ο client θέλει να κατεβάσει ένα αρχείο µεγέθους 15*MSS. Έστω ότι το RTT είναι σταθερό. Αγνοείστε τα protocol headers και υπολογίστε τον χρόνο που χρειάζεται για να κατέβει το αρχείο (συµπεριλαµβανοµένου του TCP connection setup time) όταν 8a. MSS/R > RTT. 8b. 3 MSS/R > RTT > MSS/R. 8c. 7 MSS/R > RTT > 3 MSS/R. 8d. Πόσος είναι ο χρόνος αν το αρχείο έχει µέγεθος 20*MSS και όπως και πριν 7 MSS/R > RTT > 3 MSS/R; (Φτιάξτε σχεδιαγράµµατα σαν και αυτά στα slides 66, 67, 70, 95 του 3ου κεφαλαίου του ξενόγλωσσου βιβλίου για όλα τα ερωτήµατα γιατί αυτό θα σας βοηθήσει πολύ να καταλάβετε πως η σχέση ανάµεσα στο transmission time και το RTT επηρεάζει τον ρυθµό µε τον οποίο το TCP στέλνει πακέτα όταν είναι σε slow start phase.) Πρόβληµα 9. (Έχουµε µιλήσει για το παρακάτω θέµα στις διαλέξεις και είναι πιθανό να θυµάστε την απάντηση.) Ποιο είναι το µεγαλύτερο επιτρεπτό sender window για να αποφύγουµε τα προβλήµατα του slide 53 του 3ου κεφαλαίου του ξενόγλωσσου βιβλίου, αν έχουµε Κ sequence numbers στο GBN και στο SR πρωτόκολλο; Δεν αρκεί να γράψετε την απάντηση, πρέπει να εξηγήσετε προσεκτικά γιατί ισχύει η απάντηση που θα δώσετε. 5