RSS

Key Perform Indicator (KPI – GSM)

Ecommerce_Key_Performance_Indicators

Seorang Optim di dunia telekomunikasi , sangat kental dengan istilah KPI . kalo berdasarkan standard ITU ( International Telecommunication Union ) , organisasi internasional yang menjadi source standarisasi teknologi telekomunikasi internasional , KPI dibagi menjadi 3 domain besar , yaitu : Accessibility , Retainability dan Integrity .

Accessibility itu maksudnya adalah bagaimana user mampu untuk mendapatkan layanan yang disediakan oleh operator telekomunikasi . beberapa KPI yang tergolong dalam Accessibility adalah : RX level, Random Accses Succses rate ( RACH Suscces Rate ) , SD Drop Rate , SDCCH Suscces Rate , SDCCH Blocking Rate , dan TCH Blocking Rate .

Retainabiity adalah bagaimana user mampu mempertahankan layanan setelah layanan diperoleh  hingga layanan itu dihentikan sendiri oleh user . Beberapa KPI yang digolongkan dalam kategori ini adalah TCH Drop Rate , Drop Call Rate , Erlang per minute rate .

Integrity adalah derajat pengukuran saat layanan berhasil diperoleh user , KPI yang termaksud kategori integrity adalah Handover Succsesfull Rate , FER , RX Qual dan SQI

Nah , pada materi selanjutnya , kita akan membahas lebih dalam beberapa KPI yang sering dipakai sebagai ukuran kwalitas performansi dari suatu jaringan .

 
Leave a comment

Posted by on February 25, 2014 in Technology, Telekomunikasi

 

Drive Test ( The Man Behind Good Signal )

Petunjuk :
1. Pada artikel ini , saya tidak sedang ingin menulis pemaparan teknis bagaimana Drive Test dilakukan
2. Artikel ini tidak ditujukan untuk pemula , tetapi DT Engginer level middle hingga expert

Saat pertama kali mendengar kata “Drive Test” yang ada dipikiran saya saat itu pertama kali adalah sebuah pekerjaan yang mungkin berhubungan dengan supir dan menyupir , and then what ? masih bersangkutan sih .  Berdasarkan Source dari Wikipedia Drive Test adalah “Drive Testing is a method of measuring and assessing the coverage, capacity and Quality of Service (QoS) of a mobile radio network.”
Ini artinya , bahwa data yang didapatkan dari Drive Test adalah User Side Data Sample . Dalam pemaparan apapun itu , Why , How, When dan What menjadi 4 kata Tanya yang biasanya mencover semua penjelasan dari satu materi

Why ( Mengapa dilakukan drive test )

Proses Optimasi yang dilakukan oleh seorang engginer radio network , membutuhkan data yang nyata dari sudut pandang user akan kwalitas signal yang didapatkanoleh user , perubahan beberapa value parameter biasanya dilakukan seorang RNO Engginer dalam mengoptimasi jaringan yang existing, kenapa saya katakana existing ? Karena seorang RNO hanya bertanggung jawab mengoptmasi sebuah jaringan yang sudah seatle . RNO idealnya tidak bertugas untuk melaunching satu site yang masih baru .Data yang didapatkan dari sebuah aktifitas Drive Test berupa log file yang dapat dianalisa oleh seorang RF Engginer , yang memberikan gambaran secara teknis akan case yang didapatkan dilapangan .

24042012232544@Drive test

How ( Bagaimana Drive Test Dilakukan )

Ponsel pasti menjadi perangkat utama yang dipakai dalam melakukan aktifitas drive test , user interface yang digunakan berupa software seperti Tems , nemo atau yang lainnya .

Praguedrivetest

When ( kapan drive test dilakukan )

Sesaat setelah RNO memberikan kabar bahwa site tersebut siap untuk di drive test . Ada beberapa alasan mengapa Drive Test mungkin harus ditunda dulu diataranya :

  • Beberapa parameter yang mungkin masih harus dioptimalkan dulu.
  • Neighbour relation yang belum complete dan dibutuhkan lagi audit untuk setiap relasinya
  • Society case seperti land lord problem , stolen case, site down , site congest , site alarm .

What ( data berupa apa yang diambil )

bechmarking

Semua itu tergantung dari jenis Drive Test yang akan dilakukan , hanya saja ada beberapa sample data yang secara umum diambil, yaitu :

  • Signal intensity
  • Signal quality
  • Interference
  • Dropped calls
  • Blocked calls
  • Anomalous events
  • Call statistics
  • Service level statistics
  • QoS information
  • Handover information
  • Neighbouring cell information
  • GPS location co-ordinates

Kita akan membahas lebih banyak lagi tentang beberapa type Drive Test yang biasa dilakukan diberbagai Project . Cukup sekian dulu yah .

 
Leave a comment

Posted by on January 24, 2014 in Networking

 

Tags: , , , ,

Wireless Radio Network Optimation ( Welcome to The New World Dudes … )

Almost 2 Years , yes 1 tahun 11 bulan saya terjun di dunia Telco di indonesia , satu dunia yang belum terbayangkan sebelumnya setelah lulus , padahal background pendidikan saya di Teknik Informatika ( yang erat kaitannya dengan coding dan network computer optimation ) .
Setelah menyelesaikan pendidikan di IT Telkom , di Program Sarjana S1 Teknik Informatika ( Finnaly , CeCuatu baNgets Yah ..?? ) dan menyandang gelar ST ( Sarjana Tahhapahapa ) , saya dihadapkan pada satu pertanyaan , Mau Jadi apa kau besok onang ?
Yupss, 7 tahun menghabiskan biaya yang gak sedikit , malu donk sama nyokap kalo gw harus nganggur lagi , lamak pulak . Gue ingat , sewaktu lulus , abang gw pernah pernah bilang gini ( dengaN gayAknya yang Sengak itu dengan laNtang dia berkata ) .” Hei Onang , saat lulus , gaji bukan menjadi prioritas ,tapi yang pasti, mau jadi pengemispun dipinggir jalan , pastikan kalo lw itu jadi raja pengemis ( Jadi bocahh tua nakal di pelem yoko donk …?? ) , mau jadi tukang becak pun kau pastikan kalo kau jadi raja tukang becak , mau jadi preman pun kau , pastikan kalo lw jadi raja preman , maksudnya , ketika kau udah terjun di satu bidang , ada 1 hal yang harus lw pastikan , kalo emang beneran cinta bidang itu , why ? Ketika anda mencintai sesuatu , anda akan total didalamnya , ketika anda total didalamnya pastikan anda harus jadi yang terbaik didalamnya .
akhirnya setelah lulus aku memutuskan untuk bekerja di bidang telekomunikasi , wew belajar ilmu baru , belajar soal frekuensi , dasar hapalan emang harus kudu kuat ( gak kayak coding mikirnya ribet )
sebenarnya , ada dua alasan kenapa gue mau terjun ke telco :
1.Uang yang ditawarkan lebih menggiurkan daripada harus berkerja keras di dunia coding meng coding
2.mikirnya gak susah , cuma butuh logika dalam memahami materi2xnya ,kalo di coding atau sejenisnya , udah mikirnya keras uangnya dikit lagi , huahaha ( dasar onang Matreee )
Oke , enough , intinya 2 tahun belakangan ini gw banyak disibukan dengan segala yang berbau frekuensi dan radio optimasi . nah , mengingat gw juga masih nubitol dan dalam progres untuk belajar lebih banyak , kedepannya gw bakalan share ke kalian semua , materi optimasi , baik itu tentang trend dan dunia industri telco dan optimasinya , beberapa soal sertifikasi yang gw dapetin baik dari internet , kerjaan maupun training yang gw dapetin , intinya berbagi wawasan dan apa yang gw tahu lah , why ? cuma dua alasannya :
1. gue orangnya pelupa , kalo belajar sesuatu yang baru dan gak gw tuliskan kembali dalam bahasa gw , otak gw ampe jembot juga gak bakalan paham materi yang gw baca . so , sebaik baiknya orang pasti yang diharapkan orang yang baik dan berguna buat yang laen kan
2. gw pengen sama sama maju , miris liat enggineer local di kantor gw ( termaksud gw ) di maki maki sama orang india kayak babu dan gak punya harga diri , gue pengen industri telco di indonesia di handle sama anak anak bangsa ini , CUKUP LAH KITA DIJAJAH SECARA EKONOMI , MASAK SDM KITA DI NEGARA SENDIRI DIJAJAH , cUIHHhhh ( Gaya JOKOWI Teriak coy )

