Προσομοιώστε ένα απλό σενάριο 2 σταθερών κόμβων που ανταλλάσσουν CBR (Constant Bit Rate) πακέτα.
Νοde number = 2, Terrain = 1000×1000, Traffic Pattern = CBR, Packet Length = 512B, Data Rate = 1 Mbps, Simulation time = 10s, Static Routing
Για τη προσομοίωση του παραπάνω σεναρίου θέτουμε τις ακόλουθες τιμές αρχικοποίησης στο βασικό αρχείο ρυθμίσεων (config.in) του Glomosim.
SIMULATION-TIME 10S
TERRAIN-DIMENSIONS (1000, 1000)
NUMBER-OF-NODES 2
PROPAGATION-PATHLOSS FREE-SPACE
ROUTING-PROTOCOL STATIC
STATIC-ROUTE-FILE ROUTES.IN
Επειδή έχουμε στατική δρομολόγηση, δημιουργούμε ένα αρχείο ROUTES.IN στο οποίο περιγράφουμε τη συνδεσμολογία των κόμβων μεταξύ τους με τη παρακάτω μορφή:
Source Destination Next Hop
0 1 1
1 0 0
Οι δύο κόμβοι ανταλλάσουν CBR πακέτα μεγέθους 512B και με ρυθμό 1Mbps.
Οπότε στο αρχείο ρυθμίσεων της εφαρμογής (app.conf) προσθέτουμε τις παρακάτω ρυθμίσεις:
CBR <src> <dest> <items to send> <item size> <interval> <start time> <end time>
CBR 0 1 0 512 4MS 0S 0S
CBR 1 0 0 512 4MS 0S 0S
Να μελετήστε τα παρακάτω:
• Εμβέλεια Μετάδοσης.
Πώς επηρεάζεται το πεδίο εμβέλειας μετάδοσης όταν μεταβάλλουμε:
α) την ισχύ μετάδοσης (Tx Power = 1dBm, 10dBm),
β) το κατώφλι λήψης (Tx Receive Threshold = -81.0dBm, -91dBm), και
γ) το μοντέλο απωλειών του μέσου (PROPAGATIONPATHLOSS = FREE-SPACE, TWO-RAY);
Σε κάθε μια από τις 8 περιπτώσεις μετρήστε το transmission range.
Για να μετρήσουμε το transmission range χρησιμοποιούμε την εντολή:
radio_range config.in
Επειδή οι ασύρματες μεταδόσεις επηρεάζονται από το περιβάλλον με έναν σύνθετο τρόπο, είναι αρκετά δύσκολο να προβλεφθεί η συμπεριφορά ενός συστήματος και να καθοριστεί η εμβέλεια μετάδοσης ενός κόμβου. Η εμβέλεια μετάδοσης είναι η μέση μέγιστη απόσταση μεταξύ δύο κόμβων. Εάν θέλουμε να συγκρίνουμε τους κινητούς κόμβους σε επίπεδο εμβέλειας μετάδοσης, πρέπει να εξετάσουμε τη δύναμη της κεραίας και τις τιμές ευαισθησίας.
Αυτά είναι μερικά μετρήσιμα χαρακτηριστικά που δείχνουν την απόδοση του υλικου. Η δύναμη μετάδοσης (ΤX_POWER) είναι η δύναμη της εκπομπής και μετριέται σε Watt (ή milliWatts). Εντούτοις, η κατοχή μιας υψηλής δύναμης μετάδοσης θα βοηθήσει να εκπέμψει τα σήματα ισχυρότερα.
Η ευαισθησία(TX_RECEIVE_THRESHOLD) είναι το μέτρο του πιό αδύνατου σήματος που μπορεί να ληφθει από το δέκτη (είναι σε θέση να διαβάσει τα bits από την κεραία με μια χαμηλή πιθανότητα λάθους). Αυτό δείχνει την απόδοση του δέκτη, και όσο χαμηλότερη τιμή τόσο το καλύτερο. Οι συνηθισμένες τιμές είναι περίπου -80 dBm (παραδείγματος χάριν -90 dBm είναι καλύτερη τιμή).
Το GloMoSim έχει τα ακόλουθα πρότυπα διάδοσης(PROPAGATION_PATHLOSS): ελεύθερο διάστημα (FREE-SPACE) και το πρότυπο TWO-RAY. Το ελεύθερο διαστημικό πρότυπο διάδοσης, χρησιμοποιείται για να προβλέψει τη λαμβανόμενη δύναμη σημάτων όταν ο πομπός και ο δέκτης συνδέονται με μια σαφή, ανεμπόδιστη γραμμή μεταξύ τους. Αυτό το πρότυπο προβλέπει ότι η δύναμη μετάδοσης μειώνεται αναλογικά με το τετράγωνο της απόστασης. Το πρότυπο TWO-RAY εξετάζει και το άμεσο μονοπάτι και το μονοπάτι στο έδαφος μεταξύ πομπού και δέκτη. Αυτό το πρότυπο προβλέπει ότι η λαμβανόμενη δύναμη μειώνεται με την απόσταση που αυξάνεται στην τέταρτη δύναμη, ή σε ένα ποσοστό 40 dB/decade. Αυτό είναι μια γρηγορότερη απώλεια από ότι στο ελεύθερο διάστημα.
• Απόδοση Διαφορετικών Σχημάτων Κωδικοποίησης Σήματος.
Δώστε τις ακόλουθες τιμές αρχικοποίησης: Τx Power=1dBm, RADIO-RX-SENSITIVITY=-100.9, RADIO-RXTHRESHOLD=-100.9. Χρησιμοποιίστε το Bit Error Rate (BER) ως το κριτήριο για ορθή λήψη.
Μελετήστε τον λόγο απώλειας πακέτων (packet loss ratιο) σε σχέση με την μεταβαλλόμενη απόσταση μεταξύ των τερματικών χρησιμοποιώντας δύο διαφορετικές κωδικοποιήσεις: BPSK και DΒPSK.
Δώστε τη γραφική παράσταση για αποστάσεις 250 έως 370 μέτρων, με βήμα 10 μέτρων (δηλαδή για 250, 260, 270, …)
Δίνουμε τις ακόλουθες τιμές αρχικοποίησης στο αρχείο ρυθμίσεων config.in:
NODE-PLACEMENT FILE
NODE-PLACEMENT-FILE ./nodes.input
RADIO-RX-TYPE BER-BASED
BER-TABLE-FILE ./ber_bpsk.in
RADIO-TX-POWER 1
RADIO-RX-SENSITIVITY -100.9
RADIO-RX-THRESHOLD -100.9
Χρησιμοποιούμε το αρχείο nodes.input για να ορίσουμε τη τοπολογία των δυο κόμβων. Το αρχείο αυτό έχει τη παρακάτω μορφή:
#
# NODE-PLACEMENT-FILE
# Format: nodeAddr 0 (x, y, z)
# The second parameter is for the consistency
# with the mobility trace format.
#
0 0 (100, 0.9, 0.11)
1 0 (350, 0.9, 0.11)
Κάθε φορά μεταβάλλουμε τη τιμή x του κόμβου 1 ξεκινώντας από 350 έως 470 με βήμα 10 για να πάρουμε όλες τις ζητούμενες αποστάσεις μεταξύ των δυο κόμβων και σε κάθε μια προσομοίωση μετράμε το λόγο απώλειας πακέτων.
Το packet loss ratio το μετράμε με τη βοήθεια του παρακάτω script:
—————packet_delay.sh—————
#!/bin/sh
cat $1 | awk -f packet_delay.awk
—————packet_delay.awk————–
BEGIN{
sumcountsent=0;
sumcountrcv=0;
}
{
if($4==”AppCbrClient,” || “AppCbrServer”){
if($10==”sent:” && $9==”packets”) sumcountsent+=$11;
else if($10==”received:” && $9==”packets”) sumcountrcv+=$11;
}
}
END{
printf(“Loss Packet Percentage=%f%\n”,100-((sumcountrcv*100)/sumcountsent));
printf(“Packet Delivery Ratio=%f\n\n”,sumcountrcv/sumcountsent);
printf(“Packets Received =%d\n”,sumcountrcv);
printf(“Packets Sent =%d\n\n”,sumcountsent);
}
Στη συνέχεια χρησιμοποιούμε τη κωδικοποίηση DBPSK αλλάζοντας τις ρυθμίσεις στο αρχείο config.in και πραγματοποιούμε όλες τις προσομοιώσεις και παίρνουμε τα παρακάτω αποτελέσματα:
RADIO-RX-TYPE BER-BASED
BER-TABLE-FILE ./ber_dbpsk.in
Προκειμένου να μεταδοθεί ψηφιακή πληροφορία μέσα από κανάλια διέλευσης ζώνης στις χαμηλές συχνότητες θα πρέπει να μεταφερθεί αυτή η πληροφορία σε ένα φέρον σήμα κατάλληλης συχνότητας, πράγμα το οποίο μπορεί να γίνει με πολλούς και διαφορετικούς τρόπους.
Δυαδική διαμόρφωση διακριτής – φάσης (BPSK)
Η BPSK είναι η απλούστερη μορφή του PSK. Χρησιμοποιεί δύο φάσεις που χωρίζονται από 180°. Η φάση του φέροντος μετάγεται σε μια από δύο τιμές που παριστάνουν το δυαδικό 1 και το δυαδικό μηδέν. Μπορεί να διαμορφώσει 1bit/symbol και έτσι είναι ακατάλληλη για εφαρμογές με υψηλούς ρυθμούς μετάδοσης δεδομένων.
Διαφορική Δυαδική διαμόρφωση διακριτής – φάσης (DBPSK)
Για ένα σήμα που έχει κωδικοποιηθεί διαφορικά, υπάρχει μια εναλλακτική μέθοδος αποδιαμόρφωσης. Αντί της συνηθισμένης αποδιαμόρφωσης, η φάση μεταξύ δύο διαδοχικών λαμβανόμενων συμβόλων συγκρίνεται και χρησιμοποιείται για να καθορίσει τι δεδομένα πρέπει να είναι.
Από τις παραπάνω γραφικές παραστάσεις παρατηρούμε ότι καθώς αυξάνεται η απόσταση μεταξύ των κόμβων αυξάνεται και το ποσοστό απώλειας των πακέτων επειδή το σήμα εξασθενει με την αύξηση της απόστασης.
Όπως φαίνεται από τη παραπάνω γραφική παράσταση η κωδικοποίηση DBPSK έχει μεγαλύτερες απώλειες σε σχέση με τη BPSK αλλά επειδή η απώλεια από τη χρησιμοποίηση DBPSK είναι αρκετά μικρή έναντι στη μειωμένη πολυπλοκότητα, χρησιμοποιείται συχνά στα συστήματα επικοινωνιών που ειδάλλως θα χρησιμοποιούσαν BPSK.
Επίσης, μελετήστε πώς επηρεάζονται τα παραπάνω αποτελέσματα από το μέγεθος του πακέτου. Δηλαδή επαναλάβετε τις παραπάνω προσομοιώσεις για μέγεθος πακέτου ίσο με 32Β αντί 512Β.
Τέλος αλλάζουμε το μέγεθος του πακέτου από 512Β σε 32Β στο αρχείο app.conf και εκτελούμε όλες τις παραπάνω προσομοιώσεις.
CBR <src> <dest> <items to send> <item size> <interval> <start time> <end time>
CBR 0 1 0 32 0.2MS 0S 0S
CBR 1 0 0 32 0.2MS 0S 0S
Όταν μεταβάλλουμε το μέγεθος των πακέτων από 512Β σε 32Β οι απώλειες των πακέτων αυξάνονται αρκετά καθώς τώρα το πλήθος των πακέτων από 5.000 γίνεται 100.000 και έτσι αυξάνεται η πιθανότητα να μην ληφθεί κάποιο πακέτο από το δέκτη λόγω της αυξημένης κίνησης που παρατηρείται στο μέσο. Γενικά όσο μειώνεται το μέγεθος των πακέτων ή αλλιώς αυξάνεται το πλήθος τους οι απώλειες αυξάνονται.
Όπως φαίνεται από τη παραπάνω γραφική παράσταση η κωδικοποίηση DBPSK και σε αυτή τη περίπτωση έχει μεγαλύτερες απώλειες σε σχέση με τη BPSK.