BitTorrent คืออะไรนะ ??
หลังจากที่ได้พูดถึงเรื่อง P2P ทั่วไปแล้วตอนแรก อ่านมาถึงตรงนี้คงจะเริ่มเข้าใจหลักการทำงานคร่าวๆของ P2P
ไม่มากก็น้อยกันแล้วนะครับ แต่ก็อย่างที่ทุกคนเข้าใจกันดี "ไม่มีอะไรที่จะสมบูรณ์ไปมันทุกอย่าง" หรือเรียกว่า "Perfect" ทุกๆ อย่างต้องมีจุดอ่อน
ถึงแม้ว่า P2P ที่ว่า จะแก้ปัญหาจุดอ่อนเรื่อง Bandwidth และทรัพยาการเครื่องแม่ข่ายที่สูงได้ แต่ถึงกระนั้นความเร็วที่ได้ก็ไม่ค่อยจะดีเอาเสียเลย
เนื่องจากความเร็วที่ได้นั้น จะได้จากจากเชื่อมต่อผู้ใช้ด้วยกันเอง ซึ่งโดยทั่วไปแล้วความเร็ว Internet ในการรับส่ง ของผู้ใช้ตามบ้านนั้นไม่ได้เร็วเหมือนเครื่อง
ที่ใช้เป็นแม่ข่ายโดยซึ่งเฉพาะที่จะตั่งอยู่ใน ISP ซึ่ง Bandwidth อย่างต่ำๆ นั้นเป็น 100Mbit และผู้ใช้เอง ส่วนมากนั้นก็จะเห็นแก่ตัว
คือไม่ปล่อยให้ตัวโปรแกรมส่งแบบเต็มๆ Bandwidth ที่มีจะกั้กเอาไว้ (มีน้อยแล้วยังจะกั้กอีก) ส่วน Bandwidth ดาวน์โหลดนั้นดันเปิดไว้เต็มๆ เอากับเขาสิ...
ทำให้โปรแกรมประเภท P2P ที่กล่าวมานั้นความเร็วที่ได้จะขึ้นอยู่กับว่าคนที่มีไฟล์ที่เรากำลังโหลดอยู่นั้นมีความเร็วในการส่งข้อมูลให้เรามากแค่ไหน (กั้กอีกแค่ไหน)
รวมถึงมีคนที่มีไฟล์เดียวกับเรานั้นมีมากแค่ไหน ซึ่งจะเห็นได้ว่าความเร็วที่ได้นั้นมีเงื่อนใขหลายอย่างประกอบกันมากพอสมควร
ถึงตรงนี้ Bittorrent ก็กำเนิดขึ้นมาซึ่งมีการทำงานแตกต่างจาก P2P ทั่วไปอยู่เล็กน้อยแต่ก็ทำให้ความเร็วที่ได้นั้น
นำหน้า P2P ทั่วไปอย่างเห็นได้ชัดเลยทีเดียวและมีความถูกต้องของข้อมูลสูงรวมถึงทำให้ทุกคนรู้จักถึงคำว่า "แบ่งปัน" หรือ "give and take" นั้นเอง
เราคงจะข้ามความเป็นมาของ Protocal* Bittorrent เนื่องจากมีสาเหตุเดียวกันกับ P2P ทั่วไปแต่คงจะขาดชื่อของผู้คิดระบบนี้ไปไม่ได้ชื่อของเขาก็คือ "Bram Cohen"
และเนื่องจากระบบนี้มีข้อแตกต่างที่ออกจะทำให้ผู้ใช้มือใหม่บางคนถึงกับ อึ่ง-ทึ่ง-เสียว งงงวยไปตามๆ กันและเพื่อไม่ให้เป็นการเสียเวลา
ในเมือบทความนี้ไม่ได้เน้น P2P ตัวอื่นผมก็จะมาล้วงตับเจ้า Bittorrent นี้กันเลย จากตรงนี้คุณควรจะเข้าใจศัพท์พื้นฐานได้แล้วนะครับ
เนื่องจากมันจะมีคำแปลกประหลาดโผล่ออกมาจากบทความอยู่เรื่อยๆ ที่ปรึกษาของพวกท่านผมเนะนำก็คือ "Google" ครับ
*Protocal = ขอตกลงของ หรือ ภาษา ที่ใช้สื่อสารกันระหว่างกันของคอมพิวเตอร์ทำให้สามารถสื่อสารกันได้รู้เรื่อง(คุยภาษาเดียวกัน)
ก่อนเราจะมาเข้าเรื่อง ระบบการทำงานของ Bittorrent เราต้องมารู้จักเป็นส่วนๆก่อนเพราะแต่ละส่วนนั้นทำงานควบคู่กันไป
ถ้าให้อธิบายรวบทีเดียวแทยที่จะเข้าใจ มันจะงงยิ่งกว่าเดิม (เป็นข้อจำกัดทางความสามารถของผู้เขียน)
1.Torrent client
หรือที่เรียกกันติดปากว่า Program torrent ซึ่งมีให้เลือกกันลายตัวทีเดียว เช่น Bitcomet,BitTornado,Azureus,TorrentStorm ฯลฯ
ซึ่งแต่ละตัวนั้นก็มีข้อแตกต่างกันนิดๆหน่อยในเรื่องความสามารถที่ผู้เขียนแต่ละคนเขียนเพิ่มลงไป แต่โดยพื้นฐานก็อยู่บน Protocal Bittorrent เดียวกัน
ตัว Program เหล่านี้ ใช้ในการดาวน์โหลด ไฟล์ ด้วย Protocal Torrent นั่นเอง
2.Tracker server
เรียกสั่นๆว่า Tracker ทำหน้าที่เป็นแม่ข่ายกลางระหว่าง Torrent client ด้วยกันและโดยส่วนมากแล้วจะเก็บไฟล์ .torrent ไว้ด้วย
แต่ก็มีคนชอบมีคนสับสนว่าตัว Torrent portal เช่นพวก suprnova ที่ชี้ไปยังไฟล์ Torrent ของ Tracker ที่อื่นนั้นเป็น Tracker สะเอง
จริงๆแล้วผิดนะครับ (แต่ไฟล์บางส่วนบนนั้นเขาก็เป็น tracker เอง)
3.Torrent file
ไฟล์นี้เป็นไฟล์ที่สำคัญมากๆ เพราะจะเก็บข้อมูลหลายอย่างเพื่อใช้ในการดาวน์โหลดไฟล์ ด้วย Protocal torrent นี้
ไฟล์นี้จะถูกใช้โดย Torrent client เพื่ออ่านข้อมูลที่บรรจุอยู่ เช่น ที่อยู่ของ Tracker,Check sum** ของไฟล์ที่เก็บไว้
**Check sum = ระบบการตรวจสอบไฟล์โดยการใช้ระบบ "ผลรวม"
การทำงานของ Bittorrent แบบง่ายๆ (จริงอยากให้แบบละเอียดนะครับแต่มันซับซ้อนเดี๋ยวจะไม่รู้เรื่องกันเปล่าๆ เลยเอาแค่นี้พอครับ)
ผมจะเริ่มเมื่อได้ไฟล์ .torrent มาแล้วนะครับ
หลังจากเมื่อเราใช้ Torrent client เปิด file .torrent แล้ว
-ตัว Program จะอ่านค่าที่อยู่ของ Tracker server ในไฟล์ที่เปิด แล้วติดต่อไปหาเพื่อทำการส่งข้อมูลเกี่ยวกับไฟล์ที่ต้องการไปหา
-จากนั้น ทาง Tracker server จะตรวจสอบว่ามีไฟล์ที่ขอมามีการลงทะเบียนไว้ในระบบหรือไม่ ถ้ามีจะตรวจดูว่ามีคนเข้ามาโหลดไฟล์นี้อยู่เท่าไหร่
แล้วก็จะทำการส่งรายการ IP Address*** ของคนที่โหลดอยู่กลับไปรวมทั้งเก็บ IP Address ของเราไว้ด้วย (เก็บไว้ส่งให้คนอื่น)
-เมื่อ Torrent client ได้ IP Address แล้วก็ มันก็จะทำการติดต่อไปยัง IP Address ทีได้มาโดยจะส่งคำถามไปว่า
"นี้น้องๆ มีส่วนใหนอยู่บ้างละ?" ทางปลายทางจะตอบกลับมา "มีอยู่ ... ส่วนครับเพ่" ตัว Torrent client จะตรวจว่าเรายังขาดส่วนใหน
แล้วส่งคำร้องขอส่วนที่ต้องการไปให้ ทางปลายทางก็จะส่งสวนที่เราขอกลับมาให้
ขณะเดียวกันนั้นเองตัว Torrent client ก็จะเปิดรับคำร้องจากคนอื่นๆในแบบเดียวกัน
IP ADDRESS = Internet Protocal address
ตรงนี่จะมีกฏอยู่เล็กน้อยคือ เมื่อเราส่งคำร้องไปแล้วทางปลายทางจะทดสอบเราโดยการส่งคำร้องให้เราส่งส่วนที่เรามีกลับไปหาด้วย
ถ้าเราส่งได้ช้าหรือไม่ส่งเลยตัว Torrent client ปลายทางจะทำการปฏิเสทคำร้องจากเราหรือไม่ก็ส่งให้เราช้าๆ เหมือนที่เราส่งกลับไปหาเขา
จุดนี้ทำให้ผมบอกว่า ระบบนี้เป็นระบบต้อง แบ่งปัน "ให้มากได้มาก ให้น้อยได้น้อย"
ที่มา
http://www.bcoms.net/