P2P = Peer-to-Peer (หรือ Pirate-to-Pirate ?)

Picture from the Film Pirates Of The Caribbean

ภาพประกอบจากภาพยนตร์เรื่อง Pirates Of The Caribbean

P2P ได้กลายเป็นแชมป์เปี้ยนแห่งโลกไซเบอร์อย่างไม่ต้องสงสัย เรียกได้ว่า เหล่าบรรดานัก (ดาวน์) โหลดทั้งมือใหม่และมืออาชีพหลายล้านคนต่างติดใจใช้ P2P อย่างวางมือไม่ลง แม้บางคนอาจจะไม่รู้ว่า P2P คืออะไร แต่ก็อาจจะเคยสักครั้งที่ได้ใช้ P2P อย่างไม่รู้ตัว เหตุใดผมถึงว่า P2P นั้นได้ครองแชมป์โลกไซเบอร์ เพราะเนื่องจากรายงานของ ISP หลายเจ้ากล่าวว่า การจราจรบนเครือข่ายอินเตอร์เน็ตหรือ Internet traffic มากกว่า 50% ถูกใช้โดยโปรแกรมแบบ P2P และบางช่วงเวลาก็กระโดดไปถึง 75% ! [2-5]ตัวเลขนี้บ่งชี้ว่า P2P มันได้หน้ากว่า World Wide Web (WWW) และบริการ Internet อื่นๆซะอีก แม้ว่าจำนวนผู้ใช้ P2P จะน้อยกว่าคนที่ท่องเว็บผ่าน WWW แต่ว่าแบนด์วิธ (Network bandwidth) ของเครือข่ายกลับถูกบริโภคโดย P2P มากกว่าจำนวนที่เอาไปให้กับการท่องเว็บซะอีก …โอเค เอาเป็นว่าผมจะคุยถึง P2P ต่อไปอีกหลายบทความแล้วกัน เพื่อที่เราจะได้ทำความรู้จักกับ P2P แบบใกล้ชิด และสำหรับบทความนี้ เอาแค่หอมปากหอมคอ สำหรับคนไม่รู้จักว่า P2P คืออะไรก็จะได้รู้จักซะที สำหรับคนที่งงว่า P2P ย่อจากอะไร ขอเฉลยก่อนว่ามันย่อจาก Peer-to-Peer นั่นเอง และตอนท้ายของบทความนี้ ขอแสดงความคิดเห็นหน่อยว่า ทำไมชื่อหัวข้อของบทความมันถึงไปเกี่ยวกับโจรสลัด (Pirate) ทำไมถึงต้อง Pirate-to-Pirate ?

Author: Sivadon Chaisiri  More about author
Oreilly's P2P Book   ตอนเห็นรูปหน้าปกหนังสือเล่มนี้ ตอนแรกนึกว่าเป็นหนังสือประเภท Erotic ประมาณรวบรวมเรื่องเล่าชาวเกย์ ที่ไหนได้เป็นหนังสือวิชาการของสำนักพิมพ์ Oreilly หนังสือให้รายละเอียดเทคโนโลยี Peer-to-Peer ไว้เยอะมาก นับว่าเป็นหนังสือที่นักวิจัยด้าน P2P อ้างอิงมากเล่มหนึ่ง

หนังสือเล่มหนึ่งของ Oreilly [1] ให้คำนิยามไว้ว่า “Peer-to-Peer เป็นระบบ Self organizing โดยปราศจากการควบคุมจากศูนย์กลาง และประกอบไปด้วยเพียร์ (Peer) ที่สามารถแชร์ทรัพยากร (resource) ให้กับเพียร์อื่นๆเข้ามาใช้งานได้” เรามาดูนิยามอีกนิดว่าอะไรคือ Peer, Resource, Self organizing

PEER