oke lah , kita lanjut besok besok dengan materi yang lebih banyak yah , Cee YouuuUU Eaaa KakkkKKakkkkk

Salam Hangat ,
Onang Cibi Cibi

 
Leave a comment

Posted by on August 30, 2013 in sehari hari

 

Tags: , , , ,

Routing Protokol Destination-Sequenced Distance Vector (DSDV)

——————————————————————————————————————————

Ronald M Hutabarat

Departement Informatika

Institut Teknologi Telkom

ronaldhutabarat@yahoo.com

—————————————————————————————————————————————-


Sekilas Tentang Jaringan Wireless Ad Hoc

          Perkembangan jaringan komputer mulai bergeser dari pengembangan jaringan berkabel ke jaringan nirkabel (wireless) . Perkembangan ini merupakan tuntutan dari kebutuhan masyarakat akan akses informasi yang cepat dan bisa diakses kapan saja dan dimana saja. Salah satu mode pengembangan dari jaringan nirkabel adalah tipe jaringan nirkabel yang ad hoc. Jaringan Wireless Ad Hoc adalah jaringan yang menghubungkan pasangan node dan sangat tergantung dari jarak transmisi dari tiap tiap node (Mukherjee , 2003) .

          Jaringan Ad Hoc dapat berdiri dan exist tanpa harus menggunakan Infrastruktur yang ada seperti base station berupa accses point ataupun sarana pendukung transmisi data . Tiap tiap device yang berada pada jaringan ini sering disebut NODE . Masing masing node akan berkomunikasi dengan node yang berada dalam satu jaringan Ad hoc tersebut . Jaringan Ad Hoc ini sering pula disebut sebagai MANET (Mobile Ad Hoc Networking)

          Jaringan Ad Hoc mempunyai infrastruktur node jaringan yang tidak permanen. Jaringan ini terdiri atas beberapa node yang bersifat mobile dengan satu atau lebih interface pada setiap nodenya. Setiap node pada jaringan Ad Hoc harus mampu menjaga performance trafik paket data dalam jaringan akibat sifat mobilitas node dengan cara rekonfigurasi jaringan. Sebagai contoh, jika ada node yang bergeser yang mengakibatkan gangguan berupa putus jaringan, maka node yang mengalami gangguan tersebut dapat meminta pembentukan rute link baru untuk meneruskan pengiriman paket data. Beberapa contoh penerapan jaringan Ad Hoc antara lain pembangunan jaringan komunikasi di medan perang untuk beberapa lokasi, pusat-pusat komunikasi di daerah bencana alam, sarana koneksi internet pada stand-stand suatu event/pameran dimana tidak dimungkinkan untuk membangun jaringan kabel atau ketidaktersediaan jaringan kabel.Node node pada jaringan Ad Hoc tidak hanya berperan sebagai pengirim dan penerima data, namun dapat berperan sebagai penunjang node yang lainnya, misalnya mempunyai kemampuan layaknya router. Dengan demikian diperlukan adanya routing protokol dalam jaringan Ad Hoc untuk menunjang proses kirim terima antar node-nodenya.

——————————————————————————————————————————————————-

Sekilas Tentang Routing Protocol Ad Hoc

          Komunikasi antar node yang satu dengan node yang lainnya pada jaringan wireless menggunakan Routing Protokol Ad Hoc.Routing adalah mekanisme penentuan link dari nodepengirim ke node penerima yang bekerja pada layer 3 OSI (Layer Network). Protokol routing diperlukan karena untuk mengirimkan paket data dari node pengirim ke node penerima akan melewati beberapa node penghubung (intermediate node), dimana protokol routing berfungsi untuk mencarikan route link yang terbaik dari link yang akan dilalui melalui mekanisme pembentukan tabel routing. Pemilihan route terbaik tersebut didasarkan atas beberapa pertimbangan seperti bandwith link dan jaraknya.

Daftar Tabel Routing Protocol Ad Hoc

          Jaringan Ad Hoc memiliki dua model protokol routing. Pertama, protokol routing yang bersifat reaktif (reactive), dimana tabel routing dibentuk jika ada permintaan pembuatan route link baru atau perubahan link. Kedua, protokol routing yang bersifat proaktif (proactive), dimana tabel routing dibentuk dan diupdate setiap waktu (secara kontinu) jika terjadi perubahan link . Routing Protokol Destination-Sequenced Distance Vector (DSDV) merupakan Routing Protokol Pro-aktif.

——————————————————————————————————————————————————-

# Source : Ad Hoc Networking – Charles Perkins

Destination-Sequenced Distance Vector (DSDV)

          DSDV merupakan algoritma routing procol ad hoc proaktif yang didasari pada Bellman – Ford yang pertama kali dikenalkan, kontribusi algoritma ini adalah untuk mengatasi Routing Loop. Pada DSDV, digunakan sequence number untuk mengirimkan pesan pada jaringan. Sequence number dihasilkan juga saat ada perubahan dalam jaringan, hal ini terjadi karena sifat table routing node pada pada jaringan yang menggunakan protokol proaktif yang update secara periodik, serta Trigered update uang digunakan oleh node untuk mengupdate node yang masuk dan keluar dari jaringan.
Dalam metode routing DSDV, setiap node yang berada dalam jaringan , akan memelihara tabel routing ke node tetangganya, tabel routing yang dimiliki oleh setiap node berisi tentang : alamat tujuan node, jumlah hop yang diperlukan untuk mencapai tujuan, serta sequenced number. Jika tabel routing dalam satu node telah diupdate, maka akan dipilih rute untuk mencapai node tujuan dengan beberapa pertimbangan sebagai berikut :

