Monday, 3 June 2013

Monitoring Protokol UDP

Pendahuluan
UDP ( User Datagram Protocol) adalah jenis transfer data yang lain dari TCP. UDP mempunyai karateristik connectionless (tidak berbasis koneksi). Dengan kata lain, data yang dikirimkan dalam bentuk packet tidak harus melakukan call setup seperti pada TCP. Selain itu, data dalam protokol UDP akan dikirimkan sebagai datagram tanpa adanya nomor identifier. Sehingga sangat besar sekali kemungkinan data sampai tidak berurutan dan sangat mungkin hilang/rusak dalam perjalananan dari host asal ke host tujuan.
Isi
Pada protocol UDP tergantung pada host penerima/tujuan, apakah akan meminta kembali pakcet yang rusak atau hilang. Kelebihan UDP adalah pada saat digunakan pada lightweight protokol, misalnya saja DNS(Domain Name Service).
1. UDP adalah “datagram-oriented”, sedangkan TCP adalah “session-oriented”. Datagram adalah paket informasi self-contained. UDP berhubungan dengan datagram atau paket individu yang dikirim dari client ke server dan atau sebaliknya.
2. UDP adalah connection-less. Client tidak membangun koneksi ke server sebelum mengirim data, client hanya mengirim data secara langsung.
3. UDP adalah protokol yang tidak andal, dalam artian :
* Paket dapat hilang. UDP tidak dapat mendeteksinya, sehingga pada program aplikasi client – server, metode transmisi ulang dikarenakan data rusak atau hilang harus dilakukan pada level aplikasi. Biasanya aplikasi menunggu hingga timeout habis, dan kemudian mencoba lagi.
* Paket dapat mengalami kerusakan. Paket UDP berisi checksum semua data dalam paket. Checksum ini memungkinkan UDP mendeteksi kapan suatu paket mengalami kerusakan. Jika hal ini terjadi, maka paket tersebut dikeluarkan, dan sebagaimana biasa aplikasilah yang mendeteksi hal ini dan melakukan transmisi ulang seperlunya.
* Karena UDP adalah datagram-oriented dan pada level protokol setiap paket berdiri sendiri, maka UDP tidak memiliki konsep paket sesuai urutan, yang selanjutnya berarti tidak memerlukan nomor urut pada paket tersebut.
* Karena UDP tidak memerlukan mekanisme kontrol yang rumit, maka UDP dapat dianggap lebih mudah dan lebih kecil ( dalam hal baris data dan memori ) untuk diimplementasikan. Namun hal tersebut juga membuat UDP tidak cocok untuk sejumlah besar data.
Capture Protocol UDP
Melakukan monitoring Protokol UDP dengan menggunakan sebuah aplikasi wireshark , dengan menggunakan beberapa langkah sebagai berikut :
1. Buka aplikasi wireshark pada device anda , setelah masuk aktif pada jendela wireshark maka kita bisa memulai dengan memilih interface yang akan digunakan untuk meng-capture paket-paket yang berlalu lalang dijaringan. Pemilihan interface ditentukan dari paket-paket yang berjalan seperti gambar dibawah ini. pilih dan klik Menu Capturesà Interfaces , lalu pilih yang akan di captures saya memilih Microsoft (centang) lalu OK
2. Setelah mengaktifkan pengcapturan ,maka akan muncul halaman awal seperti berikut ini :
adalah saat filter mengetikkan perintah : udp , lalu akan muncul tampilan sebagai berikut
Pada monitoring paket diatas dapat dianalisa sebagai berikut :
Protokol UDP tidak perlu adanya setup koneksi terlebih dahulu (hal ini dapat menyebabkan tambahan delay) serta sederhana, artinya antara penerima dan pengirim tidak perlu menjaga session atau status koneksi. Protokol UDP tidak perlu kontrol kemacetan koneksi, artinya UDP dapat mengirimkan per segment tanpa dipengaruhi oleh kesibukan jaringan.
Protokol UDP :
1. Didefinisikan dengan RFC 768
2. Menerapkan layanan connectionless
3. tidak ada handshaking antara pengirim UDP dan penerimanya
4. setiap segment UDP ditangani secara independen dengan segment
UDP lainnya
Kelemahan :
1. Segment UDP mungkin akan hilang
2. Paket diterima mungkin dalam keadaan yang tidak urut. Jika paket yang diterima tidak urut, paket akan dibuang.
3. Tidak ada kontrol kemacetan koneksi (congestion control), artinya UDP dapat mengirimkan per segment tanpa dipengaruhi oleh kesibukan jaringan. Secara prinsip lapisan transport harus memberikan congestion control ini selama transmisi terjadi. Congestion dapat terjadi karena terlalu banyak paket data pada jaringan sehingga membuat unjuk kerja jaringan menjadi menurun. Hal ini dapat disebabkan, misalnya karena adanya router terlalu penuh buffernya sehingga memperlambat.
Penutup
Demikian tulisan dari saya, saya mohon maaf apabila ada tulisan yang salah dan kurang berkenan karena disini saya juga masih belajar. Terima kasih.

16 Tips mengotimalkan Program PHP

Berikut ini adalah tentang beberapa tips terkait dengan bagaimana cara mengoptimisasi script PHP Anda supaya didapat kinerja yang baik dan cepat. Tips ini diramu oleh saya dari beberapa sumber di internet:
  1. Untuk menampilkan string, sebaiknya gunakan perintah echo daripada print.

  2. Gunakan function unset() untuk menghapus variabel dari memori, khususnya array berukuran besar, bila tidak digunakan lagi pada proses berikutnya.

  3. Sebaiknya hindari penggunaan require_once(), karena function ini butuh load memori yang besar

  4. Bila Anda ingin mengetahui kapan suatu script mulai dijalankan, sebaiknya gunakan $_SERVER['REQUEST_TIME'] daripada time().

  5. Untuk mengganti substring, penggunaan str_replace() lebih baik daripreg_replace(). Tetapi function strtr() malah lebih cepat 4 kali lipat daripadastr_replace().

  6. Untuk mencari posisi substring, function yang paling cepat prosesnya adalah strpos(), diikuti preg_match(), dan terakhir ereg().

  7. Lebih baik gunakan switch untuk menyatakan kondisional statement daripada multiple IF, atau IF ELSE

  8. Tutup koneksi database Anda bila sudah tidak digunakan lagi

  9. Untuk memfetch data dari database, sebaiknya gunakan $row['id'] daripada$row[id] karena penggunaan $row['id'] akan lebih cepat 7 kali lipat

  10. Hindari penggunaan function dalam looping FOR, misalnya penggunaan functioncount() dalam for ($x=0; $x < count($array); $x++)

  11. Penggunaan increment pada properti obyek, misal $this->$x++ menyebabkan proses 3 kali lebih lambat daripada increment pada variabel lokal $x++.

  12. Script PHP akan diproses oleh Apache 2 – 10 kali lebih lambat daripada halaman HTML statis, oleh karena itu usahakan perbanyak penggunaan halaman HTML statis untuk membangun aplikasi web.

  13. Tidak semua script PHP harus dinyatakan dalam bentuk OOP, karena seringnya malah membuat memori penuh. Hal ini disebabkan setiap method dan object membutuhkan memori yang tidak sedikit

  14. Sebaiknya setiap struktur data jangan dinyatakan dalam bentuk class, terkadang array juga berguna untuk efisiensi memori.

  15. Sebaiknya gunakan single quote untuk mengapit string, daripada double quote. Sebagai contoh

  16. $string = ‘Hello’; lebih baik daripada $string = “Hello”;
Mungkin ada yang mau menambahkan lagi? :)

Sumber