Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Mac

ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด

โดย Rahul Awati และ Stephen J. Bigelow, Senior Technology Editor

เผยแพร่: 21 สิงหาคม 2566

Microsoft Windows Background Intelligent Transfer Service (BITS) เป็นบริการในระบบปฏิบัติการ Microsoft Windows ที่อนุญาตให้ดาวน์โหลดจากและอัปโหลดไฟล์ไปยังเว็บเซิร์ฟเวอร์ Hypertext Transfer Protocol (HTTP) และไฟล์เซิร์ฟเวอร์ Server Message Block (SMB)

BITS ใช้แบนด์วิดท์เครือข่ายที่ว่างอยู่เพื่อถ่ายโอนไฟล์ในเบื้องหลัง (Background) หรือเบื้องหน้า (Foreground) เพื่อให้ประสบการณ์เบื้องหน้าของผู้ใช้ได้รับผลกระทบน้อยที่สุด การปิดใช้งานบริการจะป้องกันไม่ให้แอปพลิเคชันทั้งหมดที่พึ่งพา BITS ดาวน์โหลดโปรแกรมและข้อมูลสำคัญอื่นๆ โดยอัตโนมัติ

BITS นำแบนด์วิดท์เครือข่ายที่ไม่ได้ใช้หรือว่างอยู่มาใช้ถ่ายโอนไฟล์ — ดาวน์โหลดหรืออัปโหลด — จากหรือไปยังเว็บเซิร์ฟเวอร์ HTTP และไฟล์เซิร์ฟเวอร์ SMB การถ่ายโอนไฟล์ — เช่น ระหว่างเครื่องไคลเอ็นต์และเซิร์ฟเวอร์ — เป็นแบบอะซิงโครนัส และเกิดขึ้นในเบื้องหน้าหรือเบื้องหลัง หมายความว่า เมื่อแอปพลิเคชันร้องขอ BITS สำหรับการถ่ายโอนไฟล์ มันสามารถทำงานอื่นๆ ได้อย่างอิสระ

BITS รวม PowerShell Cmdlets สำหรับสร้างและจัดการการถ่ายโอน และยูทิลิตี้บรรทัดคำสั่ง BITSAdmin สำหรับสร้างงานดาวน์โหลดหรืออัปโหลด และตรวจสอบความคืบหน้า บริการยังรวมสิ่งอำนวยความสะดวกการจัดการคิว เพื่อจัดลำดับความสำคัญคำขอถ่ายโอนไฟล์จากแอปพลิเคชัน

หากเกิดการรบกวนหรือขัดขวางบนเครือข่าย BITS จะเชื่อมต่อใหม่และดำเนินการถ่ายโอนไฟล์ต่อเมื่อเครือข่ายหรือเครื่องกลับมาทำงานปกติ BITS สามารถหยุดชั่วคราวและดำเนินการถ่ายโอนต่อได้อัตโนมัติแม้หลังจากรีบูท มันยังถ่ายโอนไฟล์เมื่อเครื่องเสียบปลั๊กและอยู่ในโหมด Modern Standby ดังนั้นจึงคำนึงถึงการใช้พลังงาน

วงจรชีวิตของงาน Background Intelligent Transfer Service

งาน BITS (BITS Job) เป็นคอนเทนเนอร์ที่เก็บไฟล์หนึ่งหรือหลายไฟล์ที่จะถ่ายโอนไปหรือมาจากเว็บเซิร์ฟเวอร์ HTTP และไฟล์เซิร์ฟเวอร์ SMB งานมีคุณสมบัติที่ระบุว่า BITS ถ่ายโอนไฟล์อย่างไร และโต้ตอบกับแอปพลิเคชันอย่างไร

