Bagaimana FLIT Bekerja: Arsitektur Transfer File P2P
Berbeda dari layanan penyimpanan cloud konvensional yang menyimpan salinan berkas Anda di server terpusat, FLIT memanfaatkan standar terbuka WebRTC (Web Real-Time Communication) untuk membangun terowongan data langsung (*DataChannel*) antara dua peramban web.
1. Tahap Signaling (Pertukaran Sinyal Awal)
Agar dua perangkat dapat saling berkomunikasi, mereka harus mengetahui alamat IP dan parameter jaringan satu sama lain. FLIT menggunakan server signaling ringan tanpa status (*stateless REST*) yang didukung oleh Upstash Redis.
Ketika pengirim membuat room, kode 8-karakter dibuat sebagai kunci pencocokan sementara. Begitu penerima memasukkan kode yang sama, kedua pihak bertukar deskripsi sesi SDP (*Session Description Protocol*) dan kandidat ICE (*Interactive Connectivity Establishment*). Setelah terowongan WebRTC terbentuk, server sinyal selesai bertugas.
2. Menembus NAT dengan STUN & TURN
Sebagian besar perangkat berada di balik router rumahan atau firewall kantor (NAT). FLIT menggunakan server STUN (Google STUN) untuk mendeteksi alamat IP publik masing-masing pihak.
Jika kedua perangkat berada pada NAT yang sangat ketat (Symmetric NAT) yang memblokir koneksi P2P langsung, FLIT secara otomatis mengalihkan jalur transmisi melalui server TURN Relay (Metered.ca). Meskipun melewati server relay, seluruh paket data tetap terenkripsi secara ujung-ke-ujung (E2E) sehingga operator relay pun tidak dapat melihat isi berkas Anda.
3. Pembagian Berkas (Chunking Protocol)
File besar tidak dapat dikirimkan sekaligus dalam satu paket jaringan. FLIT membaca berkas secara bertahap menggunakan API FileReader dan membaginya ke dalam pecahan-pecahan kecil (*chunks*) berukuran 64 KiB hingga 256 KiB.
Penerima menerima setiap chunk melalui RTCDataChannel, menyusunnya kembali secara sekuensial, dan menyimpannya langsung ke disk menggunakan File System Access API (Chrome/Edge) atau Origin Private File System (OPFS).