Peer คือ สรรพสิ่งใดๆที่ไม่ได้ดีหรือเลวกว่าสรรพสิ่งอื่นๆที่เป็น Peer เหมือนกัน ถ้ามองว่าคนเป็น Peer คนทุกคนก็มีความเท่าเทียมกัน ไม่มีสูงต่ำรวยจน ไม่มีชนชั้น และถ้าหากมองคอมพิวเตอร์หรือโปรแกรมว่าเป็น Peer คอมพิวเตอร์หรือโปรแกรมก็มีความเท่าเทียมกัน ไม่มีคำว่าฉันเป็น Client เธอเป็น Server ถึงแม้ว่าทางกายภาพ (ที่มองเห็นได้) อาจจะเป็นไปได้ว่า Peer หนึ่งมีอะไรที่ดีกว่า Peer อื่นๆ เช่น คนนี้รวยกว่าคนอื่น หรือว่าคอมเครื่องนี้เร็วกว่าเครื่องอื่น เป็นต้น แต่ทว่าเมื่อไหร่ก็ตามที่ Peer ใดๆเข้ามาเป็นส่วนหนึ่งของระบบ Peer-to-Peerแล้ว นับว่า ทุกๆ Peer มีความเท่าเทียมกัน ทั้งบทบาทและหน้าที่การงาน

RESOURCE

ทรัพยากรหรือ Resource คือ สรรพสิ่งที่สามารถให้บริการและถูกใช้งานโดย Peer อื่นๆได้ ตัวอย่างของ resource ได้แก่ ไฟล์ พื้นที่จัดเก็บข้อมูล ฐานข้อมูล หน่วยความจำหลัก หน่วยประมวลผล แบนด์วิธของเครือข่าย เป็นต้น

โอเค ณ ที่นี่ Peer ของเราก็คือโปรแกรมบนคอมพิวเตอร์นั่นเอง ขอเรียกโปรแกรมนี้ว่า โปรแกรม P2P ดังนั้น คอมเครื่องหนึ่งอาจจะรันโปรแกรมเพื่อสร้าง Peer ได้มากกว่า 1 Peer และบางตำราอาจจะบอกไปเลยว่า Peer ก็คือคอมพิวเตอร์หรืออุปกรณ์อิเล็กทรอนิกส์ที่รันโปรแกรม P2P อยู่ และ Peer ก็สามารถแชร์ resource ให้กับ Peer อื่นได้ ทั้งนี้ทั้งนั้น ทุกๆ Peer จะประสานงานกันเพื่อก่อสร้างระบบแบบ Self Organizing และอะไรคือ Self organizing ล่ะ ?

SELF ORGANIZING SYSTEM

