Mengapa komputer klien tidak menyajikan informasi ke klien lain melalui internet untuk mengurangi bandwidth server?

Ambil contoh layanan hosting gambar. Untuk mengurangi bandwidth/berapa kali Anda menyajikan gambar, apakah mungkin untuk memiliki klien yang baru saja melihat gambar kemudian MELAYANI file gambar yang sama (atau potongan file itu) ke klien lain yang ingin melihat halaman yang sama /gambar? Apakah ada masalah terkait keamanan yang mencegah hal ini terjadi atau kurangnya pemahaman saya tentang teknologi menghalangi saya untuk melihat alasan yang jelas mengapa hal ini tidak berhasil..

Jika setiap klien menyajikan jumlah data yang sama dengan yang mereka gunakan, server web hanya perlu menyajikan file tertentu satu kali dan bandwidth lainnya akan diambil oleh klien.

Sunting: Saya mengetahui P2P dan bittorrents. Saya bertanya, mengapa tidak menerapkan konsep ini pada aktivitas penjelajahan web secara umum?


person Community    schedule 26.09.2009    source sumber
comment
BBC sedang mempertimbangkan untuk melakukan hal ini untuk layanan video-on-demand mereka. Ada keberatan dari ISP yang mengandalkan Anda mengunduh banyak data namun hanya menyajikan sedikit.   -  person Martin Beckett    schedule 27.09.2009
comment
Sangat menarik - tetapi apakah ISP mampu mengendalikan perangkat lunak yang dibuat dan digunakan?   -  person    schedule 27.09.2009
comment
Mereka dapat memblokir Anda mengirim/menerima data - itu sudah cukup!   -  person Martin Beckett    schedule 27.09.2009


Jawaban (10)


Model yang Anda jelaskan adalah model P2P, dan itulah yang terjadi pada beberapa protokol (misalnya, BitTorrent, kerja).

Jika Anda bertanya mengapa protokol semacam ini tidak digunakan untuk situs web atau penggunaan internal untuk tujuan umum, mungkin ada dua alasan utama:

  1. Ini mungkin akan sangat sulit dilakukan, secara teknologi: Anda harus dapat mengarahkan klien satu sama lain dengan cara yang cerdas, Anda harus dapat membuat klien benar-benar mengirim file (yang memerlukan akses ke sistem mereka, sesuatu yang biasanya tidak Anda miliki), Anda mungkin harus mempertimbangkan hal-hal seperti kecepatan setiap klien (yaitu Anda tidak ingin seseorang menggunakan layanan koneksi yang lama dan sangat lambat gambar, karena situs Anda akan terlihat sangat lambat). Masih banyak alasan lainnya, ini hanyalah masalah paling mendesak yang dapat saya pikirkan, di luar pikiran saya.
  2. Hal ini akan berdampak buruk bagi orang-orang: Meskipun dengan asumsi Anda bisa menemukan cara untuk melakukan hal ini, hal semacam ini mungkin tidak akan diterima dengan baik oleh pengguna situs Anda . Pengguna umumnya tidak ingin "berbagi" ruang komputer/bandwidth/dll. Seringkali perusahaan memasang "spyware" atau hal tersembunyi lainnya di komputer seseorang, mereka mendapat publisitas yang sangat buruk.

Secara keseluruhan, menurut saya tidak ada orang yang akan secara serius mempertimbangkan untuk mencoba melakukan hal seperti ini, terutama karena dua alasan yang saya uraikan di atas.