วงจรชีวิตของงานเริ่มต้นด้วยการสร้าง นี่คือเวลาที่ผู้ใช้ระบุความสำคัญของงาน ว่ามันเป็นอัปโหลดหรือดาวน์โหลด และว่าต้องการรับการแจ้งเตือนสำหรับเหตุการณ์ไหนบ้าง เมื่อสร้างงานแล้ว สามารถเพิ่มไฟล์เข้าไปได้ — สูงสุด 1 ไฟล์สำหรับงานอัปโหลด คุณสมบัติของงานยังสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับแอปพลิเคชัน เมื่อเพิ่มไฟล์หนึ่งหรือหลายไฟล์เข้าไปในงาน สำคัญคือต้องระบุชื่อไฟล์ท้องถิ่น (Client) และระยะไกล (Server)

เมื่อสร้างงานแล้ว BITS จะระงับงาน (Suspend) โดยอัตโนมัติ ผู้ใช้ต้อง Resume งานเพื่อทำให้มัน Active ในคิวการถ่ายโอน กล่าวคือ ย้ายจากสถานะ Suspended ไปสู่ Queued มันจะคงอยู่ในสถานะ Queued จนกว่า BITS Scheduler จะตัดสินว่าถึงตาของมันในการถ่ายโอนไฟล์ ณ จุดนี้ งานจะย้ายไปสถานะ Connecting และ BITS เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล มันต่อมาย้ายไปสถานะ Transferring และคงอยู่ที่นั่นจนกว่าจะเกิดเงื่อนไขหนึ่งในสี่ข้อ:

  1. Time slice สิ้นสุดลง
  2. การถ่ายโอนเสร็จสมบูรณ์
  3. มีข้อผิดพลาดเกิดขึ้น
  4. แอปพลิเคชันระงับงาน

งานจะย้ายไปสถานะ Transferred เมื่อ BITS ถ่ายโอนไฟล์ทั้งหมดแล้ว ไฟล์ที่ถ่ายโอนจะพร้อมใช้งานสำหรับไคลเอ็นต์ فقطเมื่อแอปพลิเคชันเรียกเมธอด IBackgroundCopyJob::Complete และการครอบครองไฟล์ถูกโอนจาก BITS ไปยังผู้ใช้

วิธีที่ BITS รักษาประสบการณ์ผู้ใช้

ขึ้นอยู่กับแบนด์วิดท์เครือข่ายที่ว่างอยู่ BITS เพิ่มหรือลดอัตราการถ่ายโอนไฟล์ หากแอปพลิเคชันเริ่มใช้แบนด์วิดท์มากขึ้น BITS จะลดอัตราการถ่ายโอนไฟล์โดยอัตโนมัติ ดังนั้นจึงรักษาประสบการณ์โดยรวมของผู้ใช้ และรับรองว่าการถ่ายโอนเบื้องหลังเป็นไปอย่างเหมาะสม

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

BITS พิจารณาต้นทุนการถ่ายโอนไฟล์และการใช้เครือข่าย รวมถึงแอตทริบิวตการติดขัดของเครือข่ายเสมอ นอกจากนี้ มันใช้นโยบายการถ่ายโอนที่ระบุโดยแอป เพื่อป้องกันการถ่ายโอนไฟล์บนการเชื่อมต่อเครือข่ายที่มีค่าใช้จ่าย (Costed Network Connections) ข้อพิจารณาเหล่านี้สำคัญมากในเครือข่ายโรมมิ่งที่ต้นทุนอาจเพิ่มขึ้นอย่างรวดเร็ว BITS ยังช่วยลดผลกระทบหรือการรบกวนต่องานเบื้องหน้าของผู้ใช้ สุดท้ายช่วยรักษาประสบการณ์การทำงานของพวกเขากับระบบ

การประยุกต์ใช้ Background Intelligent Transfer Service

