← กลับไปยังบทความทั้งหมด

โปรโตคอลการขนส่งขนาดเล็ก (Micro Transport Protocol)

สรุปใจความสำคัญ

  • μTP เป็นโปรโตคอลพื้นฐาน UDP ที่ออกแบบมาเพื่อลดความหน่วงในระบบ BitTorrent
  • ใช้กลไก LEDBAT เพื่อปรับลดความเร็วการส่งข้อมูลอัตโนมัติเมื่อเครือข่ายหนาแน่น
  • ช่วยให้การใช้งาน BitTorrent ไม่รบกวนการทำงานของแอปพลิเคชันอื่น เช่น เว็บเบราว์เซอร์
  • รองรับการทำ UDP hole punching เพื่อช่วยในการเชื่อมต่อผ่าน NAT

โปรโตคอลการขนส่งขนาดเล็ก หรือ Micro Transport Protocol (μTP) (บางครั้งเขียนว่า uTP) เป็นโปรโตคอลการขนส่งข้อมูลที่พัฒนาขึ้นโดยใช้พื้นฐานของ User Datagram Protocol (UDP) ซึ่งเป็นรูปแบบหนึ่งของโปรโตคอล BitTorrent สำหรับการแบ่งปันไฟล์แบบ peer-to-peer (P2P) โดยมีวัตถุประสงค์หลักเพื่อลดปัญหาความหน่วง (Latency) และแก้ไขปัญหาการควบคุมความหนาแน่นของข้อมูล (Congestion Control) ที่มักพบในการใช้งาน BitTorrent ผ่าน Transmission Control Protocol (TCP) แบบดั้งเดิม ในขณะที่ยังคงรักษาความสามารถในการส่งข้อมูลที่ถูกต้องและเรียงลำดับได้

เป้าหมายสำคัญของ μTP คือการปรับลดอัตราการส่งข้อมูลระหว่างผู้ใช้งานโดยอัตโนมัติ เมื่อตรวจพบว่าการส่งข้อมูลดังกล่าวเริ่มส่งผลกระทบต่อการทำงานของแอปพลิเคชันอื่นในเครือข่ายเดียวกัน ตัวอย่างเช่น หากผู้ใช้กำลังใช้งาน BitTorrent และเปิดเว็บเบราว์เซอร์พร้อมกัน โปรโตคอล μTP จะช่วยให้การใช้งานอินเทอร์เน็ตผ่านสาย DSL สามารถแบ่งปันกันได้อย่างมีประสิทธิภาพ โดยไม่ทำให้การท่องเว็บเกิดอาการหน่วงหรือช้าลง

แผนผังการทำงานของโปรโตคอลการขนส่งข้อมูล
ภาพประกอบแสดงโครงสร้างและกลไกการทำงานของโปรโตคอลการขนส่งข้อมูลในระบบเครือข่าย

การพัฒนาและประวัติ

μTP มีจุดเริ่มต้นจากการวิจัยที่ Internet2 เกี่ยวกับคุณภาพการบริการ (Quality of Service - QoS) และการขนส่งข้อมูลจำนวนมากประสิทธิภาพสูง ต่อมาถูกนำมาปรับใช้เป็นโปรโตคอลการขนส่งพื้นหลังโดยบริษัท Plicto ซึ่งก่อตั้งโดย Stanislav Shalunov และ Ben Teitelbaum ก่อนที่ BitTorrent, Inc. จะเข้าซื้อกิจการ Plicto ในปี 2006 และนำมาพัฒนาต่อยอดภายในองค์กร

โปรโตคอลนี้ถูกนำมาใช้ครั้งแรกในเวอร์ชันเบต้าของ μTorrent 1.8.x และเปิดตัวอย่างเป็นทางการในเวอร์ชันอัลฟ่าของ μTorrent 1.9 ต่อมาการนำ μTP ไปใช้งานใน μTorrent ได้ถูกแยกออกมาเป็นไลบรารีที่ชื่อว่า "libutp" และเผยแพร่ภายใต้สัญญาอนุญาต MIT (MIT License) เพื่อให้ซอฟต์แวร์อื่นสามารถนำไปใช้งานได้

การรองรับในซอฟต์แวร์ต่าง ๆ

