PROXY CACHE DI INTERNET

Achmad Husni Thamrin
Onno W. Purbo
Computer Network Research Group
Institut Teknologi Bandung

Pendahuluan

Perkembangan Internet sejak 1993 sangat pesat, bahkan karena perkembangan tersebut, Internet Society secara resmi telah mengumumkan: "1993 is the year the Internet 'happened' ". Penelitian pada tahun 1994 memperlihatkan perkembangan tersebut terutama oleh bertambahnya aliran data WWW yang meningkat sebesar 25% setiap bulannya dibandingkan dengan aliran data FTP yang meningkat sebesar 5%. Dengan perkembangan yang sebesar itu, aliran data WWW telah melebihi aliran data FTP pada bulan Mei 1995. Penelitian lain juga menunjukkan bahwa aliran data WWW mencapai 37%  dari jumlah total byte yang lewat di jaringan tulang punggung NSF.

Di satu sisi peningkatan yang pesat ini sangat menggembirakan, tetapi di sini lain –setidaknya untuk saat ini— perkembangan tersebut cukup mengkhawatirkan. Kekhawatiran ini terutama disebabkan oleh keterbatasan kapasitas prasarana Internet dan perkembangan kapasitas ini tidak dapat mengimbangi perkembangan penggunaan Internet.

Salah satu contoh ekstrem terjadinya beban jaringan yang tinggi adalah pada saat terjadinya event astronomi tahun 90-an: tabrakan komet Shumaker-Levy 9 dengan planet Jupiter. Ini adalah salah satu contoh publikasi 'real-time' di Internet. Gambar-gambar teleskop dari seluruh dunia ditempatkan pada server FTP dan WWW hanya beberapa jam setelah tabrakan tersebut. Beban pada server pada beberapa lokasi NASA sangat tinggi sehingga beberapa mesin harus ditambah untuk melayani beban permintaan atas gambar komet tersebut. Selama seminggu setelah tabrakan itu,  Jet Propulsion Laboratories (JPL) NASA mencatat telah terjadi lebih dari 880.000 akses. Server lain yang terletak di Goddard Space Flight Center diakses lebih dari 420.000 kali dan mengirim data lebih dari 6 Terabyte.

Mirroring, Replicating, dan Caching

Pada kasus seperti di atas, kita dapat memperhatikan dua fenomena yaitu server WWW mengalami kelebihan beban dan aliran data yang lewat di jaringan sangat tinggi. Ada beberapa upaya yang dilakukan untuk mengurangi kemungkinan terjadinya kasus-kasus seperti di atas. Beberapa upaya tersebut adalah dengan menggunakan metoda yang dikenal dengan mirroring dan replicating, serta dengan caching. Mirroring dan replicating adalah metode yang menduplikasikan file dan/atau server pada tempat-tempat lain di Internet. Server yang tersebar di Internet mempercepat waktu respon dan mengurangi aliran data pada jalur wide area network (WAN).  Metode mirroring ini tentu saja cukup membantu dalam mengurangi akses ke server asal tetapi ini bukan solusi yang ideal. Masalahnya adalah pengguna masih dapat memilih server mana yang akan dituju. Seorang pengguna mungkin memilih server asal dengan beberapa alasan. Mungkin ia tidak pernah tahu adanya mirror site, ia lupa nama server mirror tersebut, atau ia tidak percaya mirror site itu menyediakan  file-file yang up-to-date.

Berbeda dengan metode di atas, metode caching berorientasi kepada client. Metode caching di Internet mirip dengan cache memory pada komputer yaitu dengan menempatkan object-object (dalam bentuk file) yang baru saja diakses pada situs yang dekat dengan client sehingga ketika file tersebut diakses kembali, maka file tersebut diambil dari situs yang dekat. Hal ini dimungkinkan karena protokol HTTP yaitu protokol jaringan yang digunakan pada aplikasi WWW mengenal fasilitas yang disebut sebagai server proxy. Proxy ini bertindak sebagai perantara antara client dengan server pada waktu pengaksesan dokumen.

Gambar 1. Posisi host di Internet

