Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP

Σχετικά έγγραφα
Εργαστήριο Wireshark: TCP

Εργαστήριο Ethereal: TCP

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

Πρωτόκολλο TCP Διάλεξη Ι

Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP

Εργαστήριο Ethereal: IP

Δίκτυα Υπολογιστών Ενότητα 1: Αναλυτής Πρωτοκόλλων Wireshark

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Εργαστήριο Ethereal: ICMP

Ανάλυση και έλεγχος δικτύου με χρήση του εργαλείου Wireshark

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Εργαστηριακή Άσκηση 5 Πρωτόκολλο IP

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

Ειδικά Θέματα Προγραμματισμού

Άσκηση 2. Αν συμβούν 2 duplicate ACKs αντί για timeout τι γίνεται σε αυτή την περίπτωσή;

Πρωτόκολλα Διαδικτύου

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Δίκτυα Υπολογιστών Ενότητα 8: Internet Protocol - IP

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol

Εργαστήριο «Δίκτυα Υπολογιστών Ι»

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εργαστηριακή Άσκηση 6 Πρωτόκολλα ARP και ICMP

Ασφάλεια Υπολογιστικών Συστημάτων

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Δίκτυα Θεωρία

Network Address Translation (NAT)

Δίκτυα Ηλεκτρονικών Υπολογιστών

ΗΜΥ Εργαστηριακή Άσκηση 2

Διάρθρωση. Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο. Επικοινωνία από άκρο σε άκρο. Διάρθρωση

Εργαστήριο Wireshark: Εισαγωγή

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

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

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο Φροντιστήριο Ασκήσεις στο TCP

Πρωτόκολλο TCP Διάλεξη ΙΙI

Πρωτόκολλα Διαδικτύου

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Εργαστήριο Wireshark: HTTP

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

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

Εργαστήριο Δικτύων Υπολογιστών

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Ασφάλεια Υπολογιστικών Συστημάτων

Κεφάλαιο 4ο ΕΠΙΠΕΔΟ ΜΕΤΑΦΟΡΑΣ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ.

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Transmission Control Protocol. Transmission Control Protocol

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Εργαστήριο Wireshark: DNS

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή σε Έννοιες των Δικτύων Υπολογιστών Κεφάλαιο 2 Αξιοπιστία Κεφάλαιο 3 Αλγόριθμοι Πολλαπλής Πρόσβασης...

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1 ΛΥΣΗ ΑΣΚΗΣΗ 2

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Δίκτυα Επικοινωνίας και Υπολογιστών

Εξοικείωση με τις εντολές ipconfig και ping

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

6.2 Υπηρεσίες Διαδικτύου

Παιχνίδι TCP-IP (περιγραφή πρωτοκόλλων)

ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή

ΑΝΑΛΥΣΗ TCP ΚΙΝΗΣΗΣ ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ TCPTRACE.

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών Στρώμα Μεταφοράς (2) Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Μελέτη Σημείου Πρόσβασης ως ασύρματου επαναλήπτη

Δίκτυα Υπολογιστών I Εργαστήρια

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Μάθημα: Ακουστική και Ψυχοακουστική

Μάθημα 6: Αρχιτεκτονική TCP/IP

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.


ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

Transcript:

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Transmission Control Protocol - TCP

Σκοποί ενότητας Στόχος είναι η εξέταση των ιδιοτήτων των πρωτοκόλλων μεταφοράς TCP του Internet. 5

Περιεχόμενα ενότητας (1/3) Εισαγωγή. Οι υπηρεσίες του πρωτοκόλλου. Εγκατάσταση TCP σύνδεσης. Βήματα εγκατάστασης TCP σύνδεσης. Βήματα εγκατάστασης TCP σύνδεσης - Τριμερής χειραψία. Τερματισμός TCP σύνδεσης. 6

Περιεχόμενα ενότητας (2/3) Δομή του πρωτοκόλλου TCP. Ανιχνεύοντας το TCP με το Wireshark. Ερωτήσεις. Μεταβολή παραθύρου καταλόγου πακέτων του Wireshark. Μελέτη της συμπεριφοράς του TCP. Ερωτήσεις Συνέχεια. 7

Περιεχόμενα ενότητας (3/3) TCP segments. Αλγόριθμος συμφόρησης του TCP. Επισύναψη αρχείου σε email. Παρακολούθηση μηνυμάτων TCP και File Transfer Protocol (FTP) με το Wireshark. Παρακολούθηση μηνυμάτων TCP και FTP με το Wireshark Ερωτήσεις. 8

Εισαγωγή (1/2) Το Transmission Control Protocol (TCP) είναι πρωτόκολλο προσανατολισμένο στη σύνδεση (connection-oriented). Δηλαδή η μεταφορά δεδομένων γίνεται μέσω σύνδεσης. Οριοθετείται από ένα σήμα έναρξης και ένα σήμα τέλους ή διακοπής, που παρέχει αξιόπιστη μετάδοση συρμού Byte από άκρη σε άκρη (end-to-end) πάνω από ένα μη αξιόπιστο δίκτυο. 9

Εισαγωγή (2/2) Το TCP παραδίδει τα δεδομένα προς το IP σε τεμάχια. Όμως, προς τα ανώτερα στρώματα, το TCP παραδίδει τα δεδομένα ως ακολουθία από Byte χωρίς να καθορίζει όρια μεταξύ των Bytes. 10

Οι υπηρεσίες του πρωτοκόλλου (1/5) Εγκατάσταση σύνδεσης (connection setup). Έλεγχος ροής. Ο αποστολέας δεν θα κατακλύσει τον παραλήπτη. Απαιτείται η επιβεβαίωση λήψης (acknowledgment) κάθε πακέτου από τον απόμακρο host πριν να σταλεί το επόμενο. 11

Οι υπηρεσίες του πρωτοκόλλου (2/5) Έλεγχος ροής (Συνέχεια). Οι αλγόριθμοι που χρησιμοποιούνται από το TCP, επιτρέπουν σε πολλαπλά πακέτα δεδομένων να μεταφέρονται ταυτόχρονα για να χρησιμοποιείται αποδοτικότερα το εύρος ζώνης (bandwidth) ενός δικτύου. 12