Self organizating คือระบบที่ไม่ต้องพึ่งพาผู้ดูแลระบบ (administrator), ไม่พึ่งพาคอมพิวเตอร์ศูนย์กลางหรือ Server, และไม่พึ่งพาโปรแกรมกลุ่มใดกลุ่มหนึ่งที่อยู่ศูนย์กลางเพื่อก่อสร้างและบริหารระบบ แต่ระบบก็ยังก็สามารถทำงานต่อไปได้ โดยอาศัย Peer ที่มีอยู่ในระบบเป็นผู้จัดการระบบกันเอง แล้วเมื่อ P2P เป็น Self Organizing ทำให้ P2P มีคุณสมบัติที่เด่นชัด ดังนี้

  1. ความคงทน (Robust) กล่าวคือ หากมี Peer ใดๆหนึ่ง Peer หรือกลุ่มของ Peer ออกจากระบบอันเนื่องจากสาเหตุใดๆก็ตาม เช่น ออกโดยสมัครใจ (หยุดการทำงานโปรแกรม P2P โดยผู้ใช้), โปรแกรม P2P ทำงานผิดพลาดและปิดตัวเอง, คอม hang, คอมดับ, คอมเสีย, เน็ตหลุด เป็นต้น ระบบก็สามารถดำเนินงานต่อไปได้ กล่าวคือ Peer อื่นๆที่ยังอยู่ในระบบก็ยังทำงานต่อไปได้ และก็สามารถดำเนินกิจกรรมที่เคยได้ทำในระบบ Peer-to-Peer ต่อไปได้ เหมือนว่าไม่มีเหตุการณ์ที่ต้องสูญเสียพรรคพวกเกิดขึ้น (นั่นคือ มี Peer ใดๆออกจากระบบ)
  2. ความคงอยู่ยาวนาน (High Availability) หมายถึง ระบบสามารถรักษา resource ในระบบให้คงอยู่ยาวนานเพื่อบริการ Peer ต่างๆได้ แม้มี Peer หนึ่งที่เคยเก็บ resource อย่างหนึ่งไว้ หาก Peer นี้ออกจากระบบ ระบบก็สามารถจัดเตรียม resource เดียวกันนี้จากที่อื่นมาทดแทนได้ ตัวอย่างเช่น หากมี Peer ใดๆ สมมติชื่อ A หลุดออกจากระบบ และถ้า A แชร์ resource อันเป็นที่ต้องการของ Peer อื่นๆ เช่น A แชร์ไฟล์วิดีโอคลิปชื่อ “น้อง Pepper” ที่มีคนหลายคนกำลังดาวน์โหลดหรือค้นหาอยู่ เมื่อ A หายไปจากระบบ แน่นอน “น้อง Pepper” ก็ควรจะหายไปด้วย แต่ระบบจะต้องสามารถจัดหา “น้อง Pepper” จาก Peer อื่นมาทดแทนได้ คำถามคือ P2P ทำได้อย่างไร ตอบคร่าวๆก่อนว่า P2P ใช้วิธีที่เรียกว่าการทำซ้ำซ้อน (Redundancy) โดยการคัดลอก resource ไปยังที่อื่นๆให้มีจำนวน copy มากขึ้น และโดยทั่วไปแล้ว โปรแกรม P2P ไม่ได้คัดลอก resource โดยอัตโนมัติ แต่อาศัยผู้ใช้เป็นคนช่วยทำให้ โดยเมื่อไหร่ก็ตามที่ผู้ใช้ต้องการเข้าถึง resource จาก peer อื่นๆ โปรแกรม P2P ทางฝั่งผู้ใช้คนนี้จะคัดลอก resource เหล่านั้นมาเก็บไว้ที่เครื่องของผู้ใช้ด้วย และหากมีคนเข้าถึง resource เดียวกันเยอะๆ โอกาสที่ resource จะถูกทำซ้ำซ้อนก็มากขึ้นไปด้วย และ resource เดียวกันก็จะกระจายไปตามที่ต่างๆในขอบเขตที่กว้างขวางมากขึ้น หากมีผู้คนจากหลากหลายภูมิภาคเข้าถึง resource นี้
  3. ความสามารถแบ่งเบาภาระ (Load Balancing) จริงๆเป็นคุณสมบัติทางอ้อมจากการทำ redundancy เพราะเมื่อ resource กระจายไปที่ต่างๆแล้ว นั่นเหมือนว่ามี Peer ให้บริการ resource เดียวกันมากกว่า 1 ที่ ดังนั้น Peer เหล่านี้จึงสามารถแบ่งเบาภาระในการให้บริการ resource เดียวกันในกรณีที่ resource นี้เป็นที่ต้องการจำนวนมาก
  4. ความยืดขยายได้อย่างมหาศาล (Massively Scalability) อืม คำว่า Scalability เนี่ยแปลเป็นไทยแบบตรงๆยากมาก บางทีเราเรียกสั้นๆว่า Scale ระบบที่ Scale มีความหมายได้ว่าระบบรองรับจำนวนผู้ใช้จำนวนมากๆได้เรื่อยๆแต่ประสิทธิภาพของระบบไม่ได้ด้อยลงหรือด้อยลงเพียงเล็กน้อย เช่น ถ้าหากเดิมระบบรองรับผู้ใช้ 1 พันคนพร้อมๆกันอย่างสบายๆ และเมื่อมีผู้ใช้ติดต่อระบบ 1 หมื่นคนพร้อมๆกัน ระบบก็ยังสามารถตอบสนองต่อความต้องการของผู้ใช้ได้เหมือนกับว่าจำนวนที่เพิ่มมา 10 เท่าไม่ได้กระทบกับประสิทธิภาพโดยรวม และหากต่อไประบบมีคนเข้ามาพร้อมกันเป็นหลักล้าน ระบบก็ยังทำงานต่อไปได้ โดยประสิทธิภาพต้องไม่ด้อยลงมากไปด้วย เป็นต้น นอกจากนี้ Scale ยังหมายถึงการขยายอาณาบริเวณของเครือข่ายในวงที่กว้างขึ้น เช่น เดิมทีระบบทำงานอยู่ในวงแลน (LAN) และเวลาต่อมาระบบก็สามารถขยายอาณาเขตไปเชื่อมต่อเพียร์อื่นในวงแวน (WAN) และสามารถขยายต่อไปถึงเครือข่ายอินเตอร์เน็ต ทำให้เชื่อมต่อ Peer ที่อยู่กระจายได้ทั่วโลก เป็นต้น โอเค P2P นั้น Scale มากๆครับ บางระบบรองรับจำนวน Peer ได้เป็นหลักล้านถึงสิบล้านเลยเชียว
  5. ความเป็นอิสภาพสูง (High Freedom) เนื่องจาก P2P ไม่มีศูนย์กลางควบคุมอย่างนิยามของมัน ทุกๆ Peer จึงมีอิสระในการใช้ระบบ เช่น อิสระในการแชร์ไฟล์, อิสระในการเข้าออกจากระบบตามใจชอบ โดยไม่ต้องคำนึงว่า ถ้าออกไปแล้วจะทำให้ระบบทั้งหมดเสียหาย, อิสระในการเข้าถึง resource โดยไม่ต้องขออนุญาต เป็นต้น และเมื่อไม่มีผู้ดูแลระบบหรือ admin มาควบคุม ผู้ใช้แต่ละคนในระบบ P2P จึงมีหน้าที่เป็น admin เพื่อดูแล Peer ของตัวเอง ทำให้มีอิสระในการเลือกว่าจะแชร์ resource อะไรบ้างหรือจะยกเลิกการแชร์ resource อะไรบ้างได้ตามใจชอบ