Untuk lebih memperjelas, kita perhatikan gambar 1. Pada gambar tersebut host A dan B menjalankan program client dan host C menjalankan program server. Host A dan B terletak dalam satu LAN yang umumnya lebih cepat dibandingkan dengan kecepatan hubungan LAN tersebut ke Internet menggunakan WAN. Kita tinjau model hubungan client-server yang biasa berlaku pada aplikasi WWW. Pada hubungan seperti ini, client meminta koneksi dengan server. Setelah koneksi terjadi, client meminta akses terhadap dokumen di server. Server kemudian memberikan jawaban atas permintaan client dengan mengirimkan dokumen yang diminta. Pada kasus seperti contoh ini dapat terjadi inefisiensi atas penggunaan bandwidth WAN jika dokumen yang sama diakses berkali-kali. Sebagai contoh, pengguna di host A meminta dokumen pada host C dan keesokan harinya pengguna di host B juga meminta dokumen yang sama pada host C. Tentu saja akan lebih mudah jika dokumen tersebut diambil dari host A, waktu pengiriman dokumen lebih singkat dan bandwidth WAN ke Internet dapat dihemat.

Pada contoh di atas terlihat bagaimana upaya yang mungkin dilakukan untuk menghemat bandwidth. Kasus pengambilan dokumen yang sama berkali-kali merupakan kasus yang umum dalam aplikasi WWW dan FTP. Tentu saja akan sangat baik jika user di host B dapat mengambil dokumen yang sebelumnya telah diambil user di host A. Penggunaan metode ini hanya dapat berlangsung jika user di host B mengetahui bahwa duplikat dokumen yang diinginkannya telah berada di host A dan host A menjalankan aplikasi server sehingga user di host B memilih untuk mengambil dokumen tersebut dari host A. Kelemahan metode ini terlihat jelas jika jumlah user dan host banyak dan perilaku mereka biasanya saling bebas sehingga dokumen yang telah diambil user yang satu belum tentu akan diambil oleh user yang lain. Kelemahan lain adalah setiap host client juga harus menjalankan aplikasi server dan user yang ingin mengambil dokumen harus mengetahui di mana duplikat dokumen tersimpan.

Cara yang lebih baik adalah jika setiap user mengakses suatu dokumen, maka duplikat dokumen tersebut juga disimpan di sebuah situs yang dekat dengan user. Pada skenario ini terdapat tiga host yang terlibat dalam sebuah hubungan client-server agar dokumen yang diminta user dapat tersimpan di situs yang dekat. Hubungan client-server demikian tidak lagi seperti hubungan client-server sederhana yang telah digambarkan di atas. Dalam hubungan seperti ini, host ketiga yang disebut sebagai proxy bertindak sebagai perantara antara client dengan server yaitu meneruskan permintaan dari client kepada server jika perlu. Jika dokumen yang ada di proxy dianggap masih baru maka dokumen yang diminta client cukup diambil dari proxy. Pada posisi ini, proxy akan bertindak sebagai server dari sisi client dan sebagai client dari sisi server, karena itu yang sebenarnya terjadi adalah dua buah hubungan client-server sederhana (gambar 2). Walaupun demikian, user tidak akan merasakan terjadinya dua hubungan tersebut karena pada tingkat aplikasi yang tampak hanyalah user melakukan hubungan langsung dengan server tempat dokumen tersebut berada.

		a.						b.
Gambar 2a. Model hubungan client-server sederhana
	               2b. Model hubungan client-server menggunakan proxy

Proses duplikasi dokumen yang dijelaskan di atas memiliki kemiripan dengan metode mirroring. Perbedaan utama antara keduanya terletak pada orientasi duplikasi dokumen. Metode mirroring lebih berorientasi kepada server sedangkan metode proxy-cache lebih berorientasi kepada client. Di sini kita dapat melihat kelebihan penggunaan metode proxy-cache dibandingkan dengan mirroring. Proxy-cache dapat ditempatkan secara terdistribusi dan dekat dengan client yaitu dengan menempatkannya satu LAN dengan client. Server mirror, walaupun ditempatkan secara terdistribusi, memiliki kelemahan karena user yang ingin mengambil dokumen yang sama dalam waktu yang tidak berbeda jauh harus mengadakan hubungan client-server melalui jalur WAN yang biasanya memiliki bandwidth lebih sempit dibandingkan bandwidth LAN. 

Jenis-jenis Cache