person Edan Maor    schedule 26.09.2009
comment
Benar - Saya bertanya mengapa hal ini tidak dilakukan untuk situs web. mengenai #2); Keuntungan bagi pengguna: A) tagihan bandwidth akan berkurang, situs tidak perlu menayangkan iklan sebanyak itu. B) situs mungkin berskala lebih baik = lebih sedikit waktu henti. C) Meskipun hal ini bersinggungan, ketiadaan server pusat mungkin memberikan kenyamanan bagi orang-orang yang situsnya diblokir oleh orang lain - misalnya: situs web revolusioner diblokir oleh negara totaliter D) Masyarakat tampaknya memberikan respons positif terhadap crowdsourcing di mana mereka merasa telah membuat perbedaan - pikirkan SETI@home, recaptcha, dll. - person ; 27.09.2009
comment
Bahkan jika Anda bisa membuatnya bekerja secara teknis, dan mendapatkan semua manfaat tersebut, saya masih berpikir Anda akan sangat kesulitan untuk membuat orang memahami semua itu. SETI@home, meskipun populer, mungkin hanya diketahui oleh sebagian kecil populasi online. Coba saja ajak setiap pengguna ke situs Anda untuk memasang sesuatu, karena klaim yang sangat samar-samar akan membuat situs web memiliki lebih sedikit iklan. Adapun recaptcha, mudah untuk memaksa pengguna menggunakannya, dan selain itu, menurut saya kebanyakan orang bahkan tidak tahu bahwa ini untuk tujuan yang baik, mereka hanya tahu bahwa mereka harus memasukkan kata-kata untuk masuk ke sebuah situs. - person Edan Maor; 27.09.2009
comment
Itu benar. Saya bertanya-tanya apakah mungkin melakukannya tanpa mengharuskan pengguna menjalani proses instalasi dan mengganggu pengalaman menjelajah mereka. Server web sudah membaca sejumlah kecil data dari browser Anda, mengapa tidak mengirimkan lebih banyak data dan menyediakannya untuk klien lain, dalam potongan kecil yang terenkripsi? - person ; 27.09.2009

Untuk "menyajikan" data seperti ini, setiap klien harus memiliki server yang terinstal di komputernya -- dan dapat diakses oleh seluruh dunia (yang tidak selalu mudah ketika Anda menggunakan NAT, proxy, jaringan perusahaan, atau terserah).

Ada protokol yang melakukan hal tersebut (misalnya, banyak protokol Peer to Peer -- tetapi protokol tersebut berfungsi lebih baik untuk file besar dibandingkan gambar kecil, menurut saya), tetapi itu bukan cara kerja Web.

Selain itu, dari mana data tersebut berasal bukanlah hal yang penting bagi pengguna, asalkan data tersebut sampai; dan ini masalah Anda, sebagai webmaster/admin.

Saya harus menambahkan bahwa dengan proses terdistribusi seperti yang Anda pikirkan, terdapat risiko keamanan: bagaimana jika satu pengguna memutuskan untuk mengirim sesuatu selain yang sebenarnya diminta? Katakan beberapa gambar "tidak oke" dan bukan gambar asli? Atau virus? Atau hal buruk seperti itu?

person Pascal MARTIN    schedule 26.09.2009
comment
Selama itu tiba, gunakan paket UDP vs TCP untuk pengiriman. Permainan menggunakan UDP karena tidak masalah jika Anda kehilangan pergerakan pada peta tertentu, sementara urutan bit/byte penting saat mentransfer file data. - person OMG Ponies; 27.09.2009

Jaringan peer-to-peer hanya berfungsi untuk konten statis, karena kerumitan dalam menjaga sinkronisasi file tertentu.

person OMG Ponies    schedule 26.09.2009

Untuk beberapa alasan:

  • Klien cenderung berada di belakang NAT, yang melarang penyajian data langsung ke klien lain.
  • Klien cenderung memiliki konektivitas yang lebih buruk daripada server.
  • Anda tidak dapat mengandalkan klien tertentu yang memiliki bandwidth yang sesuai, atau benar-benar melayani apa yang mereka klaim. Jika Anda peduli dengan pengalaman pengguna terhadap situs Anda, Anda ingin memastikan konten disajikan dengan cepat, dan tidak bersifat catch-as-catch-can.
  • Anda memerlukan cara untuk memverifikasi bahwa data yang Anda peroleh belum diubah oleh klien tempat Anda mendapatkannya (atau klien mereka mendapatkannya, dan seterusnya) - hal ini memerlukan tanda tangan digital, yang menyiratkan semua masalah dan kerumitan yang sama seperti SSL.
  • Diperlukan pengerjaan ulang HTTP secara besar-besaran (jika bukan desain ulang langsung) untuk mendukung hal ini. Dukungan klien akan sangat buruk, terutama jika ada sedikit insentif bagi klien untuk mendukungnya.
person Nick Johnson    schedule 26.09.2009

Ini disebut P2P. Penggunaan yang paling berhasil adalah bittorrent. Ini sangat bagus untuk file besar (distro Linux, open office, dll.). Tidak begitu efisien untuk file kecil.

Patch World of Warcraft juga dikirimkan oleh sistem serupa.