มีโปรแกรมรับส่งไฟล์ (Client) หลายตัวที่นำ μTP ไปใช้งาน เพื่อเพิ่มประสิทธิภาพการเชื่อมต่อ ดังนี้:

  • KTorrent: เริ่มรองรับตั้งแต่เวอร์ชัน 4.0 ซึ่งเป็นโปรแกรมโอเพนซอร์สตัวแรกที่นำ μTP มาใช้
  • libtorrent: รองรับตั้งแต่เวอร์ชัน 0.16.0 ซึ่งส่งผลให้ qBittorrent เริ่มใช้งานได้ตั้งแต่เวอร์ชัน 2.8.0
  • Tixati: รองรับตั้งแต่เวอร์ชัน 1.72
  • Vuze (เดิมคือ Azureus): รองรับตั้งแต่เวอร์ชัน 4.6.0.0
  • Transmission: รองรับตั้งแต่เวอร์ชัน 2.30

กลไกการควบคุมความหนาแน่นของข้อมูล

μTP ใช้อัลกอริทึมการควบคุมความหนาแน่นที่เรียกว่า Low Extra Delay Background Transport (LEDBAT) ซึ่งมีเป้าหมายเพื่อลดความหน่วงที่เกิดจากแอปพลิเคชันที่ใช้โปรโตคอลนี้ โดยจะพยายามใช้แบนด์วิดท์ (Bandwidth) ให้ได้สูงสุดเท่าที่จะทำได้ ตราบใดที่ความหน่วงยังอยู่ในระดับที่ไม่ส่งผลกระทบต่อการใช้งานส่วนอื่น นอกจากนี้ ข้อมูลจากตัวควบคุมความหนาแน่นของ μTP ยังสามารถนำมาใช้เพื่อกำหนดอัตราการส่งข้อมูลสำหรับการเชื่อมต่อผ่าน TCP ได้อีกด้วย

การจำลองเส้นทางการกำหนดเส้นทางอินเทอร์เน็ต
การแสดงภาพเส้นทางการกำหนดเส้นทาง (Routing Paths) ของอินเทอร์เน็ต ซึ่งมีผลต่อการคำนวณความหน่วงในโปรโตคอล LEDBAT

รายละเอียดของ LEDBAT ถูกกำหนดไว้ในมาตรฐาน RFC 6817 อย่างไรก็ตาม ในช่วงปี 2009 พบว่าการนำ μTP ไปใช้งานจริงมีรายละเอียดบางประการที่แตกต่างจากร่างมาตรฐานอินเทอร์เน็ต (Internet Draft) ในขณะนั้น

การทะลุผ่าน NAT (NAT Traversal)

นอกเหนือจากการควบคุมความหนาแน่นแล้ว μTP ยังรองรับการทำ NAT traversal โดยใช้เทคนิค UDP hole punching ซึ่งช่วยให้ผู้ใช้งานสองคนที่อยู่หลังอุปกรณ์จำกัดพอร์ต (Port-restricted peers) สามารถเชื่อมต่อกันได้ โดยอาศัยผู้ใช้งานรายที่สามที่ไม่มีข้อจำกัดด้านพอร์ต ซึ่งทำหน้าที่เป็น STUN server เพื่อช่วยในการประสานงานการเชื่อมต่อ

คำถามที่พบบ่อย

Micro Transport Protocol (μTP) คืออะไร?

เป็นโปรโตคอลการขนส่งข้อมูลที่ใช้พื้นฐานจาก UDP ซึ่งออกแบบมาเพื่อใช้กับ BitTorrent เพื่อลดปัญหาความหน่วงและจัดการความหนาแน่นของเครือข่ายไม่ให้รบกวนแอปพลิเคชันอื่น

μTP แตกต่างจาก TCP อย่างไรในบริบทของ BitTorrent?

ในขณะที่ TCP จะพยายามใช้แบนด์วิดท์ให้ได้มากที่สุด ซึ่งอาจทำให้แอปพลิเคชันอื่นช้าลง แต่ μTP จะใช้กลไก LEDBAT เพื่อลดความเร็วลงโดยอัตโนมัติเมื่อตรวจพบความหน่วงในเครือข่าย

LEDBAT คืออะไรและมีบทบาทอย่างไรใน μTP?

LEDBAT (Low Extra Delay Background Transport) คืออัลกอริทึมที่ใช้ควบคุมความหนาแน่นของข้อมูล เพื่อให้ μTP สามารถใช้แบนด์วิดท์ที่ว่างอยู่ได้สูงสุดโดยไม่สร้างความหน่วงส่วนเกินให้กับข้อมูลอื่นในเครือข่าย

μTP ช่วยให้การเชื่อมต่อระหว่างผู้ใช้ทำได้ง่ายขึ้นได้อย่างไร?

μTP ใช้เทคนิค UDP hole punching ซึ่งช่วยให้ผู้ใช้ที่อยู่หลัง NAT หรือไฟร์วอลล์สามารถเชื่อมต่อถึงกันได้ง่ายขึ้น โดยอาศัย STUN server ในการช่วยประสานงาน