By Arnon Puitrakul - 08 เมษายน 2024
การดาวน์โหลดไฟล์ผ่าน Internet เป็นเรื่องทั่ว ๆ ไปสำหรับการใช้งานในปัจจุบันกันแล้ว ตั้งแต่การโหลดไฟล์เอกสารต่าง ๆ จนไปถึงการ Stream เพลง และหนังต่าง ๆ แต่วันนี้เราจะพามาทำความรู้จักกับโลกอีกใบ อีกวิธีการของการแชร์ไฟล์บนโลก Internet กันนั่นคือ Bittorrent
ในการที่เราจะส่งไฟล์ผ่านเครือข่าย Internet ได้นั้น เราทำกันอยู่ไม่กี่วิธีด้วยกัน หลัก ๆ แล้วเราจะใช้อยู่ 2 แบบใหญ่ ๆ ด้วยกันคือ Centralised และ Decentralised
การทำงานแบบ Centralised เป็นแบบที่เราค่อนข้างคุ้นเคยกันมาก ๆ คือ เรามี Server อยู่ที่หนึ่ง (อาจจะประกอบด้วยเครื่องคอมพิวเตอร์กี่เครื่องก็ได้) ที่ ๆ เราสามารถเข้าถึงได้ เมื่อเราต้องการไฟล์ เราสามารถ ส่งคำร้องขอ (Request) ไปที่ Server เพื่อขอไฟล์นั้น ๆ มา เมื่อ Server ได้รับแล้ว Server จะค่อย ๆ ส่งไฟล์นั้นกลับไปให้เครื่องที่ส่ง Request มาให้ เราเรียกสิ่งที่ส่งกลับไปว่า Response
ปัญหาเริ่มเกิดเมื่อไฟล์เราขนาดใหญ่ขึ้นเรื่อย ๆ ก่อนหน้านั้น เราใช้ Compression Algorithm เช่น gzip แต่ไฟล์มันใหญ่ขึ้นเรื่อย ๆ จนใหญ่กว่าการที่เราจะยัดมันลงไปใน 1 Packet ทำให้ Engineer แก้ปัญหา ใน HTTP1.1 เมื่อไฟล์เราใหญ่กว่า Packet หรือ กล่องที่เราสามารถใส่ได้ งั้นเราก็ซอย ๆ ไฟล์ออกมาเป็นชิ้น ๆ เอา แล้วส่งมันไปหลาย ๆ กล่อง ไปเรื่อย ๆ
โดยในแต่ละกล่องจะมีของอยู่ 2 อย่างหลัก ๆ ด้วยกันคือ ข้อมูลภายในกล่อง และ ขนาดของข้อมูลภายในกล่อง เพื่อบอกปลายทางว่าในกล่องนี้หนักขนาดไหน เมื่อปลายทางได้รับกล่องแล้ว จะส่งสัญญาณไปบอกต้นทางว่า ได้กล่องแล้วนะ ต้นทางจะส่งกล่องต่อไปมาให้เรื่อย ๆ จนกระทั่งครบละ กล่องที่ต้นทางส่งมาจะไม่มีข้อมูลข้างใน และ ขนาดที่แจ้งมาเป็น 0
สุดท้ายมันจะเปิดแต่ละกล่องออกมา แล้วเอาของแต่ละกล่องมาต่อรวมกันตามลำดับของกล่องที่มาถึง สุดท้ายเราจะได้ข้อมูลที่เหมือนกับที่ต้นทางส่งกลับมาให้นั่นเอง
แน่นอนว่า โลกแห่งความเป็นจริง มันมีบางอย่างผิดพลาดเกิดขึ้นได้ เช่น Server อาจจะใส่ของในกล่องสักกล่องผิดไป 1 Bit หรือมากกว่านั้น เมื่อเอามารวมกัน อาจจะทำให้ไฟล์มันมีข้อมูลแตกต่างจากต้นฉบับได้ นั่นคือเหตุที่บางครั้งเวลาเราโหลดไฟล์มาแล้ว มันเปิดไม่ได้บ้างโดยเฉพาะใน Protocol Version เก่า ๆ เราจะเจอได้เยอะกว่าปัจจุบันมาก ๆ
ความอร่อยอย่างต่อไปคือ หากไฟล์ดาวน์โหลดไม่สำเร็จ อาจเกิดจาก ต้นทาง หรือ ปลายทางหลุดไปเสียก่อน เท่ากับว่า ต้องโหลดใหม่ทั้งหมดอะสิ HTTP บอกว่า ได้ไม่มีปัญหา เรามี Content-Range มันเป็น Header ตัวนึงที่เราใช้บอกว่า เราอยากได้ ส่วนไหนของไฟล์ เรียกมาได้เลย
หากเกิดปัญหาในการเชื่อมต่อระหว่างโหลดไฟล์ เมื่อสามารถเชื่อมต่อได้อีกครั้ง เราสามารถเรียกเฉพาะชิ้น หรือ ส่วน ที่เรายังไม่ได้โหลดเข้ามาได้ เช่น เราโหลดถึง 50 kB แล้ว เราสามารถบอก Server ว่า เราอยากได้ตั้งแต่ชิ้น 50 kB จนถึงสุดไฟล์นะ ชิ้นก่อนหน้านี้เราไม่เอาแล้ว ทำให้เราสามารถโหลดไฟล์ต่อได้หลังจากที่เกิดปัญหาได้
แน่นอนว่า มีคนหัวหมอเจ้าขร๊ะ ในเมื่อแกเลือกส่วนต่าง ๆ ในการโหลดได้ใช่มะ งั้นเราโหลดหลาย ๆ ชิ้น พร้อมกันเลยได้ปะ แค่โยน Request แล้วระบุ Content-Range กระจาย ๆ ออกไป เช่น ไฟล์เรามีขนาด 10 MB และตั้งค่าไว้ให้รองรับ 10 Concurrent Session มันก็จะเอา 10 MB / 10 Session ทำให้ขนาดจะเป็น 1 MB/Session จากนั้นการคำนวณหา Content Range ก็ไม่อยากละ เราก็สามารถโหลดหลาย ๆ Chunk หรือชิ้นพร้อม ๆ กันจาก Server แล้ว
โปรแกรมที่เราเห็นว่าใช้วิธีแบบนี้ครั้งแรกในชีวิตน่าจะเป็น Internet Download Manager (IDM) ที่ฮิตในบ้านเราอยู่พักใหญ่ ๆ เลยละ จนตอนนี้วิธีนี้ เรายังคงใช้ในการโหลดไฟล์ขนาดใหญ่ ๆ สำหรับบางโปรแกรมอยู่นะ
เท่าที่อ่านดู การโหลดไฟล์ในลักษณะนี้ จะมีปัญหาอะไรละ มันใช้งานได้ แล้วทำไมเราจะต้องไปหาวิธีใหม่ ๆ ปัญหาของวิธีการนี้มีทั้งหมด 3 ปัญหาใหญ่ ๆ ด้วยกัน
อย่างแรกคือ เราฝากฝังความหวังไว้ที่ Server ต้นทางหมด หาก Server ต้นทางตายขึ้นมา นั่นแปลว่าไฟล์นั้น หายไปตลอดกาล เว้นแต่มีใครจะเอามาปล่อยให้โหลดใหม่
เรื่องที่ 2 Server ไม่ได้มีความสามารถล้นฟ้า รองรับ Unlimited Request ดั่งเครื่องทอเวลาใน Loki ที่ถึงจะอัดอุปกรณ์เข้าไปใน Temporal Loom ก็ยังไม่พออยู่ดี เมื่อคนรุมกันโหลดไฟล์นั้น ๆ จาก Server ก็อาจจะทำให้ Server รองรับไม่ไหว โหลดได้ช้า หรือไม่ได้เลย ตัวอย่างที่เห็นได้เป็นอย่างดีคือ เมื่อ Apple ปล่อย Software Update ใหม่ออกมา โดยเฉพาะ Major Update ถึงเวลาปุ๊บ คนรุมเข้ามาโหลดไฟล์ออกไป จนบางที Server เอาไม่อยู่เหมือนกัน (เรื่องพวกนี้ เราสามารถแก้ได้หลายวิธีไว้มาเล่าให้อ่านกัน)
สุดท้าย คนที่จะเป็นคนส่งไฟล์ จะต้องเป็นเจ้าของ Server สักเครื่องที่ ต้นทาง และ ปลายทางสามารถเข้าถึงได้ ซึ่งแน่นอนว่า หากเราต้องการปล่อยไฟล์ให้คนทั่ว ๆ ไปโหลดได้ การมีเครื่องอยู่ใน IDC ต่าง ๆ มันเป็นเรื่องแพงมาก ๆ เลยทีเดียว
ในเมื่อ การกระจายไฟล์แบบ Centralised มีข้อเสีย ไม่เหมาะกับการแชร์ไฟล์บางประเภท ทำให้เราต้องมีวิธีอื่นเข้ามา ที่เป็น Decentralised มาช่วย หนึ่งในนั้นเรียกว่า P2P
P2P หรือ Peer-to-Peer เป็นวิธีการแชร์ข้อมูลกัน โดยไม่ผ่านเครื่องตัวกลาง จริง ๆ เราใช้หลักการการสื่อสารแบบนี้เยอะนะ เช่น WiFi-Direct หรือ Bluetooth เราคุยกับอุปกรณ์อีกตัวโดยตรง โดยไม่ต้องผ่านเสา หรืออุปกรณ์กลาง หลัก ๆ มีทั้งหมด 2 ประเภทใหญ่ ๆ ด้วยกัน
การเชื่อมต่อแบบง่ายที่สุดคือ Pure P2P คือ การเชื่อมต่อกันระหว่างเครื่องตรง ๆ โดยที่ไม่ต้องมีเครื่อง Server ตรงกลาง ทำให้เครือข่ายประเภทนี้ ทนทาน เมื่อมีเครื่องที่เข้ามา และหายจากไปในระบบ ไม่ว่าเครื่องไหนจะหายไป แต่ระบบก็ยังคงทำงานได้อย่างเป็นปกติอยู่ ปัญหาคือ เราไม่สามารถที่จะควบคุม Flow การเดินทางของข้อมูลได้ เพราะต่างคนต่างให้ดาวน์โหลด และ Upload กันในเครือข่าย ส่วนใหญ่ เราจะใช้กับการส่งไฟล์ขนาดเล็ก ๆ ระหว่างไม่กี่เครื่องเท่านั้น
บางครั้ง เราต้องการควบคุม Flow การทำงาน หรือมีการยืนยันตัวตนก่อนทำการดาวน์โหลด จึงต้องใช้อีกวิธี Hybrid P2P คือ การเชื่อมต่อที่ยังต้องการ Server ตรงกลางตัวนึง มาเพื่อควบคุมรายละเอียดต่าง ๆ แต่การดาวน์โหลด และ การอัพโหลดตัวไฟล์ยังคงเชื่อมต่อกันตรง ๆ เหมือนเดิม ข้อดีของการทำแบบนี้คือ เราสามารถเห็น Flow ของข้อมูลได้ว่า ใครกำลังโหลดอะไร ใครกำลังอัพโหลดอะไร อันนี้แหละ ที่ Bittorrent ใช้งาน
เกริ่นมายาวมาก ๆ เข้าเรื่องของเรากันดีกว่า Bittorrent เป็นวิธีการแชร์ไฟล์กันโดยอาศัยวิธีการกระจายไฟล์แบบ Hybrid P2P โดยมีส่วนประกอบทั้งหมด 3 ส่วน
ส่วนที่ 1 Peer หรือเครื่องที่กำลังเชื่อมต่ออยู่ ในระบบการทำงานมีการเชื่อมต่อกันเข้ามาหลายเครื่องเป็นกลุ่มทำให้เราเรียกกลุ่ม ๆ พวกนี้ว่า Swarm โดยเราจะแบ่งประเภท Peer ออกมาเป็น 2 ประเภท คือ Seeder, Leacher คือผู้ที่อัพโหลดกระจายไฟล์ต่อ และ ผู้ที่กำลังดาวน์โหลดไฟล์ตามลำดับ โดย 1 เครื่องสามารถเป็นได้พร้อม ๆ กันทั้ง 2 หน้าที่ เช่น ระหว่างที่กำลังโหลดอยู่ เรากำลังเป็น Leacher ได้มา 100 ชิ้นส่วนแล้วมีเครื่องที่ต้องการ ชิ้นที่ได้ทำการโหลดไปแล้ว เครื่องสามารถกระจายชิ้นส่วนนั้นต่อได้ ทำให้เครื่องสามารถเป็นทั้ง Seeder และ Leacher ได้พร้อม ๆ กัน
คำถามเกิดว่า แล้วเราจะรู้ได้ยังไง ว่าใน Swarm ตอนนี้มีใครบ้าง ใครกำลังทำอะไรอยู่ ทำให้เป็นหน้าที่ของส่วนที่ 2 คือ Tracker Server ทำหน้าที่เหมือนเป็นคนกลางคอยบอกสถานะ และที่อยู่ของเครื่องใน Swarm สำหรับ Peer ต่าง ๆ ที่จะเชื่อมต่อเพื่อกระจายและดาวน์โหลดไฟล์จากกันและกัน และอีกหน้าที่ที่สำคัญคือ คอยยืนยันตัวตนได้ด้วย เพราะบาง Bittorrent Site เขาเป็น Private Site ตัว Tracker จำเป็นต้องเช็คก่อนว่า คนที่จะโหลดได้เป็นคนที่ได้รับอนุญาติหรือไม่ ถ้าไม่ Tracker ก็ไม่ควรบอกข้อมูลของ Peer นั่นเอง
ความงามไส้หลัก ๆ ของระบบนี้คือ หาก Tracker Server ปิดตัวไปละก็ ก็จบเลยอะสิ เราจะไม่รู้เลยนะว่า ใครเป็น Peer ของเราบ้าง ทำให้เขามีของอีกอย่างเข้ามาช่วยคือ DHT (Distributed Hash Table) ทำหน้าที่คล้าย Tracker Server วิธีการทำงานคือ ถ้า Tracker Server ใช้ไม่ได้ เราจะมี List ของ Peer อยู่แล้ว เมื่อปลายทางได้รับมา มันจะไปคุยกับ Peer คนอื่น ๆ ในระบบและทำการ Update DHT เป็นลูกโซ่ไปเรื่อย ๆ นั่นทำให้เราไม่จำเป็นที่จะต้องมี Tracker ก็ได้
สำหรับการทำงานของ DHT จริง ๆ แล้ว มันมีทั้งหมด 4 คำสั่งใหญ่ ๆ ด้วยกัน เริ่มจาก get_peers คือการขอ Peer จาก Node อื่นว่า ณ ตอนนี้ Node นั้นรู้ว่ามี Node อะไรในระบบบ้าง จากนั้น หากคนใหม่เข้ามาในระบบ มันจะทำการ announce_peer เพื่อบอกว่าชั้นเข้ามาแล้วนะ เมื่อเวลาผ่านไป เราไม่แน่ใจละว่า เขายังอยู่มั้ยก็จะเรียก ping เพื่อเช็ค ถ้าไม่อยู่แล้วก็ค่อยเตะออกไปจาก Hash Table และสุดท้ายคือ find_node เป็นการถาม Peer คนอื่น ๆ ว่า รู้จักคน ๆ นี้มั้ย มันก็จะทำแบบนี้วนไปเรื่อย ๆ ทำให้ มันสามารถส่งข้อมูล Peer กันไปมาได้
แต่เอ๊ะ แล้วเครื่องมันรู้ได้ยังไง (ทำไมอยากรู้เยอะจัง เราอะ) ว่าไฟล์ที่จะโหลดมันมีอะไรบ้าง หน้าตาประมาณไหน และ Tracker Server อยู่ที่ไหนละ สิ่งนั้นนำไปสู่ของอย่างที่ 3 คือ Torrent File เจ้านี่เก็บข้อมูลรูปร่าง รายละเอียดต่าง ๆ ของข้อมูลที่จะโหลด รวมไปถึงพวก Tracker ที่ต้องเข้าไปคุยเพื่อเอาข้อมูล Peer มาด้วย และอีกประเภทที่คล้าย ๆ กันคือ Magnet Link ทำหน้าที่คล้าย Torrent File บอกรายละเอียดต่าง ๆ ของ Torrent นั้น ๆ แต่แค่อยู่ในรูปแบบของ Link เท่านั้น
การทำงานของ Bitorrent เริ่มจาก การมีผู้ต้องการแชร์ไฟล์ จึงใช้ Bittorrent Client สร้าง Torrent ขึ้นมาโดยจำเป็นต้องระบุพวกไฟล์ที่เราต้องการจะส่ง และสำคัญมากคือที่อยู่ของ Tracker Server เมื่อเราสร้าง Torrent File ออกมาได้แล้ว เราก็สามารถอัพโหลดมันเข้าสู่ Bittorrent Site ได้ เมื่อ Torrent ของเราได้เชื่อมต่อกับ Tracker Server จะทำให้ Torrent เรามี 1 Seeder คือเราเอง และ 0 Leacher เพราะยังไม่มีใครเข้ามาโหลด
ไฟล์ทั้งหมด จะถูกซอยย่อย ๆ ออกมาเป็น ชิ้นเล็ก ๆ (Chunk) ทำให้จำนวนชิ้นคิดไม่ยากคือ ขนาดของข้อมูล หารด้วยขนาด Chunk (ส่วนใหญ่จะอยู่ที่ 16 KB) แล้วปัดขึ้น เราจะได้จำนวน Chunk ละ ภายใน Torrent File จะมี Map ของไฟล์ พร้อมกับ SHA-1 Hashing สำหรับแต่ละชิ้น
อยู่ดี ๆ มีคนเชื่อมต่อเข้ามา ตอนนี้มี 1 Seeder เจ้าของไฟล์กำลังรออยู่ ทำให้ใน Swarm ตอนนี้มี Seeder และ Leecher อย่างละ 1 ตัว (กลายเป็นมี 2 Peer ในระบบ) Bittorrent ถูกคิดมาเพื่อความแฟร์ ยื่นหมูยื่นแมว แต่แน่นอนว่า Leecher ที่พึ่งเข้ามาใน Swarm ไม่มีอะไรมาแลก ทำให้มันจะถูกจ่าย Chunk แบบ Random มาให้ เราเรียกว่า Random First Piece
เอาหละชีวิตง่ายไป เราโยน Leecher เข้ามาเพิ่มอีก 2 คน ทั้ง Swarm ตอนนี้มี 3 Leecher ถ้าต่างคนต่าง Random Chunk โยน ๆ กัน มันก็ได้แหละ แต่.... มันไม่มีประสิทธิภาพ แล้วถ้าเกิดมีคนเข้ามาอีกละ มันยุ่งไปหมดแน่นอน ทำให้ Bittorrent เลยบอกว่า โอเค งั้นเอางี้ เราจะเลือก Chunk ที่คนมีน้อยที่สุดก่อน (Rarest First) เพื่อช่วยเมื่อเกิดเหตุการณ์ว่า มีคนหลุดออกจาก Swarm ไป ทำให้ชิ้นที่มีน้อย มีโอกาสหายไปน้อยลง
ต่างคนก็ต่างดึง Chunk จากแต่ละคนไปเรื่อย ๆ วิ่งที่เกิดขึ้นคือ แต่ละเครื่องส่วนใหญ่จะมี Chunk แตกต่างกัน เพื่อให้แต่ละเครื่องที่เป็น Leecher สามารถเป็น Seeder จ่าย Chunk ที่เครื่องอื่นไม่มีได้ด้วย
สุดท้ายเมื่อมี Leecher ที่กำลังจะโหลดเสร็จแล้ว เหลืออีกไม่กี่ Chunk เราจะเสร็จแล้ว มันจะเริ่ม Endgame Mode แทนที่เราจะรอให้คนใกล้ ๆ จ่าย Chunk ที่เราต้องการมาให้ มันช้าไป เพราะ Chunk เกือบทั้งหมดเรามีแล้ว เราขาดอยู่ไม่กี่อันเท่านั้นแหละ มันจะตะโกนไปใน Swarm ถามหา Chunk ที่กำลังขาดอยู่ เพื่อให้ Leecher เครื่องนี้เป็น Seeder ไวขึ้นนั่นเอง
ปัญหาของการโหลดไฟล์แบบ P2P คือ มันจำเป็นต้องมีคนที่มาเป็น Seeder ไม่งั้นไฟล์นั้นก็จะโหลดไม่ได้เลย มันมีคนเข้ามา เพื่อโหลดรับ Chunk จากเครื่องอื่น ๆ ใน Swarm หมดเลย ไม่ปล่อยเลย ทำให้เครื่องนั้นเป็นเหมือนภาระของ Swarm ที่ไม่ช่วยอะไรเลย แถม อม Chunk เข้าไปอีก (Freeloader) Bittorrent เขาคิดวิธีการมาเพื่อจัดการเคสแบบนี้แล้ว
เขาใช้สิ่งที่เรียกว่า Choking Algorithm เราไม่เล่าละเอียดมากนะ คุยกันได้หลายชั่วโมงแน่นอน หลักการง่าย ๆ คือการ Mark เครื่องที่ไม่จ่ายไฟล์ให้ว่า แกมันงก ไม่จ่ายไฟล์ให้ชั้น โดยปกติ เราจะติด Choked ได้อยู่ 3 เหตุการณ์คือ เราจ่าย Chunk ไปหลายอันแล้วไม่รับสักที, เครื่องนั้น Upload ไม่ทันแล้ว และ โดน Blacklised จากเครื่องอื่น
โดยปกติเครื่องแต่ละเครื่องจะถูก Mark สถานะว่า Choked คือ เครื่องนั้นไม่อยาก หรือไม่พร้อมที่จะ Upload มาให้เรา และ Bittorrent ทำงานแบบ ยื่นหมูยื่นแมว ดังนั้น ถ้าเขาไม่ Upload ให้เรา เราก็จะไม่ให้เขา Download จากเราด้วยเช่นกัน ทำให้ Choking เป็นกลไกในการจัดการกับพวก Freeloader ได้เป็นอย่างดี
แต่ ๆๆๆๆ ปัญหาคือ เมื่อเราทำงานแบบนี้ มันมีโอกาสที่ เราจะเล่น Choke ทุกคนเลย ชิบหาย แล้วเราจะเอาไฟล์จากไหนละ ทำให้เราจำเป็นต้องสุ่ม Unchoked เราเรียกว่า Optimistic Unchoking เพราะต้องเข้าใจว่า บางเครื่องที่พึ่งเข้ามาใน Swarm เขาไม่มีอะไรแลกเลยอยู่ ๆ เราจะไป Choke เขา ก็แหม่นะ
ฝั่งคนโดน Choke บ้าง มันมีโอกาสที่เราจะโดนทุกคนรุม Choke เรียบ นั่นแปลว่า เราจะโหลดอะไรไม่ได้เลย หากครบ 60 วินาที เราจะโดนเปลี่ยนสถานะเป็น Snubbed ซึ่งเราจะต้องรอ Optimistic Unchoking เพื่อให้เรามีชิ้นส่วนไปแลก เพื่อโหลดชิ้นอื่น ๆ มาต่อนั่นเอง
หลาย ๆ คนอาจจะมีภาพติดว่า BitTorrent เป็นสิ่งที่ผิดกฏหมาย แต่จริง ๆ แล้ว ตัว BitTorrent ไม่ได้ผิดกฏหมาย แต่การเอามาใช้ต่างหากที่ผิดกฏหมาย เพราะส่วนใหญ่ที่เรามักจะได้ยินกัน มักจะเอา BitTorrent มาใช้แจกไฟล์ที่ละเมิดสิขสิทธิ์เช่น หนัง และ เพลง เป็นต้น
ดังนั้น การที่เห็นคนใช้งาน BitTorrent ก็ใจเย็น ๆ เขาไม่ได้โหลดไฟล์ที่ผิดกฏหมายเสมอไป มันเป็นเทคโนโลยีที่ทำให้เราสามารถแจกจ่ายไฟล์ได้อย่างรวดเร็ว และ ทนทานต่อการหายของ Server ได้ เพราะไฟล์อยู่ที่ทุกคน
BitTorrent เป็นเทคโนโลยีที่ทำให้เราสามารถกระจาย ส่งต่อ ข้อมูลขนาดใหญ่ได้ง่ายและเร็วขึ้นมากกว่าเดิมมาก จากเดิมที่เราจะต้องใช้ Server ขนาดใหญ่เพียงตัวเดียว เราก็ใช้เครื่องหลาย ๆ เครื่องช่วยกันคนละไม้คนละมือ ทำให้การส่งไฟล์เป็นไปได้เร็วขึ้นนั่นเอง ส่วนที่ถามว่าผิดกฏหมายมั้ย จริง ๆ ก็คือไม่ผิด แต่มันผิดที่ไฟล์ที่ส่งกันต่างหาก ดังนั้นเราอยากให้ทุกคนมองภาพมันใหม่ว่า มันไม่ได้ผิดกฏหมายซะหมด การมี BitTorrent Client ไม่ได้แปลว่าเราจะโหลดของผิดกฏหมายเสมอไป อย่างอื่นที่ถูกกฏหมายก็มีให้โหลด
คำว่า Zero-Trust น่าจะเป็นคำที่น่าจะเคยผ่านหูผ่านตามาไม่มากก็น้อย หลายคนบอกว่า มันเป็นทางออกสำหรับการบริหาร และจัดการ IT Resource สำหรับการทำงานในปัจจุบันเลยก็ว่าได้ วันนี้เราจะมาเล่าให้อ่านกันว่า มันคืออะไร และ ทำไมหลาย ๆ คนคิดว่า มันเป็นเส้นทางที่ดีที่เราจะมูฟออนกันไปทางนั้น...
หลังจากเราลงรีวิว NAS ไป มีคนถามเข้ามาเยอะมากว่า ถ้าเราไม่อยากซื้อเครื่อง NAS สำเร็จรูป เราจะสามารถใช้เครื่องคอมเก่าที่ไม่ได้ใช้แล้วมาเป็นเครื่อง NAS ได้อย่างไรบ้าง มีอุปกรณ์ หรืออะไรที่เราจะต้องติดตั้งเพิ่มเติม วันนี้เราจะมาเล่าให้อ่านกัน...
เมื่อปีก่อน เรารีวิว Adapter 100W จาก UGreen ที่เคยคิดว่ามันเล็กกระทัดรัด น้ำหนักเบา พกพาง่ายที่สุดไปแล้ว ผ่านมาปีนึง เรามาเจออีกตัวที่มันดียิ่งกว่าจากฝั่ง Ugreen เช่นเดียวกันในซีรีย์ Nexode Pro วันนี้เรากดมาใช้เอง 2 ตัวคือขนาด 65W และ 100W จะเป็นอย่างไร อ่านได้ในบทความนี้เลย...
ย้อนกลับไปเมื่อหลายปีก่อนนานมาก ๆ แล้ว ตำรวจไทยได้จับกุมเจ้าของเว็บ AlphaBay ขายของผิดกฏหมายรายใหญ่ ซึ่งเว็บนั้นมันอยู่ใน Dark Web ที่จำเป็นต้องเข้าถึงผ่าน Tor Network วันนี้เราจะมาเล่าให้อ่านกันว่า มันทำงานอย่างไร และทำไมการตามตัวในนั้นถึงเป็นเรื่องยากกัน...