Pembuatan dan Analisis Kinerja Perangkat Lunak Router Dengan Fasilitas Network Address Translator Muhamad Rendra / G64102066
Pendahuluan Latar Belakang Tujuan Ruang Lingkup
Latar Belakang Internet ialah sebuah kombinasi dari jaringan yang dihubungkan oleh router. (Forouzan & Sophia 2006). NAT adalah salah satu metode untuk mengatasi kekurangan alamat IP dengan cara penggunaan kembali alamat (address reuse). (Egevang & Francis 1994). Dua jenis NAT (Srisuresh & Holdrege 1999) static address assignment dynamic address assignment
Tujuan Membuat perangkat lunak router yang memiliki kemampuan: Static NAT RIP Penyaringan paket IP Berjalan di Windows XP Analisis kinerja router yang dibuat. Delay Jitter Throughput Utilisasi CPU Pemakaian Memori
Ruang Lingkup Hanya memiliki fasilitas: menyimpan konfigurasi, static routing, RIP, static NAT, membuat Log, dan penyaringan IP. Protokol yang diimplementasikan: IP, ICMP, ARP, UDP dan RIP. Hanya memperhatikan kinerja router berdasarkan: delay, jitter, throughput, utilisasi CPU dan pemakaian memori.
Tinjauan Pustaka Ethernet Internet Protocol (IP) Address Resolution Protocol (ARP) Internet Control Message Protocol (ICMP) Routing Routing Information Protocol (RIP) WinPcap Network Address Translator (NAT) Ukuran Kinerja: Delay Jitter Throughput Utilisasi CPU Pemakaian Memori
Ethernet Protokol Local Area Network (LAN) yang paling banyak digunakan. Meliputi lapisan data link dan lapisan fisik dalam model referensi OSI. mengirim dan menerima dari dan ke lapisan fisik dalam bentuk frame.
Internet Protocol Berada pada lapisan network Digunakan pada Internet (Tanenbaum 2003) mengirimkan data dalam paket-paket yang dinamakan datagram
Address Resolution Protocol menyediakan pemetaan secara dinamis dari alamat IP menjadi alamat fisik (Stevens 1994). Dua jenis paket ARP ARP request ARP reply Pemetaan disimpan dalam translation table
Internet Control Message Protocol (ICMP) Menyediakan mekanisme pelaporan kesalahan (error-reporting) dan bertanya (query) untuk IP. ICMP message dimasukkan kedalam paket IP.
Routing Proses pembuatan dan pemeliharaan basis data rute (routing table) Forwarding: Menempatkan paket dalam perjalanannya ke tujuan Membutuhkan routing table Routing table dapat berupa: Static routing table Dynamic routing table
Routing Information Protocol Protokol routing intradomain Bekerja berdasarkan distance vector routing 2 jenis message: Request Response RIP message dimasukkan dalam datagram UDP menggunakan port 520
WinPcap Pustaka open source untuk menangkap paket dan analisis jaringan. Menyediakan fasilitas untuk: Menangkap raw packet. Menyaring paket. Mengirim raw packet. Mengumpulkan informasi statistik jaringan.
Network Address Translator Metode dimana alamat IP dipetakan dari satu ruang alamat ke ruang alamat lain, dalam usaha membuat routing yang transparan bagi host (Srisuresh & Holdrege 1999) Router NAT berada pada perbatasan antara ruang alamat dan mengganti alamat IP pada header datagram IP
Delay waktu yang diperlukan oleh sebuah paket dikirim mulai dari node pengirim hingga diterima di node penerima (Sukoco 2005) pada proses pengiriman paket dapat dilihat tiga jenis delay yang terjadi (Stallings 2000) : Delay propagasi Waktu transmisi Delay node
Jitter variasi dari delay yang disebabkan oleh jaringan. Sebuah jaringan dengan jitter nol memerlukan waktu yang sama untuk men-transfer tiap paket, sementara jaringan dengan jitter yang besar memerlukan waktu yang lebih lama untuk mengantar beberapa paket dibanding paket lainnya. (Comer 2000)
Throughput merupakan nilai dari sejumlah data paket (dalam satuan bit) yang diterima di node penerima dalam suatu satuan waktu tertentu (Sukoco 2005)
Utilisasi CPU merupakan nilai yang menyatakan persentase penggunaan CPU time oleh suatu process dalam rentang waktu tertentu.
Pemakaian memori merupakan nilai yang menyatakan banyaknya memori yang digunakan oleh suatu process pada saat tertentu.
Metode Penelitian Analisis Kebutuhan Desain Pembuatan kode Pengujian Analisis Kinerja
Perangkat lunak pada penelitian Gawk. Gnuplot Iperf Ping Wireshark
Analisis Kebutuhan menentukan apa saja kebutuhan dari perangkat lunak, fungsi yang dibutuhkan, tingkah laku, performa dan antarmuka. Membuat diagram Use-Case
Desain proses yang berjenjang yang menyoroti empat atribut daripada program: stuktur data, arsitektur perangkat lunak, representasi antarmuka dan detail algoritma (Pressman 2001). Membuat Class Diagram dan Merancang antarmuka pengguna
Pembuatan Kode Menggunakan Microsoft Visual Studio 2005 dengan menggunakan bahasa pemrograman C++. Tidak menggunakan Framework .NET Menggunakan Platform SDK versi Windows Server 2003 SP1 Menggunakan WinPcap Developer’s Pack
Pengujian Hanya menguji keluaran router dari network interface. Menggunakan Wireshark Diuji menggunakan dua model jaringan: Jaringan sederhana Jaringan kompleks
Pengujian (1) Jaringan sederhana Rancang skenario pengujian
Pengujian (2) Jaringan kompleks Rancang topologi fisik Rancang skenario pengujian
Analisis Kinerja (1) Mencari nilai delay dan jitter Paket ping dikirim oleh penguji Di-forward oleh router Kembali ke penguji
Analisis kinerja (2) Mencari throughput, utilisasi CPU, dan pemakaian memori Penguji1 dan Penguji2 menjalankan iperf Router1 menjalankan perangkat lunak untuk mendapatkan utilisasi CPU dan pemakaian memori
Analisis kinerja (3) Sebagai perbandingan, dilakukan juga pengukuran delay, jitter dan throughput terhadap router Windows XP
Hasil dan Pembahasan Analisis Kebutuhan Desain Pembuatan Kode Pengujian Pada jaringan sederhana Pada jaringan kompleks Analisis Kinerja Delay Jitter Throughput Utilisasi CPU Pemakaian memori
Analisis Kebutuhan Kebutuhan antarmuka eksternal Antarmuka pengguna : Menggunakan GUI Antarmuka perangkat keras Kebutuhan Minimum : PC Keyboard Mouse Monitor VGA Network Interface Card Antarmuka perangkat lunak : Membutuhkan WinPcap terinstall
Kebutuhan Fungsional Kebutuhan Fungsional
Desain Desain Sistem Terbagi menjadi 2 subsistem Subsistem antarmuka pengguna Subsistem router
Desain (1) Desain antarmuka pengguna Terdiri dari sebuah jendela utama Dan icon pada system tray
Desain (3) Desain Kelas
Desain (4) Desain Kelas
Pembuatan Kode (1) Penggunaan WinPcap Membutuhkan WinPcap Developer’s Pack Fungsi-fungsi WinPcap yang dipakai: pcap_open, pcap_next_ex, pcap_sendpacket, dan pcap_sendqueue_transmit Juga memakai fungsi dari packet.dll: PacketRequest
Pembuatan Kode (2) Paralelisme dengan Windows API CreateThread, ThreadProc, SetThreadPriority, dan PostThreadMessage Fungsi-fungsi CriticalSection: InitializeCriticalSection, EnterCriticalSection, LeaveCritical Section Fungsi Wait: WaitForSingleObject, WaitForMultipleObject Fungsi Event: CreateEvent, SetEvent , ResetEvent Fungsi Mutex: CreateMutex , ReleaseMutex InterlockedIncrement
Pembuatan Kode (3) Penyaringan IP Meng-compile aturan dari user ke bahasa mesin Mengeksekusi kode hasil kompilasi ketika paket harus disaring
Pengujian (1) Skenario dan hasil pada jaringan sederhana Terdiri dari 17 skenario
Pengujian (2) Topologi jaringan kompleks
Analisis Kinerja Delay, Sinaru vs Windows XP Rata-rata delay Sinaru 0,190557 ms Rata-rata delay Windows XP 0,09329 ms
Analisis Kinerja Jitter Nilai rata-rata jitter Sinaru adalah 26,8 ns – 26,8 ns Nilai rata-rata jitter router Windows XP adalah 143,8 ns. – 143,8 ns
Analisis Kinerja Throughput
Analisis Kinerja Utilisasi CPU Rata-rata utilisasi CPU, penguji1 sebagai client 39,64% Rata-rata utilisasi CPU, penguji2 sebagai client adalah 37,84%
Analisis Kinerja Pemakaian memori Rata-rata pemakaian memori saat penguji1 sebagai client adalah 1693864 bytes rata-rata pemakaian memori pada saat penguji2 sebagai client adalah 1692588 bytes.
Kesimpulan dan Saran (1) Sinaru (Simple IPv4 NAT Router) adalah router perangkat lunak yang memiliki fasilitas static NAT, RIP, dan penyaringan paket IP. Sinaru berhasil dibuat. Pada parameter kinerja delay dan throughput Sinaru berada dibawah router windows XP, sedangkan pada parameter kinerja jitter Sinaru lebih baik dari router Windows XP.
Kesimpulan dan Saran (2) Dari hasil pengamatan terhadap utilisasi CPU terlihat bahwa Sinaru menggunakan 0 % CPU saat tidak melakukan apa-apa dan 39,64% saat router mem-forward dengan throughput 81,9 Mbits/sec. Dari hasil pengamatan terhadap pemakaian memori menunjukkan bahwa Simple IPv4 NAT Router tidak memakai banyak memori dan pemakaian memori yang stabil pada saat pengujian throughput.
Kesimpulan dan Saran (3) Menyempurnakan penggantian payload FTP pada proses NAT sehingga Sinaru selalu berhasil melakukannya. Untuk itu proses NAT harus melakukan inspeksi ketat pada aliran kontrol FTP. Menambahkan dukungan pada datalink selain Ethernet, misalnya PPPoE. Menyempurnakan dan mengoptimalkan beberapa struktur data internal router, seperti tabel rute, tabel NAT dan tabel ARP. Saat ini tabel tersebut memiliki struktur data doubly- linked list. Penggantian struktur data dengan yang lebih baik diharapkan dapat meningkatkan performa router.
Daftar Pustaka Comer DE. 2000. Computer Networks and Internets. Ed ke-2. Pearson Education Asia. Egevang K, Francis P. 1994. The IP network address translator (NAT). RFC 1631. Forouzan BA, Sophia CF. 2006. TCP/IP Protocol Suite. Ed ke-3. New York: McGraw-Hill. Srisuresh P, Holdrege M. 1999. IP network address translator (NAT) terminology and considerations. RFC 2663. Stallings W. 2000. Data and Computer Communications. Ed ke-6. Prentice Hall International. Stevens WR. 1994. TCP/IP Illustrated, Volume 1 The Protocols. Addison-Wesley. Sukoco H. 2005. Kontrol kongesti TCP-friendly menggunakan pendekatan multicast-berlapis untuk aplikasi streaming audio/video di internet [tesis]. Bandung: Institut Teknologi Bandung. Tanenbaum AS. 2003. Computer Networks. Ed ke-4. Pearson Education International.