BITS มีประโยชน์สูงสุดสำหรับแอดมินระบบที่ต้องการดาวน์โหลดไฟล์จาก หรืออัปโหลดไฟล์ไปยัง เว็บเซิร์ฟเวอร์ HTTP และ SMB File Shares นอกจากนี้ มันให้ Component Object Model Interface ที่มีประโยบสำหรับโปรแกรมเมอร์ C, C++ และ .NET Microsoft ไม่แนะนำ BITS Application Programming Interface (API) สำหรับโปรแกรมเมอร์ Universal Windows Platform พวกเขาควรใช้ Windows.Networking.BackgroundTransfer API แทน

Windows ใช้ BITS เพื่อดาวน์โหลดอัปเดตไปยังระบบท้องถิ่นของผู้ใช้ แอปพลิเคชันอื่นๆ หลายตัวก็ใช้ BITS เช่นกัน รวมถึงแอปพลิเคชันที่ต้องการดาวน์โหลดจากหรืออัปโหลดไฟล์ไปยังเว็บเซิร์ฟเวอร์ HTTP หรือ Representational State Transfer หรือ SMB File Server แอปพลิเคชันที่ต้องการดำเนินการถ่ายโอนไฟล์ต่อโดยอัตโนมัติหลังจากการตัดการเชื่อมต่อเครือข่ายหรือการรีสตาร์ทคอมพิวเตอร์ ก็ใช้ BITS สุดท้าย BITS สามารถใช้เพื่อเพิ่มประสิทธิภาพトラฟฟิก Wide Area Network เมื่อใช้ร่วมกับ BranchCache เทคโนโลยีเพิ่มประสิทธิภาพ WAN ที่รวมอยู่ในบางรุ่นของ Windows และ Windows Server OS

ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด แอดมินสามารถใช้ Microsoft Windows BITS จัดการトラฟฟิก WAN

ประเภทงานถ่ายโอนและสถานะงานใน BITS

BITS รองรับ 3 ประเภทของงานถ่ายโอน:

  1. Download Job. ดาวน์โหลดไฟล์ไปยังไคลเอ็นต์ นอกจากนี้ ไฟล์ทั้งหมดถูกถ่ายโอนแบบอะซิงโครนัสในเบื้องหน้าหรือเบื้องหลัง
  2. Upload Job. อัปโหลดไฟล์จากไคลเอ็นต์ไปยังเซิร์ฟเวอร์
  3. Upload-Reply Job. อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ก่อน แล้วรับไฟล์ตอบกลับจากแอปพลิเคชันเซิร์ฟเวอร์ว่าการอัปโหลดเสร็จสิ้นแล้ว

งาน BITS หนึ่งงานสามารถอยู่ใน 1 ของ 4 สถานะได้:

  1. Starting. สถานะเริ่มต้นคือ SUSPENDED จากสถานะนี้ ผู้ใช้สามารถเพิ่มไฟล์เข้าไปในงาน และตั้งค่าคุณสมบัติของงานและไฟล์ได้
  2. Action. มีสถานะ Action หลายอย่างที่เป็นไปได้ ที่แสดงกิจกรรมภายในปัจจุบันของงาน เช่น QUEUED, CONNECTING และ TRANSFERRING สถานะ Action อีกอย่างคือ TRANSIENT ERROR ซึ่งบ่งชี้ว่างานล้มเหลวในการถ่ายโอนไฟล์
  3. Transferred. สถานะนี้เกิดขึ้นเมื่อการถ่ายโอนสำเร็จ และไม่มีการถ่ายโอนเพิ่มเติมที่ต้องทำ
  4. Final. งานเป็น ACKNOWLEDGED และไฟล์ที่ดาวน์โหลดเสร็จสิ้นทั้งหมดพร้อมใช้งาน

