BAB III PERANCANGAN SISTEM

dokumen-dokumen yang mirip
BAB II DASAR TEORI. Berdasarkan definisi di atas, dapat disimpulkan jaringan komputer terdiri atas tiga bagian:

TCP DAN UDP. Budhi Irawan, S.Si, M.T

Materi Mata Kuliah Jaringan Komputer Universitas Indo Global Mandiri

BAB II DASAR TEORI. Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol

Transport Layer. Oleh : Akhmad Mukhammad

Fungsi Lapis Transport

lapisan-lapisan pada TCP/IP tidaklah cocok seluruhnya dengan lapisan-lapisan OSI.

BAB I PENDAHULUAN. 1.1 Latar Belakang

TRANSPORT LAYER. Aplikasi dan Operasi pada TCP dan UDP

TCP dan Pengalamatan IP

1. Pendahuluan. 2. Tinjauan Pustaka

Sejarah TCP/IP TCP/IP

Fungsi Lapis Transport

BAB II TINJAUAN PUSTAKA 2.1 Penelitian Terdahulu

BAB 3 ANALISIS DAN PERANCANGAN SISTEM. Metodologi yang akan digunakan dalam pembuatan Web Filtering pada skripsi

Networking Model. Oleh : Akhmad Mukhammad

Network Layer JARINGAN KOMPUTER. Ramadhan Rakhmat Sani, M.Kom

IMPLEMENTASI APLIKASI CHEPPYCHAT UNTUK JARINGAN KOMPUTER PADA LOCAL AREA NETWORK

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

TRANSPORT LAYER DEFINISI

PEMROGRAMAN JARINGAN

Tugas Jaringan Komputer

Artikel tentang Prinsip Dasar Routing yang penulis buat pada tahun 2001

Bab III Prinsip Komunikasi Data

Agenda. Protokol TCP/IP dan OSI Keluarga Protokol TCP/IP

Transport Layer El E ectro ect n ro ic En E gineerin ri g Pol o ytech tec nic In I stitu sti t of o Surabaya ITS Kampus ITS Sukolilo Surabaya 60111

Minggu 6 Transport Layer

LAPORAN TUGAS AKHIR PERANCANGAN DAN IMPLEMENTASI SISTEM KENDALI KONGESTI INTERNET DENGAN METODE WHITE ULI MUHAMMAD AULIA / TEKNIK KENDALI

Monitoring Jaringan. Rijal Fadilah, S.Si

Penelusuran Data Melalui Jaringan Internet

The OSI Reference Model

Pemrograman Jaringan

Gambar 1 : Simple Data Transfer

Protokol Jaringan. Oleh : Tengku Mohd Diansyah,ST,M.Kom

TK 2134 PROTOKOL ROUTING

Materi 7 Layer 4 Transport

OSI LAYER. Komunikasi Data STMIK AMIKOM Yogyakarta Khusnawi, S.Kom, M.Eng

Refrensi OSI

Memahami cara kerja TCP dan UDP pada layer transport

1. Menggunakan model OSI dan TCP/IP dan protokol-protokol yang terkait untuk menjelaskan komunikasi data dalam network. 2. Mengidentifikasi dan

Modul 10 TCP/IP Lanjutan

BAB III ANALISIS METODE DAN PERANCANGAN KASUS UJI

Rahmady Liyantanto liyantanto.wordpress.com

Referensi Model OSI & TCP/IP

BAB IV IMPLEMENTASI DAN ANALISIS SISTEM

BAB II DASAR TEORI. 2.1 Pentingnya Efisiensi Energi pada Perangkat Komunikasi Bergerak

PERCOBAAN 7 KOMUNIKASI WIRELESS MODE AD-HOC

Mengenal Komunikasi Data Melalui Layer OSI & TCP/IP

Bab 5: Lapisan Transport

Analisis Perbandingan Performansi Server VoIP. berbasis Parallel Processing

Bab 3 Metode Perancangan

Protokol dan Arsitekturnya

TUGAS JARKOM. *OSI Layer dan TCP/IP* A. OSI layer

BAB II DASAR TEORI. Protokol adalah seperangkat aturan yang mengatur pembangunan koneksi

BAB II LANDASAN TEORI

TUGAS KEAMANAN JARINGAN OSI LAYER DIDIET RISTHA ARDIANSYAH NRP

Rahmady Liyantanto liyantanto.wordpress.com

ARSITEKTUR PROTOKOL TCP/IP

Komunikasi Data Ala TCP/IP

Yama Fresdian Dwi Saputro Pendahuluan. Lisensi Dokumen:

BAB III METODOLOGI PENELITIAN Perancangan Sistem dan Blok Diagram Sistem. diagram seperti yang terlihat seperti Gambar 3.1.

TRANSPORT LAYER. Fikri Fadlillah, ST

Karakteristik. Protokol dan Arsitekturnya. Langsung atau Tidak Langsung. Monolitik atau Terstruktur. Simetrik atau asimetrik

= t t... (1) HASIL DAN PEMBAHASAN

BAB IV IMPLEMENTASI PROGRAM

BAB II LANDASAN TEORI. dihubungkan untuk berbagi sumber daya (Andi Micro, 2011:6). Jaringan Komputer

Protokol TCP/IP. Oleh: Eko Marpanaji

