ΤΕΙ ΗΠΕΙΡΟΥ Τµήµα: Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΜΑΘΗΜΑ: Πρωτόκολλα Επικοινωνίας ιαδικτύου Εξάµηνο: 3ον Κεφάλαιο 6 ον : TCP, UDP Πρωτόκολλα Υπεύθυνος Μαθήµατος: Στεργίου Ελευθέριος
Επίπεδο Μεταφοράς ( TCP-UDP) Πρωτόκολλα προσανατολισµένα σε συνδέσεις και χωρίς συνδέσεις TCP protocol UDP protocol ιαφορές και τρόπος λειτουργίας των TCP, UDP Θύρες (ports) και Υποδοχές (sockets) Πεδία των TCP, UDP Επικεφαλίδων Άνοιγµα Κλείσιµο TCP συνδέσεων
Επίπεδο Μεταφοράς ( TCP/UDP) Το επίπεδο µεταφοράς παρέχει: δυνατότητα διασύνδεσης µιας εφαρµογής µε µια ή περισσότερες αντίστοιχες εφαρµογές µηχανισµό multiplexing/demultiplexing. O multiplexing µηχανισµός δρα στον αποστολέα και µπορεί να συλλέξει δεδοµένα από διάφορες εφαρµογές ή υπολογιστές και να τα κατευθύνει προς συγκεκριµένο παραλήπτη. Ο µηχανισµός demultiplexing δρα στο µέρος του παραλήπτη και µπορεί να δέχεται δεδοµένα από διάφορες εφαρµογές και να τα διαµοιράζει προς τις διάφορες αυτές εφαρµογές. έλεγχο λαθών, έλεγχο ροής δεδοµένων και επαλήθευση παραλαβής δεδοµένων. Όσο ποιο λεπτοµερείς ελέγχους διαθέτει ένα επίπεδο µεταφοράς τόσοαυξάνεταιτοφορτίοκαιηκαθυστέρησητουδικτύου.
Πρωτόκολλα µε συνδέσεις και χωρίς συνδέσεις Πρωτόκολλα µε συνδέσεις Ταπρωτόκολλααυτάέχουντηνδυνατότητανα: - ορίζουν και συντηρούν µια οι περισσότερες συνδέσεις. - για κάθε αποστολή δεδοµένων περιµένουν µια επαλήθευση αλλιώς κάνουν επαν-εκποµπή και - τέλος, κλείνουν οµαλά την σύνδεση. -πχ TCPπρωτόκολλο. Πρωτόκολλα χωρίς συνδέσεις Ταπρωτόκολλααυτάέχουντηνδυνατότητανα: - να αποστέλλουν datagrams σε έναν ή περισσότερους προορισµούς. εν προ-υπάρχει σύνδεση µεταξύ των σηµείων αποστολής λήψης, ούτε καµιά άλλη ειδοποίηση. - Ο υπολογιστής προορισµού λαµβάνει τα δεδοµένα και δεν επιστρέφει πληροφορία παραλαβής στον αποστολέα. -Πχ UDPπρωτόκολλο.
Θύρες (ports) και υποδοχές (sockets) Στο σύστηµα TCP/IP, οι διάφορες εφαρµογές µπορούν να αποστείλουν ή να παραλάβουν τα δεδοµένα µέσω του επιπέδου µεταφοράς TCPή UDP µε την χρήση τωνθυρών (Ports) Θύρα(ή Port) είναι µια προκαθορισµένη εσωτερική διεύθυνση η οποία ορίζει µια διαδροµή από µια συγκεκριµένη Εφαρµογή προς το επίπεδο Μεταφοράς. πχηεφαρµογή FTP ορίζεταιµετοναριθµό 21 Οι θύρες(ports) των διαφόρων εφαρµογών ορίζονται από τον διεθνή oοργανισµό ICANN Application WWW E-mail Telnet Port 80 25 23 Transport Layer www.iana.org/assignments/ports-numbers 194.42.16.25 Internet Layer
Ζώνες Θυρών (Ports) Είδος Θύρας (Ports) Port Numbers Σχόλια Γνωστά και ευρέως Χρησιµοποιηµένα Ports 0-1023 Αυτάτα Ports συσχετίζονται µε συγκεκριµένα Πρωτόκολλα και Εφαρµογές. Καταχωρηµένα ή δεσµευµένα υναµικά Ports 1024-49151 19152-65535 Μέρος από αυτά έχουν ανατεθεί σε συγκεκριµένα πρωτόκολλααπότην IANA. Ενώ τα υπόλοιπα µπορεί να χρησιµοποιηθούν ελεύθερα σε Εφαρµογές. εν έχουν οριστεί από την IANA και µπορούν να χρησιµοποιούνται ελεύθερα.
Συνήθη Ports Port TCPήUDP Protoco l Σχόλια 20,21 TCP FTP File Transfer Protocol 22 TCP SSH Secure Shell 23 TCP Telnet 25 TCP SMTP Simple Mail Transfer Protocol 110 TCP POP3 Post Office Protocol 3. Για λήψη emails. 80 TCP HTTP Hypertext Transfer Protocol 443 TCP HTTPS Secure HTTP 53 TCP/UDP DNS Domain Name Service 161,162 UDP SNMP Simple Network Management Protocol
Υποδοχές (Sockets) Τα πακέτα τα οποία βρίσκονται σε Επίπεδο Μεταφοράς δροµολογούνται µε βάση µια διεύθνση η οποία ονοµάζεται υποδοχή(socket). Υποδοχή(socket) είναι µια διεύθυνση η οποία σχηµατίζεται από την συνένωση µιας IP διεύθυνσηςκαιτοναριθµόµιαςθύρας. Socket address= IP address + port Είναι η τελική ( end-point ) σύνδεση του διαδικτύου (internet)!
Υποδοχές (Sockets) υο τελικά σηµεία ( end-points ) καθορίζουν µια σύνδεση: socket pair Πχ1 : 206.62.226.35,p21 και 198.69.10.2,p1500 Πχ2 : 206.62.226.35,p21 και 198.69.10.2,p1499 Υπάρχουν 3 τύποι υποδοχών (Socket) Stream Sockets : υποδοχέςπουέχουν interface στο TCP.Πρόκειταιγια connection- oriented sockets. Παρέχουναξιόπιστες, connected networking υπηρεσίες Απαλλαγµένααπόλάθη (Error free) ; no out- of- order packets (uses TCP) ΥποστηρίζουνΕφαρµογέςόπως: telnet/ ssh, http, Datagram Sockets: υποδοχές που έχουν interface στο UDP. Πρόκειται για connectionless sockets. ενπαρέχουνπλήρηαξιοπιστίααλλαπαρέχουν best- effort networking service. Ταπακέταµπορείναχαθούνήναφθάσουνµεδιαφορετικήσειρά. ΧρησιµοποιούνταισεΕφαρµογέςόπως: streaming audio/ video (real player), Raw Sockets: υποδοχές που έχουν interface απ ευθείας στο IP πρωτόκολλο (Internet protocol).
Υποδοχές (Sockets) Παθητικό(Passive)/Ενεργό(Active) Socket Έναπαθητικό (passive) socketχρησιµοποιείταιαπό έναν server όταν αυτός βρίσκεται σε κατάσταση αναµονής (to wait state) γιαµιαεισερχόµενησύνδεση (for an incoming connection). Ένα Ενεργό (active) socket χρησιµοποιείται από έναν χρήστη (client) προκειµένου να δηµιουργήσει µια σύνδεση. -Όταν δηµιουργείται ένα socket από έναν client, δεν παρέχεται -η πληροφορία σχετικά µε το πώς αυτό πρόκειται να -χρησιµοποιηθεί!.
Υποδοχές (Sockets) Εικόνα 1η Εικόνα 2η
Client General or High Level view of Socket Create a socket Setup the server address Connect to the server Read/write data Shutdown connection
Server General or High Level view of Socket Create a socket Bind the socket Listen for connections Accept new client connections Read/write to client connections Shutdown connection
Υποδοχές (Sockets) Server Process socket() bind() Server Process socket() listen() accept() TCP bind() UDP get a blocked client read() procees request write() 1 2 3 Client Process socket() connect() write() read() recvfrom() get a blocked client process request sendto() Client Process socket() bind() sendto() recvfrom()
Server socket() bind() TCP Client-Server well-known port listen() accept() (Block until connection) recv() send() recv() Handshake Data (request) Data (reply) End-of-File Client socket() connect() send() recv() close() close()
Server socket() bind() TCP Client-Server well-known port listen() accept() (Block until connection) recv() send() recv() close() Handshake Data (request) Data (reply) End-of-File Client socket() connect() send() recv() close()
Multiplexing/Demultiplexing To Σύστηµα ιευθυνσιοδότησηςυποδοχών (socket addressing system) επιτρέπει στο επίπεδο µεταφοράς (TCP ή UDP) να εκτελούν λειτουργία multiplexing και de-multiplexing. H λειτουργία multiplexing είναι η λειτουργία η οποία επιτρέπει την µίξη δεδοµένωναπόπολλέςπηγές (Εφαρµογές) σεµίαέξοδο. MULTIPLEXING H λειτουργία de-multiplexing είναι η λειτουργία η οποία επιτρέπει την λήψη δεδοµένων από µια προέλευση και εν συνεχεία την παράδοση αυτώνσεπολλέςπηγές (Εφαρµογές). DE-MULTIPLEXING -Τα κατώτερα επίπεδα του επιπέδου IP, ενδιαφέρονται από ποια εφαρµογή ξεκίνησαν τα δεδοµένα.
Παράδειγµα διαφορετικών συνδέσεων µιας Εφαρµογής ιαφορετικές συνδέσεις = ιαφορετικά ζεύγη Sockets! Telnet 23 TCP IP 111.121.131.142 Access Protocols Σύνδεση #1 Από : 111.121.131.135:2000 Προς: 111.121.131.142:23 Σύνδεση #2 Από : 111.121.131.136:2000 Προς: 111.121.131.142:23 Σύνδεση #3 Από : 111.121.131.142:23 Προς: 111.121.131.147:2000 Σύνδεση #4 Από : 111.121.131.142:23 Προς: 111.121.131.145:2000
Περίπτωση δικτύωσης οικίας DSL or Cable connection to ISP 192.168.1.xx subnet 83.215.152.95 Modem / firewall / router (NAT enabled) 192.168.1.1 Ethernet switch WiFi base station/ access point 192.168.1.2 192.168.1.10 printer Laptop 192.168.1.104 Game box 192.168.1.105 Media hub 192.168.1.106 TV monitor 192.168.1.5 192.168.1.101 PC 1 PC 2 Bluetooth adapter Bluetooth printer Camera
Transport Layer Υπεύθυνο για End-to-end µεταφορά Transmission Control Protocol (TCP) Προσανατολισµένο σε συνδέσεις (connection oriented) Κάνει εκτενή έλεγχο λαθών και ροής Αξιόπιστη διανοµή δεδοµένων Τηρεί τάξη (ordering data) αποστολής και λήψης δεδοµένων κατά την διανοµή των δεδοµένων ΧρησιµοποιείταισεΕφαρµογέςµεαλληλεπίδρασηπχ Telnet, FTP κλπ User Datagram Protocol (UDP) Λειτουργεί χωρίς να δηµιουργεί συνδέσεις (connectionless service) Ηπαράδοσηδεδοµένωνδενείναιεγγυηµένη (delivery is not guaranteed) Επιτυγχάνει µεγαλύτερη ταχύτητα παράδοσης δεδοµένων ΧρησιµοποιείταισεΕφαρµογέςµεανοχήλαθώνπχµεταφορά video κλπ 20
Επίπεδο Μεταφοράς ( TCP) Σύνδεση ενόςυπολογιστήαµεένανάλλοβσηµαίνειότιτολογισµικότου TCP επικοινωνεί µε το αντίστοιχο λογισµικό TCP του Β. Σηµαντικές λειτουργίες του TCP: Επεξεργασία προσανατολισµένη στην ροή δεδοµένων (stream). ηλ. µπορεί να δεχτεί πχ. ένα byte/time slot ή γενικώς δεδοµένα µε µεταβλητό µήκος. Αναδιάταξη αρίθµησης στον παραλήπτη. Έλεγχο Ροής. ηλ. ρυθµίζει την ροή ώστε να µην υπερβεί την ταχύτητα παραλαβής που έχει ο εκάστοτε παραλήπτης (φυσικοί περιορισµοί στην ταχύτητα Επεξεργαστών ή στα µεγέθη των buffers) υνατότητα να θέτει προτεραιότητα και πρόσθετη επίπεδα ασφάλειας. Οµαλό κλείσιµο. ηλ. διασφάλιση ότι έχουν ληφθεί όλα τα πακέτα πριν κλείσει η σύνδεση.
Μορφή δεδοµένων του TCP (TCP Header) Ethernet Hdr - 20 bytes (little-endian) IP Header - 20 bytes (big-endian) TCP Header - 20 bytes (big-endian) App. Hdr & Data * * Length of TCP Header in bytes /4 TCP Flags: U A P R S F 22
Πεδία της Επικεφαλίδας των TCP Segments. Θύραπροέλευσης(Source Port) (16 bits) δηλτο port number τουαποστολέα. Θύραπροορισµού(Destination Port) (16 bits) δηλτο port number του παραλήπτη. Αριθµόςσειράς (Sequential number) (32 bits) ΑνηFlag SYN=1 τότε Sequence number=isn (Initial sequence Number) αλλιώς το Sequence number δείχνει τον αριθµό του πρώτου byte σε αυτό το πακέτο. ΑριθµόςΑναγνώρισης(Acknowledgment Number) (32 bytes) Γνωστοποιεί ότι λήφθηκε ένα πακέτο και έχει τιµή: Αριθµός σειράς+1 Μετατόπισηδεδοµένων( Data Offset) (4 bits): λέειστονπαραλήπτηπόσο µεγάλη είναι η επικεφαλίδα και συνεπώς από πού ξεκινούν τα δεδοµένα. εσµευµένο (Reserved) (6 bits) πεδίογιαµελλοντικήχρήση.
Πεδία της Επικεφαλίδας των TCP Segments. Σηµαίες ελέγχου (1 bit για κάθε µία σηµαία) - URG - ACK - PSH - RST - SYN - FIN Παράθυρο (Windows) (16 bits):χρησιµοποιείταιγιαέλεγχοροής εδοµένων. Ορίζει το παράθυρο (εύρος) των αριθµών σειράς δεδοµένων που µπορεί ο αποστολέας να στείλει συνεχόµενα δηλ. χωρίς άµεση επιβεβαίωση. Checksum (16 bits): χρησιµοποιείται για να ελέγχει την ακεραιότητα του segment. Ο παραλήπτης εκτελεί τον υπολογισµό checksum στο segment που µόλις έλαβε και συγκρίνει το αποτέλεσµα µε την τιµή του παρόντος πεδίου. είκτηςεπείγοντος(urgent Pointer) (16 bits): δείχνειµεαριθµό (διαβάθµιση) πόσοεπείγουσαείναιηπληροφορία. Επιλογές(Options): καθορίζει µια επιλογής µεταξύ συγκεκριµένων ρυθµίσεων. Αναπλήρωση(Padding): συµπλήρωµα ώστε η επικεφαλίδα να είναι µεγέθους ακριβώς 32 bits.
TCP Συνδέσεις Το TCPείναιέναπρωτόκολλοπροσανατολισµένοσεσυνδέσεις. ηλ. προκειµένου δύο σηµεία να επικοινωνήσουν πρέπει πρώτα να εγκαταστασθεί σύνδεση και µέσω αυτής στη συνέχει να γίνεται Επικοινωνία (εκποµπή και λήψη δεδοµένων). Το TCP υποστηρίζει δύο καταστάσεις αναµονής για σύνδεση: Παθητική ανοικτή: είναι η κατάσταση αναµονής στην οποία συνήθως βρίσκονται οι servers. ηλ. είναι σε ετοιµότητα να λάβουν και να στείλουν δεδοµέναπ.χ. FTP Server, Web Server κλπ. Ενεργή ανοικτή: είναι η κατάσταση κατά την οποία µια Εφαρµογή µπορεί να ζητήσει και να εγκαταστήσει µια σύνδεση. Κατάσταση στην οποία συνήθως έχουνοι Clients. Π.χ. FTP Clients, Mail Clients κλπ ιακοµιστής (Server) είναι ο υπολογιστής ο οποίος προσφέρει υπηρεσίες. Πελάτης(Client) είναι ο υπολογιστής ο οποίος ζητά ή λαµβάνει υπηρεσίες.
Συνδέσεις TCP Για να πραγµατοποιηθεί µια σύνδεση ενεργοποιείται στην αρχή η λεγόµενη Χειραψία 3 Βηµάτων ( Three-way handshake) time Αίτηση (SYN=1, ACK=0, Αρ. Σειράς=X) ❷ Επιβεβαίωση (SYN=1, ACK=1, Αρ. Σειράς=Y) ❸ Επιβεβαίωση (SYN=0, ACK=1,Αρ. Σειράς=Μ+1) time Βήµα 1: o υπολογιστής 1 στέλνει segment µεαριθµόσειράςχτοδικότου ISN (Initial Sequence Number) Βήµα 2: o υπολογιστής 2 λαµβάνεικαι αποστέλλει πίσω segment επιβεβαίωσης µε αριθµό σειράς Υ δηλ. τοδικότου ISN ❶ Υπολ. 1 Υπολ. 2 Βήµα 3: o υπολογιστής 1 λαµβάνει το segment επιβεβαίωσης και αποστέλλει πίσω άλλο segment επιβεβαίωσης µε αριθµό σειράςμ+1 ISN: ένας αριθµός ο οποίος δηλώνει την αρχή που θα χρησιµοποιηθεί στην σειρά των bytes που µεταδίδονται! Όπου Μ: ο τελευταίος αριθµός σειράς που λήφθηκεαπότονυπολογιστή 2.
Επίπεδο Μεταφοράς ( TCP/UDP) Επιτρέπει πολλαπλές (συνεχείς) εκποµπές segments τόσα όσα δείχνει η παράµετρος window Kαι αναµένει αντίστοιχο αριθµό επιβεβαιώσεων (Acknowledgement). Sender Receiver Time
Sliding Windows γρήγορη µετάδοση!
Έλεγχος TCPΣύνδεσης όταν εγκατασταθεί µια TCP σύνδεση αρχίζει η αποστολή και λήψη των δεδοµένων. Για να αποφευχθεί η συµφόρηση χρησιµοποιεί συγκεκριµένη µέθοδο αποστολής δεδοµένων. Η µέθοδος αποστολής την οποία χρησιµοποιεί το Πρωτόκολλο TCP είναι η µέθοδος κυλιόµενου παραθύρου (sliding window) o υπολογιστής λήψης χρησιµοποιεί το πεδίο (του TCP Segment) window προκειµένου να διατηρήσει ελέγξιµο ρυθµό εκποµπής δεδοµένων.
Κλείσιµο TCPΣύνδεσης Το κλείσιµο µπορεί να πραγµατοποιηθεί από οποιοδήποτε µέρος της επικοινωνίας ❶ ΜετάτοΒήµα ❷ time Αίτηση (FIN=1) ❷ Επιβεβαίωση λήψης (FIN=1) time Ο Υπολογιστής 2 σταµατά να αποστέλλει πακέτα, αλλάδέχεταιταυπάρχονταστοδίκτυο. εδοµένα. ❸ Αίτηση Αποσύνδεσης Υπολ. 1 Υπολ. 2 ΜετάτοΒήµα ❸ ΟιΥπολογιστές 1 και 2 σταµατούνπλήρως. Ούτεαποστέλλουν, ούτεδέχονταιπακέτα. Τα δεδοµένα που έρχονται µετά το βήµα δεν παραλαµβάνονται! ❸
Επίπεδο Μεταφοράς ( TCP/UDP) Πρόβληµα των καθυστερηµένων ή υποκλεµµένων αντιγράφων Όλα τα πακέτα µπορεί να αντιγραφούν και αποθηκευτούν ή να καθυστερήσουν σε υποδίκτυο. Με την λήξη της σύνδεσης όλα τα πακέτα µπορεί να εµφανισθούν εκνέου ζητώνταςσύνδεση. Τρόποι αντίδρασης: ❶ Αίτηση (SYN=1, ACK=0, time time Επιβεβαίωση λήψης (Αρ. Σειράς Υ) ❷ Αρ. Σειράς=X) Απόρριψη ❸ ❶ Αίτηση (SYN=1, time time (επιβεβαίωσης Υ) ACK=0, Επιβεβαίωση λήψης (Αρ. ΣειράςΥ) ❷ Αρ. Σειράς=X) Επιβεβαίωση Αρ. ΣειράςΥ ❸ Απόρριψη (επιβεβαίωσης Υ) Απόρριψη (επιβεβαίωσης Υ) ❹ Υπολ. 1 Υπολ. 2 Υπολ. 1 Υπολ. 2
Επίπεδο Μεταφοράς ( TCP/UDP)