Memiliki sequence number yang terbaru, hal ini dapat dilihat dari nilai sequenced number yang paling besar
Jika nilai sequence number sama, maka akan dilihat nilai metricnya, nilai metric yang lebih kecil akan dipilih.

Penerapan protocol DSDV memiliki kelebihan , yaitu :
• DSDV menjamin tidak ada looping route
• DSDV dapat mereduksi masalah count to infinity
• DSDV dapat menghindari trafik lebih dengan kenaikan drastis update penuh untuk dump
• DSDV hanya memaintenence path terbaik menuju tujuan, dari sekian banyak path ketujuan.

Keterbatasan yang dimiliki algoritma routing protocol DSDV ini menjadi kelemahannya, yaitu :

  • Banyak memakan alokasi bandwith untuk broadcasting informasi yang tidak terlalu berguna, meskipun tidak ada perubahan yang berarti pada topologi jaringan, hal ini dikarenakan sifatnya yang selalu update setiap waktunya.
  • DSDV tidak mensupport multi path routing.
  • Sangat sulit untuk mendeterminasi waktu delay saat broadcasting informasi kesemua node.
  • Table routing pada node dijaringan DSDV sangat sulit untuk dimaintence pada jaringan berskala besar, mengingat jumlah node yang banyak dan dan luas jaringan yang semakin diperluas (scalable) yang meningkatkan overhead.

Berikut merupakan proses secara keseluruhan algoritma routing protocol DSDV :

  1. Diawal tranmisi sebelum dilakukan , tiap node memiliki table yang berisi data node node dalam jaringan.
  2. Jika terjadi perubahan topologi jaringan setelah paket data dikirimkan, table routing akan diupdate secara periodic.
  3. Jika tidak ada permasalah pada topologi jaringan, makan node akan dikirimkan setelah node sumber dan node tujuan dinisialisasi, lalu paket akan sampai ke node tujuan.
   

Flowchart Proses Kerja DSDV secara umum

 
2 Comments

Posted by on September 11, 2011 in Networking, Research

 

Routing Protokol Ad Hoc On-demand Distance Vector (AODV)

——————————————————————————————————————————

Ronald M Hutabarat

Departement Informatika

Institut Teknologi Telkom

ronaldhutabarat@yahoo.com

—————————————————————————————————————————————-

          AODV adalah sebuah routing protocol yang dibuat untuk jaringan MANET. AODV adalah on demand routing, dimana algoritma ini akan membangun rute antara node hanya apabila diinginkan oleh source node. AODV memelihara rute tersebut sepanjang masih dibutuhkan oleh source node. AODV menggunakan sequence number untuk memastikan bahwa rute yang dihasilkan adalah loop-free dan memliki informasi routing yang paling update.

          AODV menciptakan suatu rute dengan menggunakan route request (RREQ) dan route reply (RREP). Ketika source node menginginkan suatu rute menuju destination node tetapi belum mempunyai rute yang benar, maka source node akan menginisialisasi route discovery process untuk menemukan rute ke destination node. Source node akan mem-broadcast paket RREQ menuju node tetangganya . RREQ paket berisi source address, destination address, hop counter, source and destination sequence number, dan broadcast ID. Nilai Broadcast ID akan bertambah satu setiap suatu source node mengirimkan RREQ yang baru dan digunakan sebagai identifikasi sebuah paket RREQ. Jika node yang menerima RREQ memiliki informasi rute menuju destination node, maka node tersebut akan mengirim paket RREP kembali menuju source node. Tetapi jika tidak mengetahui maka node tersebut akan mem-broadcast ulang RREQ ke node tetangganya setelah menambahkan nilai hop counter. Node yang menerima RREQ dengan nilai source address dan broadcast ID yang sama dengan RREQ yang diterima sebelumnya akan membuang RREQ tersebut. Source sequence number digunakan oleh suatu node untuk memelihara informasi yang valid mengenai reverse path (jalur balik) menuju ke source node. Pada saat RREQ mengalir menuju node tujuan yang diinginkan, dia akan menciptakan reverse path menuju ke node, setiap node akan membaca RREQ dan mengidentifikasi alamat dari node tetangga yang mengirim RREQ tersebut. Ketika destination node atau node yang memiliki informasi rute menuju destination menerima RREQ maka node tersebut akan membandingkan nilai destination sequence number yang dia miliki dengan nilai destination sequence number yang ada di RREQ. Jika nilai destination sequence number yang ada di RREQ lebih besar dari nilai yang dimiliki oleh node maka paket RREQ tersebut akan dibroadcast kembali ke node tetangganya, sebaliknya jika nilai destination sequence number yang ada di node lebih besar atau sama dengan nilai yang ada di RREQ maka node tersebut akan mengirim route reply (RREP) menuju source node dengan menggunakan reverse path yang telah dibentuk oleh RREQ . Intermediate node yang menerima RREP akan mengupdate informasi timeout (masa aktif rute) jalur yang telah diciptakan. Informasi rute source ke destination akan dihapus apabila waktu timeoutnya habis.

Di dalam AODV setiap node bertanggung jawab untuk memelihara informasi rute yang telah disimpan di dalam routing table-nya. Pada saat pengiriman data apabila terjadi perubahan topologi yang mengakibatkan suatu node tidak dapat dituju dengan menggunakan informasi rute yang ada di routing table, maka suatu node akan route error packet (RRER) ke node tetangganya dan node tetangganya akan mengirim kembali RRER demikian seterusnya hingga menuju source node .Setiap node yang memperoleh RRER ini akan menghapus informasi yang mengalami error di dalam routing table-nya. Kemudian source node akan melakukan route discovery process kembali apabila rute tersebut masih diperlukan.

 
2 Comments

Posted by on September 10, 2011 in Networking, Research

 

Embeded System

Introduction

          Embeded system , benda apa itu , gimana wujudnya ? yang pasti , saat ini kita tidak berbicara tentang hardware atau software , yah meskipun erat kaitan nya sih ,but its oke , lets begin
“A special purpose computer built into a larger device” -> E M B E D E D  S Y S T E M

          Embedded systems mepunyai tugas yang sangat spesifik , dalam kata lain , embeded system tidak multitasking , hanya memiliki satu atau lebih dikit lah fungsinya .Embeded system tidak dapat berdiri sendiri ,saya ambil contoh DVD Player meskipun DVD player punya sistem sendiri , hanya saja , dvd player juga tidak dapat digunakan tanpa dicolokin ke interface device seperti televisi atau jenis lainnya bukan  yah , meskipun dengan kemajuan teknologi saat ini ,dvd player sudah ada yang portable sekaligus display nya bukan ? atau mungkin contoh yang lain adalah microcontroller. Embedded systems (biasanya) merupakan bagian dari piranti yang lebih besar, untuk meningkatkan kapabilitasnya, yang pertama kali mempopulerkan Konsep Emebeded System pertama kali adalah : Apollo Guidance Computer

               Embedded Systems saat ini
