BAB III PERANCANGAN SISTEM

advertisement
BAB III
PERANCANGAN SISTEM
Sistem yang dibangun untuk Tugas Akhir ini merupakan satu sistem jaringan
komputer yang bertujuan untuk melakukan proses standar jaringan komputer, yaitu
pengiriman data, penerimaan data, serta pengaturan aliran paket data (routing). Yang
membedakan sistem ini dengan sistem yang telah diterapkan dalam jaringan komputer
pada umumnya adalah pada metode kendali kongesti yang digunakan pada saat proses
routing. Sementara pada umumnya metode atau algoritma kendali kongesti yang
digunakan adalah RED [4], Tugas Akhir ini mengimplementasikan algoritma WHITE
yang merupakan algoritma kendali kongesti baru. Agar kualitas dari algoritma
WHITE ini dapat diukur, digunakan algoritma kendali kongesti GREEN yang
memiliki tipe algoritma yang sama dengan WHITE, yaitu tipe rate-base [3] sebagai
pembanding.
Kedua buah algoritma yang akan diimplementasikan pada Tugas Akhir ini,
membutuhkan satu sistem jaringan komputer yang customized, terutama pada metode
komunikasi yang akan diterapkan.
3.1 Spesifikasi Sistem
Sistem yang dibangun untuk Tugas Akhir ini secara umum harus dapat
menjalankan fungsi standar jaringan komputer yaitu pelaksanaan proses komunikasi
antar host dengan router sebagai penghubung.
3.1.1 Spesifikasi Fungsional
Spesifikasi fungsional merupakan pra-syarat layanan-layanan yang akan
disediakan oleh sistem ini. Spesifikasi tersebut antara lain :
1. protokol komunikasi yang dapat disesuaikan,
2. host pengirim mampu melakukan fungsi segmentasi data yang akan dikirm,
3. host pengirim mampu membentuk header paket yang telah dimodifikasi dan
menyambungnya dengan segmen data,
19
20
BAB III PERANCANGAN SISTEM
4. host penerima mampu membaca paket data yang masuk, terutama header
paket dan tentunya, data yang dikirimkan bersama packet tersebut,
5. host penerima mampu untuk memberikan umpan balik kepada Host Penerima,
6. router mampu membaca, memilah, dan mengirimkan paket ke host tujuan.
3.1.2 Spesifikasi Teknis
Berdasarkan spesifikasi fungsional yang telah dijabarkan di atas, spesifikasi
teknis dari sistem adalah sebagai berikut.
1. Hubungan antar host menggunakan topologi jaringan komputer yang umum
digunakan.
2. Menggunakan library WinPcap untuk modifikasi paket dan protokol komunikasi.
3. Software pada masing-masing host dan router yang dapat melakukan fungsi
modifikasi dari protokol komunikasi yang akan diterapkan.
3.2 Desain Arsitektur Sistem
Seperti telah disebutkan pada bagian sebelumnya, secara fisik sistem yang
dibuat pada Tugas Akhir ini merupakan jaringan komputer yang umum digunakan,
yakni terdiri dari pengirim (Source host), penerima (destination host), serta router.
Untuk topologi jaringan, digunakan tipe bintang dengan masing-masing host
ditetapkan berada dalam network address yang berbeda dengan router sebagai
penghubung antar network.
Gambar 3.1 Topologi Sistem
BAB III PERANCANGAN SISTEM
21
Topologi seperti pada gambar dipilih berdasarkan pertimbangan kemudahan
dalam menyusun topologi serta sederhana tetapi telah mencakup seluruh aspek dalam
jaringan komputer yaitu adanya host yang akan berkomunikasi serta router yang akan
menghubungkan kedua buah host yang berada pada network yang berbeda.
Kedua buah host perlu diletakkan pada network yang berbeda agar proses
komunikasi antar host tidak semata mengandalkan keberadaan switch, tetapi juga
melibatkan router yang tersedia. Switch memiliki fungsi routing sederhana yang
memungkinkannya untuk meneruskan paket data ke host tujuan. Hal ini tidak
diinginkan karena sistem yang akan dibuat perlu untuk mengimplementasikan
algoritma kendali kongesti pada router, yang tidak bisa dilakukan pada switch.
Router sebagai pengatur proses komunikasi ditempatkan sebagai gateway bagi
masing-masing network yang terpisah. Dengan begitu router akan selalu terhubung
oleh Network A maupun Network B, tetapi masing-masing network tidak dapat
berhubungan langsung ke network lawannya tanpa melalui router.
3.3 Alur Kerja Sistem
Sistem yang dibangun secara khusus pada Tugas Akhir ini adalah sebuah
software pada masing-masing node pada jaringan komputer yang dapat menangani
raw packet data dengan penanganan yang berbeda sesuai dengan tujuan dari
penggunaan software tersebut. Berdasarkan hal ini, software yang dibangun terdiri
dari tiga buah software yaitu:
•
Software Pengirim Data (Tx), diimplementasikan pada Network B sebagai host
pengirim;
•
Software Penerima Data (Rx), diimplementasikan pada Network A sebagai host
penerima; serta
•
Software Router (Router Software), diimplementasikan pada node Router
Keseluruhan software ini bekerja bersama-sama untuk membentuk satu sistem
komunikasi yang dapat menjalankan fungsi transfer data antar host.
Secara umum, kesatuan sistem ini bekerja dengan alur seperti terlihat pada
diagram berikut.
BAB III PERANCANGAN SISTEM
22
Gambar 3.2 Alur Kerja Umum Sistem
Tx bekerja dengan megubah data yang akan dikirimkan ke Rx ke dalam satuan
Packet Data. Packet Data akan singgah di Router yang perannya adalah memeriksa isi
header dari Packet Data untuk menentukan alamat tujuan dari Packet Data. Setelah
memastikan alamat tujuan dan data lain dari header tersebut, Router akan meneruskan
Packet Data tersebut ke alamat tujuan. Setibanya di alamat tujuan, Rx akan
menerjemahkan Packet Data untuk kemudian menentukan penanganan yang sesuai
dengan Packet Data. Begitu proses ini selesai, Rx mengirimkan sinyal ACK kepada
Tx agar mengirimkan Packet Data selanjutnya. Tx selalu menunggu sinyal ACK dari
Rx sebelum mengirimkan Packet Data berikutnya.
3.4 Desain Software
Untuk memudahkan dalam pembuatan software yang digunakan pada Tugas
Akhir ini, terlebih dahulu ditetapkan desain masing-masing. Pembuatan desain ini
mencakup spesifikasi sistem serta alur kerja sistem yang telah dijelaskan pada bagian
sebelumnya.
Keseluruhan software ini menggunakan bahasa pemrograman C/C++, yang
dipilih terutama karena adanya pemanfaatan WinPcap sebagai pembentuk raw-packet
yang menggunakan bahasa C/C++.
3.4.1 Tx Software
Merupakan software yang digunakan pada sisi penerima yang memiliki fungsi
untuk mengirimkan data ke host tujuan. Berkaitan dengan fungsinya tersebut,
software ini memiliki spesifikasi sebagai berikut.
•
Mampu mengenali perangkat jaringan (network interface) yang akan digunakan,
dalam hal ini berupa Ethernet Card atau Wireless Adapter
•
Mampu memilih dan menentukan validitas data yang akan dikirim
•
Mampu membangun paket data dari data yang telah dipilih
23
BAB III PERANCANGAN SISTEM
•
Mampu melakukan fragmentasi data apabila ukuran data yang akan dikirimkan
lebih besar daripada ukuran paket yang telah ditentukan
•
Mampu menentukan isi dan besar dari header paket secara mandiri, tanpa
menggunakan fasilitas socket dari Operating System yang digunakan
•
Mampu mengirimkan paket data yang telah dibuat ke perangkat jaringan yang
akan digunakan
•
Serta, mampu untuk mengolah data-data yang diterima sebagai bagian dari proses
komunikasi data
Berdasarkan spesifikasi tersebut, Tx Software dapat dibagi ke dalam beberapa
fungsi, yang dijelaskan pada sub bab berikut.
3.4.1.1 Fungsi Pengenalan Perangkat Jaringan listDev() dan openDev()
Kedua buah fungsi ini menjalankan beberapa perintah yang berkaitan dengan
persiapan penggunaan perangkat jaringan. Perintah yang dijalankan di fungsi ini
diambil dari library yang tersedia dari WinPcap, yaitu:
int pcap_findalldevs (pcap_if_t **alldevsp, char *errbuf )
Yang bertujuan untuk mencari perangkat jaringan yang terpasang pada mesin.
Perintah ini memberikan nilai 1 apabila ada perangkat yang terdeteksi, 0 apabila tidak
ada perangkat yang terpasang, dan -1 apabila proses pencarian mengalami kegagalan.
pcap_t *pcap_open_live(char *device,
int snaplen,
int promisc,
int to_ms,
char *ebuf)
Fungsi ini akan membuka perangkat yang dideskripsikan oleh char *device
sehingga siap untuk digunakan. Seperti pada perintah sebelumnya, perintah ini juga
memberikan keluaran berupa memberikan nilai 1 apabila ada perangkat yang
terdeteksi, 0 apabila tidak ada perangkat yang terpasang, dan -1 apabila proses
pencarian mengalami kegagalan.
BAB III PERANCANGAN SISTEM
24
3.4.1.2 Fungsi Mempersiapkan File prepHeader()
Fungsi ini mencakup pemeriksaan validitas data, mendapatkan informasi
tentang data, serta menghitung jumlah paket data yang akan dibentuk dari data.
Perintah-perintah yang digunakan pada fungsi ini adalah semua perintah yang
berhubungan dengan manipulasi file, yaitu
FILE * fopen ( const char * filename, const char * mode );
Fungsi ini adalah untuk membuka file yang dideskripsikan oleh const char
* filename
untuk kemudian diperlakukan berdasarkan mode yang dipilih melalui
const char * mode.
int fseek ( FILE * stream, long int offset, int origin );
long int ftell ( FILE * stream );
Kedua buah fungsi ini digunakan untuk menentukan besar file yang
digunakan. Fungsi fseek() digunakan untuk menandai bagian awal dan akhir file
yang dideskripsikan oleh variabel long int offset dan int origin, kemudian
fungsi ftell() menentukan besar file dari tanda yang dibuat oleh fseek() tersebut.
Dari besar file yang telah ditentukan, dapat ditentukan banyaknya paket yang
akan dibentuk yaitu dengan membagi besar file ke dalam besaran paket, dalam hal ini
ditentukan sebesar 1024 byte. Setelah itu, file akan diproses oleh fungsi untuk
membangun paket data.
3.4.1.3 Fungsi Membangun Paket Data buildPack()
Fungsi yang bertugas untuk membangun paket data dari file yang telah
dipersiapkan pada fungsi prepHeader sebelumnya. Yang termasuk dalam fungsi ini
adalah perintah untuk membagi file ke dalam segmen-segmen dengan ukuran tertentu,
kemudian menambahkan packet header kepada segmen data tersebut.
Masuknya data ke dalam segmen adalah dengan memasukkan data satu per
satu dalam array of char. Begitupun halnya dengan pembentukan header packet data,
informasi-informasi header packet data diisikan pada satu atau beberapa alamat pada
array of char . Ukuran segmen data pada packet data ditetapkan sebesar 1024 byte.
25
BAB III PERANCANGAN SISTEM
Protokol komunikasi TCP/IP memiliki suatu standar dalam pembentukan
paket data yang secara default dibentuk oleh socket sebelum data dikomunikasikan.
Struktur paket data untuk layer OSI ke-4 atau Transport Layer yang dimaksud adalah
sebagai berikut.
Gambar 3.3 Standar TCP Header
Sedangkan struktur paket data pada layer 3 OSI (Network Layer) seperti pada
gambar berikut.
Gambar 3.4 Standar IP Header
Namun, seperti telah disebutkan pada bagian 3.1.1, Tugas Akhir ini tidak
menggunakan protokol komunikasi yang umum digunakan, sehingga tidak
menggunakan socket dalam pembentukan paket data. Oleh karena itu, header paket
perlu dibentuk sendiri dari software yang dibuat dengan menyesuaikan dari struktur
header paket standar. Penyesuaian yang dimaksud adalah menentukan informasi mana
saja dari struktur paket standar yang akan digunakan pada Tugas Akhir ini, karena
tidak semua informasi diperlukan pada saat ini.
Dengan pertimbangan-pertimbangan di atas, maka struktur paket data beserta
header adalah seperti yang terlihat pada gambar berikut.
BAB III PERANCANGAN SISTEM
26
Gambar 3.5 Format Header Paket untuk Sistem
•
Source IP Address
Berisi informasi tentang alamat IP (IP address) dari paket, dalam hal ini IP address
dari perangkat yang digunakan oleh software Tx.
•
Destination IP Address
Berisi informasi tentang alamat IP tujuan paket. Format Source dan Destination
Address ini adalah array dari 4 buah char yang masing-masing char berisi satu
oktet dari alamat IP.
•
Port Number
Informasi yang diisikan di field ini adalah nomor port yang digunakan oleh
software. Dalam satu alamat IP, software yang berjalan mungkin tidak hanya satu.
Informasi ini untuk memilah paket data yang terbaca agar hanya dapat
dimanfaatkan oleh software yang dimaksud.
•
Congestion Window
Field yang berkaitan erat dengan congestion control. Field ini berisi informasi
besarnya congestion window yang dimiliki oleh router.
•
Receiver Window
Berisi informasi mengenai besarnya kapasitas penerimaan paket dalam satu satuan
waktu yang dimiliki oleh host penerima. Bersama dengan congestion window,
receiver window ini berperan dalam Flow Control dan Congestion Control.
•
Packet Number
27
BAB III PERANCANGAN SISTEM
Informasi urutan nomor paket. Informasi ini dibutuhkan oleh host penerima agar
paket-paket yang diterima dapat diurutkan dan disusun kembali berdasarkan
nomor paket tersebut.
•
Data
Disinilah potongan data dari file akan dimuat. Besarnya field ini ditentukan
sebesar 1024 byte.
3.4.1.4 Fungsi Pengiriman Paket Data sendPack()
Setelah header dan segmen data paket dibentuk, langkah berikutnya adalah
mengirimkan paket tersebut. Fungsi ini berkaitan dengan pemilihan perangkat
jaringan pada bagian 3.6.1.1 dan seperti pada bagian 3.6.1.1 fungsi ini merupakan
fungsi yang terdapat pada WinPcap, yaitu
int pcap_sendpacket (pcap_t *p,
u_char *buf,
int size)
Fungsi ini akan mengirimkan raw paket ke dalam jaringan melalui perangkat
jaringan yang dideskripsikan oleh pcap_t *p. u_char *buf menunjukkan paket data
yang akan dikirimkan, sedangkan variable int size mendeskripsikan besarnya paket
yang dikirim. Fungsi ini akan bernilai 0 (nol) apabila pengiriman paket sukses,
sedangkan nilai -1 (minus satu) akan dikeluarkan apabila pengiriman paket gagal
dilaksanakan.
3.4.1.5 Fungsi Mendengarkan Paket Data readPack()
Sebagaimana lazimnya proses komunikasi dua arah, tiap host perlu untuk
mendengarkan paket data yang masuk dari host lain, yang berupa informasi atau
konfirmasi dari pihak penerima bahwa paket data yang dikirimkan telah diterima.
Proses mendengarkan paket data ini diimplementasikan melalui fungsi
WinPcap:
int pcap_next_ex (
pcap_t *
p,
28
BAB III PERANCANGAN SISTEM
struct pcap_pkthdr **
u_char **
pkt_header,
pkt_data )
Variabel pcap_t* p seperti pada bagian 3.6.1.4 merupakan perangkat jaringan
yang digunakan yang sebelumnya telah dipilih pada bagian 3.6.1.2, sedangkan
struct pcap_pkthdr ** pkt_header
dan u_char** pkt_data masing-masing
adalah header dan paket data yang diterima oleh perangkat. Fungsi ini memberikan
beberapa nilai keluaran berdasarkan hasil pembacaan paket yang dilakukan.
•
1, apabila paket berhasil dibaca tanpa ada masalah
•
0, apabila Time Out dari pcap_open telah lewat, yang berarti variabel pkt_header
dan pkt_data tidak mengacu pada paket data yang valid
•
-1, apabila terjadi masalah dalam pembacaan paket
•
2, apabila pembacaan paket mencapai End Of File (EOF) pada mode pembacaan
offline pada file.
3.4.1.6 Algoritma Tx
Keseluruhan fungsi yang telah disebutkan di atas dibentuk dan digabungkan
dalam satu buah software Tx yang fungsi utamanya adalah membentuk paket data dari
file kemudian mengirimkannya ke host tujuan.
Algoritma software Tx secara keseluruhan dalam dilihat pada diagram alir
berikut ini.
29
BAB III PERANCANGAN SISTEM
Put Destination IP
Address
File Processing,
including
segmenting, etc
Start
Input File
Name
File Size
Information
Yes
Put Port Number
Input Port
Number
File Exist on
Path?
Put Total Packet
Put Source IP
Address
Input
Destination
IP Address
Search File
Put Packet
Number
File Name
File Name Length
Packet
Number = 0?
List and
Use Device
No
Time Constant
Start Building
Process
Listen to Incoming
Packet
No
End
Send Packet
Compare
Destination
Address
No
Yes
Packet
Number =
Total Packet?
Compare Port
Address
Same?
Yes
Same?
Attach Data
Segment
Yes
Put AIMD/AQM
Price on Packet
Start AIMD/AQM
Algorithm
Put Packet
Number
No
Gambar 3.6 Algoritma Software Tx
Dari diagram, terlihat bahwa fungsi readPack() dipanggil pada saat fungsi
buildPack()
dijalankan. Hal ini berkaitan dengan prinsip komunikasi dua arah yaitu
paket tidak akan dikirimkan apabila tidak ada konfirmasi dari penerima bahwa paket
yang dikirimkan sebelumnya telah diterima dengan baik.
Selain untuk konfirmasi, terdapat informasi lain yang dibutuhkan oleh Tx
sebelum paket dibuat. Informasi tersebut adalah AIMD/AQM Price yang merupakan
hasil proses dari Router yang dititipkan pada Rx. Mengenai AIMD/AQM Price ini
akan dijelaskan pada bagian lain.
BAB III PERANCANGAN SISTEM
30
3.4.2 Rx Software
Setelah perancangan Tx Software selesai, langkah selanjutnya adalah
membangun software untuk menerima dan memproses paket data yang dikirimkan
oleh Tx, yaitu Rx software yang bekerja pada host penerima.
Secara umum, software ini tidak jauh berbeda dengan Tx Software hanya saja
yang menjadi titik berat pada software ini adalah kemampuannya untuk membaca
paket dan menyatukan paket-paket yang diterima tersebut menjadi sebuah file yang
utuh.
Spesifikasi yang harus dimiliki oleh Rx Software sebagai berikut.
•
Mampu mengenali dan menggunakan perangkat jaringan yang diinginkan
•
Mampu membaca paket beserta header yang diterima oleh perangkat jaringan
yang telah dipilih
•
Mampu menyusun paket yang diterima menjadi sebuah file yang utuh seperti
sebelum dikirimkan
•
Mampu memberikan respon kepada pengirim tentang keadaan paket yang
diterima
Seluruh spesifikasi tersebut diimplementasikan dengan fungsi-fungsi yang terkandung
dalam software, yaitu dengan fungsi-fungsi yang akan dijelaskan pada sub bab berikut
ini.
3.4.2.1 Fungsi Pengenalan Perangkat Jaringan listDev() dan openDev()
Fungsi ini sama persis dengan yang terdapat pada Tx Software, karena
memiliki kesamaan tujuan untuk pengenalan perangkat dan inisiasi pemanfaatan
perangkat yang telah dipilih.
3.4.2.2 Fungsi Mendengarkan Paket readPack()
Seperti halnya pada Tx Software, fungsi ini juga bertujuan untuk
mendengarkan dan membaca paket data yang masuk melalui perangkat jaringan yang
telah dipilih. Yang membedakannya dengan Tx Software adalah fungsi ini berlanjut
dengan pembacaan paket bagian per bagian termasuk segmen data yang terkandung
didalamnya untuk kemudian disusun menjadi satu file yang utuh.
BAB III PERANCANGAN SISTEM
31
Agar tidak terjadi kesalahan dalam penyusunan paket menjadi file, struktur
dan informasi header paket perlu dibaca secara keseluruhan untuk mengambil
informasi yang terdapat di dalamnya kemudian mencocokkan dengan kondisi
penerimaan saat itu. Kondisi-kondisi yang dimaksud adalah:
1. alamat tujuan paket
Ini adalah informasi yang paling pertama harus dilihat pada paket. Paket yang
dikirimkan tentunya tidak diinginkan untuk dibaca dan diterima oleh selain alamat
yang dituju. Selain tidak berguna bagi penerima lain, pembacaan header dan
segmen data oleh penerima yang bukan tujuan paket akan membuang waktu,
sehingga paket dengan alamat tujuan yang salah tidak akan dibaca lebih lanjut dan
akan ditinggalkan. Informasi alamat tujuan paket ini dicocokkan dengan alamat
dari perangkat yang kita gunakan.
2. alamat asal paket
Bila terdapat dua atau lebih paket dengan alamat tujuan yang sama, informasi
alamat asal paket akan sangat berguna dan menentukan dalam memilah paket
yang masuk, karena dalam satu perangkat, paket yang masuk tidak selalu berasal
dari sumber yang sama. Selain itu, informasi ini didapatkan agar pihak penerima
dapat mengirimkan konfirmasi keadaan paket ke pihak pengirim. Tanpa adanya
informasi ini, konfirmasi keadaan paket tidak mungkin dapat dikirimkan.
3. nomor port
Informasi berikutnya yang dibaca oleh fungsi adalah nomor port yang digunakan
oleh masing-masing software. Misalkan dalam satu mesin menjalankan dua buah
Tx Software secara bersamaan, sehingga paket-paket yang dibentuk oleh kedua
buah Tx Software ini tentunya akan memiliki alamat tujuan dan alamat asal yang
sama. Untuk itu digunakan satu buah identifikasi yang membedakan antara paket
yang dibentuk oleh software yang satu dengan yang lainnya, yaitu berupa nomor
port yang digunakan.
4. nomor paket
Nomor paket digunakan dalam proses penyusunan paket menjadi file. Adalah hal
yang tidak diinginkan apabila paket-paket yang diterima tidak dapat disusun
menurut urutan semula yang dapat menyebabkan file yang terbentuk tidak sama
hasilnya dengan file sebelum dikirim.
32
BAB III PERANCANGAN SISTEM
3.4.2.3 Fungsi Untuk Menulis Paket Ke Dalam File capturePack()
Setelah seluruh header dibaca dan dicocokkan dengan kondisi host penerima,
langkah selanjutnya adalah membaca segmen data yang ada pada tiap paket untuk
kemudian dituliskan pada file. Proses ini melalui dua tahap, yang pertama kali
dilakukan adalah membuat file dengan nama yang sama dengan nama file yang
dikirimkan. Informasi nama file didapatkan dari paket pertama yang dikirimkan oleh
Tx Software atau initial packet. Untuk membuat file ini digunakan fungsi
FILE * fopen ( const char * filename, const char * mode );
Fungsi ini sesungguhnya merupakan fungsi untuk membuka file, namun
dengan pilihan tertentu yang dipilih pada const char *mode , fungsi ini dapat
digunakan untuk membuat file baru. Untuk membuat file baru mode yang dipilih
adalah “wb” yaitu untuk menulis file dalam format binary. Mode yang lainnya
sebagai berikut.
•
r
•
w : membuat file baru. Apabila sebelumnya sudah ada file dengan nama yang
: membuka file untuk dibaca. File harus sudah ada.
sama, maka isi file tersebut akan dihapus dan diganti oleh file ini.
•
a
•
r+ : membuka file untuk dibaca dan tulis. File harus sudah ada.
•
w+ : membuat file baru untuk ditulis dan dibaca.
•
a+ : membuka file untuk dibaca dan ditambahkan pada ujung file.
: menambahkan pada ujung file.
Setelah file dibuat dan paket mulai diterima, maka segmen data pada paket
dapat dituliskan pada file tersebut melalui fungsi:
size_t fwrite ( const
size_t
size_t
FILE *
void * ptr,
size,
count,
stream );
Dengan const void *ptr adalah pointer pada segmen data yang akan ditulis. Pada
proses inilah informasi nomor paket sangat diperlukan, karena tidak diinginkan
segmen data dituliskan pada file dalam urutan yang tidak sesuai.
BAB III PERANCANGAN SISTEM
33
Proses penulisan ini berhenti apabila nomor paket yang diterima telah sama
dengan informasi total paket yang didapatkan dari initial packet.
3.4.2.4 Fungsi Pengiriman Konfirmasi sendPack()
Fungsi ini berjalan tiap kali paket yang valid diterima oleh penerima. Fungsi
ini sama seperti yang terdapat pada Tx Software dengan perbedaan pada informasi
yang terkandung didalamnya, yaitu
1. alamat tujuan
2. alamat asal paket
3. nomor port
4. nomor paket
5. identifikasi konfirmasi
Identifikasi konfirmasi merupakan informasi yang menyatakan bahwa paket
tersebut merupakan paket konfirmasi. Informasi ini diperlukan agar penerima dapat
langsung memproses paket setelah membaca adanya identifikasi konfirmasi dari paket
yang masuk melalui perangkat jaringannya.
3.4.2.5 Algoritma Rx
Seluruh fungsi yang telah dibuat, digunakan bersama-sama untuk membangun
Rx Software dengan algoritma sebagai berikut.
34
BAB III PERANCANGAN SISTEM
Start
Input Port
Number
List and Use
Device
Write to File
Only Write the
data
Start Read Packet
No
Read and
compare
Destination
Address
No
Begin Write
Same?
Send ACK Packet
Yes
Read and
Compare Port
Number
Header format:
Dest IP, Src IP,
Port, congestion
price
Same?
Yes
Send ACK
Build Packet to
send Congestion
Price
Read Packet
Number
Initial Packet
Create and Open
FIle
Read the rest of
field: total packet,
file length, file
name length, file
name
Yes
Zero?
No
Equal To Total
Packet?
No
Start Interpret
AQM Price
Yes
Neglect Packet
Header
Gambar 3.7 Algoritma Software Rx
Write Data to File
End
35
BAB III PERANCANGAN SISTEM
AQM Price yang terlihat pada diagram alir di atas merupakan informasi yang
diberikan oleh router untuk dikirimkan ke pengirim. Penjelasan lebih lanjut tentang
AQM Price akan diberikan pada bagian lain.
3.4.3 Router Software
Router software adalah program yang mengatur lalu lintas paket data yang
melalui router. Pada kenyataannya, Windows XP yang digunakan sebagai Operating
System pada Tugas Akhir ini dapat dijadikan sebagai router tanpa menggunakan
software
lain,
yaitu
dengen
mengubah
nilai
pada
registry
pada
entry
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
\IPEnableRouter
menjadi 1. Tetapi, apabila cara ini dilakukan router tidak dapat
melakukan fungsi seperti yang kita inginkan kecuali fungsi dasar dari router. Oleh
karena itu, dibangun satu software khusus untuk menggantikan fungsi router.
Router software yang dibangun harus memiliki spesifikasi sistem berikut.
•
Mampu mengenali dan menggunakan perangkat jaringan yang diinginkan
•
Mampu menerima paket dan mengirimkannya kepada alamat tujuan
Spesifikasi yang harus dimiliki Router tidak banyak seperti pada Tx atau Rx software
karena fungsi Router ini hanya meneruskan paket ke alamat tujuan.
Fungsi-fungsi yang dijalankan oleh Router merupakan perpaduan antara Tx Software
dan Rx Software yaitu dalam hal pembacaan dan pengiriman paket.
3.4.3.1 Fungsi Pengenalan Perangkat Jaringan listDev() dan openDev()
Fungsi yang sama seperti pada yang terdapat pada Tx dan Rx Software. Hanya
saja, yang membedakan adalah pada Router, perangkat yang digunakan berjumlah
lebih dari satu karena masing-masing perangkat terhubung pada alamat jaringan yang
berbeda sehingga fungsi ini dimodifikasi agar dapat membuka perangkat lebih dari
satu.
36
BAB III PERANCANGAN SISTEM
3.4.3.2 Fungsi Pembacaan dan Penerusan Paket readPack()
Seperti halnya pada dua buah software sebelumnya, fungsi pembacaan dan
penerusan / pengiriman paket menggunakan dua buah perintah yang ada pada
WinPcap, yaitu
int pcap_next_ex (
pcap_t *
p,
struct pcap_pkthdr **
u_char **
pkt_header,
pkt_data )
dan
int pcap_sendpacket (pcap_t *p,
u_char *buf,
int size)
Namun, bila pada Tx maupun Rx perintah penerimaan dan pengiriman paket
ini diletakkan dalam fungsi yang berbeda, pada Router kedua buah perintah ini
dijalankan pada fungsi yang sama dengan pertimbangan bahwa proses yang dilakukan
Router pada paket tidak banyak dan tidak spesifik sehingga perintah pun dapat
disederhanakan.
Adapun proses yang dilakukan oleh Router dalam hal penanganan paket
hanyalah membaca alamat tujuan dan alamat asal dari paket kemudian mengirimkan
kembali paket tersebut sesuai dengan alamat tujuan.
3.4.3.3 Algoritma Router
Algoritma Router dapat dilihat pada diagram alir berikut ini.
BAB III PERANCANGAN SISTEM
37
Gambar 3.7 Algoritma Software Router
Berbeda dengan Tx dan Rx, algoritma Router jauh lebih sederhana, karena
proses yang terjadi pada Router hanyalah membaca sedikit dari header paket, yaitu
membaca alamat tujuan dan meneruskan paket ke alamat tujuan.
Selain dua proses tersebut, terdapat proses lain yang terjadi pada Router, yaitu
menghitung Link Capacity dan Arrival Rate.
Link Capacity adalah banyaknya paket maksimal yang dapat ditampung oleh
buffer router. Besar Link Capacity dihitung berdasarkan waktu yang dibutuhkan oleh
Router untuk memproses satu paket mulai dari menerima paket dari perangkat
jaringan, sampai siap untuk dikirimkan kembali.
Arrival Rate adalah banyaknya paket yang terbaca oleh perangkat jaringan
dalam satu waktu tertentu. Berbeda dengan Link Capacity yang mendapatkan nilainya
dengan cara statistik, nilai Arrival Rate diperoleh dengan menghitung banyaknya
paket yang terbaca selama 1 detik. Penggunaan pendekatan statistik dengan waktu
tiba per paket tidak dimungkinan untuk ini, karena waktu tiba per paket sangatlah
cepat, kurang dari 1 ms, yang apabila digunakan dapat menghasilkan Arrival Rate
sebesar 1000 paket per detik, suatu hal yang tidak mungkin mengingat keterbatasan
buffer pada router.
38
BAB III PERANCANGAN SISTEM
Nilai Link Capacity dan Arrival Rate ini akan digunakan terutama oleh Router
dan Tx untuk mendapatkan Congestion Price atau Sender Rate yang diperoleh
berdasarkan algoritma AQM yang digunakan.
3.5 Perancangan Algoritma AQM
Seperti yang telah dijelaskan pada bagian awal Bab ini, algoritma AQM yang
digunakan ada 2 (dua), yaitu GREEN dan WHITE. WHITE, seperti yang juga telah
dijelaskan pada bagian awal Bab ini, merupakan saran baru dari dosen pembimbing
dari penulis. Algoritma inilah yang sesungguhnya akan dilihat performanya.
Sedangkan GREEN digunakan sebagai pembanding bagi WHITE karena seperti
WHITE, merupakan rate-based AQM.
3.5.1 Perancangan AQM GREEN
Berdasarkan Sub-Bab 2.5.1, keluaran dari AQM GREEN berupa probablitas
terjadinya kongesti yang lazim disebut Congestion Price. Congestion Price ini
dihitung berdasarkan kondisi Router yang dijelaskan oleh persamaan 2.2.
Persamaan
2.2
menyebutkan
bahwa
Congestion
Price
merupakan
perbandingan selisih antara Link Capacity dengan Arrival Rate. Semakin kecil selisih
Link Capacity dengan Arrival Rate, maka Congestion Price akan semakin besar.
Congestion Price berkisar antara 0 (nol) sampai dengan 1 (satu).
Nilai Link Capacity dan Arrival Rate yang telah didapatkan pada sub-bab
3.4.3.3 oleh Router akan dimasukkan ke dalam persamaan 2.2 dengan nilai α dan u
adalah konstanta yang telah ditetapkan sebelumnya, yaitu α sebesar 0.01 dan u
sebesar 0.9.
Setelah itu akan didapatkan Congestion Price untuk kemudian nilai tersebut
dimasukkan ke dalam paket yang diterimanya tersebut agar dapat diproses oleh Tx
melalui perantara Rx.
Untuk memastikan bahwa kongesti tidak terjadi, pada sisi pengirim ditentukan
suatu nilai maksimal Congestion Price yang menandakan akan terjadi kongesti. Nilai
ini berfungsi agar window pengirim akan berkurang ketika Congestion Price
mencapai nilai tersebut. Nilai maksimal tersebut ditetapkan sebesar 0.7.
39
BAB III PERANCANGAN SISTEM
Algoritma GREEN dipadukan dengan metode AIMD yang diimplementasikan
di sisi pengirim.
3.5.2 Perancangan AQM WHITE
Dari
penjelasan
pada
sub-bab
2.5.2
algoritma
WHITE
dapat
diimplementasikan ke dalam persamaan matematis yang memungkinkan untuk
diterapkan dalam bahasa pemrograman. Rumus 2.3 dan 2.5 yang masih dalam domain
s (Laplace) terlebih dahulu harus diubah ke dalam domain z yaitu dengan mengganti s
z −1
[11] sehingga persamaan 2.3 menjadi seperti dijabarkan berikut.
T
dengan
G aqm ( s ) =
k2
s
G( z) =
Ù
k2T
z −1
y ( z ) k2T
=
u( z) z − 1
Ù ( z − 1) y ( z ) = k2Tu ( z )
Ù zy ( z ) − y ( z ) = k2Tu ( z )
Setelah diubah dalam bentuk diferensial, persamaan akan berbentuk seperti
berikut ini.
y k +1 = y k + k 2 Tu k
Dengan
......................................(3.1)
y k +1 : output saat ini
yk
: output sebelumnya
uk
: input saat ini
k2
: konstanta Control Gain router
T
: waktu sampling, ditetapkan sebesar 1 detik
Dengan persamaan 3.1 maka persamaan 2.3 dapat diimplementasikan pada
sistem, yaitu dengan menetapkan u k sebesar idle capacity yang ada saat itu
dan k 2 sebesar 0.005.
Persamaan 2.5 juga harus diubah ke dalam domain waktu agar dapat
dimanfaatkan. Dengan cara yang sama, persamaan 2.5 diubah menjadi persamaan 3.2
berikut ini.
40
BAB III PERANCANGAN SISTEM
y k +1 = (1 − KT ) y k + k1Tu k
Dengan
...............................(3.2)
K : Konstanta
k1 : Konstanta Control Gain pengirim
Nilai T juga ditetapkan sebesar 1 detik. sedangkan konstanta K ditetapkan sebesar 0.8.
Download