P2P vs Client/Server

P2P เป็นหลักการที่ตรงกันข้ามกับ Client/Server และP2P ก็มีคุณสมบัติที่เป็นจุดเด่นเหนือกว่า Client/Server แต่ผมคงไม่ลงรายละเอียดของ Client/Server มากนัก คิดว่าหลายคนคงได้ยินและรู้จักชื่อนี้มาแล้ว มาดูนิยามคร่าวๆของ Client/Server กัน Client/Server คือระบบที่ประกอบด้วยคอมพิวเตอร์ศูนย์กลางที่เรียกว่า Server และกลุ่มของคอมพิวเตอร์ที่เรียกว่า Client โดย client ต้องการพึ่งพา resource ของ Server ตัวอย่างเช่น Web Server ให้บริการหน้าเว็บเพจ (Web page) แก่คอมพิวเตอร์ client ที่ใช้โปรแกรม browser เพื่อแสดงผลของหน้าเว็บ โดยการดาวน์โหลดหน้าเว็บเพจจาก Web server เพื่อนำมาแสดงผลที่ client เป็นต้น ดังนั้นจะเห็นได้ว่า Client ต้องพึ่งพา Server แล้วถ้า Server ล่ม นั่นแปลว่า ระบบก็ล่มไปด้วย กล่าวคือ Client ก็ติดต่อขอ resource จาก Server ไม่ได้ ปัญหานี้เรียกว่า “ความล้มเหลวจากจุดเดียว” (Single point of failure) อันทำให้ Client/Server ขาดคุณสมบัติ Robust และ High Availability

อีกปัญหาของ Client/Server คือ ปัญหาคอขวด (Bottle neck) กล่าวคือ ถ้าหากเรามี Server เพียงที่เดียวต้องรองรับจำนวน client มากๆแล้ว Server ย่อมทำงานอืดลง และให้บริการ client ได้ช้าลง เป็นไปได้ว่า client บางคนจะไม่ได้รับบริการ และอาจจะส่งผลให้ Server ล่มไปได้ด้วย เลยกล่าวได้ว่าระบบ Client/Server ไม่ scale และขาด load balancing นั่นเอง

Why Client/Server is still Alive ?

Client/Server ก็มีข้อดีที่เหนือกว่า P2P โดยเฉพาะอย่างยิ่งคือ Client/Server ปลอดภัยกว่าและบริหารระบบได้มีประสิทธิภาพกว่า เนื่องจาก Server อยู่ที่ศูนย์กลาง เราจึงกำหนดสิทธิ์ผู้ใช้ที่อนุญาติให้เข้าระบบได้อย่างมีประสิทธิภาพ ผู้ดูแลระบบสามารถควบคุมและสอดส่อง (monitor) ระบบได้ทั่วถึง โดยรวมแล้วจุดเด่นของ Client/Server เกี่ยวกับเรื่อง Admin กับ Security ที่เหนือกว่านั่นเอง

P2P ขาดศูนย์กลาง ทุกๆ Peer เท่ากัน จึงทำให้ไม่มีใครคุมใคร แม้จะได้มาซึ่งอิสระภาพ (คุณสมบัติHigh Freedom) แต่ก็ทำให้การควบคุมความปลอดได้ลำบาก,การสอดส่องหรือ monitor ดู peer ทั้งระบบที่ทำแทบไม่ได้, การจะวางนโยบายเพื่อบริหารระบบก็ทำได้ลำบาก เพราะระบบ P2P ให้อิสระแก่ Peer แต่ละตัวให้ควบคุมกันเอง แต่จะคุมได้ไงให้มีประสิทธิภาพอย่าง Client/Server ล่ะ ถ้าไม่มีผู้นำเป็นจุดศูนย์กลางอย่าง Server

