Πρωτόκολλα Μεταφοράς: UDP και TCP. Άγγελος Ρούσκας

Σχετικά έγγραφα
Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

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

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

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

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

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

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

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

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

Transmission Control Protocol. Transmission Control Protocol

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

Δίκτυα Υπολογιστών Επίπεδο Μεταφοράς Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

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

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

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

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

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

Επίπεδο Μεταφοράς (Transport Layer)

Υπολογιστές και ίκτυα Η/Υ.

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

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

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

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

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

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

(C) 2010 Pearson Education, Inc. All rights reserved.

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

Κεφάλαιο > Ε Π Α Ν Α Λ Η Ψ Η Επικοινωνιακό Υποδίκτυο / TCP / UDP. Σελ

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

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

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

Λουκάς Ελευθέριος

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

Κεφάλαιο 1 Το Πρωτόκολλο TCP (Transmission Control Protocol)

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο Μεταφοράς (Transport Layer)

Network Address Translation (NAT)

Δίκτυα Υπολογιστών Λύσεις σειράς ασκήσεων επανάληψης

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

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

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

OSI και TCP/IP. Εισαγωγή στα Δίκτυα υπολογιστών και τεχνολογίες διαδικτύου

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

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

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

ΔΙΚΤΥΑ (23-26) Π. Φουληράς

Δίκτυα Επικοινωνιών ΙΙ: Network Programming Εισαγωγή, TCP, UDP, Ports

Στρατηγικές Ασφάλειας

Επίπεδο δικτύου IP διευθυνσιοδότηση

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

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

Διαδίκτυα και το Διαδίκτυο (Internetworking and the Internet)

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

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

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

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

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

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

Οι Διαδικτυακές ανάγκες μιας εταιρείας σε διευθύνσεις IPv4, έχουν ως εξής: Τμήμα Διοίκησης Προσωπικού & Οικονομικών Σύνολο απαιτούμενων διευθύνσεων

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

Δίκτυα Υπολογιστών Εμβάθυνση και Ασκήσεις στο Επίπεδο Μεταφοράς και στο Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα μεταφοράς στο Internet. Δίκτυα Υπολογιστών

7.2.2 Σχέση OSI και TCP/IP

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

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Ερωτήσεις / Απαντήσεις Πιστοποίησης (Επικοινωνίες Δεδομένων)

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

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 13: Στρώμα μεταφοράς

ιαδικτυακές Εφαρµογές

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

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

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

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

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

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

ιαδίκτυα και το ιαδίκτυο (Internetworking and the Internet)

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

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

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

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

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

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

α. Το μέγιστο μήκος δεδομένων του ωφέλιμου φορτίου του πλαισίου Ethernet είναι 1500 οκτάδες. ΣΩΣΤΟ

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα μεταφοράς στο Internet. Δίκτυα Υπολογιστών

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

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

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

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

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 11: Στρώμα μεταφοράς

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

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

Πρωτόκολλο ICMP (Internet Control Message Protocol)

Παραδείγµατα δικτυακών τεχνολογιών. Ethernet Internet ATM

ΔΊΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΏΝ ΔΊΚΤΥΑ ΥΠΟΛΟΓΙΣΤΏΝ ΚΑΙ ΣΤΡΏΜΑ ΜΕΤΑΦΟΡΆΣ ΔΙΔΆΣΚΟΝΤΕΣ: ΔΡ. ΕΥΓΕΝΊΑ ΑΔΑΜΟΠΟΎΛΟΥ, ΔΡ. ΚΏΣΤΑΣ ΔΕΜΈΣΤΙΧΑΣ

Transcript:

Πρωτόκολλα Μεταφοράς: UDP και TCP Άγγελος Ρούσκας

IP και TCP/UDP Το ΙΡ παρέχει αναξιόπιστη υπηρεσία μεταφοράς datagrams μεταξύ Η/Υ Τα πρωτόκολλα μεταφοράς παρέχουν παράδοση από άκρη σε άκρη στα δύο ακραία σημεία μιας σύνδεσης (πχ διαδικασίες ή προγράμματα) Το User Datagram Protocol (UDP) παρέχει υπηρεσία μεταφοράς datagrams To Transmission Control Protocol (TCP) παρέχει αξιόπιστη μεταφορά δεδομένων

