Σχ. 2. Επίπεδα
Ελέγχου και Χρήστη
Εδώ
πρέπει να διακρίνουμε δύο ξεχωριστά
επίπεδα λειτουργίας, όπως φαίνεται
και στο Σχ. 2: Ένα επίπεδο ελέγχου (C),
που έχει να κάνει με την δημιουργία
και τερματισμό λογικών συνδέσεων,
και ένα επίπεδο χρήστη (U), το οποίο
είναι υπεύθυνο για την μεταφορά των
δεδομένων χρήστη μεταξύ των
συνδρομητών. Συνεπώς το επίπεδο C
υφίσταται μεταξύ συνδρομητή και
δικτύου, ενώ το U επίπεδο για
διαλειτουργικότητα άκρου-με-άκρο
(end-to-end).
Επίπεδο
Ελέγχου (C)
Το
επίπεδο ελέγχου είναι παρόμοιο με
την σηματοδότηση στο ίδιο κανάλι για
δίκτυα τύπου μεταγωγής κυκλώματος
(circuit-switching), υπό την έννοια ότι ένα
ξεχωριστό λογικό κανάλι
δημιουργείται για πληροφορίες
ελέγχου.
Στο
data link layer, χρησιμοποιείται το LAPD (Q.921)
για να παράσχει αξιόπιστη υπηρεσία
ελέγχου, με έλεγχο ροής και σφαλμάτων,
μεταξύ χρήστη (ΤΕ) και δικτύου (ΝΤ).
Αυτή η υπηρεσία χρησιμοποιείται για
την ανταλλαγή μηνυμάτων ελέγχου
τύπου Q.933.
Επίπεδο
Χρήστη
Για
την μεταφορά πληροφοριών μεταξύ
χρηστών, το αντίστοιχο πρωτόκολλο
είναι το LAPF (Link Acsess Procedure for Frame-Mode Bearer
Services), το οποίο είναι ορισμένο στο Q.922.
Το τελευταίο είναι μία εξελιγμένη
έκδοση του LAPD (Q.921). Ειδικά για το frame
relay μόνον οι κύριες λειτουργίες του
LAPF χρησιμοποιούνται:
-
Διαχωρισμός,
συντονισμός και διαφάνεια
πλαισίων
-
Πολύπλεξη/Απόπλεξη
πλαισίων με την χρήση των πεδίων
διευθύνσεων
-
Εξέταση
κάθε πλαισίου για επιβεβαίωση ότι
αποτελείται από ακέραιο πλήθος byte
πριν την εισαγωγή ή εξαγωγή 0-bit
-
Εξέταση
κάθε πλαισίου ώστε να μην είναι
ούτε πολύ μεγάλο, ούτε πολύ μικρό
-
Ανίχνευση
σφαλμάτων εκπομπής
-
Λειτουργίες
ελέγχου σφαλμάτων
Η
κεντρική ιδέα είναι η χρήση μόνον
ενός υπο-επιπέδου του data link layer για
την μεταφορά πλαισίων μέσω frame-relay.
Εάν είναι επιθυμητό να υπάρχουν
επιπλέον υπηρεσίες, ώστε π.χ. το
frame-relay να εμφανίζεται ως connection-oriented
υπηρεσία, αυτές επιλέγονται
επιπρόσθετα και δεν αποτελούν τμήμα
του frame-relay. Αντίστοιχα και ο
συνδρομητής μπορεί να επιλέξει
υπηρεσία μεταφοράς πλαισίων είτε με
π.χ. διατήρηση σειράς παραλαβής με
εκείνη της εκπομπής, είτε με μικρή
πιθανότητα απώλειας πλαισίων.
ΕΛΕΓΧΟΣ
ΚΛΗΣΗΣ FRAME RELAY
Εδώ
εξετάζονται οι διάφορες
προσεγγίσεις για δημιουργία frame relay
συνδέσεων και μετά περιγράφεται το
πρωτόκολλο για τον έλεγχο της
σύνδεσης.
Εναλλακτικές
Κλήσεις Ελέγχου
Το
πρωτόκολλο ελέγχου κλήσεων πρέπει να
είναι σε θέση να αντιμετωπίσει μία
σειρά από εναλλακτικές περιπτώσεις.
Πρώτα ας δούμε δύο περιπτώσεις για
την παροχή υπηρεσιών χειρισμού
πλαισίων. Στο frame relay, κάθε χρήστης δεν
συνδέεται απ’ ευθείας με έναν άλλο
χρήστη, αλλά με έναν χειριστή
πλαισίων στο δίκτυο. Υπάρχουν δύο
περιπτώσεις:
-
Switched
Access: Ο χρήστης συνδέεται σε ένα
δίκτυο μεταγωγής, όπου δεν
παρέχεται υπηρεσία χειρισμού
πλαισίων (π.χ. ISDN). Η τερματική
συσκευή διασύνδεσης του χρήστη
πρέπει να παρέχει υπηρεσίες
χειρισμού των πλαισίων.
-
Integrated
Access: Ο χρήστης συνδέεται σε ένα
δίκτυο καθαρά frame relay ή δίκτυο
μεταγωγής όπου όμως παρέχεται
υπηρεσία χειρισμού πλαισίων. Εδώ ο
χρήστης έχει άμεση λογική πρόσβαση
στον χειριστή πλαισίων.
Όλα
τα παραπάνω έχουν να κάνουν με την
σύνδεση μεταξύ συνδρομητή και του
χειριστή πλαισίων (access connection). Μόλις
αυτή η σύνδεση επιτευχθεί, είναι
δυνατόν να πολυπλεχθούν πολλές
λογικές συνδέσεις (frame relay connections)
επάνω από την παραπάνω σύνδεση.
Frame Relay
Connection
Ας
υποθέσουμε ότι ο συνδρομητής έχει
δημιουργήσει, με κάποιον τρόπο, μία
σύνδεση πρόσβασης (access connection) σε έναν
διαχειριστή πλαισίων και είναι τώρα
σε θέση να ανταλλάξει πλαίσια
δεδομένων με έναν άλλο χρήστη που
είναι συνδεδεμένος με το δίκτυο. Για
τον σκοπό αυτό πρέπει πρώτα να
δημιουργηθεί μία σύνδεση frame relay
ανάμεσα στους δύο χρήστες.
Εδώ
έχουμε λοιπόν πρώτα μία σύνδεση στο
data link layer (από τις πολλές δυνατές
επάνω από ένα φυσικό κανάλι), που
διακρίνεται από τις υπόλοιπες μέσω
ενός Data Link Connection Identifier (DLCI). Η μεταφορά
δεδομένων περιλαμβάνει τα παρακάτω
στάδια:
-
Δημιουργία
μίας λογικής σύνδεσης ανάμεσα σε
δύο τερματικά σημεία και ανάθεση
ενός DLCI στην σύνδεση.
-
Ανταλλαγή
πληροφοριών μέσω πλαισίων
δεδομένων. Κάθε πλαίσιο
περιλαμβάνει ένα πεδίο DLCI για να
διακρίνεται η σύνδεση.
-
Απελευθέρωση
της λογικής σύνδεσης.
Η
δημιουργία και απελευθέρωση μίας
λογικής σύνδεσης επιτυγχάνεται με
την ανταλλαγή μηνυμάτων επάνω από
μία λογική σύνδεση, που είναι
αφιερωμένη στον έλεγχο κλήσης, με
DLCI=0. Ένα πλαίσιο με DLCI=0 περιέχει ένα
μήνυμα ελέγχου κλήσης στο πεδίο
πληροφορίας. Κατ’ ελάχιστον
χρειάζονται τέσσερις τύποι
μηνυμάτων: SETUP, CONNECT, RELEASE και RELEASE COMPLETE.
Οποιαδήποτε
πλευρά ξεκινά την δημιουργία μίας
λογικής σύνδεσης με την αποστολή
ενός μηνύματος SETUP. Η άλλη πλευρά
πρέπει να απαντήσει με CONNECT, εκτός εάν
δεν αποδεχθεί την κλήση οπότε απαντά
με το μήνυμα RELEASE COMPLETE. Η πρώτη πλευρά
μπορεί να αναθέσει τον αριθμό DLCI,
χρησιμοποιώντας έναν ελεύθερο
αριθμό και περιλαμβάνοντάς τον στο
μήνυμα SETUP. Διαφορετικά η δεύτερη
πλευρά πρέπει να δημιουργήσει και να
συμπεριλάβει έναν τέτοιο αριθμό στο
μήνυμα CONNECT.
Οποιαδήποτε
πλευρά μπορεί να ζητήσει τον
τερματισμό μίας λογικής σύνδεσης με
ένα μήνυμα RELEASE COMPLETE.
Access Connection
Ας
δούμε την δημιουργία μίας σύνδεσης
πρόσβασης (Access Connection). Εάν η σύνδεση
είναι ημι-μόνιμη (πάντα διαθέσιμη),
κανένα πρωτόκολλο ελέγχου δεν
απαιτείται. Εάν είναι δυναμική (on-demand)
όμως, χρειάζεται ένα πρωτόκολλο
σηματοδότησης μέσω του ιδίου
καναλιού, όπως το συνηθέστερα
χρησιμοποιούμενο Q.931. Για
περισσότερες λεπτομέρειες ο
ενδιαφερόμενος αναγνώστης θα πρέπει
να ανατρέξει στην παρατιθέμενη
βιβλιογραφία.
ΜΕΤΑΦΟΡΑ
ΔΕΔΟΜΕΝΩΝ ΧΡΗΣΤΗ
Η
λειτουργία του frame relay για μεταφορά
δεδομένων χρήστη θα γίνει
περισσότερο κατανοητή ξεκινώντας με
την δομή του πλαισίου, όπως φαίνεται
στο Σχ. 3.
Flag
|
Address
|
Information
|
FCS
|
Flag
|
Σχ.
3 Δομή Πλαισίου (FCS=Frame Check
Sequence)
Εφ’
όσον δεν υπάρχει πεδίο ελέγχου που να
διακρίνει πιθανές διαφορετικές
κατηγορίες πλαισίων, υπάρχει μόνον
ένας τύπος πλαισίου, που
χρησιμοποιείται για την μεταφορά
δεδομένων. Επομένως δεν υπάρχει in-band
signaling και κάθε τέτοια λογική σύνδεση
μεταφέρει μόνον δεδομένα χρηστών.
Αφού δεν υπάρχουν αριθμοί διαδοχής,
προκύπτει ότι δεν είναι δυνατή η
υλοποίηση ελέγχου σφαλμάτων ή ροής. Η
μόνη χρήση του FCS (Frame Check Sequence) είναι
ότι ελέγχεται για πιθανά λάθη. Εάν
υπάρχει σφάλμα το πλαίσιο
απορρίπτεται. Εναπόκειται σε
υψηλότερα επίπεδα να προχωρήσουν σε
ανάνηψη από σφάλματα.
Η
δρομολόγηση των δεδομένων χρήστη
γίνεται μέσω καταχωρίσεων σε έναν
πίνακα σύνδεσης που βασίζεται στα DLCI.
Ο χειριστής πλαισίων λαμβάνει
πλαίσια από εισερχόμενα κανάλια και
τα διοχετεύει σε εξερχόμενα,
μεταφράζοντας κατάλληλα τους
αριθμούς DLCI μέσα στα πλαίσια, πριν
την περαιτέρω προώθησή τους. Το
ερώτημα εδώ είναι πώς γίνεται η “συνεννόηση”
μεταξύ δύο οντοτήτων που συμμετέχουν
στην όλη διαδρομή. Αυτή
επιτυγχάνεται μέσω του DLCI 0.
ΕΛΕΓΧΟΣ
ΡΟΗΣ
Η
προσέγγιση στο πρόβλημα κατά το frame
relay γίνεται σύμφωνα με τους παρακάτω
στόχους:
-
Μείωση
απόρριψης πλαισίων
-
Διατήρηση
με μεγάλη πιθανότητα και ελάχιστη
παρέκκλιση, μίας προσυμφωνημένης
ποιότητας υπηρεσίας
-
Ελαχιστοποίηση
της πιθανότητας ότι ένας χρήστης
μπορεί να μονοπωλήσει τους
δικτυακούς πόρους εις βάρος άλλων
χρηστών
-
Απλό
στην υλοποίηση και στον φόρτο που
επιβάλλει στους χρήστες
-
Δημιουργία
ελαχιστοποιημένου φόρτου στο
δίκτυο
-
Κατανομή
δικτυακών πόρων δίκαια μεταξύ των
χρηστών
-
Αποδοτική
λειτουργία ανεξάρτητα από την ροή
κυκλοφορίας σε οποιαδήποτε
κατεύθυνση στο δίκτυο ανάμεσα
στους χρήστες
Οι
στρατηγικές που ακολουθούνται είναι:
-
Απόρριψη
πλαισίων (όταν η συμφόρηση είναι
αρκετά μεγάλη).
-
Αποφυγή
συμφόρησης, ώστε οι τελικοί
χρήστες να μειώσουν την διαθέσιμη
διακίνηση πληροφορίας (επιτυγχάνεται
με συγκεκριμένη σηματοδότηση).
-
Ανάνηψη
από συμφόρηση, ώστε να μην
καταρρεύσει το δίκτυο εφόσον
υπάρξει πολύ μεγάλη συμφόρηση.
Για
τους παραπάνω σκοπούς, για κάθε
χρήστη ορίζεται το CIR (Committed Information Rate).
Αυτό αποτελεί την εγγύηση για ρυθμό
μετάδοσης πληροφοριών από το δίκτυο.
Εάν υπάρχει διαθέσιμο bandwidth είναι
δυνατή η περαιτέρω αύξηση αυτού του
ρυθμού. Εννοείται ότι πρέπει η τιμή
του να είναι μικρότερη ή ίση με τον
επιτρεπτό ρυθμό μετάδοσης που
υποστηρίζεται από την αντίστοιχη
φυσική σύνδεση.
Ο
χειριστής πλαισίων (π.χ. ένας router του
παροχέα δικτυακών υπηρεσιών) ελέγχει
τον ρυθμό μετάδοσης πλαισίων. Εάν
αυτός ξεπεράσει το προσυμφωνημένο
όριο, συνεχίζεται η προώθηση
πλαισίων, αλλά το bit DE (Discard Eligible)
μεταβάλλεται, ώστε να είναι δυνατή η
παρά πέρα απόρριψή τους, εφόσον
απαιτείται κάτι τέτοιο λόγω
συμφόρησης.
ΠΑΡΑΔΕΙΓΜΑΤΑ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ CISCO ROUTER
inteface
Ethernet0
ip address 204.255.73.1 255.255.255.0
!
interface
Serial0
ip address 192.168.10.118 255.255.255.252
encapsulation frame-relay IETF
frame-relay lmi-type ansi
frame-relay interface-dlci 101 IETF
!
interface
Serial1
no
ip address
shutdown
!
ip
route 0.0.0.0 0.0.0.0 192.168.10.117
!
line
con 0
password
passwd
login
Οι
πρώτες δύο γραμμές καθορίζουν μία
θύρα Ethernet στο τοπικό δίκτυο. Μετά
λέμε στον δρομολογητή μας να “μιλάει”
Frame Relay με rfc1490 encapsulation και LMI τύπου ANSI
στην σειριακή θύρα 0. Στο δικό μας
άκρο ανατίθεται μία ταυτότητα
κυκώματος – DLCI 101. Ο δρομολογητής μας
προωθεί όλη την κυκλοφορία που
προορίζεται για μέρη άλλα από το
τοπικό LAN μέσω του Frame Relay PVC. Συνήθως
το DLCI 0 ή DLCI 1023 είναι δεσμευμένο για
κυκλοφορία LMI ανάμεσα στις συσκευές
του χρήστη και το δίκτυο Frame Relay.
inteface
Ethernet0
ip address 198.252.200.1 255.255.255.0
!
interface
Serial0
no ip address
encapsulation frame-relay IETF
frame-relay lmi-type ansi
interface Serial0.1 point-to-point
ip unnumbered Ethernet0
frame-relay interface-dlci 101 IETF
!
interface
Serial1
no
ip address
shutdown
ip
route 0.0.0.0 0.0.0.0 Serial0.1
!
line
con 0
password
passwd
login
Το
παραπάνω παράδειγμα παρατίθεται για
την περίπτωση που δεν θέλουμε να
αναθέσουμε IP αριθμό στην Σειριακή
θύρα που διακινεί Frame Relay. Οι πρώτες
δύο γραμμές είναι ίδιες με το
προηγούμενο παράδειγμα.
Αφού
είναι δυνατόν να έχουμε περισσότερα
από ένα λογικά κυκλώματα να
καταλήγουν σε ένα φυσικό άκρο,
παίρνουμε μία σειριακή θύρα (Serial0) και
την χρησιμοποιούμε σαν να
αποτελούνταν από έναν αριθμό λογικών
υπο-θυρών. Για αυτό και γίνεται χρήση
του Serial0 (φυσική θύρα) και Serial0.1 (λογική
υπο-θύρα). Αν είχαμε και άλλα λογικά
κυκλώματα, θα είχαμε και άλλες
λογικές υπο-θύρες με τα ονόματα Serial0.2,
Serial0.3, κλπ. Σημειώστε ότι οι λογικές
υπο-θύρες κληρονομούν τα
χαρακτηριστικά της φυσικής θύρας.
Εδώ
έχουμε δρομολόγηση (με την εντολή route)
χωρίς διεύθυνση (IP) ή addressless. Για αυτό
και χρησιμοποιείται το όνομα της
λογικής υπο-θύρας, αντί για την IP
διεύθυνση του άλλου άκρου.