เมื่องาน BITS ทำงาน มันจะเปลี่ยนสถานะระหว่างคลาสสถานะต่างๆ แต่เมื่อมันถึงสถานะ Final มันจะไม่ย้ายออกจากสถานะนั้น หมายความว่าไม่สามารถเรียกเมธอดเปลี่ยนสถานะได้ มันจะไม่แสดงในการนับงาน (Job Enumeration) หากเกิดข้อผิดพลาด งานจะย้ายไปสถานะ Fatal Error (BITS ไม่สามารถกู้คืนได้) หรือ Transient Error State (ข้อผิดพลาดอาจแก้ตัวเองและ BITS ลองใหม่จนกว่าการถ่ายโอนจะสำเร็จ หรือจนกว่างานจะหมดเวลาตามช่วงเวลาที่แอปพลิเคชันระบุ) หากงานหมดเวลาในสถานะ Transient Error BITS จะย้ายมันไปสถานะ Fatal Error

ระดับความสำคัญของ Background Intelligent Transfer Service

BITS สามารถเลือกงานถ่ายโอนที่จะรันและเมื่อไหร่ได้อย่างฉลาด เพราะแอปพลิเคชันสามารถใช้ระดับความสำคัญที่แตกต่างกัน: 1 ระดับสำหรับเบื้องหน้า และ 3 ระดับสำหรับเบื้องหลัง ระดับความสำคัญกำหนดว่างานถ่ายโอนจะถูกประมวลผลเมื่อไหร่ เทียบกับงานอื่นๆ ในคิวการถ่ายโอน ดังนั้น:

  • งานที่มีความสำคัญสูงกว่า จะมีความưu tiênมากกว่างานที่มีความสำคัญต่ำกว่า
  • งานที่มีความสำคัญต่ำ จะไม่ได้รับเวลาถ่ายโอน จนกว่างานที่มีความสำคัญสูงจะถ่ายโอนเสร็จ หรืออยู่ในสถานะข้อผิดพลาด
  • งานที่มีระดับความสำคัญเท่ากัน จะแบ่งปันเวลาถ่ายโอน ดังนั้น งานขนาดใหญ่ไม่สามารถบล็อกคิวการถ่ายโอนและทำให้ล่าช้าได้

เพื่อจัดตารางงานที่มีระดับความสำคัญเท่ากัน BITS ใช้ Round-Robin Scheduling ซึ่งแต่ละงานได้รับช่วงเวลาเพื่อประมวลผลไฟล์ของมัน หากงานเฉพาะเจาะจงไม่เสร็จภายในช่วงเวลาที่จัดสรร มันจะกลับไปสู่สถานะ Queued โดยอัตโนมัติ และงานถัดไปในคิวจะถูก Active ตามหลักการ First-In, First-Out (FIFO) ที่นี่ สำคัญคือต้องทราบว่า BITS ไม่รับประกันการประมวลผล FIFO แม้จะพยายามมากที่สุด

ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด Windows BITS ใช้ Round-Robin Scheduling เพื่อจัดตารางงานที่มีระดับความสำคัญเท่ากัน

ใน BITS 1.5 และก่อนหน้า Foreground Jobs ได้รับความสำคัญมากกว่า Background Jobs จริงๆ แล้ว Foreground Jobs มีความสำคัญสูงสุด และ BITS ประมวลผลงานเดียวในเวลาเดียว ในรุ่น BITS ต่อมา การถ่ายโอน Foreground หลายรายการสามารถเกิดขึ้นพร้อมกันได้ แต่ไฟล์หลายไฟล์ในงานเดียวกันจะถูกถ่ายโอนแบบลำดับ (Sequentially) หรืออนุกรม (Serially) เสมอ

ประวัติของ Background Intelligent Transfer Service

