Multicast VS Unicast File Transfer – Real Implementation

1
ehh salah itu link speed harusnya yg tulisan warna merah, tulisan warna hitam=actual speed

Beberapa waktu lalu ada kerjaan patching software di suatu ruangan lab. Wah ternyata file yang perlu didistribusikan untuk patching lumayan gede juga dan ‘rada sialnya’ ternyata jaringan di lab cuma kena 100Mbps, belom gigabit router yg dipake. Kalau main copy biasa lewat network bisa lama nungguin sampe bosen. Bayangin aja misal 1 ruang ada 40 komputer terus file yang mau didistribusikan segede 2GB, kecepatan maksimal jaringan kena di 100Mbps maka perhitungannya sebagai berikut:

= (jumlah_PC * ukuran_file)/kecepatan

= (40 * 2GB)/100Mbps

= 6400 second = 106.67 minutes = 1.7 h

**jumlah_PC sebenernya merepresentasikan jumlah koneksi yang bakal dibuat sih, dijelaskan di bawah ini secara tidak langsung :p

**Ukuran file 2GByte = 16GBits

Busyet.. nunggu segitu lama bisa sampe tidur terus bangun lagi kalo copy dari server ke semua client..haha.. Solusi lain yang dikasih tahu adalah copy dari server ke beberapa client terus dari beberapa client itu ke client lain.. Hmm lebih oke sih tapi rada rempong juga.

Flashback ke pelajaran SMK dulu yang katanya model komunikasi ada Unicast, Multicast dan Broadcast. Diantara ketiga itu sampe saat itu adalah Multicast yang rasanya paling jarang aku pake. Dari situ kepikiran buat cari-cari model transfer file tapi pake Multicast atau Broadcast. Dapatlah barang yang namanya UFTP buat distribute files secara multicast. Mantablah dengan multicast ini maka perhitungannya bakal mengabaikan seberapa banyak clientpun tidak masalah. Cara kerja dari UFTP yang pake model pengiriman multicast adalah sebagai berikut:

  1. Prepare client to listen in a multicast address (ada defaultnya)
  2. Activate server to start distribute file, server will send announcement on a multicast address for about 10 seconds
  3. Client will response announcement and register to multicast group
  4. Server will start to send file to multicast group

Lalu apa kelebihan multicast, seperti yang aku bilang tadi, di multicast nggak peduli seberapa banyak cliennya server tetep enteng2 saja karena yang kebentuk cuma 1 koneksi doang, kalo unicast misal ada 5 client maka kebentuk 5 koneksi tiap client ke server. Contoh penerapan multicast lain kayak di TV ato Radio, kita tekan channel X maka muncul tanyangan X, tekan channel Y maka muncul tayangan Y.. gambarannya seperti dibawah ini nih perbandingan Unicast VS Multicast:

unicast vs multicast

Coba kita buat perhitungan kalo kirim file segede 2GB ke 40 PC dengan kecepatan jaringane 100Mbps berdasarkan rumus diatas :

= (1 * 2GB)/100Mbps

= 160 seconds = 2.67 minutes

Bahhh… selisihnya jauh banget kan ya 🙂

Oke fix, berarti soal distribusi file gede ke banyak komputer pake model ini jd jauh lebih cepet berdasarkan perhitungan diatas (emang kenyataannya emang lebih cepet juga sih). Selain itu cara pake UFTP juga gampang, kalo mau modif2 sendiri ato bikin aplikasi sendiri juga ada yg share code beginian di internet setauku jd bisa bikin custom sendiri. Pokoknya kalo mau pake UFTP konsepnya tinggal siapin client supaya listen, setelah client siap maka tinggal jalanin server buat kirim filenya.

Nah sekarang mari kita lihat plus minusnya. Plusnya dulu nih:

  • Jauh lebih cepet buat distribusi file gede ke beberapa client karena kecepatannya tidak terpengaruh terhadap jumlah client
  • Gampang+Free, dokumentasi UFTP cukup lengkap+enak dibaca
  • Bandwidth bisa kepake semua secara maksimal

Minusnya nih:

  • Karena dia ngirimnya pake UDP, maka kalo jaringannya tidak stabil terus banyak NACK (not acknowledge) jd retry2 jd rada lama, kadang bisa fail, Jd kalo jaringannya tidak stabil, jelek, putus2.. cukup menyedihkan pake cara ini
  • Kalo ada NACK bakalan retry setelah pengiriman kelar, kalo pake Unicast biasanya pake TCP, maka kalo ada non acknowledged mana langsung di resend. intinya kalo ada banyak NACK di TCP lebih oke sih.

Komen dimari gann....