Στρωμάτωση στο TCP/IP Επίπεδο Εφαρμογών User Process User Process User Process User Process Επίπεδο Μεταφοράς TCP UDP Επίπεδο Διαδικτύου ICMP IP IGMP Επίπεδο Ζεύξης ARP Hardware interface RARP Φυσικό Μέσο

Ενθυλάκωση δεδομένων User Data Application Appl Header User Data TCP/UDP TCP/UDP Hdr Application Data TCP segment / UDP datagram IP IP Header TCP/UDP Hdr IP datagram Application Data Ethernet Driver Ether Header IP Header TCP/UDP Hdr Application Data Ethernet Frame Ether Trail Ethernet

Αποπολύπλεξη εισερχόμενων πλαισίων IP Module ARP Module RARP Module Data Link: Προώθηση με βάση το πεδίο Frame Type Αφιξη Πλαισίου

Αποπολύπλεξη εισερχόμενων IP Datagrams ICMP Protocol UDP Protocol TCP Protocol IP Module : Προώθηση με βάση το πεδίο Type Αφιξη IP datagram

User Datagram Protocol Το UDP παραδίδει ανεξάρτητα μηνύματα, που καλούνται user datagrams, μεταξύ εφαρμογών ή διαδικασιών Σε αναλογία με το IP, η παράδοση λέγεται και παράδοση καλύτερη προσπάθειας ( Best effort ) - τα datagrams μπορεί να χαθούν, παραδοθούν εκτός σειράς, κλπ Ο υπολογισμός checksum (προαιρετικό) διασφαλίζει την ακεραιότητα των δεδομένων Τα ακραία σημεία του UDP ονομάζονται πόρτες πρωτοκόλλου ή απλώς πόρτες Κάθε μετάδοση δεδομένων UDP προσδιορίζεται από τη δνση διαδικτύου και την πόρτα των αποστολέα και παραλήπτη του μηνύματος

Επικεφαλίδα UDP Η επικεφαλίδα UDP είναι πολύ απλή: Αριθμοί πορτών πηγής/προορισμού - μπορεί να είναι διαφορετικές Μήκος μηνύματος Checksum σε όλο το datagram γιατί το IP υπολογίζει checksum στην επικεφαλίδα ΙΡ μόνο UDP ψευδο-επικεφαλίδα χρησιμοποιείται μόνο στον υπολογισμό checksum για να διασφαλίσει ότι το UDP έχει φθάσει στο σωστό Η/Υ και πρωτόκολλο δεν αποστέλλεται Source/Destination IP addresses,proto,udp length 0 15 16 31 UDP Source Port UDP Destination Port UDP Message Length UDP Checksum Data...

Επιλογή αριθμών πορτών UDP Οι επικοινωνούντες υπολογιστές συμφωνούν στον αριθμό πόρτας Ο εξυπηρετητής ανοίγει την επιλεγμένη πόρτα και περιμένει τα εισερχόμενα μηνύματα Ο πελάτης επιλέγει την τοπική πόρτα και στέλνει εξερχόμενα μηνύματα στην επιλεγμένη πόρτα Οι κυριότερες υπηρεσίες που παρέχονται από σχεδόν όλους τους Η/Υ χρησιμοποιούν δεσμευμένους καλά γνωστούς αριθμούς πορτών: ECHO DISCARD Αλλες υπηρεσίες χρησιμοποιούν αριθμούς πορτών που ανατίθενται δυναμικά - ο Η/Υ πρέπει να ρωτήσει για να μάθει την απομακρυσμένη πόρτα