อีกอย่าง Client/Server นับว่าเป็นระบบที่ใช้กันมานมนาน และมีใช้กว้างขวางทั่วโลก ถึงแม้ระบบ P2P ให้บริการอะไรได้ดั่งที่ Client/Server ทำได้ แต่เพราะความน่าเชื่อถือของ P2P โดยเฉพาะ Admin และ Security ที่แทบทำไม่ได้เลย จึงไม่สามารถนำ P2P มาทดแทน Client/Server ได้ และถึงแม้ P2P จะมีอะไรดีๆอย่าง Scalabilty และ Robust ก็ตาม แต่วิทยาศาสตร์ก็เนรมิตสิ่งเหล่านี้ให้ Client/Server ได้ด้วยเช่นกัน เพื่อทำให้ Server มีความคงทนและสามารถ Scale ได้มากขึ้นเรื่อยๆ แต่ผมคงไม่กล่าวถึงเรื่องเหล่านี้ในบทความนี้ โอเคเอาแค่นี้ก่อน เพราะเรายังไม่ได้พูดเลยว่า อะไรคือ โจรสลัด (Pirate) ดั่งชื่อของบทความและภาพที่แสดงไว้ด้านบน

File Sharing Makes P2P Famous

ระบบP2P จะเกิดขึ้นได้นั้น ต้องมีคอมพิวเตอร์ติดตั้งและรันโปรแกรม P2P บนคอมเหล่านั้นก่อน และ P2P แต่ละระบบก็มีข้อกำหนดหรือ Protocol ที่แตกต่างกันไป ดังนั้น โปรแกรม P2P คนละโปรแกรมจึงไม่สามารถเชื่อมต่อกันได้ ยกเว้นว่าจะคุยกันด้วย Protocol เดียวกัน เมื่อไหร่ก็ตามที่เรารันโปรแกรม P2P แล้ว โปรแกรมจะแสดงตนเป็น Peer และจะพยายามหาพวกพ้อง Peer อื่นๆที่อยู่ในเครือข่ายโดยใช้ Protocol และ algorithm ของโปรแกรมในการเชื่อมต่อระบบ ตัวอย่างของ P2P ที่ได้รับความนิยม ได้แก่ BitTorrent, Kazaa, LimeWire, Napster เป็นต้น โดยโปรแกรม P2P ดังกล่าวนี้ ออกแบบขึ้นมาเพื่อการแชร์ไฟล์ร่วมกัน จะเป็นไฟล์ประเภทไหนก็ได้ เช่น หนัง เพลง ebook โปรแกรม เป็นต้น (ยกเว้น Napster ที่ถูกออกแบบมาเพื่อแชร์ไฟล์เพลง) เวลาใช้งานโปรแกรม P2P ก็ง่ายเหลือเกิน ไม่ต้องเสียเวลาศึกษามาก เช่น Limewire หรือ Kazaa เมื่อคุณเปิดมันขึ้นมา คุณแค่พิมพ์ชื่อของไฟล์ที่อยากโหลด (ไม่ต้องตรงทุกตัวก็ได้) เดี๋ยวระบบจะหาไฟล์ที่มีชื่อใกล้เคียงมาให้ และคุณก็แชร์ไฟล์ให้คนอื่นได้ด้วย บางระบบถ้าคุณแชร์ไฟล์ให้คนอื่นจนเป็นที่ติดใจมีคนมาโหลดไฟล์จากคุณจำนวนมาก คุณก็จะได้โควต้าไปโหลดไฟล์ของคนอื่นเยอะด้วยเช่นกัน แต่ถ้าคุณไม่แชร์อะไรให้ใครเลย คุณอาจจะโหลดไฟล์ขนาดเล็กๆเป็นวันเป็นเดือนก็ว่าได้