Microsoft อัปเดต BITS หลายครั้ง:

  • Microsoft เปิดตัว BITS รุ่น 1.0 ใน Windows XP ในปี 2001
  • รุ่น 1.2 มาถึงกลางปี 2002 เพื่อเพิ่มบริการ Automatic Updates ให้ Windows 2000
  • รุ่น 1.5 มาถึงปลายปี 2003 พร้อม Windows Server 2003 นำเสนอการสนับสนุนบรรทัดคำสั่ง ฟีเจอร์อัปโหลดเพิ่ม และการปรับปรุงความปลอดภัย
  • รุ่น 2.0 เปิดตัวกลางปี 2004 เป็นอัปเดตสำหรับการปรับใช้หลาย OS เพิ่มฟีเจอร์ดาวน์โหลดมากขึ้น การควบคุมแบนด์วิดท์ และการสนับสนุน SMB
  • ปล่อยกลางปี 2007 BITS 2.5 เพิ่มการสนับสนุน IPv6 และ Custom HTTP Headers และความปลอดภัย HTTP ที่ดีขึ้น
  • BITS 3.0 รวมใน Windows Vista และ Windows Server 2008 เพิ่ม Peer Caching, Notifications, Temporary File Access, HTTP Redirect Handling, Group Policy Controls เพิ่มเติม และ Event Logging
  • BITS 4.0 ปล่อยกลางปี 2009 พร้อม Windows 7 และ Windows Server 2008 R2 นำเสนอ Token-based Security, Standalone File Server Features, การควบคุมแบนด์วิดท์ที่ปรับปรุง และ Peer Caching ที่ปรับปรุง
  • BITS 5.0 รวมใน Windows 10 กลางปี 2559 เพิ่มการปรับปรุง Background Copy Jobs, การสนับสนุน Background Copy Jobs เก่า และความสามารถในการใช้ BITS ผ่าน API และ PowerShell Cmdlets
  • รุ่น 10.1 ของ BITS ส่วนหนึ่งของ Windows 10 Version 1703 หรือ Windows 10 Creators Update ปรับปรุงฟีเจอร์ดาวน์โหลดและการแจ้งเตือน
  • รุ่น 10.2 ของ BITS ส่วนหนึ่งของ Windows 10 October 2018 Update เพิ่ม Default Proxy Ordering รวมถึงการสนับสนุน Modern Standby และนโยบาย Mobile Device Manager และ Group Policies
  • รุ่น 10.3 ของ BITS ส่วนหนึ่งของ Windows 10 May 2019 Update เปิดใช้ความสามารถในการทำเครื่องหมาย HTTP Headers เป็น Write-Only และ Server Certificate Validation Callback

เรียนรู้วิธีอัปโหลดและดาวน์โหลดไฟล์ด้วยสคริปต์ PowerShell File Transfer Protocol และอ่านเกี่ยวกับ 8 บริการถ่ายโอนไฟล์ปลอดภัยสำหรับองค์กร

อ่านต่อเกี่ยวกับ Microsoft Windows Background Intelligent Transfer Service (BITS)

  • PowerShell คืออะไร และวิธีใช้: บทช่วยสอนฉบับสมบูรณ์
  • 5 ขั้นตอนระบุและแก้ไขปัญหาประสิทธิภาพ Windows 11
  • เครื่องมือถ่ายโอนไฟล์ขนาดใหญ่: วิธีหาและซื้อที่ดีที่สุด
  • เครื่องมือย้าย Windows 11 สำหรับแอดมินเดสก์ท็อป
  • ปัญหาการอัปเกรด Windows 11 ที่แอดมินเดสก์ท็อปควรรู้

ขยายความเกี่ยวกับการปฏิบัติการ IT และการจัดการโครงสร้างพื้นฐาน

  • ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด
    Simple Struts 2 File Upload Example

    ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด

    โดย: Cameron McKenzie

  • ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด
    JCL (Job Control Language) คืออะไร?

    โดย: TechTarget Contributor

  • ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด
    วิธีใช้ TFTP ถ่ายโอนไฟล์ข้ามเครือข่าย

    ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด

    โดย: Damon Garn

  • ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด
    ใช้ cURL และ Wget ดาวน์โหลดไฟล์เครือข่ายจาก CLI

    ทำความเข้าใจ Microsoft Windows BITS: Background Intelligent Transfer Service แบบละเอียด

    โดย: Damon Garn