Γνωστές πόρτες UDP Πόρτα Ονομα Περιγραφή 7 echo Echo input back to sender 9 discard Discard input 11 users System statistics - active users 13 daytime Time of day (ASCII) 17 quote Quote of the day 19 chargen Character generator 37 time System time (seconds since 1970) 43 nickname Who is 53 domain DNS 67 bootps BOOTP or DHCP Server 68 bootpc BOOTP or DHCP Client 69 tftp Trivial File Transfer Protocol (TFTP) 88 kerberos Kerberos security service 111 sunrpc Sun Remote Procedure Call 123 ntp Network Time Protocol (NTP) 161 snmp Simple Network Management Protocol (SNMP) Προσοχή: Το TCP μπορεί να χρησιμοποιεί ίδιους αριθμούς πορτών (πχ DNS 53)

Αποπολύπλεξη στο UDP Port 1 Port 2 Port n UDP Module : Προώθηση με βάση το πεδίο UDP Destination Port Αφιξη UDP datagram

Transmission Control Protocol Το πρωτόκολλο ελέγχου μετάδοσης TCP είναι το πιο διαδεδομένο πρωτόκολλο μεταφοράς Παρέχει αξιόπιστη μεταφορά δεδομένων χρησιμοποιώντας την αναξιόπιστη μεταφορά του IP Διορθώνει τα προβλήματα στο διαδίκτυο (απώλεια, καθυστέρηση, διπλά αντίγραφα πακέτων) Εναλλακτικά παρέχει έλεγχο ροής από άκρο σε άκρο και έλεγχο συμφόρησης Η αξιόπιστη μεταφορά αποτελεί ένα συνηθισμένο μοντέλο υψηλού επιπέδου που προϋποθέτει η ανάπτυξη εφαρμογών

Χαρακτηριστικά του TCP (1) Εικονική σύνδεση κυκλώματος: Η εφαρμογή ζητά σύνδεση με τον προορισμό και χρησιμοποιεί τη σύνδεση για τη μεταφορά δεδομένων Σύνδεση σημείο-προς-σημείο: Η σύνδεση έχει δύο ακραία σημεία Αξιοπιστία: Το TCP εγγυάται ότι τα δεδομένα θα μεταφερθούν χωρίς απώλειες και λάθη Αμφίδρομη επικοινωνία (Full duplex): Τα ακραία σημεία της σύνδεσης μπορούν να ανταλλάσσουν δεδομένα και στις δύο κατευθύνσεις ταυτόχρονα

Χαρακτηριστικά του TCP (2) Διασύνδεση ροής (Stream interface): Η εφαρμογή παραδίδει τα δεδομένα της στο στρώμα TCP σαν μια συνεχόμενη ακολουθία (ροή) οκτάδων, χωρίς να υπάρχει γνώση των ορίων των εγγραφών/δομών της πληροφορίας Το TCP δεν εγγυάται ότι τα δεδομένα θα ληφθούν από την άλλη άκρη με τις ίδιες ομαδοποιήσεις/τεμάχια (blocks) που μεταδόθηκαν (η σειρά των οκτάδων προφανώς διατηρείται) Η ροή (ακολουθία) των δεδομένων είναι μή δομημένη (unstructured) Μηχανισμός εξαναγκασμένης προώθησης (Push Mechanism): (α) Εξαναγκάζει τη μεταφορά των δεδομένων και (β) διαθέτει τα δεδομένα στην άλλη εφαρμογή μόλις το TCP τα λάβει

Χαρακτηριστικά του TCP (3) Αξιόπιστη εγκατάσταση και τερματισμός σύνδεσης: Η χειραψία τριών βημάτων εγγυάται αξιόπιστη, συγχρονισμένη εκκίνηση και τερματισμό της σύνδεσης Στο TCP οι συνδέσεις αναγνωρίζονται από ένα ζεύγος δύο ακραίων σημείων, πχ (195.251.160.10, 1184) and (147.102.7.1, 53) Μια δεδομένη πόρτα μπορεί να χρησιμοποιείται από πολλαπλές συνδέσεις ταυτόχρονα

Χρήση IP για παράδοση δεδομένων Τα ακραία σημεία προσδιορίζονται από τις πόρτες (όπως στο UDP) Επιτρέπει πολλαπλές συνδέσεις σε κάθε Η/Υ Οι πόρτες παρομοίως σχετίζονται με κάποια υπηρεσία που προσφέρεται από κάποια εφαρμογή ή διαδικασία Το IP μεταχειρίζεται τα TCP segments σαν δεδομένα και δεν διαβάζει τα περιεχόμενά τους