เมื่อเรารันโปรแกรมแชร์ไฟล์แบบ P2P ดั่งที่กล่าวมา เราก็สามารถแชร์ไฟล์และค้นหาไฟล์ได้ตามต้องการ และด้วยคุณสมบัติ High Availability หาก resource ใดๆเป็นที่ต้องการมาก มันจะอยู่ในระบบยาวนานและสูญหายได้ยากตามไปด้วย เช่นไฟล์ที่เป็นที่ต้องการเยอะๆก็ยิ่งจะอยู่ในระบบได้ยาวนานขึ้น เนื่องจากว่าเมื่อคุณใช้ P2P โหลดไฟล์เป็นที่เรียบร้อยแล้ว โดยปกติโปรแกรม P2P จะแชร์ไฟล์นั้นให้คนอื่นโหลดต่อ และถึงแม้คุณปิดคอม ก็ยังมีไฟล์นั้นหลงเหลือที่คอมเครื่องอื่นๆอีก (เพราะคนอื่นก็โหลดไฟล์นี้เหมือนคุณเช่นกัน) นี่แหละครับการ Redundancy อย่างที่เกริ่นมาก่อนหน้านี้ และด้วย Redundancy นี่เอง ยังทำให้เกิดกระบวนการที่เพิ่มประสิทธิภาพในระบบ P2P นั่นคือ Caching หรือการคัดลอกข้อมูลให้อยู่ใกล้กับผู้ที่ต้องการ (เนื้อหาของ caching กล่าวกันมากในวิชา computer architecture และ operating system) เช่น เดิมทีไฟล์ X มีแค่นาย A ที่อยู่อเมริกาเก็บไว้ ต่อมานาย B อยู่กรุงเทพใช้ P2P โหลดไฟล์ X จากนาย A มาได้ และ B ก็แชร์ X ให้คนอื่นต่อไป หากว่านาย C ที่อยู่ปทุมธานีอยากโหลด X บ้าง เขาไม่จำเป็นต้องโหลด X จาก A ที่อยู่แสนไกลอีกต่อไป ไปโหลดจาก B เร็วกว่าเยอะ เป็นต้น

Pirate-to-Pirate, Pirates of The Millennium

เมื่อ P2P แบบแชร์ไฟล์ใช้งานง่าย โดยไม่ต้องการ Server ศูนย์กลาง เราจึงมีอิสระในการดาวน์โหลดและแชร์ไฟล์โดยไม่ต้องกังวลว่าจะมีใครมาควบคุม ดังนั้น จึงเป็นช่องทางอันสะดวกในการแชร์โปรแกรม เพลง หนังสือ ภาพยนตร์และอื่นๆอีกมากมาย ซึ่งส่วนใหญ่แล้วเป็นสินค้ามีลิขสิทธิ์ที่ต้องซื้อขายกันเท่านั้น และเมื่อมีผู้ใช้ P2P มากขึ้นเรื่อยๆ ขอบเขตการกระจายไฟล์ก็กว้างขึ้น จากเดิมไฟล์ X อยู่แค่ในประเทศใดประเทศหนึ่ง ไปๆมาๆ ไฟล์ X ก็อยู่กระจายตีวงกว้างไปทั่วโลก ไฟล์หน้าตาใหม่ๆ (เช่น เพลงใหม่ หนังใหม่ โปรแกรมใหม่) ก็มีมากหลากหลายขึ้น เพราะมีคนเผื่อแผ่ของใหม่ๆมากขึ้น โลกแห่งการเอื้อเฟื้อเผื่อแผ่ (ดูดี) ที่แฝงไปด้วยการก่ออาชญากรรม (ดูร้าย) ก็ทวีคูณจำนวนผู้ละเมิดลิขสิทธิ์อย่างมหาศาลไปด้วย และนี่ก็คือรูปแบบ Pirate-to-Pirate หรือการแลกเปลี่ยนสิ่งของระหว่างโจรสลัดนั่นเอง

อย่าว่าผมตำหนิหรือใส่ร้ายคนที่ใช้ P2P ว่าเป็นโจรนะครับ แค่อยากแสดงไอเดียของผมต่อคำว่า Pirate-to-Pirate เท่านั้น ให้คุณนึกถึงว่าเวลาเราซื้อโปรแกรม (copy)จากพันธ์ทิพย์ เราคงไม่รู้สึกว่าเราทำผิด หรืออาจจะเคยรู้สึกตอนแรกๆ และต่อมาก็รู้สึกว่ามันธรรมดาจนลืมไปว่ามันผิด บางครั้งก็คิดไปด้วยซ้ำว่าคนที่ขายแผ่น copy น่ะผิด และคิดเหมาเอาเองว่าผู้ซื้อไม่ผิด รู้แต่ว่าถ้าวันไหนตำรวจมา เราก็ต้องระวังโดนจับ ทั้งผู้ขายและผู้ซื้อต้องมองซ้ายขวา โดยผู้ซื้อไม่เอะใจเลยว่า ฉันเป็นผู้ซื้อนะ ทำไมฉันต้องหลบตำรวจด้วย :)