Οι υπηρεσίες του πρωτοκόλλου Έλεγχος συμφόρησης. (3/5) Αυξομείωση ρυθμού μετάδοσης αποστολέα όταν το δίκτυο είναι υπερφορτωμένο. Το TCP δεν μπορεί να αγνοήσει τι συμβαίνει στο διαδίκτυο μεταξύ των δύο συνδεδεμένων άκρων. Για αυτό το λόγο, το TCP περιλαμβάνει διάφορους αλγορίθμους που έχουν ως σκοπό είτε να αποφύγουν εξ αρχής τη συμφόρηση, είτε να ανταποκριθούν σε αυτή. 13

Οι υπηρεσίες του πρωτοκόλλου (4/5) Μεταφορά δεδομένων. Σε μια απλή υλοποίηση του TCP, χωρίς τους προαναφερθέντες ελέγχους, η εφαρμογή θα στείλει πακέτα στο δίκτυο προς τον παραλήπτη. Εφόσον υπάρχουν δεδομένα να σταλούν και ο αποστολέας δεν υπερβαίνει το εύρος παραθύρου (window size) που του έχει υποδείξει ο παραλήπτης. 14

Οι υπηρεσίες του πρωτοκόλλου (5/5) Μεταφορά δεδομένων (Συνέχεια). Όταν ο παραλήπτης δέχεται πακέτα TCP, στέλνει επιβεβαιώσεις (acknowledgement), δείχνοντας σε ποιο σημείο του byte stream βρίσκεται. Αυτές οι επιβεβαιώσεις περιέχουν επίσης το επόμενο window (παράθυρο) που καθορίζει πόσα Byte επιθυμεί να δεχτεί στη συνέχεια ο παραλήπτης. 15

Εγκατάσταση TCP σύνδεσης (1/5) Πριν από οποιανδήποτε μεταφορά δεδομένων, το TCP εγκαθιστά μια σύνδεση. Η εγκατάσταση της σύνδεσης αρχίζει όταν ο πελάτης TCP στέλνει μια αίτηση σύνδεσης στον εξυπηρετητή TCP. 16

Εγκατάσταση TCP σύνδεσης (2/5) Για την εγκατάσταση μιας TCP σύνδεσης ανταλλάσσονται τρία τεμάχια σύμφωνα με μια διαδικασία που είναι γνωστή ως τριμερής χειραψία (3-way handshake). 17

Εγκατάσταση TCP σύνδεσης (3/5) Το TCP δε διαθέτει ειδικά τεμάχια για την εγκατάσταση και τερματισμό των συνδέσεων. Αντίθετα χρησιμοποιεί σημαίες μήκους 1 bit (bit flags) στην επικεφαλίδα TCP για να μεταφέρει την πληροφορία ελέγχου. Για την εγκατάσταση και απόλυση των συνδέσεων χρησιμοποιούνται οι σημαίες SYN, ACK και FIN. 18

Εγκατάσταση TCP σύνδεσης (4/5) Πριν να προσπαθήσει ένα πρόγραμμαπελάτης (client) να συνδεθεί με έναν server. Ο server πρέπει πρώτα να δεσμεύσει μια port και να την ανοίξει ώστε να δέχεται συνδέσεις. Καλείται passive open. Όταν γίνει αυτό, ο client μπορεί να αρχίσει τη σύνδεση (active open). 19

Εγκατάσταση TCP σύνδεσης (5/5) Για να γίνει μια σύνδεση, γίνεται μια "χειραψία" ανάμεσα στα συμμετέχοντα μέρη, το λεγόμενο three-way handshake. Κατά τη διάρκεια του three-way handshake. Τα δύο μέρη διαπραγματεύονται επίσης όλες τις ειδικές επιλογές που θα χρησιμοποιηθούν κατά τη διάρκεια της σύνδεσης TCP κ.α. 20