Παράδοση των TCP segments από άκρη σε άκρη Τα TCP segments ταξιδεύουν μέσα σε IP datagrams Οι δρομολογητές εξετάζουν μόνο την επικεφαλίδα IP για να προωθήσουν τα datagrams To TCP στον παραλήπτη αποκωδικοποιεί τα μηνύματα TCP

TCP και αξιόπιστη μετάδοση Το TCP αντιμετωπίζει ανάμεσα σε άλλα και τις παρακάτω καταστάσεις Απωλεσθέντα πακέτα Πολλαπλά αντίγραφα πακέτων Καθυστερημένα πακέτα Αλλοιωμένα δεδομένα Ασυμφωνία στις ταχύτητες αποστολέα και παραλήπτη Συμφόρηση στο δίκτυο Επανεκκινήσεις συστημάτων

TCP segments και σειριακοί αριθμοί Η εφαρμογή παραδίδει οσοδήποτε μεγάλα blocks δεδομένων στο TCP σα μια ροή/ακολουθία οκτάδων Το TCP τεμαχίζει τα δεδομένα σε segments ώστε να ταιριάζουν σε ένα ΙP datagram Η αρχική ακολουθία μετριέται σε bytes Κάθε segment περιέχει το σειριακό αριθμό του τελευταίου byte των δεδομένων της αρχικής ακολουθίας

Επιβεβαιώσεις (acknowledgements) Ο αποδέκτης επανενώνει τα segments που λαμβάνει και κατασκευάζει μια συνεχόμενη ροή οκτάδων Ο αποδέκτης ενός segment στέλνει στον αποστολέα ένα segment που περιέχει τον σειριακό αριθμό (+1) των δεδομένων που έλαβε και επιβεβαιώνει Αρα ο αποδέκτης επιβεβαιώνει την ολοκληρωμένη λήψη έως κάποιο byte της ακολουθίας αποστολής και ΟΧΙ τη λήψη κάποιου segment Επομένως ένα ACK μπορεί να επιβεβαιώσει πολλά segments ταυτόχρονα (γιατι?)

Cumulative Acknowledgements A new cumulative acknowledgement is generated only on receipt of a new insequence packet 40 39 38 37 33 34 35 36 41 40 39 38 34 35 36 37 i data i ack

Delayed Acknowledgements An ack is delayed until another packet is received, or delayed ack timer expires (200 ms typical) Reduces ack traffic New ack not produced on receipt of packet 36, but on receipt of 37 40 39 38 37 33 35 41 40 39 38 35 37

Duplicate Acknowledgements A dupack is generated whenever an out-of-order segment arrives at the receiver 40 39 38 37 34 36 42 41 40 39 36 36 (Above example assumes delayed acks) Dupack On receipt of 38

Duplicate Acknowledgements Duplicate acks are not delayed Duplicate acks may be generated when a packet is lost, or a packet is delivered out-of-order (OOO) 40 39 37 38 34 36 41 40 39 37 36 36 Dupack On receipt of 38

Number of dupacks depends on how much OOO a packet is 40 39 37 38 34 New Ack 36 New Ack 41 40 39 37 34 New Ack New Ack 36 36 Dupack 42 41 40 39 36 36 38 New Ack Dupack New Ack

Window Based Flow Control

Έλεγχος ροής στο TCP Το TCP χρησιμοποιεί το μηχανισμό παραθύρου ολίσθησης για τον έλεγχο ροής δεδομένων Ο αποδέκτης καθορίζει ένα παράθυρο Η διαδικασία ονομάζεται διαφήμιση παραθύρου Καθορίζει πόσα ακόμη bytes μπορεί να δεχθεί Επιστρέφεται σε ένα segment μαζί με ένα ACK Ο αποστολέας μπορεί να στείλει ένα block από bytes, στο επόμενο segment, του οποίου το πρώτο byte βρίσκεται μετά το τελευταίο επιβεβαιωμένο byte στην αρχική ακολουθία και του οποίου (block) το μέγεθος είναι μικρότερο από το παράθυρο ολίσθησης

