[hitung mundur lagu: 7, 6, 5, 4, 3, 2, 1] Internet: Paket, Perutean, dan Keandalan Halo, namaku Lynn. Aku teknisi perangkat lunak di Spotify dan aku akan jadi yang pertama mengakui bahwa aku sering menyepelekan keandalan internet. Jumlah informasi yang melintas di internet sungguh luar biasa. Tapi bagaimana cara setiap keping data dikirimkan untukmu dan dapat dipercaya? Anggap saja kau ingin memutar lagu dari Spotify. Tampaknya komputermu terhubung langsung dengan server Spotify dan Spotify mengirimkan lagu untukmu pada sambungan langsung dan terdedikasi. Tapi sebenarnya, bukan begitu cara kerja internet. Jika internet terbuat dari koneksi langsung dan terdedikasi, akan mustahil menjaga semuanya bekerja seiring bergabungnya jutaan pengguna. Khususnya karena tidak ada jaminan bahwa setiap kawat dan komputer berfungsi setiap saat, melainkan data melintas di internet dengan cara yang kurang bersifat langsung. Bertahun-tahun yang lalu, di awal tahun 1970-an, rekanku Bob Kahn dan aku mulai mengerjakan rancangan dari apa yang kini dikenal sebagai internet. Bob dan aku bertanggungjawab dan berpeluang untuk merancang protokol internet beserta arsitekturnya. Jadi kami bersikeras untuk ikut serta dalam pertumbuhan dan evolusi internet selama ini hingga dan termasuk di masa sekarang. Cara informasi dipindahkan dari satu komputer ke komputer lainnya cukup menarik. Ia tidak perlu mengikuti jalur tetap. Bahkan, jalurmu dapat berubah di tengah-tengah percakapan antar komputer. Informasi di internet berpindah dari satu komputer ke komputer lainnya dalam apa yang kita sebut paket informasi dan sebuah paket sering berpindah dari satu tempat ke tempat lainnya di internet seperti caramu berpindah dari satu tempat ke tempat lain menggunakan mobil. Tergantung pada kepadatan lalu lintas atau kondisi jalan, kau dapat memilih atau dipaksa memilih rute lain untuk mencapai tempat yang sama setiap kali kau bepergian. Dan sama sepertimu yang dapat memindahkan berbagai jenis barang di dalam mobil, berbagai jenis informasi digital dapat dikirimkan dengan paket IP, namun ada beberapa batasan. Bagaimana kalau, sebagai contoh, kau harus memindahkan pesawat ulang alik dari tempat pembuatannya menuju tempat peluncurannya. Pesawat tersebut tidak akan muat di dalam satu truk, jadi pesawat itu harus dibongkar menjadi kepingan-kepingan kecil, dipindahkan menggunakan armada truk. Setiap truk dapat mengambil rute yang berbeda dan mungkin sampai di tujuan pada waktu yang berbeda. Namun setelah semua kepingan sampai di sana, kau dapat menyusun kembali kepingan-kepingan tersebut menjadi pesawat utuh dan pesawat tersebut akan siap diluncurkan. Dalam internet, detil kinerjanya serupa. Jika kau punya gambar yang sangat besar yang ingin dikirim ke teman atau mengunggahnya ke situs web, gambar tersebut mungkin terbuat dari puluhan juta bit yang terdiri dari 1 dan 0, terlalu banyak untuk dikirimkan dalam satu paket. Karena itu adalah data di dalam komputer, komputer pengirim gambar dapat dengan cepat memecahnya menjadi ratusan atau bahkan ribuan bagian-bagian kecil yang disebut paket. Tidak seperti mobil atau truk, paket-paket ini tidak memiliki pengendara dan tidak memilih rutenya sendiri. Setiap paket memiliki alamat internet tempat asalnya sekaligus tempat tujuannya. Komputer khusus di internet yang disebut perute berfungsi seperti manajer lalu lintas untuk menjaga paket melintasi jaringan tanpa hambatan. Jika satu rute terhambat, paket individu dapat melintasi rute berbeda melalui internet dan dapat sampai di tempat tujuan dalam waktu yang sedikit berbeda atau bahkan di luar perkiraan. Mari kita bicara mengenai cara kerjanya. Sebagai bagian dari protokol internet, setiap perute mencatat berbagai jalur untuk pengiriman paket, dan ia memilih jalur termurah yang tersedia untuk setiap keping data berdasarkan alamat IP tujuan paket tersebut. Termurah dalam hal ini bukan berarti biaya, namun waktu dan faktor non-teknis seperti politik dan hubungan antar perusahaan. Seringkali rute terbaik untuk dilalui oleh data bukanlah yang paling tepat sasaran. Memiliki pilihan jalur membuat jaringan toleran terhadap kesalahan. Artinya jaringan tersebut dapat terus mengirim paket bahkan jika suatu hal yang sangat buruk terjadi. Ini adalah dasar untuk prinsip kunci dari internet: keandalan. Sekarang, bagaimana jika kau ingin meminta beberapa data dan tidak semuanya dikirimkan? Anggap saja kau ingin mendengarkan lagu. Bagaimana kau bisa yakin 100% semua data akan dikirimkan agar lagu tersebut diputar dengan sempurna? Memperkenalkan sahabat barumu, TCP (transmission control protocol). TCP mengatur pengiriman dan penerimaan semua datamu sebagai paket. Anggap ini seperti layanan surat dengan jaminan. Ketika kau meminta sebuah lagu pada perangkat, Spotify mengirimkan lagu yang dipecah menjadi banyak paket. Saat paketmu tiba, TCP melakukan pemeriksaan penuh dan mengirim kembali tanda terima dari tiap paket yang diterima. Jika semua paket lengkap, TCP menandatangani pengirimanmu dan selesai. (lagu diputar) Jika TCP menemukan beberapa paket menghilang, TCP tidak akan menandatangani, kalau tidak lagumu tidak akan terdengar merdu atau sebagian lagunya menghilang. Untuk setiap paket yang hilang atau tidak lengkap, Spotify akan mengirim ulang paketnya. Setelah TCP memastikan pengiriman banyak paket untuk lagu yang kau minta, lagumu akan mulai diputar. Kelebihan TCP dan sistem perute adalah mereka berskala. Mereka dapat bekerja dengan 8 atau 8 miliar perangkat. Bahkan, karena prinsip toleransi kesalahan dan redundansi ini, semakin banyak perute yang kita tambahkan, internet menjadi semakin dapat diandalkan. Kelebihan lainnya yaitu kita dapat mengembangkan dan mengukur internet tanpa mengganggu layanan untuk siapa pun yang menggunakannya. Internet terbuat dari ratusan ribu jaringan dan miliaran komputer dan perangkat yang terhubung secara fisik. Sistem-sistem yang berbeda inilah yang membuat internet terhubung satu sama lain, berkomunikasi dengan satu sama lain, dan bekerja sama berkat standar yang disetujui bersama atas cara data dikirim di internet. Perangkat pengukur, atau perute di sepanjang internet, membantu semua paket menuju tempat tujuan di mana mereka disusun, jika diperlukan, secara berurutan. Hal ini terjadi miliaran kali setiap harinya, baik kau dan orang lainnya mengirim surel, mengunjungi halaman web, melakukan video chat, menggunakan aplikasi seluler, atau saat sensor atau perangkat pada internet berbicara dengan satu sama lain.