โดย
- ราหุล อวาติ
- Stephen J. Bigelow บรรณาธิการอาวุโสด้านเทคโนโลยี
เผยแพร่:21 สิงหาคม 2023
Microsoft Windows Background Intelligent Transfer Service (BITS) เป็นบริการในระบบปฏิบัติการ Microsoft Windows (OS) ที่อนุญาตให้ดาวน์โหลดและอัปโหลดไฟล์ไปยังเว็บเซิร์ฟเวอร์ Hypertext Transfer Protocol (HTTP) และเซิร์ฟเวอร์ไฟล์ Server Message Block (SMB)
BITS ใช้แบนด์วิดท์เครือข่ายที่ไม่ได้ใช้งานเพื่อถ่ายโอนไฟล์ในพื้นหลังหรือเบื้องหน้า ดังนั้นประสบการณ์เบื้องหน้าของผู้ใช้จึงได้รับผลกระทบน้อยที่สุด การปิดใช้งานบริการจะป้องกันไม่ให้แอปพลิเคชันทั้งหมดที่ใช้ BITS ดาวน์โหลดโปรแกรมและข้อมูลสำคัญอื่น ๆ โดยอัตโนมัติ
BITS ใช้แบนด์วิธเครือข่ายที่ไม่ได้ใช้หรือไม่ได้ใช้งานเพื่อทำการถ่ายโอนไฟล์ - ดาวน์โหลดหรืออัพโหลด - จากหรือไปยังเว็บเซิร์ฟเวอร์ HTTP และเซิร์ฟเวอร์ไฟล์ SMB การถ่ายโอนไฟล์ เช่น ระหว่างเครื่องไคลเอนต์และเซิร์ฟเวอร์ เป็นแบบอะซิงโครนัสและเกิดขึ้นในเบื้องหน้าหรือเบื้องหลัง ซึ่งหมายความว่า เมื่อแอปพลิเคชันร้องขอ BITS สำหรับการถ่ายโอนไฟล์ แอปพลิเคชันจะสามารถทำงานอื่นใดได้อย่างอิสระ
BITS ประกอบด้วย PowerShell cmdlets สำหรับการสร้างและจัดการการถ่ายโอน และยูทิลิตี้บรรทัดคำสั่ง BITSAdmin สำหรับการสร้างงานดาวน์โหลดหรืออัพโหลดและติดตามความคืบหน้า บริการนี้ยังรวมถึงสิ่งอำนวยความสะดวกในการจัดการคิวเพื่อจัดลำดับความสำคัญของคำขอถ่ายโอนไฟล์จากแอปพลิเคชัน
ป>
หากการหยุดชะงักหรือการหยุดชะงักเกิดขึ้นบนเครือข่าย BITS จะเชื่อมต่อใหม่โดยอัตโนมัติและดำเนินการถ่ายโอนไฟล์ต่อเมื่อเครือข่ายหรือเครื่องกลับมาให้บริการอีกครั้ง BITS สามารถหยุดชั่วคราวและดำเนินการถ่ายโอนต่อโดยอัตโนมัติแม้ว่าจะรีบูตแล้วก็ตาม นอกจากนี้ยังถ่ายโอนไฟล์เมื่อเสียบปลั๊กเครื่องและอยู่ในโหมด Modern Standby จึงคำนึงถึงการใช้พลังงาน
วงจรชีวิตของงาน Background Intelligent Transfer Service
งาน BITS คือคอนเทนเนอร์ที่เก็บไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปที่จะถ่ายโอนไปยังหรือจากเว็บเซิร์ฟเวอร์ HTTP และไฟล์เซิร์ฟเวอร์ SMB งานมีคุณสมบัติที่ระบุวิธีที่ BITS ถ่ายโอนไฟล์และโต้ตอบกับแอปพลิเคชัน
วงจรชีวิตของงานเริ่มต้นด้วยการสร้างงาน นี่คือเวลาที่ผู้ใช้ระบุลำดับความสำคัญของงาน ไม่ว่าจะเป็นการอัพโหลดหรือดาวน์โหลด และเหตุการณ์ใดที่พวกเขาต้องการรับการแจ้งเตือน เมื่อสร้างงานแล้ว คุณสามารถเพิ่มไฟล์เข้าไปได้ โดยสามารถอัปโหลดงานได้สูงสุด 1 ไฟล์ คุณสมบัติของงานยังสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับการใช้งาน เมื่อเพิ่มไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปในงาน สิ่งสำคัญคือต้องระบุชื่อในเครื่อง (ไคลเอนต์) และระยะไกล (เซิร์ฟเวอร์) ของไฟล์
เมื่อมีการสร้างงาน BITS จะระงับงานโดยอัตโนมัติ ผู้ใช้จะต้องกลับมาทำงานต่อเพื่อเปิดใช้งานในคิวการถ่ายโอน กล่าวคือ เพื่อย้ายงานจากสถานะที่ถูกระงับไปยังสถานะที่อยู่ในคิว มันยังคงอยู่ในสถานะเข้าคิวจนกว่าตัวกำหนดเวลา BITS จะกำหนดรอบในการถ่ายโอนไฟล์ ณ จุดนี้ งานจะย้ายไปยังสถานะการเชื่อมต่อ และ BITS จะเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล จากนั้นจะย้ายไปยังสถานะการถ่ายโอนและคงอยู่ที่นั่นจนกว่าเงื่อนไขใดเงื่อนไขหนึ่งจากสี่จะเกิดขึ้น:
- การแบ่งเวลาสิ้นสุดลง
- การโอนเสร็จสมบูรณ์
- มีข้อผิดพลาด
- แอปพลิเคชันระงับงาน
งานจะย้ายไปยังสถานะที่ถ่ายโอนเมื่อ BITS ถ่ายโอนไฟล์ทั้งหมด ไฟล์ที่ถ่ายโอนจะพร้อมใช้งานสำหรับไคลเอนต์เมื่อแอปพลิเคชันเรียกใช้เมธอด IBackgroundCopyJob::Complete และความเป็นเจ้าของไฟล์ถูกโอนจาก BITS ไปยังผู้ใช้
BITS รักษาประสบการณ์ผู้ใช้อย่างไร
ขึ้นอยู่กับแบนด์วิธเครือข่ายที่ไม่ได้ใช้งาน BITS จะเพิ่มหรือลดอัตราการถ่ายโอนไฟล์ หากแอปพลิเคชันเริ่มใช้แบนด์วิธมากขึ้น BITS จะลดอัตราการถ่ายโอนไฟล์โดยอัตโนมัติ ดังนั้นจึงรักษาประสบการณ์โดยรวมของผู้ใช้และทำให้มั่นใจว่าการถ่ายโอนในเบื้องหลังมีความเหมาะสมที่สุด
ตราบใดที่ผู้ใช้ที่เริ่มต้นการถ่ายโอนไฟล์ยังคงล็อกออนเข้าสู่เครือข่ายและการเชื่อมต่อเครือข่ายยังคงอยู่ BITS จะยังคงถ่ายโอนไฟล์ต่อไป แม้ว่าแอปพลิเคชันจะออกเองก็ตาม ดังที่กล่าวไปแล้ว BITS จะไม่บังคับการเชื่อมต่อเครือข่ายหากสูญหายหรือหากผู้ใช้ออกจากระบบ แต่จะระงับงานการถ่ายโอนไว้ก่อนแล้วจึงดำเนินการต่อหลังจากการเชื่อมต่อที่สูญเสียไปได้รับการสร้างขึ้นใหม่หรือหลังจากที่ผู้ใช้ที่ออกจากระบบกลับเข้าสู่ระบบอีกครั้ง
BITS จะพิจารณาต้นทุนของการถ่ายโอนไฟล์และการใช้งานเครือข่ายตลอดจนความแออัดของเครือข่ายเสมอ นอกจากนี้ยังใช้นโยบายการถ่ายโอนที่ระบุโดยแอปเพื่อป้องกันการถ่ายโอนไฟล์บนการเชื่อมต่อเครือข่ายที่มีค่าใช้จ่าย ข้อควรพิจารณาเหล่านี้มีความสำคัญอย่างยิ่งกับเครือข่ายโรมมิ่งที่ค่าใช้จ่ายอาจสูงขึ้นอย่างรวดเร็ว BITS ยังช่วยลดผลกระทบต่อ -- หรือการรบกวน -- งานเบื้องหน้าของผู้ใช้ ซึ่งช่วยรักษาประสบการณ์ในการทำงานกับระบบได้ในที่สุด
แอปพลิเคชันของ Background Intelligent Transfer Service
BITS มีประโยชน์มากที่สุดสำหรับผู้ดูแลระบบที่ต้องการดาวน์โหลดไฟล์จากหรืออัปโหลดไฟล์ไปยังเว็บเซิร์ฟเวอร์ HTTP และการแชร์ไฟล์ SMB นอกจากนี้ยังมีอินเทอร์เฟซ Component Object Model ที่เป็นประโยชน์สำหรับโปรแกรมเมอร์ C, C++ และ .NET Microsoft ไม่แนะนำ BITS application programming interface (API) สำหรับโปรแกรมเมอร์ Universal Windows Platform พวกเขาควรใช้ Windows.Networking.BackgroundTransfer API แทน
Windows ใช้ BITS เพื่อดาวน์โหลดการอัพเดตไปยังระบบภายในเครื่องของผู้ใช้ แอปพลิเคชันอื่นๆ จำนวนมากยังใช้ BITS รวมถึงแอปพลิเคชันที่ต้องการดาวน์โหลดหรืออัปโหลดไฟล์ไปยัง HTTP หรือเว็บเซิร์ฟเวอร์การถ่ายโอนสถานะการแสดงหรือเซิร์ฟเวอร์ไฟล์ SMB แอปพลิเคชันที่ต้องการดำเนินการถ่ายโอนไฟล์ต่อโดยอัตโนมัติหลังจากเครือข่ายตัดการเชื่อมต่อหรือรีสตาร์ทคอมพิวเตอร์ก็ใช้ BITS เช่นกัน สุดท้ายนี้ BITS สามารถใช้เพื่อเพิ่มประสิทธิภาพการรับส่งข้อมูลเครือข่ายบริเวณกว้างได้เมื่อใช้กับ BranchCache ซึ่งเป็นเทคโนโลยีเพิ่มประสิทธิภาพ WAN ที่รวมอยู่ในระบบปฏิบัติการ Windows และ Windows Server บางรุ่น
ผู้ดูแลระบบสามารถใช้ Microsoft Windows BITS เพื่อจัดการการรับส่งข้อมูล WAN ประเภทของงานการโอนและสถานะของงานใน BITS
BITS รองรับงานการโอนสามประเภท:
- ดาวน์โหลดงาน มันดาวน์โหลดไฟล์ไปยังไคลเอนต์ นอกจากนี้ ไฟล์ทั้งหมดจะถูกถ่ายโอนแบบไม่พร้อมกันในเบื้องหน้าหรือเบื้องหลัง
- อัพโหลดงาน จะอัปโหลดไฟล์จากไคลเอ็นต์ไปยังเซิร์ฟเวอร์
- อัพโหลด-ตอบกลับงาน ขั้นแรกจะอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ จากนั้นจะได้รับไฟล์ตอบกลับจากแอปพลิเคชันเซิร์ฟเวอร์ที่การอัปโหลดเสร็จสมบูรณ์
งาน BITS สามารถอยู่ในสถานะใดสถานะหนึ่งจากสี่สถานะ:
- การเริ่มต้น โดยค่าเริ่มต้น สถานะเริ่มต้นจะถูกระงับ จากสถานะนี้ ผู้ใช้สามารถเพิ่มไฟล์ลงในงานและตั้งค่าคุณสมบัติงานและไฟล์ได้
- การดำเนินการ อาจมีสถานะการดำเนินการหลายสถานะที่แสดงกิจกรรมภายในปัจจุบันของงาน เช่น QUEUED, CONNECTING และ TRANSFERRING สถานะการดำเนินการอื่นคือข้อผิดพลาดชั่วคราว ซึ่งบ่งชี้ว่างานล้มเหลวในการถ่ายโอนไฟล์
- โอนแล้ว สถานะนี้เกิดขึ้นเมื่อการโอนสำเร็จและไม่ต้องโอนอีกต่อไป
- รอบชิงชนะเลิศ งานนี้ได้รับการยอมรับแล้วและไฟล์ที่ดาวน์โหลดเสร็จแล้วทั้งหมดก็พร้อมให้ใช้งาน
ในขณะที่งาน BITS ทำงาน งานจะเปลี่ยนระหว่างรัฐในคลาสสถานะที่แตกต่างกัน แต่เมื่อถึงสถานะสุดท้าย มันจะไม่ย้ายออกจากสถานะนั้น ซึ่งหมายความว่าไม่สามารถเรียกวิธีการเปลี่ยนสถานะใดๆ ได้ มันจะไม่แสดงในการแจงนับงานด้วย หากมีข้อผิดพลาดเกิดขึ้น งานจะย้ายไปยังสถานะข้อผิดพลาดร้ายแรง (BITS ไม่สามารถกู้คืนได้) หรือสถานะข้อผิดพลาดชั่วคราว (ข้อผิดพลาดอาจแก้ไขได้เองและ BITS จะลองทำงานอีกครั้งจนกว่าการถ่ายโอนจะสำเร็จหรือจนกว่างานจะหมดเวลาภายในระยะเวลาที่กำหนดของแอปพลิเคชัน) หากงานหมดเวลาในสถานะข้อผิดพลาดชั่วคราว BITS จะย้ายงานนั้นไปยังสถานะข้อผิดพลาดร้ายแรง
ระดับความสำคัญของบริการถ่ายโอนข้อมูลอัจฉริยะเบื้องหลัง
BITS สามารถเลือกงานถ่ายโอนที่จะรันและเมื่อใดได้อย่างชาญฉลาด เนื่องจากแอปพลิเคชันสามารถใช้ระดับความสำคัญที่แตกต่างกัน:หนึ่งระดับสำหรับเบื้องหน้าและสามระดับสำหรับพื้นหลัง ระดับความสำคัญจะกำหนดว่างานการถ่ายโอนจะถูกประมวลผลเมื่อใดโดยสัมพันธ์กับงานอื่นในคิวการถ่ายโอน ดังนั้น:
- งานที่มีลำดับความสำคัญสูงกว่าจะมีความสำคัญมากกว่างานที่มีลำดับความสำคัญต่ำกว่า
- งานที่มีลำดับความสำคัญต่ำกว่าจะไม่ได้รับเวลาการโอนจนกว่างานที่มีลำดับความสำคัญสูงกว่าทั้งหมดจะถูกโอนหรืออยู่ในสถานะข้อผิดพลาด
- งานที่มีลำดับความสำคัญเท่ากันจะใช้เวลาในการโอนร่วมกัน ดังนั้นจึงไม่มีงานขนาดใหญ่ที่สามารถปิดกั้นคิวการโอนและทำให้เกิดความล่าช้าได้
ในการกำหนดเวลางานที่มีลำดับความสำคัญเท่ากัน BITS จะใช้การกำหนดเวลาแบบวนซ้ำ โดยที่แต่ละงานจะได้รับส่วนแบ่งของเวลาในการประมวลผลไฟล์ หากงานใดงานหนึ่งไม่เสร็จสมบูรณ์ในช่วงเวลาที่กำหนด งานนั้นจะกลับไปยังสถานะที่อยู่ในคิวโดยอัตโนมัติ และงานถัดไปในคิวจะถูกเรียกใช้งานแบบเข้าก่อนออกก่อน (FIFO) สิ่งสำคัญที่ควรทราบคือ BITS ไม่รับประกันการประมวลผล FIFO แม้ว่าจะพยายามอย่างดีที่สุดก็ตาม
Windows BITS ใช้การกำหนดเวลาแบบวนรอบเพื่อกำหนดเวลางานที่ระดับความสำคัญเท่ากัน ใน BITS 1.5 และเวอร์ชันก่อนหน้า งานเบื้องหน้าจะได้รับการจัดลำดับความสำคัญมากกว่างานเบื้องหลัง ในความเป็นจริง งานเบื้องหน้ามีลำดับความสำคัญสูงสุด และ BITS จะประมวลผลงานได้ครั้งละหนึ่งงานเท่านั้น ในเวอร์ชัน BITS ที่ใหม่กว่า การถ่ายโอนเบื้องหน้าหลายครั้งสามารถเกิดขึ้นพร้อมกันได้ แต่ไฟล์หลายไฟล์ในงานเดียวกันจะถูกถ่ายโอนตามลำดับหรือต่อเนื่องกันเสมอ
ประวัติความเป็นมาของ Background Intelligent Transfer Service
Microsoft ได้อัปเดต BITS หลายครั้ง:
- Microsoft เปิดตัว BITS เวอร์ชัน 1.0 ใน Windows XP ในปี 2544
- เวอร์ชัน 1.2 มาถึงในช่วงกลางปี 2002 เพื่อเพิ่มบริการ Automatic Updates ให้กับ Windows 2000
- เวอร์ชัน 1.5 เปิดตัวปลายปี 2003 พร้อม Windows Server 2003 และให้การสนับสนุนบรรทัดคำสั่ง คุณลักษณะการอัปโหลดเพิ่มเติม และการปรับปรุงความปลอดภัย
- เวอร์ชัน 2.0 ซึ่งเปิดตัวในช่วงกลางปี 2004 เพื่อเป็นการอัปเดตสำหรับการปรับใช้ระบบปฏิบัติการหลายระบบ ได้เพิ่มคุณลักษณะการดาวน์โหลด การควบคุมปริมาณแบนด์วิธ และการสนับสนุนสำหรับ SMB
- เปิดตัวในช่วงกลางปี 2550 BITS 2.5 ได้เพิ่มการรองรับสำหรับ IPv6 และส่วนหัว HTTP ที่กำหนดเอง และการรักษาความปลอดภัย HTTP ที่ดีขึ้น
- BITS 3.0 ซึ่งรวมอยู่ใน Windows Vista และ Windows Server 2008 เพิ่มการแคชเพียร์ การแจ้งเตือน การเข้าถึงไฟล์ชั่วคราว การจัดการการเปลี่ยนเส้นทาง HTTP การควบคุมนโยบายกลุ่มเพิ่มเติม และการบันทึกเหตุการณ์
- BITS 4.0 ซึ่งเปิดตัวในช่วงกลางปี 2009 พร้อมด้วย Windows 7 และ Windows Server 2008 R2 ได้นำการรักษาความปลอดภัยแบบโทเค็น คุณลักษณะเซิร์ฟเวอร์ไฟล์แบบสแตนด์อโลน การควบคุมปริมาณแบนด์วิดท์ที่ได้รับการปรับปรุง และการแก้ไขแคชเพียร์
- BITS 5.0 ซึ่งมาพร้อมกับ Windows 10 ในช่วงกลางปี 2016 ได้เพิ่มการปรับปรุงงานการคัดลอกในเบื้องหลัง การสนับสนุนงานการคัดลอกในเบื้องหลังแบบเก่า และความสามารถในการใช้ BITS ผ่าน API และ PowerShell cmdlets
- BITS เวอร์ชัน 10.1 ซึ่งเป็นส่วนหนึ่งของ Windows 10 เวอร์ชัน 1703 หรือที่เรียกว่า Windows 10 Creators Update ซึ่งเป็นฟีเจอร์การดาวน์โหลดและการแจ้งเตือนที่ได้รับการปรับปรุง
- BITS เวอร์ชัน 10.2 ซึ่งเป็นส่วนหนึ่งของการอัปเดต Windows 10 เดือนตุลาคม 2018 ได้เพิ่มการเรียงลำดับพร็อกซีเริ่มต้น ตลอดจนการสนับสนุนนโยบายและนโยบายกลุ่มของ Modern Standby และตัวจัดการอุปกรณ์เคลื่อนที่
- BITS เวอร์ชัน 10.3 ซึ่งเป็นส่วนหนึ่งของการอัปเดต Windows 10 เดือนพฤษภาคม 2562 ช่วยให้สามารถทำเครื่องหมายส่วนหัว HTTP เป็นการเรียกกลับสำหรับการเขียนเท่านั้นและการตรวจสอบใบรับรองเซิร์ฟเวอร์
เรียนรู้วิธีอัปโหลดและดาวน์โหลดไฟล์ด้วยสคริปต์ PowerShell File Transfer Protocol และอ่านเกี่ยวกับบริการถ่ายโอนไฟล์ที่ปลอดภัยแปดบริการสำหรับองค์กร ป>
อ่านต่อเกี่ยวกับ Microsoft Windows พื้นหลัง Intelligent Transfer Service (BITS)
- PowerShell คืออะไรและใช้งานอย่างไร:สุดยอดบทช่วยสอน
- 5 ขั้นตอนในการระบุและแก้ไขปัญหาประสิทธิภาพของ Windows 11
- เครื่องมือในการถ่ายโอนไฟล์ขนาดใหญ่:วิธีค้นหาและซื้อสิ่งที่ดีที่สุด
- เครื่องมือการย้ายข้อมูล Windows 11 สำหรับผู้ดูแลระบบเดสก์ท็อป
- ปัญหาการอัปเกรด Windows 11 ที่ผู้ดูแลระบบเดสก์ท็อปควรทราบ
เจาะลึกการดำเนินงานด้านไอทีและการจัดการโครงสร้างพื้นฐาน
-
ตัวอย่างการอัพโหลดไฟล์ Simple Struts 2
โดย:คาเมรอน แมคเคนซี
-
JCL (ภาษาควบคุมงาน) คืออะไร
โดย:TechTarget Contributor
-
วิธีใช้ TFTP เพื่อถ่ายโอนไฟล์ข้ามเครือข่าย
โดย:เดมอน การ์น
-
ใช้ cURL และ Wget เพื่อดาวน์โหลดไฟล์เครือข่ายจาก CLI
โดย:เดมอน การ์น