Παράθυρο ολίσθησης παράθυρο 12 11 10 9 8 7 6 5 4 3 2 1 παράθυρο 12 11 10 9 8 7 6 5 4 3 2 1 Τα πακέτα 1 έως 3 έχουν σταλεί και επιβεβαιωθεί Τα πακέτα 4 έως 5 έχουν σταλεί και δεν έχουν επιβεβαιωθεί Τα πακέτα 6 έως 7 δεν έχουν σταλεί αλλά μπορούν να σταλούν χωρίς καθυστέρηση Τα πακέτα 8 και μετά δεν έχουν σταλεί και δε μπορούν να σταλούν αν δε μετακινηθεί το παράθυρο προς τα αριστερά

Παράθυρο ολίσθησης

Window Based Flow Control Sliding window protocol Window size minimum of receiver s advertised window - determined by available buffer space at the receiver congestion window - determined by the sender, based on feedback from the network Sender s window 1 2 3 4 5 6 7 8 9 10 11 12 13 Acks received Not transmitted

Window Based Flow Control Sender s window 1 2 3 4 5 6 7 8 9 10 11 12 13 Ack 5 1 2 3 4 5 6 7 8 9 10 11 12 13 Sender s window

Window Based Flow Control Congestion window size bounds the amount of data that can be sent per round-trip time Throughput <= W / RTT

Ideal Window Size Ideal size = delay * bandwidth delay-bandwidth product What if window size < delay*bw? Inefficiency (wasted bandwidth) What if > delay*bw? Queuing at intermediate routers increased RTT due to queuing delays Potentially, packet loss

How does TCP detect a packet loss? Retransmission timeout (RTO) Duplicate acknowledgements

Detecting Packet Loss Using Retransmission Timeout (RTO) At any time, TCP sender sets retransmission timer for only one packet If acknowledgement for the timed packet is not received before timer goes off, the packet is assumed to be lost RTO dynamically calculated

Καθορισμός χρονικού ορίου (timeout) επαναμετάδοσης (RTO) Ακατάλληλο RTO προκαλεί φτωχή συμπεριφορά: Πολύ μεγάλο - ο αποστολέας περιμένει περισσότερο προτού επαναμεταδώσει το πακέτο Πολύ μικρό - ο αποστολέας δημιουργεί άχρηστη κίνηση Τo RTO πρέπει να είναι διαφορετικό για κάθε σύνδεση και να καθορίζεται δυναμικά Το RTO θα είναι μικρότερο για παραλήπτη στο ίδιο LAN από ότι για μακρινό παραλήπτη Ο χρόνος παράδοσης στο διαδίκτυο αλλάζει με το χρόνο οπότε το RTO πρέπει να προσαρμόζεται στις μεταβολές

Διαφορετικά timeouts παρουσία διαφορετικών καθυστερήσεων

Επιλογή τιμών για τα timeouts Το RTO πρέπει να βασίζεται στο round trip time RTT Ο αποστολέας δε μπορεί να γνωρίζει το RTT κανενός πακέτου πριν το μεταδόσει Ο αποστολέας επιλέγει το RTO με βάση τα RTTs προηγούμενων πακέτων Η συγκεκριμένη μέθοδος καλείται και προσαρμοστικός αλγόριθμος επαναμετάδοσης

RTT Probability density function (a) data link layer. (b) TCP

Μέτρηση χρόνων RTT Το RTT μετριέται παρατηρώντας τη διαφορά μεταξύ του χρόνου μετάδοσης του segment και του χρόνου άφιξης της επιβεβαίωσης Πρόβλημα στον υπολογισμό εάν πρόκειται για ένα segment που έχει επαναμεταδοθεί Τα ACK δε μεταφέρουν καμία πληροφορία σχετικά με ποιό segment επιβεβαιώνουν - Θυμηθείτε ότι τα ACK επιβεβαιώνουν σειριακό αριθμό των δεδομένων στην αρχική ακολουθία οκτάδων Επομένως ο αποστολέας δε μπορεί να εξακριβώσει εάν το ACK προέρχεται από την αρχική μετάδοση ή την επαναμετάδοση Επιλογή της αρχικής μετάδοσης υπερεκτιμά το RTT Επιλογή της επαναμετάδοσης υποεκτιμά το RTT