person Macha    schedule 26.09.2009
comment
Peer-to-peer, bagi kita yang tertantang TLA. - person Robert Harvey; 27.09.2009
comment
Namun mengapa kita tidak bisa menerapkan prinsip di balik torrent pada aktivitas penjelajahan web secara umum? - person ; 27.09.2009
comment
Bittorrent adalah protokol peer-to-peer (P2P), bukan digunakan. - person OMG Ponies; 27.09.2009
comment
BitTorrent memerlukan akses ke sistem file Anda. Browser web dilarang melakukan hal ini, demi alasan keamanan. - person Robert Harvey; 27.09.2009
comment
@harvey Tapi bukankah datanya juga ada di cache browser Anda? Apakah mungkin untuk menyajikan potongan data ini ke klien lain yang meminta informasi yang sama tanpa memberi mereka akses ke sistem file Anda? - person ; 27.09.2009
comment
Di mana cache disimpan? (Jawab: Pada disk... dalam sistem file.) - person Dave Sherohman; 27.09.2009

Dari sudut pandang pengguna, tempat mereka mendapatkan data tidak relevan selama data tersebut tiba cepat, dapat diprediksi, dan aman.

Model distribusi P2P tentu saja layak dilakukan, namun lebih sulit untuk memenuhi ketiga persyaratan tersebut dengan P2P dibandingkan dengan klien-server.

person Frank Krueger    schedule 26.09.2009

P2P cukup tercakup dalam jawaban lain tetapi kekhawatiran tambahan adalah infrastruktur saat ini. Untuk akses Internet kelas konsumen (kabel, DSL, dll) bandwidth keluar biasanya hanya sebagian kecil dari bandwidth masuk. Misalnya, kecepatan pengunduhan kabel seringkali mencapai 5-6 Mbps, namun kecepatan pengunggahan seringkali berada pada kisaran 400K atau kurang.

Operator internet merancang sistem dengan cara ini karena kebanyakan orang mengunduh konten di browser atau aplikasi lain dan menghasilkan konten dalam jumlah lebih sedikit.

person jnoss    schedule 26.09.2009
comment
Ah, ini menarik. Namun jika klien hanya dapat mengunggah sejumlah kecil informasi, bukankah lebih baik daripada tidak sama sekali? Sebagian besar halaman web dan gambar berukuran kurang dari 400kb kecuali gambar atau video beresolusi tinggi. - person ; 27.09.2009
comment
Kecepatannya masih jauh lebih rendah, sehingga pengguna di pihak penerima akan mendapatkan sebagian kecil dari bandwidth server yang berasal dari server bahkan jika objeknya kurang dari 400k. Juga jika DSL digunakan sebagai pengganti kabel, mungkin hanya 40-60K. Hal ini menambah tantangan dalam membangun pengalaman pengguna yang konsisten di P2P. - person jnoss; 27.09.2009

Anda harus menjalankan sesuatu di latar belakang komputer seseorang untuk menyajikan konten apa pun yang diminta orang lain. Bagaimana Anda mengatasi potensi spam karena setiap klien harus mengatakan, "Ya, saya punya itu," atau "Tidak, saya tidak punya itu," yang mungkin merupakan lalu lintas.

Hal lain yang tidak disebutkan adalah bahwa beberapa situs tidak ingin menampilkan gambarnya ke publik, misalnya. situs porno terlintas dalam pikiran, jadi tidak semua orang menginginkan ini.

person JB King    schedule 26.09.2009

Dengan sedikit keajaiban UDP, Adobe Flash Player kini dapat terhubung dengan klien lain dalam jaringan P2P ad hoc. Ia menggunakan beberapa obrolan jaringan yang cukup menarik untuk membuat lubang melalui pengaturan NAT.

http://labs.adobe.com/wiki/index.php/Stratus:FAQ

http://en.wikipedia.org/wiki/Real_Time_Media_Flow_Protocol

http://www.adobe.com/devnet/flashplayer/articles/rtmfp_stratus_app.html

http://www.flashrealtime.com/tuts/p2p-in-flash.html

person spender    schedule 26.09.2009

Untuk sebagian besar aplikasi internet, bagian paling lambat dari jaringan adalah link terakhir ke mesin pengguna. Jadi klien P2P memiliki beberapa kegunaan - kasus-kasus di mana bandwidth server/jumlah pengguna lebih buruk daripada bandwidth mil terakhir - tetapi tidak selalu berfungsi untuk kasus lain.

Ada ceramah menarik tentang teknik menghindari duplikasi informasi dalam router oleh Van Jacobson menggunakan tingkat referensi lain dibandingkan yang ada di TCP/IP.

person Pete Kirkham    schedule 27.09.2009