Βήματα εγκατάστασης TCP Βήμα 1. σύνδεσης (1/4) Ο πελάτης στέλνει στον εξυπηρετητή μήνυμα με σημαία SYN flag. Το SYN bit είναι ενεργοποιημένο. Ο πελάτης θέτει το πεδίο αριθμού ακολουθίας στην TCP επικεφαλίδα (TCP header) στον αρχικό αριθμό ακολουθίας του ISN - initial sequence number (seq#) και το μήνημα δεν περιέχει δεδομένα. 21

Βήμα 2. Βήματα εγκατάστασης TCP σύνδεσης (2/4) Ο εξυπηρετητής λαμβάνει το μήνυμα με σημαία SYN, και για να αποδεχτεί τη σύνδεση αποκρίνεται με ένα μήνυμα με σημαία SYN/ACK. Τα SYN και ACK bits είναι ενεργοποιημένα. O εξυπηρετητής εκχωρεί προσωρινή αποθήκευση στη σύνδεση και για να στείλει το μήνυμα SYN καθορίζει το δικό του ISN αρχικό αριθμό ακολουθίας (seq#) και ACK (που έχει το ISN+1 του client) του πρώτου πακέτου του client. 22

Βήματα εγκατάστασης TCP Βήμα 2 (Συνέχεια). σύνδεσης (3/4) Σημείωση: Ο εξυπηρετητής μπορεί να μην αποδεχθεί τη σύνδεση οπότε αποκρίνεται με ένα μήνυμα με τα SYN και RST bits ενεργοποιημένα. Για να ενημερώσει τον πελάτη ότι αρνείται τη σύνδεση και η διαδικασία σταματά. 23

Βήματα εγκατάστασης TCP Βήμα 3. σύνδεσης (4/4) Όταν ο πελάτης λαμβάνει το μήνυμα με σημαία SYN/ACK, απαντάει με ένα μήνυμα με σημαία ACK. Το ACK bit είναι ενεργοποιημένο. Σε αυτό το σημείο, τα δύο μέρη συνδέονται και μπορούν πλέον να σταλούν τα δεδομένα. 24

Βήματα εγκατάστασης TCP σύνδεσης - Τριμερής χειραψία Σχήμα 1. Βήματα εγκατάστασης TCP σύνδεσης - Τριμερής χειραψία, πηγή: ο διδάσκων (2014). 25

Τερματισμός TCP σύνδεσης (1/7) Four-way handshake διαδικασία τερματισμού της TCP σύνδεσης. H κάθε πλευρά να τερματίζει ανεξάρτητα. Αποτελείται από τα ακόλουθα βήματα: Βήμα 1. Όταν κάποιο άκρο επιθυμεί να κλείσει τη σύνδεση από πλευράς του, στέλνει ένα μήνυμα TCP με σημαία FIN στο άλλο άκρο. 26

Τερματισμός TCP σύνδεσης (2/7) Βήμα 2. Όταν η άλλη πλευρά λαμβάνει το μήνυμα με σημαία FIN το επιβεβαιώνει με ένα μήνυμα με σημαία ACK. Βήμα 3. Στη συνέχεια, κλείνει τη σύνδεση στέλνοντας στην πλευρά που εκκίνησε τη διαδικασία τερματισμού της TCP σύνδεσης ένα μήνυμα TCP με σημαία FIN. 27

Τερματισμός TCP σύνδεσης (3/7) Βήμα 4. Η πλευρά που εκκίνησε τη διαδικασία τερματισμού της TCP σύνδεσης λαμβάνει το μήνυμα με σημαία FIN. Αναμένει και αποκρίνεται με μήνυμα με σημαία ACK στο μήνυμα FIN που έλαβε. Η σύνδεση τερματίζεται και οι πόροι απελευθερώνονται. 28

Τερματισμός TCP σύνδεσης (4/7) Βήμα 4 (Συνέχεια). Σημείωση: Ο εξυπηρετητής με μικρή τροποποίηση μπορεί να χειριστεί ταυτόχρονα μηνύματα με σημαία FIN. 29

Τερματισμός TCP σύνδεσης (5/7) Σχήμα 2. Τερματισμός TCP σύνδεσης, διαφάνεια 40, ανακτήθηκε 21/3/2015. 30

Τερματισμός TCP σύνδεσης (6/7) Με αυτόν τον τρόπο, για έναν τυπικό τερματισμό χρειάζεται ένα ζεύγος πακέτων FIN και ACK για κάθε άκρο στη σύνδεση TCP. Μια σύνδεση μπορεί να είναι "half-open", δηλαδή η μία πλευρά να έχει τερματίσει, όχι όμως και η άλλη. 31

Τερματισμός TCP σύνδεσης (7/7) Η πλευρά που έχει τερματίσει δεν μπορεί να στείλει πλέον δεδομένα, ενώ η άλλη μπορεί. Τέλος, είναι δυνατό, αν και λιγότερο πιθανό, οι δύο host να στείλουν ταυτόχρονα ένα πακέτο FIN ο ένας στον άλλο. Στη συνέχεια ο καθένας επιβεβαιώνει το FIN που δέχτηκε με ένα πακέτο ACK. Στο σημείο αυτό και οι δύο διακόπτουν τη σύνδεση. 32

Δομή του πρωτοκόλλου TCP (1/11) Τα πακέτα του πρωτοκόλλου TCP καλούνται segments (τμήματα). Ένα από τα κυριότερα μέρη ενός segment είναι η TCP επικεφαλίδα (TCP header). Παρέχει συγκεκριμένες πληροφορίες για το πρωτόκολλο TCP. Το ελάχιστο μέγεθος της επικεφαλίδας είναι 20 bytes. 33

Δομή του πρωτοκόλλου TCP (2/11) Σχήμα 3. Δομή του πρωτοκόλλου TCP, πηγή: ο διδάσκων (2014). 34

Δομή του πρωτοκόλλου TCP Source Port. (3/11) Αυτό το πεδίο προσδιορίζει την port (θύρα) του αποστολέα. Destination Port. Αυτό το πεδίο προσδιορίζει την port (θύρα) του παραλήπτη. 35

Δομή του πρωτοκόλλου TCP Sequence Number. (4/11) Ο sequence number (αριθμός ακολουθίας) έχει διπλό ρόλο: Εάν υπάρχει η SYN flag τότε είναι ο αρχικός αριθμός ακολουθίας (ISN - initial sequence number) και η πρώτη octet δεδομένων του πακέτου είναι ο ISN+1. Εάν δεν υπάρχει η SYN flag, τότε η πρώτη octet δεδομένων είναι ο αριθμός ακολουθίας. 36

Δομή του πρωτοκόλλου TCP (5/11) Acknowledgment number. Όταν υπάρχει η ACK flag η τιμή αυτού του πεδίου δείχνει τον επόμενο sequence number (αριθμό ακολουθίας) που αναμένει ο αποστολέας. 37

Δομή του πρωτοκόλλου TCP Data offset. (6/11) Είναι ο αριθμός από words μεγέθους 32 bit στην επικεφαλίδα TCP (TCP header). Καθορίζει το μέγεθος της επικεφαλίδας (πολλαπλάσιο του 32) και επομένως δείχνει και την αρχή των δεδομένων. 38

Δομή του πρωτοκόλλου TCP (7/11) Reserved. Πεδίο 6 bit "κρατημένων" για μελλοντική χρήση. Η τιμή των bit πρέπει να είναι 0. 39

Δομή του πρωτοκόλλου TCP (8/11) Flags. Περιέχει 6 bit σημαίες. Σχήμα 4. Σημαίες, πηγή: ο διδάσκων (2014). 40

Δομή του πρωτοκόλλου TCP Window. (9/11) Ο αριθμός από octets δεδομένων (bytes) που επιθυμεί να δεχτεί ο αποστολέας του πακέτου. Αρχίζοντας από εκείνη που δείχνει το πεδίο επιβεβαίωσης (acknowledgment field). Checksum. Το πεδίο checksum μεγέθους 16 bit χρησιμοποιείται για έλεγχο λαθών στην επικεφαλίδα και στα δεδομένα. 41

Δομή του πρωτοκόλλου TCP Options. (10/11) Μεταβλητή, η οποία καθορίζει ειδικές επιλεγόμενες ρυθμίσεις και μπορεί να καταλάβει χώρο στο τέλος της επικεφαλίδας TCP (TCP header). Το μήκος τους είναι πολλαπλάσιο των 8 bit και σε το περιεχόμενο της επικεφαλίδας μετά την τελευταία επιλογή πρέπει να γεμίζει. Π.χ. με μηδενικά. Με αυτόν τον τρόπο το data offset θα δείχνει σωστά την αρχή των δεδομένων. 42

Δομή του πρωτοκόλλου TCP Urgent pointer. (11/11) Εάν είναι ενεργοποιημένο το URG bit ελέγχου, τότε αυτό το πεδίο δείχνει τον αριθμό ακολουθίας (sequence number) της octet. Βρίσκεται αμέσως μετά το τελευταίο Byte από τα επείγοντα δεδομένα. Παρουσιάζει τη θέση του τελευταίου Byte με επείγοντα δεδομένα. 43

Ανιχνεύοντας το TCP με το Wireshark (1/19) Παρακάτω θα εξεταστεί λεπτομερώς η συμπεριφορά του TCP. Θα αναλυθεί η ανίχνευση των τμημάτων TCP που στέλνονται και λαμβάνονται κατά τη μεταφορά ενός αρχείου 150ΚΒ από τον υπολογιστή σε έναν απομακρυσμένο διακομιστή. 44

Ανιχνεύοντας το TCP με το Θα μελετηθεί. Wireshark (2/19) Η χρήση του αριθμού ακολουθίας και του αριθμού γνωστοποίησης για την αξιόπιστη μεταφορά δεδομένων με το TCP. O αλγόριθμος ελέγχου συμφόρησης. H αργή εκκίνηση και η αποφυγή συμφόρησης στην πράξη. O μηχανισμός ελέγχου ροής του TCP. 45

Ανιχνεύοντας το TCP με το Wireshark (3/19) Ακόμα θα παρουσιαστεί εν συντομία ο τρόπος με τον οποίο γίνεται μία σύνδεση με το TCP και θα μετρηθεί η απόδοση της σύνδεσης αυτής μεταξύ του υπολογιστή και του διακομιστή. 46

Ανιχνεύοντας το TCP με το Wireshark (4/19) Προτού ξεκινήσει η εξερεύνηση στο πρωτόκολλο TCP, θα πρέπει να ανιχνευτούν τα πακέτα που μεταφέρονται μέσω TCP με το Wireshark. Κατά την διάρκεια μεταφοράς ενός αρχείου από τον υπολογιστή στον απομακρυσμένο διακομιστή. 47

Ανιχνεύοντας το TCP με το Wireshark (5/19) Αυτό θα γίνει μεταβαίνοντας σε μία ιστοσελίδα, στην οποία θα εισαχθεί το όνομα του αρχείου που θα μεταφερθεί από τον υπολογιστή. Το οποίο λόγω μεγέθους θα μεταφερθεί στον απομακρυσμένο διακομιστή με τη μέθοδο HTTP POST. 48

Ανιχνεύοντας το TCP με το Wireshark (6/19) Εννοείται, ότι κατά την διάρκεια της όλης διαδικασίας το Wireshark θα ανιχνεύει τα τμήματα TCP που θα στέλνονται και θα λαμβάνονται ανάμεσα στον υπολογιστή και τον διακομιστή. 49

Ανιχνεύοντας το TCP με το Wireshark (7/19) Ακολουθούνται τα παρακάτω βήματα: 1. Ξεκινήστε τον browser σας. 2. Πηγαίνετε στο http://gaia.cs.umass.edu/wiresharklabs/alice.txt και ανακτήσετε ένα αντίγραφο ASCII του Alice in Wonderland. 3. Αποθηκεύστε το αρχείο αυτό στον υπολογιστή σας. 50

Ανιχνεύοντας το TCP με το Συνέχεια βημάτων: Wireshark (8/19) 4. Πηγαίνετε στο http://gaia.cs.umass.edu/wireshark-labs/tcpwireshark-file1.html Θα πρέπει να εμφανίσει μία ιστοσελίδα παρόμοια με την παρακάτω. 51

Ανιχνεύοντας το TCP με το Wireshark (9/19) Σχήμα 5. Ανιχνεύοντας το TCP με το Wireshark. 52

Ανιχνεύοντας το TCP με το Wireshark (10/19) Χρησιμοποιείστε το κουμπί Browse στη φόρμα αυτή για να εισάγετε το όνομα του αρχείου (πλήρες path name) στον υπολογιστή σας που περιέχει το Alice in Wonderland. Μπορείτε επίσης να εισάγετε το όνομα με το χέρι. Μην πιέστε ακόμη το κουμπί "Upload alice.ttxt file". 53

Ανιχνεύοντας το TCP με το Wireshark (11/19) Ξεκινήστε τώρα το Wireshark και τη σύλληψη πακέτων (Capture^Options). Στη συνέχεια πιέστε OK στο παράθυρο Επιλογές Σύλληψης Πακέτων (Packet Capture Options) του Wireshark. Δε θα χρειαστεί να διαλέξουμε κάποια από τις επιλογές εδώ. 54

Ανιχνεύοντας το TCP με το Wireshark (12/19) Επιστρέφοντας στον browser σας, πιέστε το κουμπί "Upload alice.txt file" για να φορτώσετε το αρχείο στον server gaia.cs.umass.edu. Αφού ολοκληρωθεί η μεταφορά του αρχείου, ένα μικρό συγχαρητήριο μήνυμα θα εμφανισθεί στο παράθυρο του browser σας. Σταματήστε τη σύλληψη πακέτων από το Wireshark. 55

Ανιχνεύοντας το TCP με το Wireshark (13/19) Το παράθυρο του Wireshark. Σχήμα 6. Το παράθυρο του Wireshark. 56

Ανιχνεύοντας το TCP με το Wireshark (14/19) Εναλλακτικά, μπορείτε να φορτώσετε ένα αρχείο με το trace πακέτων από τη διεύθυνση URL: Στη συνέχεια εξάγετε το αρχείο tcp-etherealtrace-1.pcap. http://gaia.cs.umass.edu/wireshark-labs/wiresharktraces.zip. 57

Ανιχνεύοντας το TCP με το Wireshark (15/19) Αφού λάβετε το trace. Μπορείτε να το φορτώσετε στο Wireshark και να το δείτε στο παράθυρο χρησιμοποιώντας το μενού File, επιλέγοντας Open και στη συνέχεια επιλέγοντας το αρχείο tcp-ethereal-trace-1.pcap του trace. 58

Ανιχνεύοντας το TCP με το Wireshark (16/19) Πρώτα, φιλτράρονται τα πακέτα που καταγράφηκαν, εισάγοντας τη λέξη tcp στο παράθυρο των προδιαγραφών του φίλτρου παρουσίασης που βρίσκεται προς το επάνω μέρος του παραθύρου του Wireshark. Mε μικρά γράμματα, χωρίς εισαγωγικά και χωρίς να ξεχάσετε να πιέσετε return μετά την εισαγωγή. 59

Ανιχνεύοντας το TCP με το Wireshark (17/19) Στο παράθυρο καταλόγου πακέτων θα πρέπει να δείτε μία σειρά από μηνύματα TCP και HTTP να ανταλλάσσονται μεταξύ του υπολογιστή σας και του server gaia.cs.umass.edu. Θα πρέπει να δείτε την αρχική χειραψία τριών βημάτων που περιέχει ένα μήνυμα SYN. 60

Ανιχνεύοντας το TCP με το Wireshark (18/19) Θα πρέπει να δείτε ένα μήνυμα HTTP POST και μία σειρά από μηνύματα "HTTP Continuation" να στέλνονται από τον υπολογιστή σας στο gaia.cs.umass.edu. Υπενθυμίζεται ότι δεν υπάρχουν μηνύματα Continuation στο HTTP. Το Wireshark χρησιμοποιεί αυτόν τον τρόπο για να υποδείξει ότι χρησιμοποιούνται πολλαπλά TCP segments για τη μεταφορά ενός μηνύματος HTTP. 61

Ανιχνεύοντας το TCP με το Wireshark (19/19) Θα πρέπει επίσης να δείτε TCP segments με επιβεβαιώσεις (ACK) να επιστρέφουν από το gaia.cs.umass.edu στον υπολογιστή σας. 62

Ερωτήσεις (1/4) Στη συνέχεια απαντήστε στις ακόλουθες ερωτήσεις. Όπου είναι δυνατό, η απάντησή σας θα πρέπει να συνοδεύεται από μία εκτύπωση των πακέτων του trace που χρησιμοποιήσατε για να απαντήσετε στην ερώτηση. Σημειώστε επάνω στην εκτύπωση τα σημεία εκείνα που αιτιολογούν την απάντησή σας. 63

Ερωτήσεις (2/4) Για να εκτυπώσετε ένα πακέτο: Χρησιμοποιήστε File Print. Επιλέξτε Selected packet only. Επιλέξτε Packet summary line. Επιλέξτε το ελάχιστο ποσό λεπτομερειών πακέτου που χρειάζεστε για να απαντήσετε στην ερώτηση. 64

Ερωτήσεις (3/4) 1. Ποια η διεύθυνση IP και ποιος ο αριθμός θύρας TCP που χρησιμοποιείται από τον client (πηγή) που μεταφέρει το αρχείο στο gaia.cs.umass.edu; Για να απαντήσετε στην ερώτηση αυτή είναι μάλλον ευκολότερο να επιλέξετε ένα μήνυμα HTTP και να εξετάσετε τις λεπτομέρειες του πακέτου TCP που χρησιμοποιήθηκε για να μεταφέρει αυτό το μήνυμα. Χρησιμοποιώντας το παράθυρο με τις λεπτομέρειες επικεφαλίδας επιλεγμένου πακέτου. 65

Ερωτήσεις (4/4) 2. Ποια η διεύθυνση IP του gaia.cs.umass.edu; Σε ποιο αριθμό θύρας στέλνει και λαμβάνει segments για αυτήν τη σύνδεση TCP; 3. Ποια η διεύθυνση IP και ποιος ο αριθμός θύρας TCP που χρησιμοποιείται από τον δικό σας client (πηγή) για τη μεταφορά του αρχείου στο gaia.cs.umass.edu; 66

Μεταβολή παραθύρου καταλόγου πακέτων του Wireshark (1/3) Ας μεταβάλλουμε το παράθυρο καταλόγου πακέτων του Wireshark. Ώστε να παρουσιάζει πληροφορίες σχετικά με τα TCP segments που περιέχουν τα μηνύματα HTTP αντί για τα μηνύματα HTTP. Για να το κάνει αυτό το Wireshark, επιλέξτε Analyze Enabled Protocols. Στη συνέχεια ξεμαρκάρετε το κουτί HTTP και επιλέξτε OK. 67

Μεταβολή παραθύρου καταλόγου πακέτων του Wireshark (2/3) Σχήμα 7. Μεταβολή παραθύρου καταλόγου πακέτων του Wireshark. 68

Μεταβολή παραθύρου καταλόγου πακέτων του Wireshark (3/3) Αυτός ήταν ο επιδιωκόμενος στόχος. Μία σειρά από TCP segments που ανταλλάσσονται μεταξύ του υπολογιστή σας και του gaia.cs.umass.edu. 69

Μελέτη της συμπεριφοράς του TCP Στο υπόλοιπο μέρος θα χρησιμοποιήσουμε το trace των πακέτων που έχετε συλλάβει και το trace πακέτων tcp-ethereal-trace-1.pcap στο http://gaia.cs.umass.edu/wiresharklabs/wireshark-traces.zip. Για να μελετήσουμε τη συμπεριφορά του TCP. 70

Ερωτήσεις - Συνέχεια (1/9) Απαντήστε στις ακόλουθες ερωτήσεις για τα TCP segments: 4. Ποιος ο αριθμός ακολουθίας του TCP segment SYN που χρησιμοποιείται για την εκκίνηση της σύνδεσης TCP μεταξύ του client και του gaia.cs.umass.edu; Ποιο στοιχείο του segment προσδιορίζει ότι πρόκειται για ένα SYN segment; 71

Ερωτήσεις - Συνέχεια (2/9) 5. Ποιος ο αριθμός ακολουθίας του segment SYN/ACK που στέλνεται από το gaia.cs.umass.edu στον client ως απόκριση στο segment SYN; Ποια η τιμή του πεδίου ACK στο segment SYNACK; Με ποιο τρόπο καθορίστηκε η τιμή αυτή από το gaia.cs.umass.edu; Ποιο στοιχείο του segment προσδιορίζει ότι πρόκειται για ένα SYN/ACK segment; 72

Ερωτήσεις - Συνέχεια (3/9) 6. Ποιος ο αριθμός ακολουθίας του TCP segment που περιέχει την εντολή HTTP POST; Σημειώστε ότι για να εντοπίσετε την εντολή POST θα χρειαστεί να ψάξετε στο πεδίο περιεχομένων πακέτου που βρίσκεται στο κάτω μέρος του παραθύρου Wireshark αναζητώντας ένα segment που περιέχει τους χαρακτήρες "POST" στο πεδίο των δεδομένων. 73

Ερωτήσεις - Συνέχεια (4/9) 7. Θεωρήστε το TCP segment που περιέχει την εντολή HTTP POST ως το πρώτο segment της σύνδεσης TCP. Ποιοι οι αριθμοί ακολουθίας των πρώτων έξι segments της σύνδεσης TCP, συμπεριλαμβανομένου και του segment που περιέχει την εντολή HTTP POST; Ποιος ο χρόνος αποστολής του κάθε segment; 74

Ερωτήσεις - Συνέχεια (5/9) 7. Συνέχεια ερώτησης. Ποιος ο χρόνος λήψης της επιβεβαίωσης ACK για κάθε segment; Δεδομένης της διαφοράς μεταξύ του χρόνου αποστολής ενός TCP segment και του χρόνου λήψης της επιβεβαίωσής του, ποια η τιμή του RTT για καθένα από τα έξι segments; 75

Ερωτήσεις - Συνέχεια (6/9) 7. Συνέχεια ερώτησης. Σημείωση. Το Wireshark διαθέτει ένα χαρακτηριστικό γνώρισμα που σας επιτρέπει να παραστήσετε γραφικά το χρόνο RTT για καθένα από τα απεσταλμένα TCP segments. Στο παράθυρο καταλόγου πακέτων επιλέξτε ένα TCP segment το οποίο στέλνεται από τον client στον server gaia.cs.umass.edu. Στη συνέχεια επιλέξτε Statistics TCP Stream Graph Round Trip Time Graph. 76

Ερωτήσεις - Συνέχεια (7/9) 8. Ποιο το μήκος καθενός από τα έξι πρώτα TCP segments; 9. Ποιος ο ελάχιστος διαθέσιμος χώρος αποθήκευσης (buffer space) που ανακοινώνεται από τον παραλήπτη σε ολόκληρο το trace; Συμβαίνει ποτέ η έλλειψη χώρου αποθήκευσης στον παραλήπτη να περιορίζει το ρυθμό του αποστολέα; 77

Ερωτήσεις - Συνέχεια (8/9) 10. Υπάρχουν επαναμεταδιδόμενα segments στο αρχείο του trace; Σε τι είδους έλεγχο του trace βασίσατε την απάντησή σας στην ερώτηση αυτή; 11. Πόσα bytes δεδομένων επιβεβαιώνει συνήθως ο παραλήπτης σε μία επιβεβαίωση; Μπορείτε να διακρίνετε περιπτώσεις όπου ο παραλήπτης επιβεβαιώνει κάθε δεύτερο λαμβανόμενο segment; 78

Ερωτήσεις - Συνέχεια (9/9) 12.Ποιος ο αριθμός μεταφερόμενων bytes ανά μονάδα χρόνου (throughput ) της σύνδεσης TCP; Εξηγείστε τον τρόπο με τον οποίο υπολογίσατε την τιμή αυτή. 79

TCP segments (1/4) Τα TCP segments στο αρχείο tcp-ethereal-trace-1 του trace είναι όλα μικρότερα από 1460 bytes. Αυτό οφείλεται στο γεγονός ότι ο υπολογιστής που χρησιμοποιήθηκε για τη συλλογή του trace έχει μία κάρτα Ethernet η οποία περιορίζει το μέγιστο μήκος ενός IP datagram σε 1500 bytes. 40 bytes για τις επικεφαλίδες TCP/IP και 1460 bytes ωφέλιμου φορτίου TCP. 80

TCP segments (2/4) Αυτή η τιμή των 1500 bytes αποτελεί το καθιερωμένο μέγιστο επιτρεπτό μήκος στο Ethernet. Εάν το δικό σας trace εμφανίζει ένα TCP segment με μήκος μεγαλύτερο από 1460 bytes και ο υπολογιστής σας χρησιμοποιεί μία σύνδεση Ethernet. Τότε το Wireshark αναφέρει λάθος μήκος TCP segment. 81

TCP segments (3/4) Είναι πολύ πιθανό επίσης να δείχνει μόνο ένα μεγάλο TCP segment αντί για πολλαπλά μικρότερα segments. Στην πραγματικότητα, ο υπολογιστής σας μάλλον στέλνει πολλαπλά μικρότερα segments όπως υποδεικνύεται από τις πολλαπλές επιβεβαιώσεις που λαμβάνει. 82

TCP segments (4/4) Αυτή η ασυνέπεια στα αναφερόμενα μήκη των segments οφείλεται στην αλληλεπίδραση μεταξύ του Ethernet driver και του λογισμικού Wireshark. Σε περίπτωση που αντιμετωπίζετε αυτό το πρόβλημα: Συνιστούμε να χρησιμοποιήσετε το trace του αρχείου tcp-ethereal-trace-1.pcap. 83

Αλγόριθμος συμφόρησης του TCP (1/10) Ας εξετάσουμε τώρα τον όγκο των δεδομένων που στέλνονται ανά μονάδα χρόνου από τον client στον server. Αντί να υπολογίσουμε το μέγεθος αυτό από τα ανεπεξέργαστα δεδομένα του παραθύρου του Wireshark, θα χρησιμοποιήσουμε ένα από τα βοηθητικά γραφικά εργαλεία του Wireshark για το TCP - Time-Sequence-Graph(Stevens). Για να παραστήσουμε γραφικά τα δεδομένα. 84

Αλγόριθμος συμφόρησης του TCP (2/10) Επιλέξτε ένα TCP segment στο παράθυρο καταλόγου πακέτων του Wireshark. Κατόπιν επιλέξτε το μενού Statistics TCP Stream Graph Time-Sequence- Graph(Stevens). 85

Αλγόριθμος συμφόρησης του TCP (3/10) Θα πρέπει να δείτε μία γραφική παράσταση η οποία δημιουργήθηκε για τα δεδομένα του αρχείου trace tcp-ethereal-trace-1.pcap που περιέχεται στο: http://gaia.cs.umass.edu/wiresharklabs/wireshark-traces.zip 86

Αλγόριθμος συμφόρησης του TCP (4/10) Σχήμα 8. Αλγόριθμος συμφόρησης του TCP. 87

Αλγόριθμος συμφόρησης του TCP (5/10) Στη γραφική παράσταση, όπου κάθε κουκκίδα παριστάνει ένα απεσταλμένο TCP segment, δίνεται ο αριθμός ακολουθίας του segment και ο χρόνος αποστολής του. Παρατηρήστε ότι ένα σύνολο κουκκίδων, με τη μία κουκκίδα πάνω από την άλλη, αναπαριστά μία ακολουθία πακέτων που στάλθηκαν το ένα αμέσως μετά το άλλο (back-to-back). 88

Αλγόριθμος συμφόρησης του TCP (6/10) Παρατηρώντας τη γραφική παράσταση διακρίνονται οι διάφορες φάσεις της αργής εκκίνησης. Στην αρχή στέλνεται ένα πακέτο, και περιμένει να λάβει την απάντηση, μέσω ενός μηνύματος ACK. 89

Αλγόριθμος συμφόρησης του TCP (7/10) Όταν λαμβάνει την απάντηση στέλνει δύο πακέτα και σταδιακά αυξάνει εκθετικά τον αριθμό των πακέτων που στέλνει. Όπου θεωρητικά θα σταματήσει την στιγμή που θα φτάσει στο κατώφλι των δυνατοτήτων μεταφοράς της συγκεκριμένης TCP σύνδεσης. Οπότε και θα ξεκινούσε μία άλλη διαδικασία, η αποφυγή συμφόρησης. 90

Αλγόριθμος συμφόρησης του TCP (8/10) Κάτι τέτοιο όμως δεν διακρίνεται στην συγκεκριμένη γραφική παράσταση. Ο λόγος είναι ότι ο ρυθμός μετάδοσης των πακέτων δεν είναι τόσο μεγάλος για να φτάσει το κατώφλι των δυνατοτήτων μεταφοράς δεδομένων της TCP σύνδεσης του πειράματος. 91

Αλγόριθμος συμφόρησης του TCP (9/10) Στην πράξη, λοιπόν, τα δεδομένα δεν μεταφέρονται τόσο επιθετικά όσο θα περίμενε κάποιος από την θεωρία. Για να υπάρχει λόγος να ενεργοποιηθεί η διαδικασία της αποφυγής συμφόρησης. 92

Αλγόριθμος συμφόρησης του TCP (10/10) Μία τελευταία παρατήρηση που μπορεί να γίνει με βάση το γράφημα Stevens είναι ότι δεν υπάρχουν τμήματα TCP που να αναμεταδίδονται. Αν υπήρχαν θα έπρεπε κάποιο τμήμα να είχε μικρότερη συχνότητα από τα γειτονικά του και δεν θα υπήρχε αυτή η ομοιόμορφη εικόνα με την αυξανόμενη συχνότητα των τμημάτων σε σχέση με το χρόνο. 93

Επισύναψη αρχείου σε email (1/14) Πηγαίνοντας ένα βήμα παραπέρα, θα συγκριθεί ο τρόπος με τον οποίο έγινε η μεταφορά του αρχείου στο παραπάνω πείραμα. Με τη μεταφορά ενός αρχείου παρόμοιου μεγέθους από έναν υπολογιστή σε έναν mail server. 94

Επισύναψη αρχείου σε email (2/14) Η διαδικασία είναι γνωστή ως επισύναψη αρχείου και προσφέρεται από μία πληθώρα υπηρεσιών ηλεκτρονικού ταχυδρομείου. Στο συγκεκριμένο πείραμα θα χρησιμοποιηθεί το Yahoo! mail. 95

Επισύναψη αρχείου σε email (3/14) Το πείραμα έχει ως εξής: 1. Μετάβαση στην ιστοσελίδα www.yahoo.gr. 2. Επιλέγεται η δημιουργία ενός νέου μηνύματος. 3. Γίνεται κλικ στην επιλογή επισύναψη αρχείου. 4. Εντοπίζεται το αρχείο alice.txt. 5. Ξεκινάει την καταγραφή το Wireshark. 96

Επισύναψη αρχείου σε email (4/14) Το πείραμα έχει ως εξής (Συνέχεια): 6. Τότε γίνεται η επισύναψη του αρχείου πατώντας το κουμπί Άνοιγμα. 7. Μόλις γίνει η επισύναψη αρχείου σταματάει το Wireshark. 97

Επισύναψη αρχείου σε email (5/14) Σχήμα 9. Επισύναψη αρχείου σε email. 98

Επισύναψη αρχείου σε email (6/14) Παρατηρώντας τα πακέτα TCP που στάλθηκαν από τον υπολογιστή στο Yahoo! διαπιστώνεται ότι το μέγεθος των πακέτων δεν ξεπερνάει τα 1506 bytes. Όταν στο προηγούμενο πείραμα φτάνει τα 5862 bytes. 99

Επισύναψη αρχείου σε email (7/14) Αυτό έχει ως αποτέλεσμα το ίδιο αρχείο να χωριστεί σε περισσότερα πακέτα. Κάτι που διακρίνεται και στα δύο επόμενα γραφήματα, στα οποία αποτυπώνονται οι χρόνοι RTT και η συχνότητα προς το χρόνο. 100

Επισύναψη αρχείου σε email (8/14) Όσο αφορά την απόδοση της συγκεκριμένης TCP σύνδεσης: Υπολογίζεται με βάση όσα αναφέρθηκαν στο προηγούμενο πείραμα. Είναι ίση με 154306-1 / 4,653224-2,681681= 78,266 Kbyte/sec. Άρα έχει καλύτερη απόδοση από την προηγούμενη TCP σύνδεση. 101

Επισύναψη αρχείου σε email (9/14) Σχήμα 10. Γραφική παράσταση Round Trip Time. 102

Επισύναψη αρχείου σε email (10/14) Στην παραπάνω εικόνα φαίνονται οι χρόνοι RTT της σύνδεσης και πέρα από την ύπαρξη μεγαλύτερου αριθμού πακέτων για την μεταφορά του ίδιου αρχείου. Οι χρόνοι ακολουθούν παρόμοια πορεία με την προηγούμενη σύνδεση. 103

Επισύναψη αρχείου σε email (11/14) Σχήμα 11. Γραφική παράσταση Time / Sequence (Stevens). 104

Επισύναψη αρχείου σε email (12/14) Στο γράφημα Stevens παρατηρείται η πρώτη ουσιαστική διαφορά μεταξύ των δύο TCP συνδέσεων. Σημειώνεται ότι όταν μία σειρά από τελείες είναι η μία πάνω από την άλλη: Αντιπροσωπεύουν μία σειρά από πακέτα τα οποία στάλθηκαν το ένα πίσω από το άλλο από τον αποστολέα. Κάτι που δεν φάνηκε στο αντίστοιχο γράφημα Stevens της προηγούμενης TCP σύνδεσης. 105

Επισύναψη αρχείου σε email (13/14) Οι σειρές αυτές αποτελούνται από δύο έως και τέσσερα πακέτα. Ενώ ο συνολικός χρόνος αποστολής των TCP πακέτων από τον υπολογιστή στο Yahoo! είναι σαφώς μικρότερος από τον αντίστοιχο χρόνο του προηγούμενου πειράματος. 106

Επισύναψη αρχείου σε email (14/14) Κοινά στοιχεία και των δύο συνδέσεων είναι τα παρακάτω: Δεν γίνεται αναμετάδοση πακέτων κι ενώ παρατηρείται η αργή εκκίνηση, ο ρυθμός μετάδοσης των πακέτων δεν είναι τόσο μεγάλος για να φτάσει το κατώφλι των δυνατοτήτων μεταφοράς δεδομένων της TCP σύνδεσης του πειράματος. Με αποτέλεσμα να μην ενεργοποιείται η διαδικασία της αποφυγής συμφόρησης. 107

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark (1/3) Χρησιμοποιώντας το κατάλληλο φίλτρο σύλληψης στο Wireshark. Ώστε να καταγράφονται μόνο πακέτα IP που περιλαμβάνουν τη διεύθυνση IP του υπολογιστή σας, ανοίξτε ένα παράθυρο εντολών και καταγράψτε τα διερχόμενα πακέτα (με το Wireshark). Όταν χρησιμοποιείτε την υπηρεσία FTP του υπολογιστή ftp.funet.fi. 108

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark (2/3) Στην προτροπή User. Πληκτρολογήστε anonymous ακολουθούμενο από <Enter>. Στην προτροπή Password. Πληκτρολογήστε ότι κωδικό θέλετε ακολουθούμενο από <Enter>. 109

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark (3/3) Στη συνέχεια, από το directory /pub/networking βρείτε το αρχείο ls-lr.test και κατεβάστε το. Αφού κατεβάσετε το αρχείο σταματήσετε την καταγραφή των πακέτων. 110

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (1/7) Απαντήστε στις ακόλουθες ερωτήσεις. 1. Σε ποια θύρα του ftp.funet.fi προσπαθεί να συνδεθεί ο υπολογιστής σας για να αρχίσει η επικοινωνία με τον εξυπηρετητή FTP; 2. Ποια είναι η IP διεύθυνση και ο TCP αριθμός θύρας της ftp.funet.fi; 3. Ποια είναι η IP διεύθυνση και ο TCP αριθμός θύρας που χρησιμοποιείται από τον χρήστη για τη λήψη του αρχείου; 111

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (2/7) 4. Με ποια θύρα (δεδομένων FTP-Data) του υπολογιστή ftp.funet.fi γίνεται η σύνδεση για τη μεταφορά των δεδομένων; 5. Εφαρμόστε ένα φίλτρο απεικόνισης της μορφής tcp.port ώστε να παραμείνουν μόνο τα τεμάχια TCP που σχετίζονται με τη θύρα ελέγχου FTP. 112

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (3/7) 6. Πόσα τεμάχια ανταλλάσσονται για την εγκατάσταση της σύνδεσης ελέγχου FTP; 7. Ποιο είναι το μέγεθος των επικεφαλίδων TCP των τεμαχίων αυτών; 8. Ποιο είναι το μέγεθος δεδομένων των τεμαχίων αυτών; 113

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (4/7) 9. Ποιά είναι τα MSS (maximum segment sizes) των δυο άκρων της TCP σύνδεσης που χρησιμοποιεί το FTP για την μεταφορά δεδομένων στο παραπάνω setup και ποιό το (Window Size) εύρος των παραθύρων τους; 10.Πόσο διαρκεί η διαδικασία εγκατάστασης της σύνδεσης; 114

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (5/7) 11.Πώς προκύπτει ο αριθμός της επιβεβαίωσης (Acknowledgement Number) του τεμαχίου με το οποίο ο εξυπηρετητής FTP δηλώνει ότι αποδέχεται τη σύνδεση; 12.Ποιος είναι ο αύξων αριθμός και ο αριθμός επιβεβαίωσης (Sequence Number και Acknowledgement Number) της επιβεβαίωσης του υπολογιστή σας προς τον εξυπηρετητή FTP για την εγκατάσταση της σύνδεσης; 115

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (6/7) 13.Ποια είναι η μέγιστη τιμή που μπορεί να λάβουν οι αύξοντες αριθμοί και οι αριθμοί επιβεβαίωσης; 14.Ποια σημαία μήκους 1 bit ενεργοποιείται για την εκκίνηση της απόλυσης της σύνδεσης TCP; 15.Ποια πλευρά εκκινεί τη διαδικασία απόλυσης; 116

Παρακολούθηση μηνυμάτων TCP κι FTP με το Wireshark - Ερωτήσεις (7/7) 13.Πόσα τεμάχια TCP ανταλλάσσονται συνολικά; 14.Πόσα byte μεταδόθηκαν συνολικά στη σύνδεση ελέγχου FTP από κάθε πλευρά; 117

Βιβλιογραφία 1. Δικτύωση Υπολογιστών», James Kurose_Keth W. Ross, Εκδόσεις Γκιούρδας Μ.. 2. Andrew Tanenbaum, «Δίκτυα Υπολογιστών», 5η Έκδοση. 3. http://www.slideshare.net, προσπελάστηκε 21/3/2015. 118

Τέλος Ενότητας