Masalah lain yang dihadapi dalam penduplikasian dokumen adalah bagaimana menjaga agar dokumen yang diduplikasikan sama dengan dokumen yang terakhir ada di server asli.  Server mirror atau cache harus melakukan pembaruan kembali dokumen agar user percaya bahwa dokumen yang ia terima dari server mirror atau server proxy-cache sama dengan dokumen yang terdapat di server. Saat ini terdapat setidaknya dua jenis pembaruan kembali yang biasa digunakan yaitu jenis persistent dan jenis non-persistent. Pada jenis persistent, jika terdapat dokumen dalam cache maka dokumen yang disampaikan ke user adalah dokumen yang berada dalam cache tersebut. Dokumen tersebut selalu diambil dari cache kecuali jika user memaksa agar dokumen diambil langsung dari sumbernya. Contoh jenis ini adalah seperti yang digunakan oleh browser Netscape. Untuk memerintahkan Netscape agar mengambil langsung dari sumber dokumen, user harus memilih ikon reload. Kelemahan utama jenis ini adalah pembaruan kembali dokumen harus dipaksakan dan tidak ada mekanisme untuk memeriksa apakah dokumen yang disimpan masih sama dengan dokumen yang terdapat pada server asal atau dokumen harus diambil kembali dari server asal tersebut.

Berbeda dengan cache jenis persistent, cache non-persistent memiliki mekanisme untuk memperbarui dokumen di dalam cache sehingga dokumen yang diterima oleh user dapat selalu sama dengan dokumen di server asal tanpa perlu dipaksa oleh user. Mekanisme pembaruan kembali dokumen dalam cache ini menggunakan dua buah algoritma yang saling mendukung: algoritma Ageing dan algoritma Least Recently Used (LRU). Algoritma LRU bertugas untuk menjaga agar selalu tersedia tempat untuk menyimpan dokumen yang baru diakses. Jika cache sudah hampir penuh, algoritma ini menghapus dokumen-dokumen yang lama tidak diakses (least recently used) sampai batas tertentu. Algoritma Ageing memeriksa tanggal dokumen yang terdapat di dalam cache untuk menentukan apakah dokumen tersebut harus dihapus. Di samping itu algoritma Ageing juga menentukan apakah dokumen yang sedang diakses user perlu diambil dari server asal atau cukup dengan menggunakan dokumen yang terdapat di dalam cache. Server proxy umumnya menggunakan cache non-persistent karena kelebihan yang disebutkan di atas.

Hierarki Cache

Server proxy dapat dihubungkan dengan server-server proxy lain dan membentuk hierarki seperti pada sebuah organisasi. Jika server proxy bergabung dalam sebuah hierarki, sebuah server proxy bisa memilih untuk mengambil dokumen yang diinginkan dari server proxy lain dalam hierarki atau mengambil dari server asal. Saat ini National Laboratory of Applied Network Research (NLARN) sedang mengembangkan prototipe hierarki cache dengan beberapa buah server proxy-cache pada tingkat hierarki yang paling tinggi (root cache). Hierarki ini terdiri dari cache pada tingkat nasional, regional, dan organisasi. Dalam prototipe ini cache pada tingkat nasional melayani permintaan akses untuk domain negara tersebut. Misalnya terdapat permintaan dokumen dari URL http://www.titech.ac.jp yang berada di bawah domain jp (Jepang), maka dokumen tersebut diminta dari cache tingkat nasional di Jepang. 

Institut Teknologi Bandung sekarang juga sedang mengembangkan hierarki cache untuk jaringan di dalam kampus. Dalam hierarki yang kami kembangkan terdapat beberapa server proxy-cache yang diletakkan secara terdistribusi agar dapat mengurangi beban lalu lintas jaringan. Berdasarkan pengalaman kami, di jaringan gedung Pusat Antar Universitas dalam satu minggu dapat terjadi transfer data yang mencapai 1 Gigabyte untuk aplikasi WWW dan penggunaan server proxy-cache untuk gedung ini dapat menghemat lalu lintas data aplikasi WWW sampai sekitar 23%. Jadi dengan contoh kasus ini dapat terlihat bagaimana keuntungan menggunakan server proxy-cache untuk menghemat bandwidth WAN.

Gambar 3. Prototipe hierarki cache

Penutup

Sekarang ini di Internet terdapat kampanye Cache Now! yang bertujuan untuk mengurangi aliran data HTTP yang tidak perlu. Cache Now! mengimbau semua pengguna jasa Internet untuk menggunakan proxy-cache pada aplikasi WWW. Berdasarkan pengamatan penulis, baru beberapa penyedia jasa Internet di Indonesia yang menggunakan proxy-cache untuk menghemat aliran data HTTP. Karena penggunaan proxy-cache terbukti mampu mengurangi aliran data HTTP, tentu akan lebih baik jika setiap penyedia jasa Internet di Indonesia menggunakan proxy-cache.