BAB I PENDAHULUAN 1.1 Latar Belakang

Tugas Jaringan Komputer

Gambar 11. Perbandingan Arsitektur OSI dan TCP/IP

Dosen Pengampu : Muhammad Riza Hilmi, ST.

Modul 8 TCP/IP Suite Error dan Control Messages

BAB 3 PERANCANGAN SISTEM

LAYERED MODEL 9/1/2010. Gambaran Umum Referensi OSI. Pertemuan 6

Modul 2. Network Analysis Tool, Application Layer Protocol, dan Transport Layer Protocol

BAB 2: INTRODUCTION TCP/IP

Lapisan OSI Dan Mcam-Macam Layer

NAMA : 1. HANDOKO DWI HARTONO ( ) 2. IMANUEL HASIOLAN SIMATUP ( ) 3. YOSUA MINANDO ( )

Muhamad Husni Lafif. TCP/IP. Lisensi Dokumen: Copyright IlmuKomputer.

MODEL REFERENSI OSI & TCP/IP. Budhi Irawan, S.Si, M.T

Preliminary Test Axioo Class Program

General Network Troubleshooting

REVIEW MODEL OSI DAN TCP/IP

FILE & STREAM Bab FILE

MODUL 2 WIRESHARK Protokol TCP

BAB 4 IMPLEMESTASI DAN EVALUASI. permasalahan yang telah dilakukan pada bab sebelumnya.

NETWORK LAYER MATA KULIAH: JARINGAN KOMPUTER DISUSUN OLEH: MAYLANI LESTARI ( ) DANDO RIDWANTO LUKMAN HAKIM LUKMAN SUDIBYO RICKY MARDHANI 3KA19

BAB III PERANCANGAN DAN SIMULASI SOFTSWITCH. suatu pemodelan softswitch ini dilakukan agar mampu memenuhi kebutuhan

JARINGAN KOMPUTER JARINGAN KOMPUTER

Pemrograman Jaringan

Bab 2. Model Referensi OSI

BAB I PENDAHULUAN. pada layer Network, layer ketiga dari tujuh OSI (Open System Interconnection)

FLOW CONTROL & A VARIABLE. Budhi Irawan, S.Si, M.T

Lapisan ini merupakan lapisan yang akan melakukan transmisi data antara perangkat-perangkat jaringan yang saling berdekatan di dalam sebuah wide area

BAB III METODE PENELITIAN. transmisi data streaming menggunakan Zigbee wireless network dengan

1. Menggunakan model OSI dan TCP/IP dan protokol-protokol yang terkait untuk menjelaskan komunikasi data dalam network. 2. Mengidentifikasi dan

Praktikum Jaringan Komputer 2

BAB 4 HASIL DAN PEMBAHASAN

Percobaan : Choirunnisa L.H / D4 LJ IT. Dengan Switch

BAB II DASAR TEORI. teknologi informasi belum maksimal diterapkan. Penggunaan Personal Computer

Transkripsi:

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

BAB III PERANCANGAN SISTEM 20 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

BAB III PERANCANGAN SISTEM 23 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.

BAB III PERANCANGAN SISTEM 25 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

BAB III PERANCANGAN SISTEM 27 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,

BAB III PERANCANGAN SISTEM 28 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.

BAB III PERANCANGAN SISTEM 29 Start File Processing, including segmenting, etc Put Destination IP Address Put Packet Number Put Total Packet Input File Name Input Destination IP Address Put Source IP Address Yes File Size Information Search File Input Port Number Put Port Number File Name File Name Length File Exist on Path? List and Use Device Packet Number = 0? No Time Constant Start Building Process Listen to Incoming Packet No End Send Packet No Compare Destination Address Yes Packet Number = Total Packet? Same? Compare Port Address Yes Same? Attach Data Segment Yes Start AIMD/AQM Algorithm Put AIMD/AQM Price on Packet 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.

BAB III PERANCANGAN SISTEM 32 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.

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.

BAB III PERANCANGAN SISTEM 34 Start Input Port Number List and Use Device Write to File Start Read Packet Only Write the data No No Read and compare Destination Address Begin Write Same? Yes Read and Compare Port Number Same? Send ACK Packet Header format: Dest IP, Src IP, Port, congestion price Send ACK Yes Read Packet Number Build Packet to send Congestion Price 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 Write Data to File End Gambar 3.7 Algoritma Software Rx

BAB III PERANCANGAN SISTEM 35 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.

BAB III PERANCANGAN SISTEM 36 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 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.

BAB III PERANCANGAN SISTEM 38 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.

BAB III PERANCANGAN SISTEM 39 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 dengan [11] sehingga persamaan 2.3 menjadi seperti dijabarkan berikut. T k ( s) = s G aqm 2 k2t G ( z) = 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. Dengan y k + 1 : output saat ini y k : output sebelumnya u k : input saat ini y k + 1 = y k + k 2Tu k...(3.1) k 2 : 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.

BAB III PERANCANGAN SISTEM 40 Dengan K : Konstanta k 1 yk + 1 = ( 1 KT ) yk + k1tu k...(3.2) : Konstanta Control Gain pengirim Nilai T juga ditetapkan sebesar 1 detik. sedangkan konstanta K ditetapkan sebesar 0.8.