• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN SISTEM"

Copied!
22
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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.

(4)

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

(5)

• 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.

(6)

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.

(7)

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.

(8)

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.

(9)

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:

(10)

struct pcap_pkthdr ** pkt_header,

u_char ** 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.

(11)

Start Search File Input File Name File Exist on Path? Input Destination IP Address Input Port Number List and Use Device File Processing, including segmenting, etc Start Building Process Attach Data Segment Listen to Incoming Packet Put Destination IP Address Put Source IP Address

Put Port Number

Put Packet Number

Put Total Packet

File Size Information

File Name Length File Name Compare Destination Address Same? Compare Port Address Same? Put AIMD/AQM Price on Packet Packet Number = 0? Packet Number = Total Packet? End Send Packet Start AIMD/AQM Algorithm No Yes Yes Yes Yes No No No Put Packet Number Time Constant 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.

(12)

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.

(13)

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.

(14)

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 : membuka file untuk dibaca. File harus sudah ada.

• w : membuat file baru. Apabila sebelumnya sudah ada file dengan nama yang sama, maka isi file tersebut akan dihapus dan diganti oleh file ini.

• a : menambahkan pada ujung file.

• 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.

Setelah file dibuat dan paket mulai diterima, maka segmen data pada paket dapat dituliskan pada file tersebut melalui fungsi:

size_t fwrite ( const void * ptr,

size_t size,

size_t count,

FILE * 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.

(15)

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.

(16)

Start

Input Port Number

List and Use Device Read and compare Destination Address Same? No Read and Compare Port Number Same? Yes No Read Packet Number Yes Zero? Read the rest of

field: total packet, file length, file name length, file

name

Yes Create and Open

FIle Send ACK

Start Interpret AQM Price Begin Write Only Write the

data

Build Packet to send Congestion

Price Header format: Dest IP, Src IP, Port, congestion

price Send ACK Packet

Write to File

Equal To Total

Packet? No

No

Neglect Packet

Header Write Data to File End

Yes Initial Packet

Start Read Packet

(17)

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.

(18)

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 ** pkt_header,

u_char ** 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

(19)

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.

(20)

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.

(21)

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 dengan

T z−1

[11] sehingga persamaan 2.3 menjadi seperti dijabarkan berikut.

s k s Gaqm( )= 2 1 ) ( 2 − = z T k z G Ù 1 ) ( ) ( 2 − = z T k z u z y Ù (z−1)y(z)=k2Tu(z) Ù zy(z)−y(z)=k2Tu(z)

Setelah diubah dalam bentuk diferensial, persamaan akan berbentuk seperti berikut ini.

k k

k y k Tu

y +1 = + 2 ...(3.1) Dengan yk+1 : output saat ini

k

y : output sebelumnya

k

u : input saat ini 2

k : 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 uksebesar idle capacity yang ada saat itu

dank2sebesar 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.

(22)

k k

k KT y kTu

y +1=(1− ) + 1 ...(3.2) Dengan K : Konstanta

k1 : Konstanta Control Gain pengirim

Gambar

Gambar 3.1 Topologi Sistem
Gambar 3.2 Alur Kerja Umum Sistem
Gambar 3.3 Standar TCP Header
Gambar 3.5 Format Header Paket untuk Sistem
+4

Referensi

Dokumen terkait

Data kompetensi profesional berdasarkan penilaian kepala sekolah diperoleh melalui angket. Data kompetensi profesional berdasarkan penilaian kepala sekolah memiliki

Alat ukur baku meliputi, penggaris, neraca timbangan (kg), gelas ukur, meteran dan sebagainya. Sedangkan, alat ukur tidak baku meliputi, stick eskrim, timbangan buatan,

Berdasarkan latar belakang yang telah dipaparkan, penelitian ini akan berfokus mengenai kontrol diri pada pelaku kejahatan seksual, untuk itu peneliti ingin

Keberhasilan kegiatan belajar mengajar dikelas, tidak hanya tergantung dalam penguasaan bahan ajar atau penggunaan metode pembelajaran, tetapi proses pembelajaran yang baik

Sedangkan objek dalam penelitian ini adalah wujud dan fungsi sarana retorika pada Puisi-Puisi Anak yang terbit di Harian Kedaulatan Rakyat edisi Minggu bulan Januari

DVR atau Digital Video Recorder merupakan peralatan mutlak dari perkembangan CCTV sekarang, karena fungsinya sebagai spliter (pembagi gambar) di monitor, perekaman,

Efek iradiasi dipdajari pada pertumbuhan bibit MI' Mutasi klorofil dan gejala perubahan wama biji dipdajari pada tanaman generasi M2• D50 untuk varietas Keris, Katengu, dan No..

7) Terlaksananya Tes mutasi PNS yang masuk ke Pemerintah Provinsi Jawa Tengah 7) 250 orang 8) Terlaksananya Pemberkasan Pensiun PNS 8) 6 kegiatan 9) Terlaksanannya koordinasi