4 BAB II LANDASAN TEORI 2.1 GATEWAY Gateway, bila dilihat

advertisement
BAB II
LANDASAN TEORI
2.1 GATEWAY
Gateway, bila dilihat pada kamus Inggris Indonesia diartikan sebagai pintu
gerbang. Namun pada dunia komputer, gateway dapat berarti juga sebagai jembatan
penghubung antar satu sistem dengan sistem lain yang berbeda, sehingga dapat terjadi
suatu pertukaran data antara sistem tersebut (Romzy Imron Rozidi. Membuat Sendiri
SMS Gateway Bebasis Protokol SMPP. Yogyakarta : Andi, 2004).
Gateway digunakan untuk interkoneksi jaringan dimana masing-masing jaringan
memiliki arsitektur yang sangat berbeda. Jaringan yang dihubungkannya mempunyai
protokol yang berbeda mulai dari lapisan hubungan data sampai dengan lapisan
aplikasi.
Gateway juga merupakan bentuk khusus dari router yang digunakan untuk
bertukar informasi dengan router lain yang berlainan dengan cara mengolah
informasinya maupun cara pencarian rutenya. Jadi, bila suatu jaringan yang berisi
sekumpulan router berjenis sama disebut autonomus system, hendak berhubungan
dengan jaringan sistem router lain, diperlukan satu buah gateway untuk masingmasing jaringan. Kedua buah gateway ini saling bertukar informasi dengan protokol
antar router yang berbeda sistem, yang disebut ERP (Exterior Router Protocol).
Protokol yang dibuat untuk komunikasi gateway ini bekerja dalam bentuk
permintaan dan tanggapan yang dikirim dalam datagram Internet Protocol (IP).
Contoh permintaan adalah permintaan untuk menjadi router tetangga. Permintaan
tersebut dapat menjadi dua jenis tanggapan yaitu diterima atau ditolak.
4
5
workstation
application
application
application
presentation
presentation
presentation
session
session
session
transport
transport
transport
network
network
network
data link
data link
data link
physical
physical
physical
gateway
LAN
WAN
Gambar 2.1. Transaksi Gateway pada OSI Layer
Pada Gambar 2.1. Tiga kegiatan gateway yang berkaitan dengan komunikasi antar
sistem adalah :
1) Neighbour acquisition
Terjadi ketika dua router bertetangga tetapi berbeda sistem otonomi saling
menyetujui untuk saling bertukar informasi pencarian jalan. Prosedur resmi
untuk persetujuan ini diperlukan mengingat kemungkinan tidak tersedianya
salah satu router untuk berbagi informasi. Prosedur ini dimulai dengan salah
satu router mengirimkan permintaan untuk bertetangga. Router lainnya dapat
memberi tanggapan menerima atau menolak. Untuk mengakhiri ketanggapan,
salah satu router dapat mengirimkan pesan untuk berhenti dan dijawab
dengan persetujuan.
2) Neighbour reachability
Prosedur ini dilakukan bila hubungan ketanggapan telah ditetapkan, dan
digunakan untuk memelihara hubungan. Suatu gateway harus yakin bahwa
tetangganya masih ada dan masih berstatus tetangga. Untuk melakukan ini,
kedua gateway harus saling bertukar pesan “Hello” dan “I heard you” secara
berkala.
3) Network reachability
6
Prosedur ini berkaitan dengan penukaran permintaan dan tanggapan secara
berkala. Bila salah satu gateway mengirimkan permintaan poll, yaitu meminta
informasi jaringan, maka tetangganya menanggapi dengan pesan update.
Tanggapan ini berisi jaringan yang dapat dijangkau oleh gateway pengirim
poll, termasuk jarak masing-masing jaringan tersebut. Dari informasi ini
gateway peminta tadi dapat menyusun tabel pencarian jalan.
2.2 JARINGAN AD HOC
Jaringan ad hoc adalah jaringan yang memiliki konfigurasi peer to peer dan tidak
memerlukan access point. Peer to peer wireless LAN hanya mensyaratkan wireless
NIC didalam setiap device yang terhubung ke jaringan. Dengan konfigurasi peer to
peer ini, maka kita dapat membentuk sebuah jaringan untuk penggunaan sewaktu
waktu (Budhi Irawan. Jaringan Komputer : Graha Ilmu, 2005).
Jaringan ad hoc dilihat dari sisi topologi jaringan merupakan kumpulan dari
beberapa node jaringan wireless multihop yang dinamis. Setiap node mempunyai
interface wireless untuk berkomunikasi dengan node lainya. 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 performa trafik paket
data dalam jaringan akibat jaringan mobilitas node dengan cara rekonfigurasi
jaringan. Sebagai contoh, jika ada node yang bergeser yang mengakibatkan gangguan
berupa putusnya jaringan, maka node yang mengalami gangguan tersebut dapat
meminta pembentukan rute link baru untuk meneruskan pengiriman paket data.
2.2.1
Karakteristik Jaringan Ad Hoc
Node-node pada jaringan ad hoc tidak hanya berperan sebagai pengirim dan penerima
data, namun dapat berperan sebagai penunjang node yang lainya, misalnya
7
mempunyai kemampuan layaknya router, dengan demikian diperlukan adanya
protokol routing dalam jaringan ad hoc untuk menunjang proses kirim terima antar
node. Berikut karakteristik jaringan ad hoc:
1) Multiple Wireless Link
Sifat node yang mempunyai sifat mobility dapat memiliki beberapa interface
yang terhubung ke beberapa node lainya.
2) Dynamic Topology
Dikarenakan sifat node yang mobile maka topologi jaringannya dapat berubah
secara random atau acak. Sebagai akibat protokol routing mempunyai
masalah yang lebih kompleks dibandingkan dengan jaringan kabel dengan
node yang tetap.
3) Limited Resource
Seperti jaringan wireless lainnya, jaringan ad hoc dibatasi oleh masalah daya
dan kapasitas memori.
2.2.2
Protokol Routing pada Jaringan Ad Hoc
Protokol adalah suatu protokol yang menjalankan tugasnya sebagai pencari rute
atau link dari node pengirim ke node penerima yang berjalan pada layer tiga di OSI
layer. Protokol routing tersebut bertugas mengirimkan paket dari node penerima ke
node pengirim melalui node penghubung dimana protokol routing tersebut berfungsi
mencari rute terbaik.
Jaringan ad hoc memiliki dua model protokol routing diantaranya yaitu (Subir
Sumar Sakar, T.G. Basavaraju and C. Puttamadappa. Ad hoc Mobile Wireless
Network New York London : Auerbach Publications, 2007) :
1) Protokol routing yang bersifat reaktif yaitu protokol yang membentuk tabel
routing apabila diperlukan. Diantaranya, Ad hoc On-demand Distance Vector
(AODV), Dinamic Source Routing (DSR), Temporelly Ordered Routing
Algorithm (TORA), Cluster-based Routing Protocol (CBRP), Location-Aded
Routing (LAR), Ant Colony-Based Algorithm (ARA).
8
2) Protokol routing yang bersifat proaktif yaitu protokol yang membentuk dan
mengupdate tabel routing setiap waktu. Diantaranya, Wireless Routing
Protocol (WRP), Destenation-Squenced Distance Vector (DSDV), Optimized
Link State Routing (OLSR), Fisheye State Routing (FSR).
3) Protokol routing hybrid adalah protokol yang menggabungkan antara proaktif
dan reaktif. Diantaranya, Zone Routing Protocol (ZRP), Zone BasedHierarchical Link State (ZHLS).
2.2.3
Arsitektur Jaringan Ad Hoc pada OSI Layer
Arsitektur jaringan ad hoc pada OSI layer adalah difokuskan pada lapisan bawah
pada layer OSI yaitu :
1) Layer Network
Fungsi utama dari layer network adalah pengalamatan dan routing.
Pengalamatan pada layer network adalah pengalamatan secara logikal.
2) Layer Data Link
Fungsi utama dari layer data link diantaranya arbitration yaitu pemilihan
media fisik, addressing dan pengalamatan fisik, error detection yang
menentukan apakah data telah terkirim sampai tujuan, identify data
encapsulation yaitu menentukan pola header pada suatu data.
3) Layer Fisik
Pada layer ini adalah perangkat hardware yang digunakan.
2.3 JARINGAN HYBRID
Konsep jaringan hybrid adalah gabungan dari jaringan infrastruktur dan ad
hoc yang dapat dilihat pada Gambar 2.2. Di satu sisi ada jaringan dengan infrastruktur
dan disisi lain terdapat node yang dapat bergerak bebas (mobile node) dengan
fasilitas routing. Hal ini memungkinkan rute multi-hop antara mobile node dengan
9
base station. Hal ini menyebabkan ruang lingkup area dari base station menjadi lebih
luas, ide jaringan hybrid adalah untuk efesiensi dari jaringan infrastruktur yang ada,
untuk memperluas dari area base station dan mengurangi konsumsi daya listrik.
Gambar 2.2. Jaringan Hybrid
2.4 WIRELESS FIDELITY (WiFi)
WiFi merupakan kependekan dari Wireless Fidelity, yang dapat diartikan sebagai
sekumpulan standar yang digunakan untuk Jaringan Lokal Nirkabel (Wireless Area
Network-WLAN) yang didasari pada IEEE 802.11. Standar dari spesifikasi dari wifi
adalah 802.11 a, 802.11 b, 802.11 g, dan 802.11 n untuk jelsasnya terdapat pada
Tabel 2.1.
Awalnya WiFi ditunjukan untuk membangun jaringan nirkabel dan LAN (Local
Area Network), namun sekarang banyak WiFi digunakan dalam mengakses internet.
Hal ini memungkinkan apabila seseorang mempunyai PC atau Laptop yang
dilengkapi kartu jaringan (wireless card) atau Personal Digital Asisten (PDA) untuk
terhubung dengan internet dengan menggunakan access point terdekat.
10
Tabel 2.1. Tabel Spesifikasi WiFi
Spesifikasi
Kecepatan
Frekuensi Band
Cocok dengan
802.11b
11 Mbps
~ 2.4 Ghz
b
802.11a
54 Mbps
~ 2.4 Ghz
a
802.11g
54 Mbps
~ 2.4 Ghz
b, g
802.11n
100 Mbps
~ 5 Ghz
b, g, n
Pada frekuensi WiFi, ada 11 channel yang diijinkan beroperasi, masing-masing 5
Mhz, yaitu :
1) Channel 1
: 14.2 Mhz
2) Channel 2
: 4.17 Mhz
3) Channel 3
: 4.22 Mhz
4) Channel 4
: 4.27 Mhz
5) Channel 5
: 4.32 Mhz
6) Channel 6
: 4.37 Mhz
7) Channel 7
: 4.42 Mhz
8) Channel 8
: 4.47 Mhz
9) Channel 9
: 4.52 Mhz
10) Channel 10
: 4.57 Mhz
11) Channel 11
: 4.62 Mhz
2.5 TRANSMISION CONTROL PROTOCOL/INTERNET PROTOCOL
TCP/IP (Transmision Control Protocol/Internet Protocol) adalah standar
komunikasi data yang digunakan oleh komunitas internet dalam proses tukar menukar
data dari satu komputer ke komputer lainnya dalam jaringan internet. Protokol ini
tidaklah dapat berdiri sendiri karena protokol ini merupakan kumpulan dari protokolprotokol. Protokol ini juga merupakan protokol yang paling banyak digunakan pada
11
saat ini. Data tersebut di implementasikan dalam bentuk perangkat lunak (software)
pada sistem operasi.
Protokol TCP/IP dikembangkan pada tahun 1970-an sampai 1980-an sebagai
sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan
untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah
standar jaringan terbuka yang bersifat independent terhadap mekanisme transport
jaringan fisik yang digunakan, sehingga dapat digunakan dimana saja. Protokol ini
menggunakan skema pengalamatan sederhana yang disebut alamat IP (Internet
Protocol Address) yang mengijinkan hingga beberapa ratus juta komputer terhubung
dalam jaringan internet. Protokol ini juga bersifat routable yang artinya dapat di
implementasikan dengan berbeda sistem, seperti Sistem Operasi Windows dan Linux.
2.5.1
Arsitektur TCP/IP
Arsitektur TCP/IP tidak berlandaskan pada tujuh lapisan OSI layer, tetapi
menggunakan model refrensi DARPA (United State Defense Advanced Research
Project Agency) atau badan riset di Amerika Serikat. TCP/IP mengimplementasikan
arsitektur berlapis yang terdiri dari empat lapis. Empat lapis ini dapat dipetakan
(meski tidak secara langsung) kedalam lapisan OSI. Empat lapis ini kadang-kadang
disebut DARPA Model, Internet Model, atau DOD Model, mengingat yang pertama
mengembangkan TCP/IP adalah Badan Riset Amerika Serikat.
Pada Gambar 2.3. Setiap lapisan yang dimiliki oleh kumpulan protokol
diasosiasikan dengan protokolnya masing-masing. Protokol utama dalam TCP/IP
adalah sebagai berikut :
1) Protokol Lapisan Aplikasi bertanggungjawab menyediakan akses kepada
aplikasi terhadap layanan jaringan TCP/IP. Protokol ini mencakup protokol
DHCP, DNS, HTTP, FTP, SMTP, dan SNMP.
2) Protokol Lapisan Antar Host berguna untuk membangun komunikasi
menggunakan sesi koneksi. Protokol dalam lapisan ini adalah TCP dan UDP.
12
3) Protokol Lapisan Internetwork (lapisan jaringan) bertanggung jawab
melakukan pemetaan dan enkapsulasi paket-paket jaringan menjadi paketpaket IP. Protokol yang berjalan pada lapisan ini adalah IP, ARP, ICMP, dan
IGMP.
4) Protokol Lapisan Antar Muka Jaringan bertanggung jawab dalam meletakkan
frame-frame pada jaringan diatas media jaringan yang digunakan. TCP/IP
dapat bekerja dengan banyak teknologi transport, mulai dari teknologi
transport dalam LAN (Ethernet dan Token Ring) MAN dan WAN.
Gambar 2.3. Arsitektur TCP/IP dibandingkan dengan Model Lapisan DARPA
dan Model Lapisan OSI Layer
2.6 LINUX UBUNTU VERSI 9.10
Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe unix.
Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan
sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya
13
pada umumnya, kode sumber Linux dapat dimodifikasi, digunakan dan di
distribusikan kembali secara bebas oleh siapa saja.
Ubuntu merupakan salah satu distribusi linux yang berbasiskan debian proyek
ubuntu resmi disponsori oleh Canonical Ltd yang merupakan perusahaan milik
seorang kosmonot asal Afrika Selatan Mark Shuttleworth. Nama ubuntu diambil dari
nama sebuah konsep ideologi di Afrika Selatan, “Ubuntu” berasal dari bahasa kuno
Afrika, yang berarti “rasa perikemanusian terhadap sesama manusia”.
Tujuan dari distribusi Linux Ubuntu adalah membawa semangat yang terkandung
di dalam filosofi Ubuntu kedalam dunia perangkat lunak. Ubuntu adalah sistem
operasi lengkap berbasis Linux, tersedia secara bebas dan mempunyai dukungan baik
yang berasal dari komunitas maupun tenaga ahli profesional. Ubuntu mempunyai
filosofi sebagai berikut :
1) bahwa perangkat lunak harus tersedia dengan bebas biaya,
2) bahwa aplikasi perangkat lunak tersebut harus dapat digunakan dalam bahasa
lokal masing-masing dan untuk orang-orang yang mempunyai keterbatasan
fisik,
3) bahwa pengguna harus mempunyai kebebasan untuk mengubah perangkat
lunak sesuai dengan apa yang mereka butuhkan.
Perihal kebebasan inilah yang membuat Ubuntu berbeda dari perangkat lunak
berpemilik (proprietary) bukan hanya peralatan yang anda butuhkan tersedia secara
bebas biaya, tetapi anda juga mempunyai hak untuk memodifikasi perangkat lunak
anda sampai perangkat lunak tersebut bekerja sesuai dengan yang anda inginkan.
2.7 AD HOC ON-DEMAND DISTANCE VECTOR (AODV)
AODV pertama kali dibuat pada tahun 1997, setelah DSR diusulkan terlebih
dahulu. Protokol ini seperti DSDV tetapi tidak keseluruhan demikian. Karena konsep
penunjukan jarak (distance vector) sangat lemah, maka AODV berubah dari tabel
sendiri (table driven) yang sifatnya proaktif menjadi sesuai permintaan (on-demand)
yang siafatnya reaktif. Bjorn Wiberg dan Erik Nordstrom dari Uppsala University
14
Swedia, mengembangkan routing protokol yang berbasis AODV yang diberi nama
AODV-UU. Sampai laporan ini ditulis, versi AODV-UU telah mencapai versi 0.9.6.
AODV protokol routing adalah suatu protokol routing yang digunakan dalam
jaringan ad hoc (http://www.faqs.org/rfcs/rfc3561.html). Pada AODV setiap node
diperuntukan sebagai router dan rute diperoleh jika diperlukan. Protokol tersebut
bertujuan untuk menemukan rute terdekat dalam jaringan ad hoc. AODV
menggunakan rute yang simetris. Dia akan mencari rute lain apabila ada rute yang
rusak. Ketika AODV dijalankan pada node satu, maka AODV tersebut mengirimkan
pesan Hello untuk mencari tetangganya.
AODV menggunakan mekanisme penemuan rute. Mekanisme dari protokol
routing AODV adalah sebagai berikut :
1) protokol ini akan membangun tabel rute apabila diperlukan,
2) untuk membedakan antara koneksi jaringan yang diluar AODV dan
menentukan topologi,
3) menyebabkan informasi apabila ada perubahan jaringan dan jaringan
rusak.
2.7.1
Format Rute pada Protocol Routing AODV
Proses penemuan rute dimulai ketika AODV dijalankan pada node dan node
tersebut ingin berkomunikasi kepada node yang lain. Format rute dalam protokol
AODV ada dua yaitu :
1) Rute Penemuan (Route Discovery)
Pada Gambar 2.4. Rute penemuan adalah sebuah mekanisme dimana sebuah
node sumber ingin mengirimkan paket ke node tujuan, harapan dapat
menemukan rute pada tujuan tersebut. Rute ini digunakan bila sebuah node
ingin paket ke node tujuan dan tidak mengetahui alamat tujuan tersebut. Jenis
rute penemuan yaitu, rute penemuan (RREQ) dan rute balasan (RREP).
15
Gambar 2.4. Contoh Rute Penemuan (Route Discovery)
2) Rute Pemeliharaan (Route Maintenance)
Pada Gambar 2.5. Rute pemeliharaan adalah mekanisme sebuah node ingin
mengirimkan paket ke node tujuan, rute ini dapat mendeteksi jaringan yang
rusak atau jaringan yang tidak dapat di pakai dan rute ini akan menghentikan
penggunaan rute tersebut. Jenis rute pemeliharaan yaitu rute update dan rute
error (RRER).
Gambar 2.5. Contoh Rute Pemeliharaan (Route Maintenance)
AODV memerlukan setiap node untuk menjaga setiap table rute yang berisi
sebagai berikut:
1)
IP Address tujuan
:
Berisi IP Address tujuan yang diperlukan untuk
menemukan rute.
2)
Nomor urut tujuan
:
Berfungsi pula dalam membantu penemuan
rute.
3)
Hop selanjutnya
:
Loncotan atau hop berikutnya bisa berupa
tujuan atau node yang di tengah, hop
selanjutnya ini di rancang untuk meneruskan
paket ke node tujuan.
4)
Jumlah Hop
:
Jumlah hop dari alamat IP sumber ke alamat IP
tujuan.
16
5)
Lifetime
:
Waktu dalam milidetik yang digunakan untuk
node penerima permintaan rute (RREQ).
6)
Status sebuah rute
:
Sebuah rute memiliki status up (valid) dan
down (tidak valid).
2.8 AD HOC ON-DEMAND DISTANCE VECTOR–UPPSALA UNVERSITY
(AODV-UU)
AODV-UU adalah implementasi protokol routing AODV pada Linux, yang
dikembangkan oleh Universitas Uppsala, Swedia. AODV-UU ini berjalan sebagai
user-space daemon dan memelihara kernel tabel routing. AODV-UU ditulis dengan
bahasa pemrograman C dan telah diterbitkan dibawah GNU General Public License
(GPL). AODV-UU mengimplementasikan hampir semua hal pada AODV. Salah satu
tujuan dari AODV-UU adalah untuk memenuhi implementasi dari AODV yang
sesuai dengan draft terakhir dan tujuan ini menopang pengembangan perangkat lunak
yang berkelanjutan. Kebutuhan sistem dari AODV-UU lebih sederhana, dengan
menggunakan distro linux versi kernel 2.4.x bersama dengan menggunakan kartu
jaringan wireless (ini juga memungkinkan digunakan pada jaringan kawat). Sebagai
tambahan, AODV-UU dapat di cross-compile untuk digunakan pada platform ARM,
sehingga AODV-UU ini dapat digunakan pada PDA yang popular seperti COMPAQ
iPAQ dan Sharp Zaurus.
2.8.1
Konfigurasi
AODV-UU menyediakan banyak pilihan perintah untuk mengatur operasinya. Pilihan
ini disediakan sebagai parameter pada command line untuk aodvd routing daemon.
Perintah pilihan yang tersedia adalah sebagai berikut:
1) daemon mode (-d, --daemon): menjalankannya di backgound,
17
2) force gratuitous (-g, --force-gratuitous): memaksa gratuitous flag untuk
diterapkan pada semua RREQ,
3) help (-h, --help): menampilkan informasi bantuan,
4) interface (-i, --interface): menspesifikasikan interface jaringan mana yang
akan digunakan pada AODV-UU. Default-nya adalah interface awal jaringan
wireless tersebut,
5) hELLO jittering (-j, --hello-jitter): menonaktifkan jitter dari pesan HELLO.
6) logging (-l, --log): mengaktifkan logging ke AODV-UU logfile,
7) routing table logging (-r N, --log-rt-table N): mencatat isi dari tabel routing
ke tabel routing logfile setiap N detik,
8) N HELLOs (-n N, --n-hellos N): memerlukan pesan N HELLO untuk diterima
dari sebuah node sebelum ditetapkan sebagai node tetangganya,
9) uni-directional hack (-u, --unidir-hack): memperbolehkan pendeteksian dan
penghindaran dari link uni-directional. Ini masih fitur percobaan,
10) gateway mode (-w, --gateway-mode): memperbolehkan dukungan internet
gateway. Ini juga masih fitur percobaan,
11) disabling of expanding ring search (-x, --no-expanding-ring): menonaktifkan
perluasan daerah pencarian untuk RREQ, yang normalnya digunakan untuk
membatasi penyebaran RREQ didalam jaringan,
12) no wait-on-reboot (-D, --no-worb); menonaktifkan penundaan selama 15 detik
wait-on-reboot pada saat startup,
13) version information (-V, --version); menampilkan informasi versi dan
copyright.
2.8.2
Interaksi Dengan Internet Protokol
Mengingat AODV merupakan protokol yang reaktif, maka penentuan rute
dilakukan berdasar pada permintaan. Hal ini membutuhkan implementasi protokol
routing yang mampu meneruskan permintaan (request) ke tujuan saat rute tujuan
tersebut tidak ada. Penghapusan rute pada tabel routing yang telah lewat batas
18
waktunya membutuhkan dukungan dari setiap host untuk pemantauan paketnya.
Implementasi AODV sebelumnya seperti Multicast ad-hoc (Mad-hoc) AODV tidak
dapat melakukan hal tersebut diatas. Hal ini menghambat pengoperasian pada
protokol yang berorientasi koneksi seperti TCP, dimana awal paket sangat vital untuk
setup koneksi. Sejak itu, penanganan paket pada linux telah mengalami perkembang
yang sangat cepat. Khususnya software yang disebut Netfilter telah dikembangkan,
yang dapat memberikan penanganan paket yang sangat fleksibel. AODV-UU
menggunakan Netfilter untuk pemprosesan semua paket dan keperluan modifikasi.
2.9 NETWORK SIMULATOR
Network Simulator NS-2 adalah suatu interpreter yang object-oriented, dan
discrete event-driven yang dikembangkan oleh University of California Berkeley dan
USC ISI sebagai bagian dari proyek Virtual Internet Testbed (VINT). NS menjadi
salah satu alat yang sangat berguna untuk menunjukan simulasi jaringan yang
melibatkan Local Area Network (LAN), Wide Area Network (WAN), akan tetapi
fungsi dari alat ini telah berkembang selama beberapa tahun belakangan ini untuk
memasukkan didalamnya jaringan nirkabel (wireless) dan juga jaringan ad hoc.
Ada beberapa keuntungan menggunakan NS sebagai perangkat lunak pembantu
analisis dalam penelitian, antara lain adalah :
1) NS dilengkapi dengan tool validasi yang digunakan untuk menguji kebenaran
pemodelan yang ada pada NS.
2) Secara default, semua pemodelan NS akan dapat melewati proses validasi.
3) Pemodelan media, protokol, dan komponen jaringan yang lengkap dengan
perilaku trafiknya sudah disediakan pada library NS.
4) NS juga bersifat open source dibawah Gnu Public License (GPL), sehingga
NS dapat di-download dan digunakan secara gratis.
5) Sifat open source juga mengakibatkan pengembangan NS menjadi lebih
dinamis.
19
2.9.1
Struktur Network Simulator
NS dibangun menggunakan metoda object-oriented dengan bahasa C++ dan OTcl
(variant object oriented dari Tcl). NS menginterpretasikan script simulasi yang ditulis
dengan OTcl. Seorang user harus mengeset komponen-komponen pada lingkungan
simulasi seperti :
1) Object penjadwalan event.
2) Library komponen jaringan.
3) Library modul setup.
Gambar 2.6. Skema Network Simulator
Pada Gambar 2.6. User menuliskan simulasinya dengan script OTcl, dan
menggunakan komponen jaringan untuk melengkapi simulasinya. Jika user
memerlukan komponen jaringan baru, maka user dengan bebas untuk menambahkan
dan mengintegrasikan pada simulasinya atau pada NS-2. penjadwalan event (event
scheduler) berfungsi sebagai komponen utama selain pencetus (trigger) event
komponen jaringan simulasi (seperti mengirim paket, memulai dan menghentikan
tracing). Pada Gambar 2.7. Sebagian dari NS-2 ditulis dalam Bahasa C++ untuk
alasan efisiensi. Jalur data (data path), ditulis dalam Bahasa C++, dipisahkan dari
jalur kontrol (control path), ditulis dalam Bahasa OTcl. Objek jalur data dikompilasi
dan kemudian interpreter OTcl melalui OTcl linkage (tclcl) yang memetakan metode
dan variabel pada C++ menjadi objek dan variabel pada OTcl. Objek C++ dikontrol
20
oleh objek OTcl. Hal ini memungkinkan untuk menambahkan metode dan variabel
kepada C++ yang dihubungkan dengan objek OTcl. Hirarki linked class pada C++
memiliki korespondansi dengan OTcl. Hasil yang dikeluarkan oleh NS-2 berupa file
trace, harus diproses dengan menggunakan tool lain, seperti Network Animator
(NAM), perl, awk, atau gnuplot.
Gambar 2.7. C++ dan OTcl : Duality
2.9.2
Fungsi Network Simulator
Beberapa fungsi yang tersedia pada NS adalah untuk jaringan kabel atau tanpa
kabel, tracing, dan visualisasi. Lebih jelasnya sebagai berikut:
1) Mendukung jaringan dengan kabel
-
Protokol routing Distance Vector : Link State.
-
Protokol Transport : TCP dan UDP.
-
Sumber trafik : Web, FTP, Telnet, Cbr, dan Real Audio.
-
Tipe antrian yang berbeda : Drop trail dan RED.
-
Quality of Service (QoS) : Intergrated Services dan Differentiated Sevices.
-
Emulation.
21
2) Mendukung jaringan tanpa kabel (wireless) protokol routing ad hoc
-
AODV, DSR DSDV, TORA, Jaringan Hybrid, Mobile IP, Satelit, dan SensoMAC.
3) Model Propagasi : two-ray ground, free space, dan shadowing.
-
Tracing
-
Visualisasi
-
Network Animator
-
TraceGraph
4) Kegunaan
-
Pembangkit pergerakan mobile : setdest –v (versi) –n (jumlah node) –p
(waktu pause) –s (kecepatan) –t (waktu simulasi) –x (panjang area) –y (lebar
area) > (file keluaran)
-
Pembangkit pola trafik (CBR / TCP traffic) : Ns cbrgen.tcl [-type cbr | tcp] [nn jumlah node] [-seed seed] [-mc koneksi] [-rate rata-rata]
2.9.3
Format File Trace
Terdapat dua tipe format file trace, lama dan baru. Setiap trace dimulai dengan
sebuah karakter atau singkatan yang menandakan tipe trace, selanjutnya diikuti
dengan format trace yang tetap atau variabel.
Format file trace dimulai dengan satu sampai empat kemudian diikuti dengan flag
atau sepasang nilai yang sama dengan trace NAM. Huruf pertama dari flag dengan
dua huruf menunjukkan tipe flag :
N : Sifat Node
I : Informasi tingkat paket IP
H : Informasi “loncatan” berikutnya (Next Hop)
M : Informasi tingkat paket MAC
P : Informasi spesifik paket
22
Nilai untuk flag –Hd bisa –1 atau –2. Jika bernilai –1, maka artinya paket itu
adalah paket broadcast, dan jika bernilai –2, maka artinya node tujuan belum
ditentukan. Nilai –2 umumnya digunakan untuk paket yang melalui tingkatan agent (N1 AGT ) dan routing (-N1 RTR) dan untuk jelasnya pada Tabel 2.2.
Tabel 2.2. Format File Trace
Event
Abbreviation
Flag
Type
Value
-t
double
Time (* For Global Setting)
-Ni
int
Node ID
-Nx
double
Node X Coordinate
-Ny
double
Node Y Coordinate
-Nz
double
Node Z Coordinate
-Ne
double
Node Energy Level
-Nl
string
Network trace Level (AGT,
RTR, MAC, etc.)
Wireless r: Receive
Event
d: Drop
-Nw
string
Drop Reason
-Hs
int
Hop source node ID
f: Forward
-Hd
int
Hop destination Node ID, -1, -2
-Ma
hexadecimal Duration
-Ms
hexadecimal Source Ethernet Address
-Md
hexadecimal Destination Ethernet Address
-Mt
hexadecimal Ethernet Type
-P
string
Packet Type (arp, dsr, imep,
tora, etc.)
-Pn
string
Packet Type (cbr, tcp)
s: Send
23
2.10
PEMPROGRAMAN PERL
Perl adalah bahasa pemrograman untuk segala keperluan, dikembangkan pertama
kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada tanggal 18
Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl
tersedia pula untuk berbagai sistem operasi varian Unix (SunOS, Linux, BSD, HPUX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS,
VMS, EBCDIC, dan PocketPC. Dukungan terhadap pemrograman berbasis obyek
(object oriented programming/OOP) ditambahkan pada Perl 5, yang pertama kali
dirilis pada tanggal 31 Juli 1993. Proyek pengembangan Perl 6 dimulai pada tahun
2000, dan masih berlangsung hingga kini tanpa tanggal yang jelas kapan mau dirilis.
Ini dikatakan sendiri oleh Larry Wall dalam satu pidatonya yang dikenal dengan seri
The State of the Onion.
Dua di antara karakteristik utama Perl adalah penanganan teks dan berbagai jalan
pintas untuk menyelesaiakn persoalan-persoalan umum. Tidak heran jika Perl sangat
populer digunakan dalam program-program CGI (Common Gateway Interface) dan
berbagai protokol Internet lainnya. Seperti diketahui, TCP/IP sebagai basis bagi
semua protokol Internet yang dikenal sekarang ini menggunakan format teks dalam
komunikasi data. Seperti juga bahasa populer lainnya, Perl menerima banyak
kritikan. Meski banyak di antaranya hanya berupa mitos, atau berlebih-lebihan, tapi
terdapat juga sejumlah kritikan yang valid. Salah satunya adalah, sintaksnya susah
dibaca, karena banyak menggunakan simbol-simbol yang bukan huruf dan angka.
Perl menyediakan berbagai fasilitas bagi penggunannya untuk menulis program
dalam berbagai gaya dan bentuk sesuai dengan keperluannya. Dalam hal ini Perl
memperkenalkan motto TMTOWDI, dalam bahasa Inggris ini adalah singkatan dari
There's More Than One Way To Do It, atau terjemahan bebasnya, terdapat lebih dari
satu cara untuk menyelesaikan suatu persoalan. Tanpa bisa dihindari, motto ini juga
menjadi sumber kritikan. Artinya, Perl tidak memiliki standar penyelesaian masalah.
Padahal tidak demikian. Hanya karena terdapat lima atau selusin cara untuk
menyelesaikan masalah bukan berarti semua cara tersebut setara dalam berbagai
24
aspek kualitas. Dan, dokumentasi Perl penuh dengan berbagai contoh penggunaan
yang direkomendasikan, dan juga contoh penggunaan yang tidak direkomendasikan
dengan berbagai alasan.
Seperti juga bahasa lainnya, Perl menyediakan fasilitas pemrograman standar
seperti penggunaan variabel, fungsi (built-in function), kontrol logika (if-else), dan
iterasi (while, for, foreach). Kontrol switch baru akan disediakan di Perl 6, namun di
Perl 5 dapat diemulasikan dengan mudah. Perl membolehkan programer untuk
membuat fungsi sendiri (subroutine), mengenalkan pembatasan cakupan variabel
secara hirarkis, penggunaan komentar, serta pembuatan dokumentasi terstruktur
bersandingan dengan kode program. Sejak Perl 5 dikeluarkan, Perl mendukung
pemrograman berbasis obyek (OOP), disusul kemudian dengan thread programming,
serta memperbaharui penggunaan namespace. Fasilitas yang paling digemari
pengguna Perl, regular expression (atau regex), telah ada sejak Perl 2. Dari versi ke
versi regex makin dikembangkan sehingga diakui sebagai implementasi regex paling
lengkap. Tidak heran kemudian muncul implementasi regex yang dikenal sebagai
PCRE, atau Perl-compatible regular expression.
Perl menyediakan sejumlah fasilitas untuk memastikan bahwa programer dapat
membuat program yang aman dari serangan cracker. Jika programer menginginkan,
Perl menyediakan linkungan pemrogaman yang lebih ketat yang akan menangkap
kesalahan atau potensi kesalahan sekecil apapun sebelum program bisa dijalankan.
Fasilitas pemrograman berorientasi jaringan sudah terintegrasi, juga penanganan dan
pemrosesan berkas (file handling) dan setara berkas (seperti diketahui, di sistem Unix
dan variannya, segala sesuatu dianggap berkas dan bisa diperlakukan sebagai berkas).
Sebelumn threading diperkenalkan, Perl sudah menyediakan fasilitas untuk
menjalankan lebih dari satu proses secara paralel. Sebagai bahasa yang diciptakan
dalam tradisi Unix, Perl sedari awal mendukung pembuatan program yang bisa
berinteraksi dengan program lain yang ada di sistem, sehingga bisa dijalankan seperti
diilustrasikan di bawah ini:
25
cat <berkas> | sort | program_perl | perl -p -e 's/ganti
ini/dengan ini/g' | vim - | tar cf -
Kode sumber Perl tidak perlu dikompilasi, melainkan bisa langsung dijalankan oleh
sebuah program interpreter bernama perl. Misalnya,
#!/usr/bin/perl
print "Hello, world!\n";
Jika program di atas ditulis dalam sebuah berkas bernama hello.pl, lalu dijalankan
dengan perintah (contoh di Linux):
$ perl hello.pl
Maka di layar akan tercetak:
Hello, World!
$
Bahkan, sebuah program yang mengerjakan proses rumit bisa ditulis dengan jumlah
karakter yang lebih pendek daripada jumlah kolom layar standar, misalnya:
perl -lane '$h{$_}++ for @F; END { print "$_: $h{$_} " for
keys %h}' <nama_berkas>
Program ini membaca sebuah berkas teks dan mencetak setiap kata unik dan
jumlahnya di dalam berkas. Contoh hasil cetakan dengan sebuah berkas berisi kode
SQL:
password: 2
category: 2
DROP: 20
TABLE: 40
varchar(12): 9
Tentu saja, yang dimaksud dengan "kata" di sini adalah rentetan karakter tanpa spasi.
Jika dituangkan dalam sebuah berkas, program di atas bisa menjadi lima hingga
sepuluh baris, tergantung gaya pemrograman. Program semacam ini disebut juga
oneliner, dan sering digunakan untuk keperluan sederhana dan cepat. Contoh lain
penggunaan oneliner adalah mengubah nama berkas di suatu direktori menjadi huruf
kecil semua, seperti:
perl -e 'rename $_, lc for <*>'
26
2.11
PEMPROGRAMAN AWK
Utilitas AWK adalah ekstraksi data dan alat pelaporan yang menggunakan datadriven bahasa scripting terdiri dari serangkaian tindakan yang akan diambil terhadap
data tekstual (baik dalam file atau aliran data) dengan tujuan untuk memproduksi
format laporan. Bahasa yang digunakan oleh awk secara ekstensif menggunakan tipe
data string, array asosiatif (yaitu array diindeks oleh kunci string), dan ekspresi
reguler.
AWK merupakan salah satu alat awal yang muncul di Versi 7 Unix dan
mendapatkan popularitas sebagai suatu cara untuk menambahkan fitur komputasi
untuk jaringan Unix. Sebuah versi dari bahasa AWK merupakan fitur standar dari
hampir setiap sistem Unix modern seperti operasi yang tersedia saat ini. AWK yang
disebutkan dalam Single UNIX Specification sebagai salah satu dari utilitas wajib
dari sistem operasi Unix. Selain Bourne shell, AWK adalah satu-satunya bahasa
scripting lain yang ada di lingkungan standar Unix. Hal ini juga hadir di antara
perintah yang diperlukan oleh spesifikasi Basis Linux Standar. Implementasi dari
AWK yang ada seperti terpasang untuk hampir semua sistem operasi Unix.
AWK dibuat di Bell Labs pada tahun 1970, dan namanya berasal dari nama
keluarga penulisnya Alfred Aho, Peter Weinberger, dan Brian Kernighan. AWK, bila
ditulis dalam huruf kecil, mengacu pada program Plan 9 dalam lingkungan Unix atau
program yang menjalankan program-program lain yang ditulis dengan bahasa
pemrograman AWK.
Kekuatan dan keterbatasan dari pemprograman AWK menginspirasi Larry Wall
untuk menulis yang didefinisikan Perl seperti AWK POSIX, dan gawk (GNU AWK).
Meskipun AWK dan sed dirancang untuk mendukung program-program on-liner,
bahkan pengguna awal Bell Labs dari AWK sering menulis well-structured program
AWK. Meskipun terbatas penggunaan, AWK adalah Turing-complete.
2.11.1 Struktur Program AWK
27
AWK adalah bahasa untuk file pengolahan teks. Sebuah file diperlakukan sebagai
urutan catatan, dan secara default setiap baris adalah catatan. Setiap baris ini dipecah
menjadi urutan bidang, sehingga kita bisa memikirkan kata pertama dalam sebuah
garis sebagai bidang pertama, kata kedua sebagai bidang kedua, dan sebagainya.
Sebuah program AWK adalah urutan pattern-action pernyataan. AWK membaca
input garis pada suatu waktu. Sebuah baris dipindai untuk setiap pola dalam program,
dan untuk setiap pola yang cocok, tindakan yang terkait dijalankan.
Sebuah program AWK adalah serangkaian pattern-action berpasangan, ditulis sebagai
berikut:
condition { action }
dimana condition biasanya ekspresi dan action adalah serangkaian perintah. Input
dibagi menjadi catatan, dimana dengan catatan default dipisahkan oleh karakter baris
baru sehingga input dibagi menjadi baris. Program tes merekam setiap terhadap
masing-masing kondisi pada gilirannya, dan mengeksekusi action untuk setiap
ekspresi yang benar. Baik dalam condition atau action yang diabaikan. Condition
default untuk pencocokan setiap catatan. Default action adalah untuk mencetak
catatan.
2.11.2 Perintah AWK
Perintah AWK adalah pernyataan yang menggantikan tindakan dalam contoh di
atas. Perintah AWK dapat mencakup fungsi panggilan, variabel, kalkulasi, atau
kombinasinya. AWK berisi built-in mendukung untuk banyak fungsi, banyak lagi
yang diberikan oleh perintah AWK. Juga, beberapa perintah mendukung masuknya
dynamically linked libraries, yang juga dapat memberikan fungsi yang lebih. Berikut
perintah-perintah dalam AWK:
1) Print Command
Perintah cetak digunakan untuk output teks. Teks keluaran selalu diakhiri dengan
string yang telah ditetapkan disebut output record separator (ORS) yang nilai
default adalah baris baru. Bentuk paling sederhana dari perintah ini adalah:
28
print
Ini menampilkan isi dari catatan saat ini. Dalam AWK, catatan dipecah menjadi
bidang, dan ini dapat ditampilkan secara terpisah:
print $1
Menampilkan field pertama dari catatan saat ini
print $1, $3
Menampilkan kolom pertama dan ketiga dari catatan saat ini, dipisahkan oleh
string standar output yang disebut output field separator (OFS) yang nilai default
adalah karakter single space. Meskipun bidang ($ X) mungkin mencantumkan
kemiripan dengan variabel (simbol $ menunjukkan variabel di perl), sebenarnya
mengacu pada bidang catatan saat ini. Suatu kasus khusus, $0 mengacu pada
seluruh catatan. Bahkan, perintah "print" dan "print $0" adalah identik dalam
fungsi. Perintah cetak juga dapat menampilkan hasil perhitungan and / or
panggilan fungsi:
print 3+2
print foobar(3)
print foobar(variable)
print sin(3-2)
Output dapat dikirim ke file:
print "expression" > "file name"
atau melalui jaringan:
print "expression" | "command"
2) Built-in Variabels
Built-in awk adalah variabel termasuk variabel field: $1, $2, $3, dan seterusnya
($0 mewakili seluruh catatan). Mereka memegang teks atau nilai-nilai dalam textfields individu dalam rekaman. Variabel lain termasuk:
NR
: Menyimpan hitungan saat ini jumlah record input.
NF
: Menyimpan hitungan jumlah bidang dalam catatan masukan.
Field terakhir dalam catatan input dapat ditunjuk oleh $NF.
FILENAME: Berisi nama file arus masukan.
29
FS
: Berisi "field separator" karakter digunakan untuk membagi
bidang pada catatan masukan. Default, "white space",
mencakup setiap ruang dan karakter tab. FS dapat
dipindahkan ke karakter lain untuk mengubah pemisah field.
RS
: Menyimpan catatan "record separator" karakter saat ini.
Karena, secara default, garis masukan adalah catatan
masukan, catatan pemisah karakter default adalah "newline".
OFS
: Menyimpan "output field separator", yang memisahkan field
saat AWK mencetaknya. Default adalah "space" karakter.
ORS
: Menyimpan "output record separator", yang memisahkan
catatan output ketika AWK mencetaknya. Default adalah
"newline" karakter.
OFMT
: Menyimpan format untuk output numerik.
Format default adalah "% .6 g".
3) Variables and syntax
Nama variabel dapat menggunakan salah satu karakter (A-Z, a-z, 0-9), dengan
pengecualian kata kunci bahasa. Operator + - * / mewakili penambahan,
pengurangan, perkalian, dan pembagian, masing-masing. Untuk penggabungan
string, cukup tempatkan dua variabel (atau konstanta string) di samping satu sama
lain. Ini adalah opsional untuk menggunakan ruang di antara jika konstanta string
yang terlibat, tapi dua nama variabel tidak dapat ditempatkan berdekatan satu
sama lain tanpa spasi di antaranya. Konstanta string dibatasi oleh tanda kutip
ganda. Laporan tidak perlu diakhiri dengan titik koma. Akhirnya, komentar dapat
ditambahkan untuk program dengan menggunakan # sebagai karakter pertama
pada sebuah baris.
4) User-defined functions
Dalam format yang mirip dengan bahasa C, definisi fungsi terdiri dari fungsi kata
kunci, nama fungsi, argumen nama dan fungsi tubuh. Berikut adalah contoh dari
sebuah fungsi:
30
function add_three (number) {
return number + 3
}
Pernyataan ini dapat dipanggil sebagai berikut:
print add_three(36)
# Outputs 39
Fungsi dapat memiliki variabel yang berada dalam lingkup lokal. Nama-nama ini
ditambahkan ke akhir dari daftar argumen, meskipun nilai ini harus dihilangkan
saat memanggil fungsi. Ini adalah konvensi untuk menambahkan beberapa
whitespace dalam daftar argumen sebelum variabel lokal, dalam rangka untuk
menunjukkan di mana ujung parameter dan variabel lokal dimulai.
Download