• Signal processing systems
– Real-time video, set-top boxes, DVD players, medical
equipment, residential gateways
• Distributed control
– Network routers, switches, firewalls, mass transit
systems, elevators
• “Small” systems
– Mobile phones, pagers, home appliances, toys,
smartcards, MP3 players, PDAs, digital cameras,
sensors, smart badges

——————————————————————————————————————————————————————————————————————–

 Karakteristik Embedded Systems

• Menjadi bagian dari sistem yang lebih besar
– Periferal terbatas
• Application-specific
– Baik hardware maupun software dirancang khusus
untuk aplikasi yang spesifik
– Tetapi, re-programmability merupakan suatu kebutuhan
– ‘HALT’ merupakan suatu bad state!
• Interaksi dengan dunia fisik

——————————————————————————————————————————————————————————————————————–

Problem

Meskipun begitu , ada beberapa isu penting yang menjadi concern pengembangan teknologi embeded system kedepannya, diantaranya adalah :

• Hardware
– CPU, Memory
– Power consumption
– Limited peripherals and slower buses
– Size, weight, environmental reliability
• Software
– Latency
• ‘Hard’ or ‘Soft’ Real-time requirements
– Limited HW resources
– Reliability
• Tidak mudah didebug
– Device heterogeneity
• Interoperabilitas menjadi suatu isu penting!

          Embedded Software
• Tugas utama: ‘Not transformation of data , but interaction with physical world’
• Mengakuisisi sifat-sifat fisika/kimia
lingkungan
– Perlu waktu
– Mengkonsumsi daya
– Tidak berhenti (kecuali gagal beroperasi)

Problem pada Embedded Software
• Mayoritas ditulis oleh mereka yang bukan
computer scientist
– Tantangan untuk CS: menemukan abstraksi yang lebih
baik agar memudahkan pekerjaan domain
– Domain experts biasanya skeptik
• ‘They see Java programs stalling for 1/3 second to perform
garbage collection and update the UI and envision airplanes
falling out of the sky’
• Metoda yang dipakai pada general-purpose
software perlu banyak diadaptasi
– Mungkin diperlukan abstraksi baru

————————————————————————————————————————————————————————————————————–

                                               Sifat-Sifat Embedded Software

1.     Timeliness

• Waktu: secara sistematik telah dibung dari teori komputasi
• RTOS seringkali mereduksi karakterisasi suatu task menjadi sebuah bilangan (yakni, prioritasnya)
• Tetapi: Komputasi memerlukan waktu
– Tetapi, bahkan pada komputer yang sangat cepat, waktu masih perlu dipertimbangkan
– Proses fisik memerlukan waktu
• Perlu ditemukan abstraksi yang memungkinkan kendali waktu !!!

2.     Concurrency

• Di dunia fisik, banyak kejadian berlangsung pada waktu yang sama
• Tantangan: mengkompromikan sekuensialitas software  dengan konsurensi dunia nyata
– Pendekatan klasik (semaphores, monitors, dsb) memberikan fondasi yang baik
• Tetapi : tidak mencukupi
– Pendekatan lain: kompilasikan konkurensi (Estrel)
• Estrel: synchronous/reactive language
– FSM based, deterministic behavior
• Keunggulan: program yang sangat dapat diandalkan
• Kekurangan: terlalu statik untuk sistem tertemtu
– Karena itu diperlukan pendekatan menengah

3.     Liveness
• Program tidak boleh berakhir
– Tidak seperti model komputasi Turing tradisional, HALT tidak boleh terjadi
– Deadlock tidak dapat ditolerir
• Correctness , bukan semata-matamenampilkan jawaban akhir yang benar
– Harus mempertimbangkan hal-hal seperti timing, power consumption, fault recovery, security and robustness

4.     Reactivity

• Sistem disebut interaktif, bila:
– Bereaksi dengan kecepatannya sendiri (atau kecepatan manusia
yang mengendalikannya)
• Sistem disebut transformatsional, bila:
– Mentransformasikan suatu input data menjadi suatu output data
(misalnya perkalian dua buah matriks)
• Sistem disebut reaktif, bila:
– Bereaksi secara kontinu dengan lingkungan, selalu dengan
kecepatan reaksi yang tetap
– Harus beradaptasi terhadap perubahan kondisi
• Sumberdaya dan permintaan dapat sering berubah
– Kendala waktu nyata
– Safety-critical
• Fault-tolerance dapat merupakan isu utama

——————————————————————————————————————————————————————————————————————

                                                                          Operating Systems dan Teknik Penjadwalan

Ada banyak sistem operasi embeded system , beberapa diantaranya :

• Sistem Operasi Bergaya Office
– PalmOS
– WindowsCE
• Real-Time Operating Systems
– VxWorks
– QNX
• Linux
– Linux sudah bersifat ubiquitous
• Banyak piranti menggunakannya
http://www.linuxdevices.com/articles/AT4936596231.html
– Banyak variasi dari ‘soft real time’ ke ‘hard real time’
– Terdapat banyak commercial + open source products
• Lainnya
– TinyOS

 Teknik Penjadwalan pada Embedded Operating Systems

• Cyclic executive
– Static schedulability analysis
• Hasilnya digunakan pada saat runtime
– Hebat untuk tugas-tugas yang periodik
• Tetapi : tidak flexible
• Event-driven non-preemptive
– Tugas-tugas direpresentasikan dengan functions (event
handlers)
– FIFO
– Aman, tetapi terbatas
• Static/dynamic priority preemptive
scheduling
– Static schedulability analysis
– Tidak ada schedule eksplisit: pada saat run-time
laksanakan highest priority task pertama kali
• Rate/deadline monotonic, earliest deadline first,
least slack
– Flexible, tetapi berpotensi bahaya
• Priority inversion
• Deadlock
• Dynamic planning-based scheduling
– Schedulability di-check pada saat runtime untuk task
yang datang secara dinamik
• Schedule yang dihasilkan menentukan kapan eksekusi
• Bila scheduling gagal, lakukan tindakan alternatif
– Flexible dan lumayan predictable
• Dynamic best-effort scheduling
– Tidak ada checking
• Kapan kendala timing dipenuhi hanya dapat diketahui sesudah
task selesai atau deadline tidak terpenuhi
– System berusaha memenuhi deadline
• Tasks dapat di-preempted kapan saja

 
2 Comments

Posted by on July 12, 2011 in Sistem Komputer

 

Instalasi ns-allinone-2.33 pada ubuntu 8.04 hardy + gcc version 4.2.4

1.     SEKILAS TENTANG NETWORK SIMULATOR NS-2

  

Topologi wireless yang disimulasikan menggunakan routing protokol wireless pada ns -2.33

Network simulator (NS) pertama kali dibangun sebagai varian dari real network simulator pada tahun 1989 di UCB (University of California Berkeley) pada tahun 1995,  sekelompok tim gabungan membangaun sebuah perangkat lunak simulasi jaringan internet untuk kepentingan riset interaksi antar protokol dalam kontespengembangan protokol internet pada saat itu maupun masa yang akan datang.

