วันเสาร์ที่ 13 กรกฎาคม พ.ศ. 2556

เรื่อง BitTorrent ดาวน์โหลดไฟล์อย่างไร้ขีดจำกัด


Bit Torrent คืออะไร

Bit Torrent มิติใหม่ของการดาวน์โหลดไฟล์
ผู้ใช้คอมพิวเตอร์ทุกท่านคงไม่มีใครที่ไม่เคยดาวน์โหลดไฟล์ และโปรโตคอลที่เราคุ้นเคยกันดีก็เห็นจะหนีไม่พ้น ftp และ http โปรโตคอลทั้ง 2 นี้เป็นการทำงานในลักษณะ client-server คือ ผู้ใช้ (client) จะต้องติดต่อไปยังผู้ให้บริการไฟล์ที่เราต้องการ (server) และ ทำการดาวน์โหลดไฟล์จากเซิร์ฟเวอร์นั้น ๆ ปัญหาที่เราพบกันบ่อยที่สุดก็เมื่อเราต้องการโหลดไฟล์ที่มีขนาดใหญ่ หรือ เมื่อเราติดต่อกับเซิร์ฟเวอร์ที่ถูกเรียกใช้งานมากๆ มักจะทำให้เกิดปัญหาคอขวดที่เซิร์ฟเวอร์ทันที
การแก้ปัญหาแบบง่ายที่สุดก็คือการสร้างไฟล์เซิร์ฟเวอร์ขึ้นมาหลายๆ ตัว (mirror) เพื่อ แบ่งภาระการทำงานกัน โดยผู้ใช้สามารถเลือกได้ว่าจะติดต่อกับเซิร์ฟเวอร์ตัวใด อย่างไรก็ดี ลักษณะการทำงานแบบนี้ก็ยังต้องพึ่งพาเซิร์ฟเวอร์อยู่ นั่นก็หมายความว่าถ้าเซิร์ฟเวอร์เกิดมีปัญหาขึ้นมา ก็จะส่งผลโดยตรงมายังการให้บริการ
จึง ได้มีการหันเหแนวความคิดของการทำงานมาใช้หลักการของการกระจายการทำงาน ซึ่งนับเป็นเรื่องที่สอดคล้องกับแนวโน้มในยุคปัจจุบันที่พยายามให้เกิดการทำ งานในรูปแบบการกระจายหรือที่เรียกว่า Distributed Computing
Bit Torrent คือการแลกเปลี่ยนไฟล์ในลักษณะที่ว่านี้ กล่าวคือเป็นการทำงานแบบ peer-to-peer หรือ p2p ความหมายของ p2p คือ การทำงานที่เครื่องคอมพิวเตอร์แต่ละเครื่องจะมีการติดต่อกันโดยตรง โดยไม่ต้องผ่านเซิร์ฟเวอร์ นับเป็นการแก้ปัญหาคอขวดที่เซิร์ฟเวอร์อย่างตรงไปตรงมาที่สุด
Bit Torrent ใช้ แนวความคิดของการเป็นทั้งผู้ให้ และ ผู้รับในเวลาเดียวกัน โดยไฟล์ที่เราต้องการจะถูกแบ่งออกเป็นส่วนๆ และในการรับ-ส่งไฟล์ก็จะทำงานทีละส่วน ซึ่งอาจจะไม่ใช่ชิ้นส่วนที่ต่อเนื่องกันก็ได้ เมื่อเราได้ชิ้นส่วนครบเมื่อไหร่ก็แสดงว่าการดาวน์โหลดไฟล์ของเรา เสร็จสมบูรณ์
ใน ระหว่างที่เรากำลังดาวน์โหลดชิ้นส่วนของไฟล์อยู่นั้น เราก็จะให้บริการอัพโหลดชิ้นส่วนที่เราได้รับมาเรียบร้อยแล้วให้แก่ผู้อื่น ด้วย สำหรับการดาวน์โหลดไฟล์ที่ต้องการนั้น เริ่มต้นด้วยการติดต่อไปยังไซต์ที่ทำหน้าที่เป็น tracker ซึ่งรายชื่อ tracker นี้จะเก็บรวบรวมไว้ที่เซิร์ฟเวอร์ของ torrent และเว็ปไซต์ที่เป็นที่นิยมและเชื่อถือได้มากที่สุดในปัจจุบันก็เห็นจะได้แก่ http:///www.suprnova.org
ที่ไซต์นี้จะมีรายการไฟล์ต่างๆ ไว้มากมาย และในแต่ละรายการก็จะระบุชื่อของ tracker ของไฟล์นั้น ก่อนที่เราจะสามารถใช้ Bit Torrent ได้ เราจะต้องติดตั้งโปรแกรมสำหรับดูแลการรับส่งไฟล์ก่อน เรียกว่าโปรแกรม Torrent Client ซึ่งในปัจจุบันมีให้เลือกมากมาย ตัวที่นิยมใช้กันมากที่สุดเห็นจะได้แก่ Azureus (http://azureus.sourceforge.net/) เพราะเขียนด้วยจาวา ทำให้สามารถทำงานได้กับเครื่องหลากหลายแพลตฟอร์ม
เมื่อเราเลือกไฟล์ที่ต้องการดาวน์โหลดแล้ว ก็ให้โปรแกรม torrent client ติดต่อไปยัง tracker ของไฟล์นั้น tracker คือ ไซต์ที่เก็บข้อมูลเกี่ยวกับโครงสร้างของไฟล์เช่น ชื่อไฟล์ ขนาดไฟล์ ขนาดและจำนวนของชิ้นส่วน เป็นต้น นอกจากนี้ยังทำหน้าที่เป็นผู้ติดตามว่ามีใครกำลังรับ-ส่งไฟล์อยู่บ้าง จากนั้นตัวโปรแกรม client ก็จะติดต่อไปยังเครื่องต่าง ๆ ที่ได้รายชื่อมาจาก tracker ทั้งนี้ เป็นธรรมเนียมของการรับส่งไฟล์แบบ Bit Torrent ว่าจะใช้หมายเลขพอร์ต 6881-6999 ในการรับ-ส่ง ข้อมูล

เราเรียกเครื่องที่กำลังรับ-ส่งชิ้นส่วนของไฟล์ว่า peer ซึ่งแน่นอนว่าเมื่อเราเริ่มรับ-ส่งไฟล์ เราก็จะกลายเป็น peer ไปด้วย และผู้อื่นก็สามารถติดต่อมาที่เราเพื่อขอรับชิ้นส่วนที่เรามีได้ด้วย เป็นธรรมเนียมและมารยาทว่า ผู้ใช้ Bit Torrent ควร จะเป็นทั้งผู้ให้และผู้รับที่ดี คือเปิดอัพโหลดให้ผู้อื่นด้วย โดยเฉพาะอย่างยิ่งเมื่อเราได้ชิ้นส่วนของไฟล์มาครบแล้ว ก็ควรจะเปิดช่องการสื่อสารค้างไว้อีกระยะหนึ่งเพื่อให้ผู้อื่นมาโหลดจากเรา ต่อไปได้ อย่างน้อยให้ได้ปริมาณข้อมูลที่เราอัพโหลดไม่น้อยกว่าปริมาณข้อมูลที่เรา ดาวน์โหลด จึงจะเรียกว่าเป็นผู้ใช้ที่ดี เราเรียกผู้ที่มีไฟล์ครบและยังเปิดบริการให้ผู้อื่นว่าเป็น seeder
จะเห็นว่าด้วยหลักการนี้หากมีผู้ที่กำลังทำการรับ-ส่งมาก ก็จะยิ่งทำให้การดาวน์โหลดไฟล์เร็วเพราะเรามีจำนวน peer ที่ติดต่อได้มากขึ้น ในโปรแกรม client จะแสดงให้เห็นว่าเรากำลังติดต่อกับ seeder กี่ราย และกับ peer กี่ราย และเมื่อทำงานไปได้ระยะหนึ่ง client ก็จะติดต่อกลับไปยัง tracker เพื่ออัพเดทรายชื่อ peer และ seeder เผื่อมีรายใหม่เข้ามา อย่างไรก็ดีจะเห็นว่า หากมีปัญหาที่ tracker เราก็ยังสามารถดาวน์โหลดไฟล์ได้อยู่ เพราะเราได้ติดต่อกับ peer ต่างๆ ไว้แล้ว
มา ถึงคำถามที่ว่า การใช้งานแบบนี้ ปลอดภัยหรือไม่ ทั้งในแง่ของการเป็นผู้ให้และเป็นผู้รับ มองในด้านของการเป็นผู้รับก่อน เพราะเวลาที่เราดาวน์โหลดไฟล์กันตามปกตินั้น เราจะดาวน์โหลดจากไฟล์เซิร์ฟเวอร์โดยตรง นั่นก็คือ ถ้าเราเลือกดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ที่เชื่อถือได้ ก็เป็นการประกันความปลอดภัยในระดับหนึ่ง แต่การทำงานแบบ p2p นี้เป็นการดาวน์โหลดจากใครก็ไม่ทราบ เป็นไปได้หรือไม่ว่าเจ้าของเครื่องเหล่านั้นจะแอบแฝงอะไรมาด้วย
Bit Torrent ปลอดภัยหรือไม่
ในตอนที่แล้ว เราได้กล่าวแนะนำเรื่อง BT กันไปคร่าว ๆ แล้ว ซึ่งจะเห็นว่าแนวความคิดของ BT สอดคล้องกับการมุ่งไปสู่ระบบการทำงานแบบกระจาย (Distributed Computing) ซึ่ง หากจะพูดถึงหลักการก็นับเป็นเรื่องที่ดี แต่การนำมาใช้นั้นเป็นอีกเรื่องหนึ่ง ที่ผู้เขียนเกริ่นนำอย่างนี้ก็เพราะ เวลาที่เราพูดถึง BT โดยเฉพาะในกลุ่มผู้ใช้วัยรุ่น ก็มักจะนึกถึงแต่เรื่องของการดาวน์โหลด เกม หนัง โปรแกรม และ เพลงกัน ซึ่งสิ่งที่เขาดาวน์โหลดกันนี้ ส่วนมากเป็นไฟล์ที่ละเมิดลิขสิทธิ์มา ดังนั้น เวลาที่เราพูดว่าแนวความคิดของ BT ดีหรือไม่ดี นั้น ต้องแยกให้ชัดเจนระหว่างแนวความคิดในเรื่องของเทคนิค กับรูปแบบการนำไปใช้

ตัวอย่างเช่น หาก BT ถูกนำไปใช้กับเซิร์ฟเวอร์ที่ถูกใช้งานมาก ๆ โดยนำไปเสริมการทำงานแบบ Mirror ที่ทำกันอยู่ในปัจจุบันก็น่าจะเป็นเรื่องที่เหมาะควร หรือใช้เฉพาะกับไฟล์ที่เป็นระบบเปิด เป็นต้น
ย้อนกลับมาเรื่องของความปลอดภัย ซึ่งเราสามารถมองได้ 2 ฝั่ง คือ ในฐานะของการเป็นผู้ที่รับไฟล์มา (Download) และในฐานะของการเป็นผู้เปิดให้ผู้อื่นมาอ่านไฟล์เรา (Upload)
มา ดูประเด็นแรกกันก่อน -- ทุกคนทราบกันดีอยู่แล้ว ว่าการดาวน์โหลดไฟล์จากแหล่งที่ไม่ปลอดภัยมีความเสี่ยงสูง ในการที่จะได้ของแถมที่ไม่พึงประสงค์มาด้วย ในปัจจุบัน มีศัพท์รวมเรียกสิ่งเหล่านี้ว่า Malware อันรวมไว้ตั้งแต่ ไวรัส หนอน (Worm) ม้าโทรจัน (Trojan Horse) และ Spyware (เรื่องของ Spyware อยู่ในรายการที่จะนำเสนอต่อไป) ในการทำงานของ BT เรา จะได้รับข้อมูลจากผู้ให้จากหลากหลายที่ และได้มาเป็นส่วน ๆ ซึ่งจะนำส่วนเหล่านี้มาประกอบกันเป็นไฟล์ ซึ่งทั้งผู้ให้และผู้รับไม่สามารถควบคุมได้ว่าเราจะได้ชิ้นส่วนใดจากใคร ดังนั้น หากผู้ให้ข้อมูลคนใดพยายามแอบแฝง Malware เข้ามาด้วย ก็จะต้องพยายามให้อยู่ภายในชิ้นส่วนเดียว อย่างไรก็ดี ในการดาวน์โหลดจะมีการใช้ระบบแฮชชิ่ง (Hashing) คำนวณค่าของไฟล์ต้นฉบับไว้ นั่นก็หมายความว่า หากชิ้นส่วนใดมีการถูกเปลี่ยนแปลงไปจากต้นฉบับ ค่าแฮชชิ่งที่เราได้รับจะไม่ตรงกัน
แต่ในที่สุดแล้วเมื่อเราได้รับไฟล์มาแล้ว เราก็ควรผ่านให้โปรแกรมดักจับไวรัสตรวจสอบดูอีกครั้งหนึ่ง เท่าที่ติดตามข่าวมา การใช้ BT ค่อนข้างจะปลอดภัย โดยเฉพาะกับไฟล์ที่เป็นลักษณะดาต้า เช่นไฟล์หนัง เพลง หนังสือ จะไม่ปรากฏว่ามี Malware ติดมาด้วย ถ้าจะระวังก็คงเป็นไฟล์ที่เป็นโปรแกรม
มาดูประเด็นที่ 2 ต่อ ในกรณีที่มีเราเป็นผู้ทำการอัพโหลด แน่นอนว่าจะต้องมีผู้มาอ่านข้อมูลจากเครื่องของเรา ในเรื่องนี้ต้องยอมรับความจริงที่ว่า เมื่อใดก็ตามที่เราเปิดเครื่องแล้วเข้าสู่ระบบเน็ตเวิร์กสาธารณะ ไม่ว่าจะเป็นการต่อเข้าแลน หรือ หมุนโทรศัพท์ผ่านโมเด็ม เครื่องของเราก็จะเป็นส่วนหนึ่งของเครือข่ายสาธารณะที่ใคร ๆ ก็เข้าถึงได้ทันที (ยกเว้นไว้เล็กน้อยว่า ถ้าเราทำงานภายใต้ Proxy หรือ NAT --- ราย ละเอียดคงต้องไว้กล่าวถึงต่อไป) นั่นก็หมายความว่าเครื่องอื่น ๆ สามารถติดต่อมาที่เครื่องเราได้ผ่านทางพอร์ตที่เราเปิดไว้ นอกจากนี้ยังมีลักษณะการทำงานที่เครื่องอื่นสามารถเข้ามาเรียกให้โปรแกรมที่ เครื่องเราทำงานในลักษณะของ Remote Procedure Call (RPC) ได้อีกด้วย
วิธีการป้องกันจุดอ่อนที่ดีที่สุดก็คือการจัดหาไฟร์วอลล์ (Firewall) มา ติดตั้งไว้ อย่างน้อยที่สุดก็ควรเปิดไฟร์วอลล์ที่มากับโอเอสเอาไว้ ซึ่งไฟร์วอลล์จะทำการปิดพอร์ตที่ไมได้ใช้ และสามารถกรองแพกเกตตามกฎที่เราระบุไว้ได้
การใช้ BT เท่ากับเป็นการเปิดพอร์ตมากขึ้น ตามจำนวนเพียร์ (Peer) ที่เราติดต่อด้วย โดยโปรเซส BT Client จะเป็นตัวรอรับการติดต่อมาที่พอร์ตเหล่านี้ หากต้องการดูว่าตอนนี้เรามีพอร์ตใดเปิดอยู่บ้างก็ทำได้ด้วยการออกคำสั่ง netstat ดู ณ เวลา

 

ส่วนประกอบที่สำคัญของ Bittorrent


1. Tracker Client  คือ Application ที่ใช้ในการ Download/Upload File Bittorrent ซึ่งมีหลายโปรแกรม มีการทำงานอยู่บน Protocal bittorent เหมือนกันซึ่งสามารถที่จะหา Download ได้จาก www.macupdate.com, www.versiontracker.com application แต่ล่ะตัวก็ความแตกต่างกันหลักๆ ก็คงเป็นแค่ interface เท่านั้น  เพราะโปรแกรมเหล่านี้ทำหน้าที่ download/upload file torrent เหมือนกันนั่นเอง

2. Tracker Server หรือเรียกกันสั้นๆว่า Tracker  คือแม่ข่ายทำหน้าที่เป็นตัวกลางระหว่างระหว่าง Client และทำหน้าที่เก็บรวบรวม Torrent File ( ไฟล์.torrent ) ไว้ 

3. Torrent File  คือตัวสำคัญในการรับ-ส่ง Share File กัน เพราะ Torrent File นี้จะถูก Generate File ขึ้น โดยจะต้องมีการกำหนด URL ของ Tracker Server ที่ผู้ส่งจะต้องไปคนระบุไว้ ( เพราะว่า tracker ที่ใช้มีอยู่มาก จึงต้องมีการระบุแอดเดรสไว้ ) และ รูปแบบประเภทของ File นั้นๆ 



ไม่มีความคิดเห็น:

แสดงความคิดเห็น