ถ้า P2P มันสร้างกลุ่มของอาชญากรขนาดยักษ์แล้ว ทำไมไม่มีใครมาหยุดหรือห้ามปามมัน อืม จริงๆแล้วในองค์กรและ ISP หลายเจ้าก็พยายามหยุดยั้งโดยการ block การติดต่อสื่อสารโปรแกรมพวกนี้อยู่ [3,4] แต่ต่อให้ป้องกันอย่างไร มนุษย์ก็หาทางแก้ไขและพัฒนาให้ P2P ดีขึ้นและใช้งานได้ต่อไป ตราบใดที่ Internet ยังเป็นสาธารณะและมนุษย์ยังพอใจในการไม่ต้องจ่ายเงินซื้อของลิขสิทธิ์ P2P แบบ Pirate-to-Pirate ก็ไม่มีวันตายเช่นกัน

ตามความสามารถของ P2P ถ้าคนหนึ่งคนสำนึกผิดและถอนตัวจาก P2P ระบบก็ยังไม่ล่ม ตามทฤษฎีแล้ว P2P จะล่มอย่างแน่นอนก็ต่อเมื่อไม่เหลือสัก Peer ในระบบ และในทางปฏิบัติจริง การทำให้ P2P เป็นระบบที่ไม่มีคนอยากใช้ (แต่ไม่ได้ล่มนะ) ก็ต่อเมื่อไม่มีใครแชร์อะไรให้กัน หรือแชร์ในสิ่งที่ไม่มีใครต้องการเลย และหากจะหยุดยั้ง P2P โดยการไล่จับคนทั้งหมดที่เผยแพร่ไฟล์ละเมิดลิขสิทธิ์ได้นั้น ก็ต้องมีจำนวน Peer เหลือน้อยพอที่ตำรวจจะตามล่าได้จนหมด ซึ่งจริงๆต่อให้ P2P มีผู้ใช้จำนวนมาก ตำรวจก็สามารถสุ่มจับโจรใน P2P ได้ เพราะ P2P หลายระบบไม่ได้ป้องกันการรักษาตัวตนของ Peer เช่น คุณสามารถรู้ว่าคุณดาวน์โหลดไฟล์ที่ต้องการจาก Peer ไหนอยู่ (รู้ว่า IP อะไร ใครเป็น ISP ก็ไล่ล่าได้ไม่ยาก) แต่เพราะไม่มีคนร้องเรียนหรือเปล่าตำรวจเลยไม่จับ หรือมองอีกแง่หนึ่ง มันก็เหมือนกับต่อให้ลงโทษกับคนกลุ่มหนึ่ง ก็ไม่ได้ทำให้จำนวนคนใช้ P2P น้อยลงเลย และอาจจะร้ายแรงยิ่งขึ้น เพราะคนบางกลุ่มก็สามารถพัฒนา P2P ให้มีความสามารถมากยิ่งขึ้นไปอีก อย่างเช่นยากต่อการติดตามว่าใครเก็บอะไรบน Peer, ยากต่อการค้นหาว่า Peer แต่ละตัวติดต่อกับ Peer ไหนบ้าง, และยากต่อการตรวจสอบว่าสิ่งที่ Peer หนึ่งส่งไปให้อีก Peer หนึ่งคืออะไร ซึ่งจริงๆแล้ว P2P บางระบบ เช่น Freenet [6] ก็มีคุณสมบัติเช่นนี้แล้ว โดยระบบ Freenet สามารถเข้ารหัสข้อมูลต่างๆที่อยู่บน Peer หรือเข้ารหัสข้อมูลที่ส่งไปมาระหว่าง Peer และสามารถซ่อนข้อมูลของต้นตอผู้ที่เก็บไฟล์ที่ Peer หนึ่งกำลังดาวน์โหลดอยู่ได้ เป็นต้น

P2Ps are Not Always Pirates!