Network Simulator bersifat open source dibawah GPL (Gnu Public lisence) anda dapat mengdownload melalui website NS : http://sourceforge.net/projects/nsnam/files/allinone

Sifat open source ini mengakibatkan pengembangan Ns menjadi lebih dinamis,pemodelan media, protokol network component dan perilaku traffic yang lebih lengkap biladibandingkan dengan software simulator lainya,ini disebabkan Ns digunakan oleh banyak periset dunia bahkan mungkin anda sendiri, akan tetapi karena sifatnya yang open source , pendokumentasian tentang pengembangan berbasis network simulator ini amat jarang , dan kalaupun ada , kebanyakan pengembangnya berasal dari luar negeri sono. Network simulator Ns2 mengsimulasikan jaringan berbasis TCP/IP dengan berbagai macam media anda dapat mengsimulasikan protokol jaringan (TCP/UDP/RTP) traffik beheavior (FTP, telnet CBR,dll.)Queue management (RED),FIFO,CBQ) algoritma routing unicast (DSDV, Link State,) applikasi multimedia berupa layyer video,quality of Service,audio-video dan transcoding, Ns juga mengimplementasikan berberapa MAC (Medium Access Controler) seperti IEEE 802.11 WiFi, 802.16 WiMax diberbagai kondisi jaringan misalnya Point to Point,point to Molti Point dan celleluler, bahkan untuk media Satelite.

wimax yang disimulasikan pada ns-2.33

Simalator ini menggunakan bahasa pemrograman tcl sebagai cara untuk menyusun skenario simulasinya, output dari simulasi ini akan menghasilkan dua files , dot nam dan dot tr . dot tr berisi data data QOS (Quality of service nya) , sedangkan dot nam berupa files untuk animasinya .Nah , karena yang namanya penelitian , semisal pada skripsi saya , biasanya ada parameter uji ,nah jika saya ada menshare file dengan format .AWK dibawah , itu adalah contoh dari parameter uji.Parameter uji sebenarnya sederhana kok , asalkan anda tahu defenisi dan rumus dari parameter uji tersebut, sehingga anda bisa tahu kolom mana sajah yang akan dipanggil dan dihitung dengan menggunakan sedikit kodingan pada file dot awk nya. Penelitian ini tentang Membandingkan 2 routing protokol pada jaringan hybrid ad hoc dengan memakai 5 parameter uji yaitu : PDR , PLR , convergence time , routing overhead dan end to end delay. Nanti jika ada waktu , saya akan share lebih banyak lagi tentang skripsi dan simulasi saya , atau mungkin anda bisa add saya di ronaldhutabarat@yahoo.com -> sebagai id ym saya

nb : pada riset ini , ada 2 jenis parameter uji yang digunakan , yaitu

  1. parameter uji untuk menilai kwalitas algoritma routing protokolnya
  2. parameter uji untuk menilai kwaliats jaringannya

——————————————————————————————————————————————————————————————————————

2.     TAHAP INSTALASI

# sebelumnya yang harus anda perhatikan , anda jangan mengcopy bulat bulat isi blog ini , karena sesuaikan dengan root anda yah

# tahapan patching beberapa routing protokol tambahan seperti , ZRP , OLSR , TORA akan saya posting di thread berikutnya

nah , pertama kita masuk keterminal dech . ketik perintah2x dibawah ini

ronald@riset:~$ sudo apt-get install gcc g++ make automake libxmu-dev

ato kalo mo lengkap skalian aja install build essentialnya

ronald@riset:~$ apt-get install build essential

kopiin file ns-allinone-2.33.tar.gz ke direktori suka2 lw. kalo gw, gw save di /home/ronald/

ronald@riset:~$ tar xvzf ns-allinone-2.33.tar.gz
ronald@riset:~$ cd ns-allinone-2.33
ronald@riset:~/ns-allinone-2.33$ ./install

sekarang lanjut ke direktory /home/ronald/ns-allinone-2.33/ns-2.33/

ronald@riset:~/ns-allinone-2.33$ cd ns-2.33/

ini buat install nam ke system

ronald@riset:~/ns-allinone-2.33/ns-2.33$ sudo make install

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

nah , terus kalo udah lw install , setting dah path nya gans…
klo udah masukin path2 library untuk mengeksekusi ns ama nam. tambahkan pada file .bashrc

ketikan command  :   ronald@riset:~gedit ~/.bashrc


# LD_LIBRARY_PATH
OTCL_LIB=/home/ronald/ns-allinone-2.33/otcl-1.13
NS2_LIB=/home/ronald/ns-allinone-2.33/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB

# TCL_LIBRARY
TCL_LIB=/home/ronald/ns-allinone-2.33/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB

# PATH
XGRAPH=/home/ronald/ns-allinone-2.33/bin:/home/ronald/ns-allinone-2.33/tcl8.4.18/unix:/home/ronald/ns-allinone-2.33/tk8.4.18/unix
NS=/home/ronald/ns-allinone-2.33/ns-2.33/
NAM=/home/ronald/ns-allinone-2.33/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

masih di direktori yang sama , ketikan perintah ini pada terminal

ronald@riset:~/ns-allinone-2.33/ns-2.33$ ./validate

dah selese lw bisa memvalidasi NS dengan cara berikut, makan waktu lama…bisa makan waktu ampe 2x dari waktu instalasi loh

XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXXOXOXO

NB : SETTING PATH DULU BARU VALIDASI , JANGAN KEBALIK , INGA – INGA ,TUNG TUNG TUNG TUNG

XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOOXOXOXOXOXOXOXOXOXOOXOXOXOX

validasi yang bener berjalan dengan benar kalo ada tulisan nya begini nih :

validate overall report: all tests passed

nah , untuk ngecek instalasi ns udah benar lw bisa ketikan di command begini :

ronald@riset:~/ns-allinone-2.33/ns-2.33$ ns
atau
ronald@riset:~/ns-allinone-2.33/ns-2.33$ ./ns

nah , kalo muncul tanda % , artinya instalsi sukses , ns udah berjalan

————————————————————————————————————————————————————————————————————

3.     INSTALASI TRACEGRAPH

TRACEGRAPH

nah…skarang tinggal nginstal tracegraphnya, katanya biar ngeditnya rada enakan jadi pake tracegraph..okeh… file yang dibutuhin itu mglinstaller.gz  ama  tracegraph202linux.tar.gz.

paketnya bisa lw dapetin di : http://www-public.int-evry.fr/~gauthier/ns2/

atau jika link diatas tidak valid lagi , kamu bisa googling dan cari di 4shared dech , banyak kok di share di internet

kopi kan file mglinstaller.gz ama tracegraph202linux.tar.gz ke direktory sesuka lw klo gw di kopi ke directory /home/ronald/tracegraph/ trus extract deh…

