Προώθηση (υπολογιστές)

Στα δίκτυα υπολογιστών προώθηση είναι η μεταβίβαση πακέτων δεδομένων από έναν κόμβο σε έναν ή περισσότερους άλλους κόμβους μέσω των συνδέσεων του υποκείμενου δικτύου.

Το απλούστερο μοντέλο προώθησης, η μονοδιανομή (unicast), περιλαμβάνει τη μεταγωγή ενός πακέτου από σύνδεση σε σύνδεση κατά μήκος του δικτύου, με αλυσιδωτό τρόπο, από τον αποστολέα έως τον μοναδικό παραλήπτη. Ωστόσο άλλες στρατηγικές προώθησης είναι διαθέσιμες: η εκπομπή (broadcast), όπου ένα πακέτο αντιγράφεται και αντίγραφά του αποστέλλονται σε όλους τους κόμβους του δικτύου (σε μεγάλα δίκτυα βέβαια, στην πράξη παραλήπτες είναι μόνο τα μέλη κάποιου εκ των προτέρων προσδιορισμένου υποσυνόλου «γειτονικών» μεταξύ τους κόμβων), και η πολυδιανομή (multicast), όπου ένα αντίγραφο του πακέτου αποστέλλεται σε όλα τα μέλη ενός ρητά προσδιορισμένου υποσυνόλου των κόμβων (όχι απαραίτητα «γειτονικών», όπως και αν ορίζεται κατά περίπτωση η γειτνίαση στο δίκτυο). Η πολυδιανομή συνήθως είναι δυσκολότερο να επιτευχθεί, ενώ τόσο σε αυτήν όσο και στην εκπομπή απαιτούνται πιο περίπλοκοι αλγόριθμοι δρομολόγησης απ' ό,τι για τη συνήθη περίπτωση της μονοδιανομής.

Οι διάφορες δικτυακές τοπολογία συνήθως ταιριάζουν από τη φύση τους σε συγκεκριμένα μοντέλα προώθησης. Έτσι π.χ. οι οπτικές ίνες και τα καλώδια χαλκού από-σημείο-σε-σημείο τα οποία διασυνδέουν μεταξύ τους δύο μηχανήματα, αποτελούν φυσικά μέσα μονοδιανομής. Από την άλλη οι κόμβοι μπορούν επίσης να προωθήσουν πακέτα δεδομένων ώστε να δημιουργήσουν τελικά κατανομές πολυδιανομής ή εκπομπής από μέσα μονοδιανομής. Παρόμοια, το παραδοσιακό καλώδιο του Ethernet αποτελεί φυσικό μέσο εκπομπής αφού όλοι οι κόμβοι είναι προσκολλημένοι σε ένα μακρύ καλώδιο και κάθε πακέτο που αποστέλλεται από έναν κόμβο γίνεται αντιληπτό από όλους τους άλλους. Έτσι οι κάρτες δικτύου Ethernet υλοποιούν τη μονοδιανομή αγνοώντας τα πακέτα που δεν προορίζονται αποκλειστικά γι' αυτούς (δεν φέρουν δηλαδή ως ένδειξη παραλήπτη τη διεύθυνση MAC της συγκεκριμένης κάρτας δικτύου). Ένα ασύρματο δίκτυο είναι εκ φύσεως μέσο πολυδιανομής, αφού όλοι οι κόμβοι εντός της εμβέλειας του αποστολέα λαμβάνουν τα πακέτα του. Οι ασύρματοι κόμβοι αγνοούν τα πακέτα που απευθύνονται σε άλλες συσκευές, ενώ τα πακέτα απαιτούν προώθηση για να φτάσουν σε έναν κόμβο εκτός της εμβέλειας του αποστολέα (Ad hoc δίκτυο).

Σε κόμβου με πολλαπλές διαθέσιμες εξερχόμενες συνδέσεις, η απόφαση για το ποια θα χρησιμοποιηθεί για προώθηση απαιτεί έναν αλγόριθμο ο οποίος μπορεί να χαρακτηρίζεται από μεγάλη υπολογιστική πολυπλοκότητα. Αφού μία απόφαση προώθησης πρέπει να ληφθεί για κάθε εισερχόμενο πακέτο το οποίο δεν απευθύνεται αποκλειστικά στον τρέχοντα κόμβο, αυτό το γεγονός μπορεί να περιορίσει σημαντικά την απόδοση και τη διαμεταγωγή του δικτύου. Οι πιο γρήγοροι δρομολογητές αξιοποιούν ειδικούς αλγορίθμους για να προωθούν γρήγορα μεγάλο πλήθος πακέτων.

Η απόφαση προώθησης λαμβάνεται συνήθως με έναν από δύο τρόπους: δρομολόγηση, η οποία χρησιμοποιεί πληροφορίες κωδικοποιημένες στη διεύθυνση μίας συσκευής για να υπολογίσει τη θέση της στο δίκτυο, ή γεφύρωση, η οποία δεν υπολογίζει την τοπολογική θέση που αντιστοιχεί σε κάθε διεύθυνση και βασίζεται σε εκπομπή για να εντοπίσει άγνωστες διευθύνσεις. Η μεγάλη επιβάρυνση στην οποία οδηγεί η εκπομπή έχει οδηγήσει σε επικράτηση της δρομολόγησης σε μεγάλα δίκτυα όπως το Διαδίκτυο. Επειδή όμως τα μεγάλα δίκτυα συνήθως αποτελούνται από μικρότερα υποδίκτυα διασυνδεδεμένα μεταξύ τους, στην πραγματικότητα η γεφύρωση χρησιμοποιείται στο Internet αλλά σε τοπικό μόνο επίπεδο.

Στα παράλληλα και κατανεμημένα συστήματα και στον παράλληλο προγραμματισμό η εκπομπή και η πολυδιανομή αποτελούν μόνο δύο τύπους συλλογικής επικοινωνίας, όπου στο πλαίσιο ενός κατανεμημένου υπολογισμού μία ή περισσότερες διεργασίες πρέπει να αποστείλουν δεδομένα σε μία ή περισσότερες άλλες διεργασίες. Κάθε διεργασία εκτελείται σε διαφορετικό υπολογιστή και η αποστολή γίνεται μέσω του υποκείμενου δικτύου διασύνδεσης, το οποίο μπορεί να είναι (αλλά όχι απαραίτητα) ενα σύνηθες δίκτυο υπολογιστών. Άλλοι τύποι συλλογικών επικοινωνιών είναι η διασκόρπιση (scatter), όπου ο αποστολέας πρέπει να αποστείλει διαφορετικό μήνυμα σε καθεμία από τις άλλες διεργασίες που συμμετέχουν στον υπολογισμό, η συλλογή (gather), όπου ένας παραλήπτης πρέπει να συλλέξει ένα διαφορετικό μήνυμα από όλες τις άλλες διεργασίες, η πολλαπλή εκπομπή (all to all broadcast), όπου όλες οι διεργασίες εκτελούν εκπομπή, και η ολική ανταλλαγή (total exchange), όπου όλες οι διεργασίες εκτελούν διασκόρπιση ή συλλογή.

Αρχιτεκτονική δικτύων
Δρομολόγηση