Retransmission Timeout (RTO) calculation RTO = mean + 4 mean deviation 2 Standard deviation s : s = average of (sample mean) Mean deviation d = average of sample mean Mean deviation easier to calculate than standard deviation Mean deviation is more conservative: d >= s Large variations in the RTT increase the deviation, leading to larger RTO 2

Exponential Backoff Double RTO on each timeout T1 T2 = 2 * T1 Packet transmitted Timeout interval doubled Time-out occurs before ack received, packet retransmitted

Fast Retransmission Timeouts can take too long how to initiate retransmission sooner? Fast retransmit

Detecting Packet Loss Using Dupacks Fast Retransmit Mechanism Dupacks may be generated due to packet loss, or out-of-order packet delivery 12 8 11 10 9 7 3 dupacks are also generated if a packet is delivered at least 3 places beyond its in-sequence location TCP sender assumes that a packet loss has occurred if it receives three dupacks consecutively Fast retransmit useful only if lower layers deliver packets almost ordered ---- otherwise, unnecessary fast retransmit

Congestion Avoidance and Control Slow Start initially, congestion window size cwnd = 1 MSS (maximum segment size) slow start phase ends when window size reaches the slow-start threshold cwnd grows exponentially with time during slow start factor of 1.5 per RTT if every other packet ack d factor of 2 per RTT if every packet ack d Could be less if sender does not always have data to send

Congestion Avoidance On each new ack, increase cwnd by 1/cwnd packets cwnd increases linearly with time during congestion avoidance 1/2 MSS per RTT if every other packet ack d 1 MSS per RTT if every packet ack d

Congestion Window size (segments) 14 12 10 8 6Slow start 4 2 0 Congestion avoidance 0 1 2 3 4 5 6 7 8 Time (round trips) Slow start threshold Example assumes that acks are not delayed

Congestion Control On detecting a packet loss, TCP sender assumes that network congestion has occurred On detecting packet loss, TCP sender drastically reduces the congestion window Reducing congestion window reduces amount of data that can be sent per RTT throughput may decrease

Congestion Control -- Timeout On a timeout, no packets are arriving at the destination: otherwise, the 3 dupacks mechanism would have been triggered The congestion window is reduced to the initial value of 1 MSS The slow start threshold is set to half the window size before packet loss more precisely, ssthresh = maximum of min(cwnd,receiver s advertised window)/2 and 2 MSS Slow start is initiated

Congestion window (segments) Congestion Control -- Timeout After timeout 25 20 15 10 5 cwnd = 20 ssthresh = 8 ssthresh = 10 0 0 3 6 9 12 15 20 22 25 Time (round trips)

Congestion Control - Fast retransmit Fast retransmit occurs when multiple (>= 3) dupacks come back Fast recovery follows fast retransmit Different from timeout : slow start follows timeout timeout occurs when no more packets are getting across fast retransmit occurs when a packet is lost, but latter packets get through ack clock is still there when fast retransmit occurs no need to slow start

ssthresh = Fast Recovery min(cwnd, receiver s advertised window)/2 (at least 2 MSS) retransmit the missing segment (fast retransmit) cwnd = ssthresh + number of dupacks when a new ack comes: cwnd = ssthresh enter congestion avoidance Congestion window cut into half

Window size (segments) After fast recovery 10 8 6 4 2 0 0 2 4 6 8 10 12 14 Time (round trips) Receiver s advertized window After fast retransmit and fast recovery window size is reduced in half.

Μορφή του TCP segment Η ίδια μορφή χρησιμοποιείται και στις δύο κατευθύνσεις, ακόμα και αν στέλνονται μόνο acknowledgements Το segment μπορεί να μεταφέρει τόσο δεδομένα όσο και acknowledgment

