by Agus Kurniawan
1. November 2010 10:22
On the previous article I wrote how to deploy NS3 on Ubuntu 10.10. Now I would like to share how to build and to run your network simulator program into NS3.
Development Tools
As we know, NS3 support development programming C++ and Python. There are many C++/Python development tools so you choice a tool you have experiences about development.
Getting Started
We start to create folder test on NS3 build folder
Create file hello-world-ns3.cc and write code below ( this code I copy paste from NS3 sample codes, main-simple.cc)
#include <iostream>
#include "ns3/core-module.h"
#include "ns3/helper-module.h"
#include "ns3/node-module.h"
#include "ns3/simulator-module.h"
using namespace ns3;
static void
GenerateTraffic (Ptr<Socket> socket, uint32_t size)
{
std::cout << "at=" << Simulator::Now ().GetSeconds () << "s, tx bytes=" << size << std::endl;
socket->Send (Create<Packet> (size));
if (size > 0)
{
Simulator::Schedule (Seconds (0.5), &GenerateTraffic, socket, size - 50);
}
else
{
socket->Close ();
}
}
static void
SocketPrinter (Ptr<Socket> socket)
{
Ptr<Packet> packet;
while (packet = socket->Recv ())
{
std::cout << "at=" << Simulator::Now ().GetSeconds () << "s, rx bytes=" << packet->GetSize () << std::endl;
}
}
static void
PrintTraffic (Ptr<Socket> socket)
{
socket->SetRecvCallback (MakeCallback (&SocketPrinter));
}
void
RunSimulation (void)
{
NodeContainer c;
c.Create (1);
InternetStackHelper internet;
internet.Install (c);
TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory");
Ptr<Socket> sink = Socket::CreateSocket (c.Get (0), tid);
InetSocketAddress local = InetSocketAddress (Ipv4Address::GetAny (), 80);
sink->Bind (local);
Ptr<Socket> source = Socket::CreateSocket (c.Get (0), tid);
InetSocketAddress remote = InetSocketAddress (Ipv4Address::GetLoopback (), 80);
source->Connect (remote);
GenerateTraffic (source, 500);
PrintTraffic (sink);
Simulator::Run ();
Simulator::Destroy ();
}
int main (int argc, char *argv[])
{
RunSimulation ();
return 0;
}
Create wscript file and write this script
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
env = bld.env_of_name('default')
if not env['ENABLE_EXAMPLES']:
return;
obj = bld.create_ns3_program('hello-world-ns3',
['core', 'simulator'])
obj.source = 'hello-world-ns3.cc'
Create waf file and write this script
exec "`dirname "$0"`"/../waf "$@"
Compile and Run
You can compile and run using ./waf . Make sure you ‘re in test folder and run this script
./waf --run "hello-world-ns3"
Sample of output program you can see picture below
Done. This is a simple program for NS3. If you have question let me know.
by Agus Kurniawan
1. November 2010 09:37
NS3 or Network simulation version 3 is a kind of technology that simulates the network behavior through mathematical modeling and statistical analysis method and then obtains the specific parameters which reflect the characteristics of the network. NS is one of the most famous network simulation software which was developed by LBNL network research group at UC Berkeley in the USA.
Now I would like to introduce how to deploy NS3 on Ubuntu Linux 10.10
Prerequisites
The following list of packages should be accurate for Ubuntu 10.10 release.
requirements for C++ (release)
sudo apt-get install gcc g++ python
requirements for Python (release)
sudo apt-get install gcc g++ python python-dev
Mercurial:
sudo apt-get install mercurial
python bindings:
sudo apt-get install bzr
Debugging
sudo apt-get install gdb valgrind
GNU Scientific Library (GSL):
sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl
The Network Simulation Cradle (nsc):
sudo apt-get install flex bison
To read pcap packet traces:
sudo apt-get install tcpdump
Sqlite for statistics framework
sudo apt-get install sqlite sqlite3 libsqlite3-dev
Xml-based version of the config store
sudo apt-get install libxml2 libxml2-dev
A GTK-based
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
To experiment with virtual machines and ns-3
sudo apt-get install vtun lxc
utils/check-style.py code style check program
sudo apt-get install uncrustify
Doxygen
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-latex-extra texlive-generic-extra texlive-generic recommended
Texinfo
sudo apt-get install texinfo dia texlive texlive-latex-extra texlive-extra-utils texlive-generic-recommended texi2html
ustavo Carneiro's ns-3-pyviz visualizer
sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev
Installation
Now we can start to install NS3. Firstly we download ns-allinone-3.9.tar.bz2 file and put on a specific folder such as repos
wget http://www.nsnam.org/releases/ns-allinone-3.9.tar.bz2
Extract ns-allinone-3.9.tar.bz2
tar xjf ns-allinone-3.9.tar.bz2
Change to directory ns-allinone-3.9 and build NS3
./build.py
If success, you can see output messages displayed as below
'build' finished successfully (..)
Leaving directory './ns-3.9'
ns-3.9 is a folder of NS3 codes and scripts
Testing
After installation, you can test that your NS3 works or not.
Change to directory NS build ( in my case, ns-3.9) and run test script as below
./test.py
If success, you can see picture as below
Then you can develop NS3 program for simulating .
by Agus Kurniawan
3. October 2010 16:46
Perkembangan teknologi jaringan saat ini cukuplah pesat mulai dari jangkauan yang luas hingga harga yang bersaing. Kemudahan akses dan penggunaan menjadi salah satu faktor apakah teknologi jaringan dapat diterima oleh banyak orang terutama mereka yang sering berpergian (mobile user). Pada artikel ini penulis mencoba mengajak pembaca untuk lebih mengetahui teknologi jaringan wireless Ad Hoc yang sangat cocok bagi mereka yang aktivitasnya mobile nya tinggi. Jaringan Wireless Jaringan wireless atau dilingkungan kita dikenal dengan jaringan nirkabel adalah jaringan komunikasi yang tidak memerlukan kabel. Banyak sekali media yang dapat digunakan pada jaringan wireless ini, antara lain Bluetooth Infrared Data Association (IrDA) HomeRF Standard jaringan wireless IEEE 802.11 Bluetooth adalah teknologi komunikasi wireless berbasis gelombang mikro yang berkecepatan tinggi dengan konsumsi energi yang rendah. Design Bluetooth diharapkan dapat digunakan untuk melakukan koneksi antara telpon, laptop, personal digital assistants (PDA) atau peralatan lain yang berbasis Bluetooth. Tampilan contoh peralatan Bluetooth dapat dilihat pada gambar 1. Tidak seperti infrared, Bluetooth tidak memerlukan posisi yang sejajar dari unit yang saling berhubungan. Beberapa fitur Bluetooth dapat dilihat dibagian bawah ini Beroperasi pada 2.56 GHz ISM band Menggunakan Frequency Hop Spread Spectrum (FHSS) Dapat support sampai dengan 8 peralatan dalam suatu jaringan kecil Omnidrectional Jangkauan 10m sampai 100m atau dapat lebih dengan external power amplifier Konsumsi energi 1 mw IrDA adalah organisasi internasioanl yang menciptakan dan mempromosi standard interoperabilitas dengan harga yang murah yaitu infrared data interconnection. IrDA sudah memiliki kumpulan protokol data transfer. Saat ini adapter IrD dapat support untuk serial dan parallel. Tampilan contoh peralatan IrDA dapat dilihat pada gambar 2. Beberapa fitur penting IrDA antara lain Jangkauan hingga 1 meter atau dapat diperluas sepanjang 2 meter. Komunikasi berbasis Bidirectional Data transmisinya mulai dari 9600 bps hingga ada sampai 4 Mbps Data packet diproteksi dengan Cyclic Redundancy Check (CRC) contohnya CRC-16 untuk IrDA kecepatan sampai 1.152 Mbps dan CRC-32 pada 4 Mbps HomeRF adalah bagian dari International Telecommunication Union (ITU) dam diperuntukan untuk standard komuniasi data dan radio frequency (RF). Tampilan contoh peralatan HomeRF dapat dilihat pada gambar 3. Beberapa fitur penting HomeRF antara lain Beroperasi pada 2.45 GHz ISM band Jangkauan hingga 150 kaki Dapat melayani frequency hopping sebesar 50 hops per detik Kapasitas hingga 127 node Konsumsi energi 100mW kecepatan data 1 Mbps dengan menggunakan 2 frequency-shift keying (FSK) modulation dan 2 Mbps untuk 4 FSK modulation Koneksi voice dapat melayani hingg 6 fulll duplex Data keamanan menggunakan algoritma blowfish encryption Data kompresi menggunakan algoritma Lempel-Ziv Ross Williams 3 (LZRW3)-A Jaringan standard 802.11 atau dikenal denan WiFi adalah teknologi jaringan wireless yang banyak digunakan untuk jaringan kecil hingga besar. Peralatan Wifi dapat dibuat oleh semua vendor selama mengikuti standard 802.11. Tampilan contoh peralatan yang mengimplementasi standard 802.11 dapat dilihat pada gambar 4. Secara umum perbandingan Bluetooth, IrDA, HomeRF dan IEEE 802.11 dapat dilihat pada tabel 1. Gambar 1. Bluetooth dalam bentuk USB Gambar 2. IrDA dalam bentuk USB Gambar 3. Salah satu contoh implementasi HomeRF Gambar 4. Contoh peralatan Wifi 802.11 dalam bentuk USB Tabel 1. Perbandingan Bluetooth, IrDA, HomeRF dan IEEE 802.11 Apakah itu Jaringan Wireless Ad Hoc? Setelah kita mengekplorasi jaringan wireless maka akan timbul pertanyaan apakah itu jaringan wireless Ad Hoc?. Jaringan wireless Ad hoc adalah kumpulan node (atau router) wireless mobile yang secara dinamis keberadaannya tanpa menggunakan jaringan infrastruktur yang ada atau administrasi yang terpusat. Jaringan wireless Ad Hoc dapat juga dikatakan sebagai desentraslisasi jaringan wireless. Istilah jaringan wireless ad hoc sebelumnya dikenal dengan jarinan packet radio (PRNET) sekitar tahun 1970 dimana ini disponsori oleh DARPA dan proyek ALOHAnet. Pada jaringan Ad Hoc, router dapat dengan bebas melakukan organiasi jaringan yang berakibat topologi akan berubah dengan cepat dan sulit untuk diprediksi. Dengan fitur ini, jaringan Ad Hoc mengalami beberapa tantangan antara lain Multihop Mobility Kombinasi jaringan yang besar dengan berbagai peralatan yang berbeda Bandwidth Keterbatasan konsumsi battery Terlepas permasalahan diatas, jaringan Ad Hoc juga memerlukan protokol routing karena setiap node memerlukan pertukaran data contohnya seperti terlihat pada gambar 5. Gambar 5. Contoh jaringan wireless Ad Hoc Kegunaan User yang mobile yang ingin berkomunikasi pada situari yang jaringan kabel yang tidak pasti akan memerlukan koneksi untuk keperluan kegiatannya. Oleh karena itu, kehadiran jaringan wireless Ad Hoc dapat membantu aktivitas komunikasi antar user. Misalkan anda berada di bandara dan ketemu dengan teman-teman anda. Selanjutnya anda dan teman anda ingin bertukaran data maka anda dapat memanfaatkan jaringan wireless Ad Hoc anda. Pada kondisi ini, kumpulan mobile host yang terhubung dengan jaringan wireless memerlukan jaringan wireless bersifat sementara tanpa perlu administrasi yang komplek ataupun infrastruktur yang komplek. Group Mobile Ad Hoc network (MANET) yang bagian dari IETF mencoba membuat spesifikasi MANET dan memperkenalkan untuk standard internet. MANET diharapkan dapat disupport untuk jarinangan mobile Ad Hoc dengan berbagai router dan dapat menyelesaikan tantangan pada jaringan ini seperti keterbatasan jangkauan, packet loss, induksi gelombang, dan konsumsi battery. Protokol MAC Layer Pada jaringan wireless Ad Hoc, transmitter menggunakan sinyal radio untuk berkomunikasi dengan menggunakan frekuensi yang sama. Secara umum, setiap node hanya akan menjadi transmitter (TX) atau receiver (RX) pada satu waktu artinya tidak bisa menjadi TX dan RX dalam satu waktu yang sama. Selain itu, komunikasi antra mobile node dibatasi oleh jangkauan transmisi. Tidak seperti jaringan kabel, packet delay yang terjadi pada jaringan wireless Ad Hoc terjadi tidak hanya karena beban trafik tetapi juga beban trafik pada node yang didekatnya, ini dikenal dengan traffic interference. Protokol Medium Access Control (MAC) memegang peranan penting pada performance jaringan Mobile Ad Hoc (MANET). Protokol MAC didefinisikan bagaimana masing-masing mobile node dapat melakukan sharing resource wireless bandwidth yang terbatas secara efisien. Source dan destination kemungkinan letaknya berjauhan dan mungkin masing-masing packet data memerlukan relay dari satu node ke lainnya untuk kasus multihop. Satu tantangan yang mendasar pada penelitian MANET adalah bagaimana meningkatkan throughput jaringan dengan mempertahankan konsumsi energi yang rendah untuk komunikasi packet. Implementasi MAC untuk jaringan wireless Ad Hoc saat ini banyak sekali dilakukan penelitian karena jaringan wireless Ad Hoc mempunyai karateristik yang unik. Metode Carrier Sense Multiple Access (CSMA) MAC yang umumnya digunakan untuk jaringan kabel tidak bisa diterapkan pada jaringan wireless Ad Hoc. Hal ini akan mengakibatkan terjadinya permasalahan hidden-terminal seperti yang terlihat pada gambar 6. Gambar 6. Permasalahan hidden terminal pada jaringan wireless Ad Hoc Terlepas metode yang digunakan untuk implementasi MAC untuk jaringan wireless Ad Hoc, ada beberapa hal yang diperhatikan yaitu Throughput dan delay Fairness Efisiensi energi Support multimedia Protokol Routing Protokol routing adalah Protokol routing Ad Hoc adalah standard bagaimana suatu node menentukan jalur packet ke tujuan pada jaringan Ad Hoc. Membangun protokol routing pada jaringan wireless Ad Hoc tidak mudah seperti yang dibayangan dan ditambah lagi dengan topologi jaringan yang dinamis. Peneliti mencoba membuat metode protokol routing pada jaringan wireless Ad Hoc dan hasilnya banyak sekali metodenya. Pembaca dapat melihatnya pada alamat Wikipedia ini http://en.wikipedia.org/wiki/List_of_ad-hoc_routing_protocols . Protokol Transport Transmission Control Protocol (TCP) dibuat untuk menyediakan data transfer yang reliable. Secara teori, TCP seharusnya independent terhadap teknologi yang berjalan pada infrastruktur tetapi kenyataannya di lapangan hampir implementasi TCP dibuat dengan asumsi diterapkan pada jaringan kabel sehingga ketika ini diimplementasi pada jaringan wireless diperoleh hasil yang buruk. Pada jaringan Ad Hoc, permasalahan TCP congestion tidak hanya terjadi pada network congestion tetapi banyak sekali sumbernya contohnya tingginya bit error rate, path asymmetry, komunikasi multihop sperti hidden terminal. Metode paling mudah untuk protokol transport pada jaringan wireless Ad Hoc dengan menerapkan Split TCP yang makalahnya dapat diunduh pada alamat http://www.cs.ucr.edu/~michalis/PAPERS/split-glo02.pdf Implementasi Jaringan Wireless Ad Hoc Pada OS Windows Microsoft sadar betul bahwa kebutuhan akan jaringan wireless Ad Hoc sangat berguna bagi user. Oleh karena itu, Microsoft sudah menyiapkan fitur jaringan wireless Ad Hoc pada OS sejak OS Windows XP. Pada Windows 7, kita dapat membuat jaringan wireless Ad Hoc melalui Network and Sharing Center., berikut ini langkah-langkahnya: Pada Network and Sharing Center, pilih Set up a new connection or network dengan mengkliknya maka kita akan memperoleh kotak dialog seperti gambar 7 Pilih Setup a wireless ad hoc (computer-to-computer) network Jika selesai klik tombol Next Selanjutnya kita memperoleh kotak dialog seperti gambar 8 mengenai informasi wireless ad hoc network Jika selesai membaca, klik tombol Next Setelah itu kita memperolah kotak dialog untuk mengisi informasi Ad Hoc network seperti yang terlihat pada gambar 9 Isi nama jaringan beserta security key Jika selesai, klik tombol Next Selanjutnya sistem akan membuat jaringan wireless Ad Hoc Jika selesai, kita akan memperoleh kotak dialog seperti yang terlihat pada gambar 10 Tutup kotak dialognya Akhirnya kita telah membuat jaringan wireless Ad Hoc. Kalau kita perhatikan di tray-icon wireless dan mengkliknya akan muncul seperti gambar 11. Pada kondisini ini, komputer kita sedang menunggu koneksi yang masuk. Pastikan user yang akan bergabung ke jaringan wireless Ad Hoc mengetahui security key sesuai dengan inputan pada langkah 7. Gambar 7. Kotak dialog untuk membuat jaringan wireless Ad Hoc Gambar 8. Informasi umum jaringan wireless Ad Hoc Gambar 9. Mengisi konfigurasi jaringan wireless Ad Hoc Gambar 10. Jaringan wireless Ad Hoc telah sukses dibuat Gambar 11. Informasi koneksi jaringan wireless Ad Hoc yang telah dibuat Referensi Subir Kumar Sarkar,T G Basavaraju,C Puttamadappa, Ad Hoc Mobile Wireless Networks, Auerbach Publications, 2008 http://en.wikipedia.org/wiki/List_of_ad-hoc_routing_protocols *Artikel ini telah dipublikasikan ke majalah PC Media Edisi Agustus 2010
by Agus Kurniawan
4. August 2010 09:46
Alhamdullilah, gw baru menyelesaikan video tutorial jaringan komputer untuk bab 3 dari buku Computer Networking : A Top-Down Approach (5th Edition) by James F. Kurose and Keith W. Rose. Selain materi bab 3, gw juga mengilustrasi simulasi jaringan komputer dengan applet. Semua materi video ini dapat dilihat secara gratis di portal PE College.
Status terakhir, video tutorial jaringan komputer belum selesai 100% dimana masih ada 2 bab yang belum selesai yaitu bab 4 dan 5. Sekarang ada 36 video untuk topik jaringan komputer ini, berikut ini video tutorial jaringan komputer sudah selesai:
1.1 Apa Itu Internet?
1.2 Layer Protokol dan Model Servis
2.1 Prinsip Aplikasi Jaringan
2.2 Web dan HTTP
2.3 FTP
2.4 E-Mail: SMTP, POP3, IMAP
2.5 DNS
2.6 Aplikasi P2P
2.7 Pemrograman Socket dengan TCP
2.8 Pemrograman Socket dengan UDP
LAB TELNET :: HTTP
LAB TELNET :: SMTP
LAB TELNET :: POP3
LAB WIRESHARK :: HTTP
3.1 Transport-Layer Services
3.2 Multiplexing and Demultiplexing
3.3 Connectionless Transport: UDP
3.4.1 Principles of Reliable Data Transfer (RDT)
3.4.2 Building Reliable Data Transfer (RDT)
3.4.3 Pipelined Reliable Data Transfer (RDT)
3.4.4 Go-Back-N (GBN)
3.4.5 Selective Repeat (SR)
3.5.1 Connection-Oriented Transport: TCP :: Segment Structure
3.5.2 Connection-Oriented Transport: TCP :: Reliable Data Transfer
3.5.3 Connection-Oriented Transport: TCP :: Flow Control
3.5.4 Connection-Oriented Transport: TCP :: Connection Management
3.6 Principles of Congestion Control
3.7 TCP Congestion Control
Applet Demo :: Transmission versus Propagation Delay
Applet Demo :: Queuing and Loss
Applet Demo :: Message Segmentation
Applet Demo :: HTTP Delay Estimation
Applet Demo :: Recursive/Iterative Queries in DNS
Applet Demo :: Go-Back-N Protocol
Applet Demo :: Selective Repeat
Applet Demo :: Flow Control
Anda dapat menonton tutorial video ini secara gratis di portal PE College dengan alamat http://www.pecollege.net/ViewVideoList.aspx?list=9
Semoga materi berguna untuk semuanya. Jangan lupa memberikan rating ke tutorial ini dan mohon disebarluarkan informasi ini.
by Agus Kurniawan
1. August 2010 23:47
Majalah PC Media edisi Agustus 2010, gw menulis satu artikel yang berhubungan jaringan wireless atau nirkabel. Disini gw fokus ke jaringan wireless ad hoc. Berikut ini ulasannya: Perkembangan teknologi jaringan saat ini cukuplah pesat mulai dari jangkauan yang luas hingga harga yang bersaing. Kemudahan akses dan penggunaan menjadi salah satu faktor apakah teknologi jaringan dapat diterima oleh banyak orang terutama mereka yang sering berpergian (mobile user). Pada artikel ini penulis mencoba mengajak pembaca untuk lebih mengetahui teknologi jaringan wireless Ad Hoc yang sangat cocok bagi mereka yang aktivitasnya mobile nya tinggi. Jaringan Wireless Jaringan wireless atau dilingkungan kita dikenal dengan jaringan nirkabel adalah jaringan komunikasi yang tidak memerlukan kabel. Banyak sekali media yang dapat digunakan pada jaringan wireless ini, antara lain Bluetooth Infrared Data Association (IrDA) HomeRF Standard jaringan wireless IEEE 802.11 Apakah itu Jaringan Wireless Ad Hoc? Setelah kita mengekplorasi jaringan wireless maka akan timbul pertanyaan apakah itu jaringan wireless Ad Hoc?. Jaringan wireless Ad hoc adalah kumpulan node (atau router) wireless mobile yang secara dinamis keberadaannya tanpa menggunakan jaringan infrastruktur yang ada atau administrasi yang terpusat. Jaringan wireless Ad Hoc dapat juga dikatakan sebagai desentraslisasi jaringan wireless. …. Pada artikel ini gw juga memberikan ilustrasi bagaimana realisasi Wireless Ad Hoc pada OS Windows 7. Untuk lebih lengkapnya pembaca dapat membaca artikel ini di majalah PC Media edisi Agustus 2010. Semoga berguna.
by Agus Kurniawan
1. April 2010 00:08
Jaringan komputer dapat dikatakan mata kuliah wajib yang harus dipelajari baik pada ilmu komputer, teknik informatika ataupun teknik elektro. Guna meningkatkan sebaran topik jaringan komputer, gw membuat tutorial dalam video yang dipublikasi oleh PE College, www.pecollege.net .
Tutorial ini dapat diakses secara gratis dimana anda cukup mendaftar diri pada portal PE College. Materi ini mencakup pengenalan model referensi ISO-OSI untuk perancangan lapisan jaringan komputer meliputi
Application Layer
Transport Layer
Network Layer
Link Layer
Local Area Network
Sedangkan isi materi ini dirujuk pada buku Computer Networking : A Top-Down Approach (5th Edition) by James F. Kurose and Keith W. Rose dimana materinya diambil dari bab 1 sampai 5.
Anda dapat menikmati tutorial ini di http://www.pecollege.net/ViewVideoList.aspx?list=9
Saat ini materi belum selesai 100% tetapi sekitar 45%, gw berharap sekitar bulan mei tutorial jaringan komputer dapat diselesaikan.