อย่าเหมาว่า P2P จะเป็นโจรเสมอไป เราใช้ P2P แบบแชร์ไฟล์ในทางที่ผิดเอง แต่ถ้าไม่ผิดกฎหมาย P2P ก็คงไม่อยู่ยืนยาวและมีจำนวนผู้ใช้อย่างมหาศาลแล้ว ผมเชื่อว่า เทคโนโลยีก็เหมือนดาบ 2 คม อยู่ที่จะเอาไปใช้ให้เกิดประโยชน์หรือโทษกันแน่

P2P ไม่ได้เกิดมาเพื่อแชร์ไฟล์เท่านั้น P2P ออกแบบมาเพื่อทลายข้อจำกัดบางอย่างของระบบอย่าง Client/Server และ P2P ก็ไม่ได้ระบุด้วยว่า resource ที่แชร์หรือให้บริการบน Peer นั้นเป็นอะไร หรือจะเอาไปใช้งานด้านไหน ตัวอย่าง P2P ที่ไม่ได้ออกแบบมาเพื่อแชร์ไฟล์และเป็นที่รู้จักกว้างขวางได้แก่ Jabber, Skype, SETI@home [7] และ BOINC [8] เป็นต้น ผมเชื่อว่าคนที่เคยใช้ Skype คงรู้สึกว่า Skype ได้ลดค่าใช้จ่ายโทรศัพท์ทางไกล (โดยเฉพาะโทรต่างประเทศ) ได้มากทีเดียว และก็ไม่ต้องทำผิดกฎหมายอีกด้วย อีกตัวอย่างหนึ่งที่ต้องขอยกย่อง P2P ว่าเป็นเทคโนโลยีที่อุทิศตนเพื่อชาวโลก คือ โปรแกรม P2P ของโครงการ BOINC ที่ทำให้เกิดกลุ่มของ Peer จำนวนหลายล้าน ที่กำลังร่วมมือกันประมวลผลเพื่องานวิจัยอันเกิดประโยชน์ต่อมวลมนุษยชาติ โอเคครับ พอเป็นจุดเริ่มต้นที่ดี รอติดตามบทความต่อไปแล้วกันว่า P2P เขาเอาไปใช้อะไรกัน

อ้างอิงและอ่านเพิ่มเติมได้ที่

[1] A. Oram et al., Peer-to-Peer:Hardnessing the Power of Disruptive Technologies, Oreilly, 2001 อ่านตัวอย่างของหนังสือได้ที่ http://www.oreilly.com/catalog/peertopeer/chapter/ch01.html เป็นเนื้อหาบทที่ 1 แต่ถ้าใครอยากรู้ P2P แบบลึกซึ้ง ซื้อมาเก็บไว้จะดีมากๆครับ
[2] R.Steinmetz and K. Wehrle (Eds.):P2P Systems and Applications, Springer-Verlag, 2005
[3] Manaing Peer-To-Peer Traffic With Cisco Control Technology, Cisco’s White Paper, http://www.ciscosystems.com/en/US/prod/collateral/ps7045/ps6129/ps6133/ps6150/prod_white_paper0900aecd8023500d_ps6135_Products_White_Paper.html น่าน่าอ่านมากๆครับ โหลดอ่านฟรีอีกด้วย
[4] Wayne Blackard, Managing Peer-to-Peer Traffic In Network Environments, TippingPoint’s Technical Report, http://www.tippingpoint.com/pdf/resources/whitepapers/503157-001_ManagingP2PTraffic.pdf น่าอ่านมากๆครับ โหลดอ่านฟรีด้วย
[5] http://www.computerworld.com.au/index.php/id;378881375
[6] I. Clarke, T. W.Hong, O.Sandberg, and B. Wiley, Protecting Free Expression Online with Freenet, IEEE Internet Computing, 2002, http://freenetproject.org/papers/freenet-ieee.pdf
[7] E. Korpela et al., SETI@home-massively distributed computing for SETI, IEEE Computing in Science & Engineering, 2001
[8] D.P. Anderson, BOINC: a system for public-resource computing and storage, Fifth IEEE/ACM International Workshop on Grid Computing, 2004

 (Thanks the Film “Pirates of the Caribbean” for the pictures)

About these ads

7 thoughts on “P2P = Peer-to-Peer (หรือ Pirate-to-Pirate ?)

  1. JinGjOe says:

    เหอๆ คอมเม้นมึนๆเอาละกันมะมีความรู้เหอๆ สำหรับผมเปิดคอมได้ก็หรูแล้วครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s