Επεξήγηση πεδίων επικεφαλίδας Sequence number (αναφέρεται στη κατεύθυνση αποστολής): η θέση των συγκεκριμένων δεδομένων που περιέχει το segment στη συνολική ροή των δεδομένων του αποστολέα Acknowledge number (αναφέρεται στην αντίθετη κατεύθυνση): ο αριθμός της επόμενης οκτάδας (byte) που αναμένει να λάβει ο αποστολέας Window: το μέγεθος του buffer του αποστολέα που καθορίζει πόσα δεδομένα μπορεί να δεχθεί ακόμα Urgent pointer: θέση των επειγόντων δεδομένων στα δεδομένα του segment (out of band data - πχ abort/interrupt) Code Bits: αριστερά προς δεξιά Code Bit Meaning if bit set to 1 URG ACK PSH RST SYN FIN Urgent pointer field is valid Acknowledgement field is valid This segment requests push Reset the connection Synchronize sequence numbers Sender has reached end of its byte stream

Πόρτα Ονομα Περιγραφή 1 tcpmux TCP Multiplexor 7 echo Echo input back to sender 9 discard Discard input 11 users System statistics - active users 13 daytime Time of day (ASCII) 17 quote Quote of the day 19 chargen Character generator 20 ftp-data File Transfer Protocol - Data 21 ftp File Transfer Protocol 22 ssh Secure shell 23 telnet Terminal Connection 25 smtp Simple Mail Transfer Protocol (SMTP) 37 time System time (seconds since 1970) 43 nickname Who is 53 domain DNS 67 bootps BOOTP or DHCP Server 79 finger Finger 80 www World Wide Web Server (HTTP) 88 kerberos Kerberos security service 95 supdup SUPDUP protocol 101 hostname NIC Host Name Server 102 iso-tsap ISO-TSAP 103 X400 X400 Mail Service 104 X400-snd X400 Mail Sending 110 pop3 Post Office Protocol version 3 111 sunrpc Sun Remote Procedure Call 113 auth Authentication Service 117 uucp-path UUCP Path Service 119 nntp Usenet News Transfer Protocol 123 ntp Network Time Protocol (NTP) 139 netbios-ssn Netbios Session Service 161 snmp Simple Network Management Protocol (SNMP) Προσοχή: Το UDP μπορεί να χρησιμοποιεί ίδιους αριθμούς πορτών (πχ DNS 53) Γνωστές πόρτες TCP

Χειραψία τριών βημάτων Το TCP χρησιμοποιεί χειραψία τριών τρόπων για αξιόπιστη εγκατάσταση και τερματισμό σύνδεσης O Η/Υ 1 στέλνει το πρώτο segment με το bit SYN=1 και τυχαίο σειριακό αριθμό O Η/Υ 2 απαντά με ένα segment με το bit SYN=1, επιβεβαίωση στον Η/Υ 1 και ένα νέο τυχαίο σειριακό αριθμό O Η/Υ 1 απαντά με μια επιβεβαίωση Το ΤCP επαναμεταδίδει χαμένα segments Οι τυχαίοι σειριακοί αριθμοί διασφαλίζουν τον συγχρονισμό μεταξύ των δύο άκρων (γιατί πχ δε δουλεύει με σειριακό αριθμό 1? - θεωρείστε ότι μόλις φεύγει το πρώτο segment ο αποστολέας επαναεκκινείται και επιχειρεί νέα σύνδεση)

Χρήση πορτών Εξυπηρετητής Χρησιμοποιεί πάντα (ακούει) στον ίδιο αριθμό πόρτας Χρησιμοποιεί μικρούς αριθμούς Πελάτης Αποκτά αχρησιμοποίητους αριθμούς πόρτας από το λογισμικό πρωτοκόλλου Χρησιμοποιεί υψηλoύς αριθμoύς πορτών Πχ η πόρτα 53 έχει ανατεθεί στον εξυπηρετητή DNS Η πελάτης που ερωτά το DNS παίρνει την πόρτα 28900 Η ερώτηση του πελάτη έχει Source port number 28900 Destination port number 53 Η απάντηση του DNS server έχει Source port number 53 Destination port number 28900