ronald@riset:~$ cd tracegraph
ronald@riset:/home/ronald/tracegraph~$ tar –xvzf tracegraph202linux.tar.gz
ronald@riset:/home/ronald/tracegraph~$ gunzip mglinstaller.gz

ganti permission semua file dlam directory ke 777 , maksud nya adalah folder tracegraphnya bisa dibaca , ditulis bahkan di execute baik untuk admin maupun user yang lain

ronald@riset:/home/ronald~$ chmod 777 ns-allinone-2.33/*
ronald@riset:/home/ronald~$ chmod 777 tracegraph/*

trus install dulu mglinstaller ini library buat ngejalanin TRACEGRAPH.

ronald@riset:~$ ./mglinstaller

masukin path library ke file .bashrc, caranya :

ronald@riset:~$ nano ~/.bashrc
# Matlab 6.1 runtime libraries export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ronald/tracegraph/bin/glnx86

ama ini buat path trgraph nya

PATH=$PATH:$XGRAPH:/home/ronald/ns-allinone-2.33/ns-2.33/:/home/ronald/tracegraph/tracegraph202/

trus masuk direktori ronald@riset:~/tracegraph/tracegraph202$

Tes running TRACEGRAPH

ronald@riset:~/tracegraph/tracegraph202$ ./trgraph

——————————————————————————————————————————————————————————————————————-4.        4.     CONTOH SCRIPT WIRELESS DENGAN 4 NODE + 2 UNIT ACCSES POINT + 1 SERVER FTP + dengan beberapa parameter uji

# Source                 : laboratorium teknik switching it telkom

# parameter uji        : delay , throughput , jitterr dan packet loss

# routing protokol    : dsdv


—————————————————————————————————————————————————–

wireless.tcl

set opt(chan)   	Channel/WirelessChannel        		;# channel type
set opt(prop)   	Propagation/TwoRayGround       		;# radio-propagation model
set opt(netif)  	Phy/WirelessPhy                		;# network interface type
set opt(mac)    	Mac/802_11                     		;# MAC type
set opt(ifq)    	Queue/DropTail/PriQueue        		;# interface queue type
set opt(ll)     	LL                             		;# link layer type
set opt(ant)    	Antenna/OmniAntenna            		;# antenna model
set opt(ifqlen)         50                     	        	;# max packet in ifq
set opt(nn)             4                              	        ;# number of mobilenodes
set opt(adhocRouting)   DSDV                            	;# routing protocol

set opt(cp)     	""                             		;# cp file not used
set opt(sc)     	""                             		;# node movement file. 

set opt(x)      	1000                           		;# x coordinate of topology
set opt(y)      	1000                           		;# y coordinate of topology
set opt(seed)   	0.0                            		;# random seed
set opt(stop)   	250                            		;# time to stop simulation

set opt(ftp1-start)     100.0

set num_wired_nodes     2
set num_bs_nodes        2  			       				;# number of base nodes

# ======================================================================

# create simulator instance
set ns_   [new Simulator]

# set up for hierarchical routing
$ns_ node-config -addressType hierarchical

AddrParams set domain_num_ 3           		;# number of domains
lappend cluster_num 1 1 1              		;# number of clusters in each domain
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 2 3 3            		;# number of nodes in each cluster
AddrParams set nodes_num_ $eilastlevel 		;# of each domain

set tracefd  [open wireless.tr w]
set namtrace [open wireless.nam w]
$ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)

# Create topography object
set topo   [new Topography]

# define topology
$topo load_flatgrid $opt(x) $opt(y)

# create God
#   2 for AP1 dan AP2
create-god [expr $opt(nn) + $num_bs_nodes]

#create wired nodes
set temp {0.0.0 0.0.1}           				;# hierarchical addresses
for {set i 0} {$i < $num_wired_nodes} {incr i} {
    set W($i) [$ns_ node [lindex $temp $i]]
}

# Configure for AP1 &AP2
$ns_ node-config 	-mobileIP OFF \
                 		-adhocRouting $opt(adhocRouting) \
                 		-llType $opt(ll) \
                		 -macType $opt(mac) \
                 		-ifqType $opt(ifq) \
                 		-ifqLen $opt(ifqlen) \
                 		-antType $opt(ant) \
                 		-propType $opt(prop) \
                 		-phyType $opt(netif) \
                 		-channelType $opt(chan) \
						-topoInstance $topo \
                 		-wiredRouting ON \
						-agentTrace ON \
                 		-routerTrace ON \
                 		-macTrace OFF 

# Create AP1 and AP2
set AP1 [$ns_ node 1.0.0]
set AP2 [$ns_ node 2.0.0]
$AP1 random-motion 0
$AP2 random-motion 0
$AP1 color blue
$AP2 color red
$AP1 label "AP arsya1"
$AP2 label "AP arsya2"

# Position (fixed) for base-station nodes (AP1 & AP2).
$AP1 set X_ 600.000000000000
$AP1 set Y_ 600.000000000000
$AP1 set Z_ 0.000000000000

$AP2 set X_ 650.000000000000
$AP2 set Y_ 600.000000000000
$AP2 set Z_ 0.000000000000

# create a mobilenode that would be moving between AP1 and AP2.
# note address of fahman indicates its in the same domain as AP1.
$ns_ node-config -wiredRouting OFF

set fahman [$ns_ node 1.0.1]
set node_(0) $fahman
$node_(0) base-station [AddrParams addr2id [$AP1 node-addr]]
$fahman label "fahman"

#baru imam
set imam [$ns_ node 1.0.2]
set node_(1) $imam
$node_(1) base-station [AddrParams addr2id [$AP1 node-addr]]
$imam label "imam"

#baru bagus
set bagus [$ns_ node 2.0.1]
set node_(2) $bagus
$node_(2) base-station [AddrParams addr2id [$AP2 node-addr]]
$bagus label "bagus"

#baru abdul
set abdul [$ns_ node 2.0.2]
set node_(3) $abdul
$node_(3) base-station [AddrParams addr2id [$AP2 node-addr]]
$abdul label "abdul"

#letak imam
$imam set Z_ 0.000000000000
$imam set Y_ 500.000000000000
$imam set X_ 400.000000000000

# letak fahman
$fahman set Z_ 0.000000000000
$fahman set Y_ 600.000000000000
$fahman set X_ 400.000000000000

#letak bagus
$bagus set Z_ 0.000000000000
$bagus set Y_ 700.000000000000
$bagus set X_ 400.000000000000

#letak abdul
$abdul set Z_ 0.000000000000
$abdul set Y_ 800.000000000000
$abdul set X_ 400.000000000000

# goes back to HA
$ns_ at 50.000000000000 "$fahman setdest 600.000000000000 700.000000000000 20.000000000000"
$ns_ at 50.000000000000 "$imam setdest 500.000000000000 700.000000000000 20.000000000000"
$ns_ at 50.000000000000 "$bagus setdest 700.000000000000 700.000000000000 20.000000000000"
$ns_ at 50.000000000000 "$abdul setdest 800.000000000000 700.000000000000 20.000000000000"

$ns_ at 100.000000000000 "$imam setdest 990.000000000000 500.000000000000 20.000000000000"
$ns_ at 100.000000000000 "$fahman setdest 990.000000000000 600.000000000000 20.000000000000"
$ns_ at 100.000000000000 "$bagus setdest 990.000000000000 700.000000000000 20.000000000000"
$ns_ at 100.000000000000 "$abdul setdest 990.000000000000 800.000000000000 20.000000000000"

$ns_ at 150.000000000000 "$imam setdest 500.000000000000 500.000000000000 20.000000000000"
$ns_ at 150.000000000000 "$fahman setdest 600.000000000000 500.000000000000 20.000000000000"
$ns_ at 150.000000000000 "$bagus setdest 700.000000000000 500.000000000000 20.000000000000"
$ns_ at 150.000000000000 "$abdul setdest 800.000000000000 500.000000000000 20.000000000000"

$ns_ at 200.000000000000 "$imam setdest 400.000000000000 500.000000000000 20.000000000000"
$ns_ at 200.000000000000 "$fahman setdest 400.000000000000 600.000000000000 20.000000000000"
$ns_ at 200.000000000000 "$bagus setdest 400.000000000000 700.000000000000 20.000000000000"
$ns_ at 200.000000000000 "$abdul setdest 400.000000000000 800.000000000000 20.000000000000"

# create links between wired and BaseStation nodes
$ns_ duplex-link $W(0) $W(1) 5Mb 2ms DropTail
$ns_ duplex-link $W(1) $AP1 5Mb 2ms DropTail
$ns_ duplex-link $W(1) $AP2 5Mb 2ms DropTail

$ns_ duplex-link-op $W(0) $W(1) orient down
$ns_ duplex-link-op $W(1) $AP1 orient left-down
$ns_ duplex-link-op $W(1) $AP2 orient right-down

# setup TCP connections between a wired node and the MobileHost
#warna-warna
$ns_ color 0 blue
$ns_ color 1 red
$ns_ color 2 green
$ns_ color 3 magenta

$W(0) label "Server FTP"
$W(1) label "Router"

set tcp1 [new Agent/TCP]
$tcp1 set class_ 0
set sink1 [new Agent/TCPSink]
$ns_ attach-agent $W(0) $tcp1
$ns_ attach-agent $fahman $sink1
$ns_ connect $tcp1 $sink1
set ftp1 [new Application/FTP]
$ftp1 attach-agent $tcp1
$ns_ at 3.0 "$ftp1 start"

set tcp2 [new Agent/TCP]
$tcp2 set class_ 1
set sink2 [new Agent/TCPSink]
$ns_ attach-agent $W(0) $tcp2
$ns_ attach-agent $imam $sink2
$ns_ connect $tcp2 $sink2
set ftp2 [new Application/FTP]
$ftp2 attach-agent $tcp2
$ns_ at 3.0 "$ftp2 start"

set tcp3 [new Agent/TCP]
$tcp3 set class_ 2
set sink3 [new Agent/TCPSink]
$ns_ attach-agent $W(0) $tcp3
$ns_ attach-agent $abdul $sink3
$ns_ connect $tcp3 $sink3
set ftp3 [new Application/FTP]
$ftp3 attach-agent $tcp3
$ns_ at 3.0 "$ftp3 start"

set tcp4 [new Agent/TCP]
$tcp4 set class_ 3
set sink4 [new Agent/TCPSink]
$ns_ attach-agent $W(0) $tcp4
$ns_ attach-agent $bagus $sink4
$ns_ connect $tcp4 $sink4
set ftp4 [new Application/FTP]
$ftp4 attach-agent $tcp4
#$ns_ at  $opt(ftp2-start) "$ftp2 start"
$ns_ at 3.0 "$ftp4 start"

# Define initial node position in nam

for {set i 0} {$i < $opt(nn)} {incr i} {

    # 20 defines the node size in nam, must adjust it according to your
    # scenario
    # The function must be called after mobility model is defined

    $ns_ initial_node_pos $node_($i) 30
}     

# Tell all nodes when the siulation ends
for {set i 0} {$i < $opt(nn) } {incr i} {
    $ns_ at $opt(stop).0 "$node_($i) reset";
}
$ns_ at $opt(stop).0 "$AP1 reset";
$ns_ at $opt(stop).0 "$AP2 reset";

$ns_ at $opt(stop).0002 "puts \"NS EXITING...\" ; $ns_ halt"
$ns_ at $opt(stop).0001 "stop"
proc stop {} {
    global ns_ tracefd namtrace
    close $tracefd
    close $namtrace
    exec nam wireless.nam &
    exec awk -f delay.awk wireless.tr &
    exec awk -f packetloss.awk wireless.tr &
    exec awk -f throughput.awk wireless.tr &
    exec awk -f jitter.awk wireless.tr &
    exec xgraph delay.tr -geometry 400x800 &
exit 0
}

# some useful headers for tracefile
puts $tracefd "M 0.0 nn $opt(nn) x $opt(x) y $opt(y) rp \
	$opt(adhocRouting)"
puts $tracefd "M 0.0 sc $opt(sc) cp $opt(cp) seed $opt(seed)"
puts $tracefd "M 0.0 prop $opt(prop) ant $opt(ant)"

puts "Starting Simulation..."
$ns_ run

------------------------------------------------------------------------------------------------------------------------
delay.awk
BEGIN {
         for (i in send) {
                 send[i] = 0
		 sendt[i] = 0
         }
         for (i in recv) {
                 recv[i] = 0
		 recvt[i] = 0
         }
         delay = 0
         num = 0
         avg_delay = 0
}

{
         # Trace line format: normal
         if ($2 != "-t") {
                event = $1
                time = $2
                node_id_s = $3
		node_id_d = $4
		pkt_type = $5
		pkt_size = $6
		pkt_attrib = $7
                pkt_id = $12
         }
         # Trace line format: new
         if ($4 == "AGT" || $4 == "RTR") {
                 event = $1
                 time = $2
                 node_id_d = $3
                 pkt_type = $7
                 pkt_size = $8
                 flow_id = $5
                 pkt_id = $6
         }

         # Store packets sent
         if (event == "+" && node_id_s == "0" && pkt_type == "tcp") {
                 send[pkt_id] = time
		 sendt[pkt_id] = 1
         #        print("send[",pkt_id,"] = ",time)
         }
         # Store packets arrival time
         if (event == "r" && node_id_d == "_4_" && pkt_type == "tcp") {
                 recv[pkt_id] = time
		 recvt[pkt_id] = 1
         #        print("recv[",pkt_id,"] = ",time)
         #       print(" --> delay[",pkt_id,"]= ",recv[pkt_id]-send[pkt_id])
        if (recvt[pkt_id] == 1 && sendt[pkt_id] == 1) {
		print (time," ",(recv[pkt_id]-send[pkt_id])) > "delay.tr" }
        }
}

END {
        # Compute average delay
        for (i in recv) {
                if (sendt[i] == 1 && recvt[i] == 1) {
                     delay += recv[i] - send[i]
                     num ++

                }
	}

        if (num != 0) {
                avg_delay = delay / num
        } else {
                avg_delay = 0
        }
        print("")
        print("")
        print("==> Average delay = ",avg_delay,"s")
        print("                  = ",avg_delay*1000,"ms")

}

------------------------------------------------------------------------------------------------------------------------
jitter.awk
BEGIN {
       num_recv=0
       for (i in sendTime) {
                 sendTime[i] = 0
         }
       for (i in recvTIme) {
                 recvTime[i] = 0
         }

}

{
    # Trace line format: normal
 	if ($2 != "-t") {
 	event     = $1
  	time      = $2
  	node_id_s = $3
 	node_id_d = $4
  	flow_id   = $8
  	pkt_id    = $12
  	pkt_size  = $6
  	pkt_type  = $5

 	}

    # Trace line format: new
 	if ($4 == "AGT" || $4 == "RTR") {
#  	         flow_t   = $45
#  	         level    = $19
                 event    = $1
                 time     = $2
                 node_id_d = $3
                 pkt_type = $7
                 pkt_size = $8
                 flow_id  = $5
                 pkt_id   = $6
 	}

    # Store packets send time
 	if (event == "+" && pkt_type == "tcp" && node_id_s == "0") {
  	sendTime[pkt_id] = time
 	}

    # Store packets arrival time
 	if (event == "r" && pkt_type == "tcp" && node_id_d == "_4_") {
  	recvTime[pkt_id] = time
  	num_recv++
 	}
}

END {
    # Compute average jitter
	jitter1 = jitter2 = tmp_recv = 0
 	prev_time = delay = prev_delay = processed = 0
 	prev_delay = -1

 	for (i=0; processed<num_recv; i++) {
  	if(recvTime[i] != 0) {
          			tmp_recv++
   				if(prev_time != 0) {
    							delay = recvTime[i] - prev_time
    							e2eDelay = recvTime[i] - sendTime[i]
    							if(delay < 0) delay = 0
    							if(prev_delay != -1) {
     										jitter1 += abs(e2eDelay - prev_e2eDelay)
     										jitter2 += abs(delay - prev_delay)
    									     }
    							prev_delay = delay
    							prev_e2eDelay = e2eDelay
   			  			   }
   				prev_time = recvTime[i]
				processed++
 			      }

 	 }
}

END {

       print("One way jitter       = ",jitter1*1000/tmp_recv," ms");
       print("Inter arrival jitter = ",jitter2*1000/tmp_recv," ms");
}

function abs(value) {
			if (value < 0) value = 0-value
			return value
		    }
-------------------------------------------------------------------------------------------------------------------------
packetloss.awk

BEGIN {
         for (i in send) {
                 send[i] = 0
         }
         for (i in recv) {
                 recv[i] = 0
         }
         tx = 0
         drop = 0
         pkt_loss = 0
}

{
         # Trace line format: normal
         if ($2 != "-t") {
                event = $1
                time = $2
                node_id_s = $3
		node_id_d = $4
		pkt_type = $5
		pkt_size = $6
		pkt_attrib = $7
                pkt_id = $12
         }
         # Trace line format: new
         if ($4 == "AGT" || $4 == "RTR") {
                 event = $1
                 time = $2
                 node_id_d = $3
                 pkt_type = $7
                 pkt_size = $8
                 flow_id = $5
                 pkt_id = $6
         }

         # Store packets sent
         if (event == "+" && node_id_s == "0" && pkt_type == "tcp") {
                 send[pkt_id] = 1
                 #printf("send[%g] = 1\n",pkt_id)
         }
         # Store packets arrival time
         if (event == "r" && node_id_d == "_4_" && pkt_type == "tcp") {
                 recv[pkt_id] = 1
                 #printf("\t\trecv[%g] = 1\n",pkt_id)
         }

}

END {
         #printf("%10g ",flow)
         for (i in send) {
                 if (send[i] == 1) {
                         tx ++
                         if (recv[i] == 0) {
                                 drop ++
                                 #printf("pkt %g not recvd\n",i)
                         }
                  }
         }
         if (tx != 0) {
                 pkt_loss = drop / tx
         } else {
                 pkt_loss = 0
         }
	 print("")
         print("Packet sent        = ",tx)
	 print("Packet dropped 	   = ",drop)
	 print("==> Packet loss    = ",pkt_loss*100,"%")
	 print("")
}

------------------------------------------------------------------------------------------------------------------------
Throughput.awk

BEGIN {
         for (i in send) {
                 send[i] = 0
         }
         for (i in recv) {
                 recv[i] = 0
         }
         tx = 0
         drop = 0
         pkt_loss = 0
	 pkt_rcvd = 0
	 time_obsrv = 200
}

{
         # Trace line format: normal
         if ($2 != "-t") {
                event = $1
                time = $2
                node_id_s = $3
		node_id_d = $4
		pkt_type = $5
		pkt_size = $6
		pkt_attrib = $7
                pkt_id = $12
         }
         # Trace line format: new
         if ($4 == "AGT" || $4 == "RTR") {
                 event = $1
                 time = $2
                 node_id_d = $3
                 pkt_type = $7
                 pkt_size = $8
                 flow_id = $5
                 pkt_id = $6
         }

         # Store packets sent
         if (event == "+" && node_id_s == "0" && pkt_type == "tcp") {
                 send[pkt_id] = 1
                 #printf("send[%g] = 1\n",pkt_id)
         }
         # Store packets arrival time
         if (event == "r" && node_id_d == "_4_" && pkt_type == "tcp") {
                 recv[pkt_id] = 1
                 #printf("\t\trecv[%g] = 1\n",pkt_id)
         }
}

END {
         #printf("%10g ",flow)
         for (i in send) {
                 if (send[i] == 1) {
                         tx ++
                         if (recv[i] == 0) {
                                 drop ++
                                 #printf("pkt %g not recvd\n",i)
                         }
                  }
         }
         if (tx != 0) {
                 pkt_loss = drop / tx
		 pkt_rcvd = tx - drop
         } else {
                 pkt_loss = 0
         }
	 print("")
         print("Packet sent             = ",tx)
	 print("Packet success received = ",pkt_rcvd)
	 print("==> Throughput		= ",pkt_rcvd/time_obsrv,"packets/s" )
	 print("			= ",(pkt_rcvd/time_obsrv)*(8/1000000),"Mbps" )
}

------------------------------------------------------------------------------------------------------------------------
Source : Laboraturium Switching IT Telkom
 

patching Routing Protokol OLSR ->
 tersedia untuk ns-allinone-2.33-rc4 dan ns-allinone-2.29 

patching untuk TORA ->
 tersedia untuk NS-allinone-2.30 (pada lingkungan Red Hat 8)

 Patching untuk AODV-UU ->
 tersedia untuk ns-allinone-2.34 
 
19 Comments

Posted by on July 12, 2011 in Networking

 

Tags: , ,

 
Follow

Get every new post delivered to your Inbox.