กลับไปหน้าบทความ

อ่าน 7 นาที

เอ็นจิ้นการถ่ายโอน TCP

TCP offload engine ( TOE ) เป็นเทคโนโลยีที่ใช้ใน การ์ดอินเทอร์เฟซเครือข่าย (NIC) บางตัวเพื่อ ถ่ายโอน การประมวลผลของ สแต็ก TCP/IP ทั้งหมด ไปยังตัวควบคุมเครือข่าย...

เอ็นจิ้นการถ่ายโอน TCP

TCP offload engine ( TOE ) เป็นเทคโนโลยีที่ใช้ในการ์ดอินเทอร์เฟซเครือข่าย (NIC) บางตัวเพื่อถ่ายโอนการประมวลผลของ สแต็ก TCP/IP ทั้งหมด ไปยังตัวควบคุมเครือข่าย โดยส่วนใหญ่จะใช้กับอินเทอร์เฟซเครือข่ายความเร็วสูง เช่นกิกะบิตอีเธอร์เน็ตและ10 กิกะบิตอีเธอร์เน็ตซึ่งค่าใช้จ่ายในการประมวลผลของสแต็กเครือข่ายจะสูงขึ้นอย่างมาก TOE มักใช้[ 1 ]เป็นวิธีลดค่าใช้จ่ายที่เกี่ยวข้องกับ โปรโตคอลการจัดเก็บข้อมูล Internet Protocol (IP) เช่นiSCSIและNetwork File System (NFS)

วัตถุประสงค์

เดิมทีTCPได้รับการออกแบบมาสำหรับเครือข่ายความเร็วต่ำที่ไม่น่าเชื่อถือ (เช่นโมเด็มแบบdial-up รุ่นแรกๆ ) แต่ด้วยการเติบโตของอินเทอร์เน็ตในแง่ของ ความเร็วในการส่งข้อมูล หลัก (โดยใช้Optical Carrier , Gigabit Ethernetและ10 Gigabit Ethernet links) และกลไกการเข้าถึงที่เร็วและน่าเชื่อถือมากขึ้น (เช่นDSLและเคเบิลโมเด็ม ) ทำให้ TCP ถูกนำมาใช้บ่อยในศูนย์ข้อมูลและ สภาพแวดล้อม พีซี เดสก์ท็อป ด้วยความเร็วมากกว่า 1 กิกะบิตต่อวินาที ที่ความเร็วเหล่านี้ การใช้งานซอฟต์แวร์ TCP บนระบบโฮสต์ต้องการพลังการประมวลผลจำนวนมาก ในช่วงต้นทศวรรษ 2000 การสื่อสาร TCP แบบกิกะบิตแบบฟูลดูเพล็กซ์สามารถใช้ทรัพยากรมากกว่า 80% ของโปรเซสเซอร์Pentium 4 2.4 GHz [ 2 ]ส่งผลให้เหลือทรัพยากรการประมวลผลน้อยหรือไม่มีเลยสำหรับแอปพลิเคชันที่จะทำงานบนระบบ

TCP เป็นโปรโตคอลที่เน้นการเชื่อมต่อซึ่งเพิ่มความซับซ้อนและภาระการประมวลผล ลักษณะเหล่านี้ได้แก่:

การย้ายฟังก์ชันบางส่วนหรือทั้งหมดเหล่านี้ไปยังฮาร์ดแวร์เฉพาะ เช่น เอ็นจิ้นการถ่ายโอนข้อมูล TCP จะช่วยให้ CPUหลักของระบบว่างสำหรับงานอื่นๆ

รอบการทำงานของ CPU ที่ว่างลง

โดยทั่วไปแล้ว กฎที่ยอมรับกันโดยทั่วไปคือ ต้องใช้กำลังประมวลผล CPU 1 เฮิรตซ์ ในการส่งหรือรับข้อมูลบิต/วินาทีของ TCP/IP [ 2 ]ตัวอย่างเช่นการรับส่งข้อมูลเครือข่าย5 Gbit/s ( 625 MB/s ) ต้องการการประมวลผล CPU 5 GHz ซึ่งหมายความว่า ต้องใช้ คอร์ทั้งหมด 2 คอร์ของ โปรเซสเซอร์มัลติคอร์ 2.5 GHz เพื่อจัดการการประมวลผล TCP/IP ที่เกี่ยวข้องกับการรับส่งข้อมูล TCP/IP 5 Gbit/sเนื่องจากอีเธอร์เน็ต (10GE ในตัวอย่างนี้) เป็นแบบสองทิศทาง จึงสามารถส่งและรับข้อมูลได้10 Gbit/s (สำหรับปริมาณงานรวม20 Gbit/s ) โดยใช้ กฎ 1 Hz/(bit/s)จะเทียบเท่ากับคอร์ 2.5 GHz จำนวน 8 คอร์

รอบการทำงานของ CPU จำนวนมากที่ใช้สำหรับการประมวลผล TCP/IP จะถูกปลดปล่อยโดยการถ่ายโอนงาน TCP/IP (TCP offload) และอาจถูกนำไปใช้โดย CPU (โดยปกติจะเป็น CPU ของเซิร์ฟเวอร์ ) เพื่อทำงานอื่นๆ เช่น การประมวลผลระบบไฟล์ (ในเซิร์ฟเวอร์ไฟล์) หรือการจัดทำดัชนี (ในเซิร์ฟเวอร์สื่อสำรองข้อมูล) กล่าวอีกนัยหนึ่ง เซิร์ฟเวอร์ที่มีการถ่ายโอนงาน TCP/IP สามารถทำงานของเซิร์ฟเวอร์ ได้มากกว่า เซิร์ฟเวอร์ที่ไม่มีการ์ดเครือข่ายที่มีการถ่ายโอนงาน TCP/IP

การลดปริมาณการรับส่งข้อมูล PCI

นอกจากปัญหาเรื่องโอเวอร์เฮดของโปรโตคอลที่ TOE สามารถแก้ไขได้แล้ว ยังสามารถแก้ไขปัญหาทางสถาปัตยกรรมบางอย่างที่ส่งผลกระทบต่ออุปกรณ์ปลายทางแบบโฮสต์ (เซิร์ฟเวอร์และพีซี) จำนวนมากได้อีกด้วย โฮสต์ปลายทางรุ่นเก่าจำนวนมากใช้ บัส PCIซึ่งเป็นอินเทอร์เฟซมาตรฐานสำหรับการเพิ่มอุปกรณ์ต่อพ่วง บางอย่าง เช่น อินเทอร์เฟซเครือข่าย เข้ากับเซิร์ฟเวอร์และพีซี PCI นั้นไม่มีประสิทธิภาพสำหรับการถ่ายโอนข้อมูลขนาดเล็กจากหน่วยความจำหลักผ่านบัส PCI ไปยัง IC อินเทอร์เฟซเครือข่าย แต่ประสิทธิภาพจะดีขึ้นเมื่อขนาดของข้อมูลเพิ่มขึ้น ภายในโปรโตคอล TCP จะมีการสร้างแพ็กเก็ตขนาดเล็กจำนวนมาก (เช่น การรับทราบ) และเนื่องจากแพ็กเก็ตเหล่านี้มักถูกสร้างขึ้นบน CPU ของโฮสต์และส่งผ่านบัส PCI และออกทางอินเทอร์เฟซทางกายภาพของเครือข่าย จึงส่งผลกระทบต่อปริมาณงาน IO ของคอมพิวเตอร์โฮสต์

โซลูชัน TOE ซึ่งอยู่บนอินเทอร์เฟซเครือข่าย จะอยู่ฝั่งตรงข้ามของบัส PCI จากโฮสต์ CPU เพื่อแก้ไขปัญหาประสิทธิภาพ I/O นี้ เนื่องจากข้อมูลที่จะส่งผ่านการเชื่อมต่อ TCP สามารถส่งไปยัง TOE จาก CPU ผ่านบัส PCI โดยใช้ขนาดข้อมูลขนาดใหญ่ โดยไม่ต้องมีแพ็กเก็ต TCP ขนาดเล็กใดๆ ผ่านบัส PCI

ประวัติศาสตร์

หนึ่งในสิทธิบัตรแรกๆ ของเทคโนโลยีนี้ สำหรับการถ่ายโอน UDP ได้รับการออกให้กับAuspex Systemsในช่วงต้นปี 1990 [ 3 ] Larry Boucher ผู้ก่อตั้ง Auspex และวิศวกรของ Auspex จำนวนหนึ่งได้ร่วมกันก่อตั้ง Alacritech ในปี 1997 โดยมีแนวคิดที่จะขยายแนวคิดการถ่ายโอนสแต็กเครือข่ายไปยัง TCP และนำไปใช้ในซิลิคอนแบบกำหนดเอง พวกเขาได้เปิดตัวการ์ดเครือข่ายแบบถ่ายโอนสแต็กเต็มรูปแบบแบบขนานตัวแรกในช่วงต้นปี 1999 โดย SLIC (Session Layer Interface Card) ของบริษัทเป็นรุ่นก่อนหน้าของผลิตภัณฑ์ TOE ในปัจจุบัน Alacritech ถือครองสิทธิบัตรจำนวนมากในด้านการถ่ายโอน TCP/IP [ 4 ]

ในปี 2545 เมื่อการเกิดขึ้นของระบบจัดเก็บข้อมูลแบบ TCP เช่นiSCSIกระตุ้นความสนใจ มีการกล่าวว่า "มีผู้มาใหม่อย่างน้อยสิบสองราย ซึ่งส่วนใหญ่ก่อตั้งขึ้นในช่วงปลายของฟองสบู่ดอทคอม กำลังแย่งชิงโอกาสสำหรับตัวเร่งความเร็วเซมิคอนดักเตอร์เชิงพาณิชย์สำหรับโปรโตคอลและแอปพลิเคชันการจัดเก็บข้อมูล แข่งขันกับผู้ขายที่ฝังรากลึกอีกครึ่งโหลและการออกแบบ ASIC ภายในองค์กร" [ 5 ]

ในปี 2548 ไมโครซอฟต์ได้รับสิทธิ์ในการใช้สิทธิบัตรของ Alacritech และร่วมกับ Alacritech สร้างสถาปัตยกรรม TCP offload บางส่วน ซึ่งเป็นที่รู้จักกันในชื่อ TCP chimney offload โดย TCP chimney offload มีหัวใจหลักอยู่ที่ "สิทธิบัตรการส่งผ่านบล็อกการสื่อสาร" ของ Alacritech ในเวลาเดียวกัน Broadcom ก็ได้รับใบอนุญาตในการสร้างชิป TCP chimney offload ด้วยเช่นกัน

ประเภท

แทนที่จะแทนที่สแต็ก TCP ด้วย TOE ทั้งหมด มีเทคนิคทางเลือกในการถ่ายโอนการทำงานบางอย่างโดยร่วมมือกับสแต็ก TCP ของระบบปฏิบัติการการถ่ายโอนการตรวจสอบผลรวม TCPและการถ่ายโอนส่วนขนาดใหญ่ได้รับการสนับสนุนโดย NIC Ethernet ส่วนใหญ่ในปัจจุบัน เทคนิคใหม่กว่า เช่นการถ่ายโอนการรับขนาดใหญ่และการถ่ายโอนการยืนยัน TCP ได้รับการนำไปใช้ในฮาร์ดแวร์ Ethernet ระดับสูงบางรุ่นแล้ว แต่ก็มีประสิทธิภาพแม้ว่าจะนำไปใช้ในซอฟต์แวร์ล้วนๆ ก็ตาม[ 6 ] [ 7 ]

การถ่ายโอนข้อมูลแบบเต็มรูปแบบแบบเรียงซ้อนขนาน

การประมวลผลแบบออฟโหลดเต็มรูปแบบด้วยสแต็กคู่ขนาน (Parallel-stack full offload) ได้ชื่อมาจากแนวคิดของสแต็ก TCP/IP สองตัวที่ทำงานคู่ขนานกัน ตัวแรกคือสแต็กหลักของโฮสต์ ซึ่งรวมอยู่ในระบบปฏิบัติการของโฮสต์ ตัวที่สองหรือ "สแต็กคู่ขนาน" นั้นเชื่อมต่ออยู่ระหว่างเลเยอร์แอปพลิเคชันและเลเยอร์การขนส่ง (TCP)โดยใช้ "ตัวดักจับข้อมูล (vampire tap)" ตัวดักจับข้อมูลนี้จะดักจับคำขอเชื่อมต่อ TCP จากแอปพลิเคชันและรับผิดชอบในการจัดการการเชื่อมต่อ TCP รวมถึงการถ่ายโอนข้อมูล TCP ด้วย ข้อวิจารณ์หลายประการในส่วนต่อไปนี้เกี่ยวข้องกับการประมวลผลแบบออฟโหลด TCP ประเภทนี้

HBA ปลดโหลดเต็ม

การประมวลผลแบบออฟ โหลดเต็มรูปแบบของ HBA (Host Bus Adapter) พบได้ในอะแดปเตอร์โฮสต์ iSCSI ซึ่งทำหน้าที่เสมือนเป็นตัวควบคุมดิสก์ต่อระบบโฮสต์ขณะเชื่อมต่อ (ผ่าน TCP/IP) กับ อุปกรณ์จัดเก็บข้อมูล iSCSIการประมวลผลแบบออฟโหลด TCP ประเภทนี้ไม่เพียงแต่ลดภาระการประมวลผล TCP/IP เท่านั้น แต่ยังลดภาระการทำงานของตัวเริ่มต้น iSCSI ด้วย เนื่องจาก HBA ปรากฏต่อโฮสต์ในฐานะตัวควบคุมดิสก์ จึงสามารถใช้งานได้เฉพาะกับอุปกรณ์ iSCSI เท่านั้น และไม่เหมาะสมสำหรับการประมวลผลแบบออฟโหลด TCP/IP ทั่วไป

การถ่ายโอนข้อมูลบางส่วนของปล่องไฟ TCP

การประมวลผลแบบ TCP chimney offload ช่วยแก้ปัญหาด้านความปลอดภัยที่สำคัญของการประมวลผลแบบ full offload บน parallel-stack ในการประมวลผลแบบ partial offload นั้น สแต็กของระบบหลักจะควบคุมการเชื่อมต่อทั้งหมดไปยังโฮสต์ หลังจากที่สร้างการเชื่อมต่อระหว่างโฮสต์ภายใน (โดยปกติคือเซิร์ฟเวอร์) และโฮสต์ภายนอก (โดยปกติคือไคลเอนต์) แล้ว การเชื่อมต่อและสถานะของการเชื่อมต่อจะถูกส่งต่อไปยังเอ็นจิ้นการประมวลผลแบบ TCP offload อุปกรณ์ offload จะจัดการการส่งและรับข้อมูลที่ซับซ้อนเกือบทั้งหมด เอ็นจิ้นการประมวลผลแบบ TCP offload เกือบทั้งหมดใช้ฮาร์ดแวร์ TCP/IP บางประเภทเพื่อทำการถ่ายโอนข้อมูลโดยไม่ต้องมีการแทรกแซงจาก CPU ของโฮสต์ เมื่อการเชื่อมต่อถูกปิด สถานะการเชื่อมต่อจะถูกส่งกลับจากเอ็นจิ้นการประมวลผลแบบ offload ไปยังสแต็กของระบบหลัก การรักษาการควบคุมการเชื่อมต่อ TCP ช่วยให้สแต็กของระบบหลักสามารถใช้งานและควบคุมความปลอดภัยของการเชื่อมต่อได้

การถ่ายโอนการแบ่งส่วน TCP

การถ่ายโอนการแบ่งส่วน TCP (TSO) สามารถถ่ายโอนงานการแบ่งส่วน TCP ไปยังตัวควบคุมอินเทอร์เฟซเครือข่ายได้[ 8 ]

รับและขนถ่ายสินค้าขนาดใหญ่

Large Receive Offload ( LRO ) เป็นเทคนิคในการเพิ่มปริมาณการรับ ส่งข้อมูลขาเข้า ของการเชื่อมต่อเครือข่ายที่มีแบนด์วิดท์ สูง โดยการลด ภาระ การทำงานของหน่วยประมวลผลกลาง (CPU) หลักการทำงานคือการรวมแพ็กเก็ตขาเข้าหลายแพ็กเก็ต จาก สตรีมเดียวเข้าไว้ในบัฟเฟอร์ขนาดใหญ่ก่อนที่จะส่งต่อไปยังส่วนที่สูงขึ้นของสแต็กเครือข่าย ซึ่งจะช่วยลดจำนวนแพ็กเก็ตที่ต้องประมวลผล โดยทั่วไปแล้วระบบปฏิบัติการ Linuxจะใช้ LRO ร่วมกับNew API (NAPI) เพื่อลดจำนวนการขัดจังหวะ (interrupt ) ด้วย

จากเกณฑ์มาตรฐาน การนำเทคนิคนี้ไปใช้ในซอฟต์แวร์ทั้งหมดก็สามารถเพิ่มประสิทธิภาพเครือข่ายได้อย่างมีนัยสำคัญ[ 6 ] [ 7 ] [ 9 ]ณ เดือนเมษายน พ.ศ. 2550 เคอร์เนล Linuxรองรับ LRO สำหรับTCPในซอฟต์แวร์เท่านั้น FreeBSD 8 รองรับ LRO ในฮาร์ดแวร์บนอะแดปเตอร์ที่รองรับ[ 10 ] [ 11 ] [ 12 ] [ 13 ]

LRO ไม่ควรทำงานบนเครื่องที่ทำหน้าที่เป็นเราเตอร์ เนื่องจากเป็นการทำลายหลักการ end-to-endและอาจส่งผลกระทบอย่างมากต่อประสิทธิภาพ[ 14 ] [ 15 ]

รับโอนทั่วไป

การถ่ายโอนการรับทั่วไป ( GRO ) ดำเนินการ LRO ทั่วไปในซอฟต์แวร์ที่ไม่จำกัดเฉพาะ TCP/ IPv4หรือมีปัญหาที่เกิดจาก LRO [ 16 ] [ 17 ]

ส่งสินค้าขนาดใหญ่

ในเครือข่ายคอมพิวเตอร์ เทคนิค การส่งข้อมูลขนาดใหญ่ ( Large Send OffloadหรือLSO ) เป็นเทคนิคที่ช่วยเพิ่มปริมาณข้อมูล ขาออก ของเครือข่ายที่มีแบนด์วิดท์ สูง โดยลดภาระการทำงาน ของ CPU เทคนิค นี้ทำงานโดยการส่งบัฟเฟอร์แบบหลายแพ็กเก็ตไปยัง การ์ดเครือข่าย ( Network Interface Cardหรือ NIC) จากนั้น NIC จะแบ่งบัฟเฟอร์นี้ออกเป็นแพ็กเก็ตแยกกัน เทคนิคนี้เรียกอีกอย่างว่าTCP segmentation offload ( TSO ) หรือgeneric segmentation offload ( GSO ) เมื่อนำไปใช้กับTCP LSO และ LRO เป็นอิสระต่อกัน และการใช้เทคนิคหนึ่งไม่จำเป็นต้องใช้เทคนิคอื่นร่วมด้วย

เมื่อระบบต้องการส่งข้อมูลจำนวนมากออกไปทางเครือข่ายคอมพิวเตอร์ ข้อมูลเหล่านั้นจะต้องถูกแบ่งออกเป็นส่วนย่อยๆ ก่อน เพื่อให้สามารถส่งผ่านอุปกรณ์เครือข่ายต่างๆ เช่น เราเตอร์และสวิตช์ ระหว่างคอมพิวเตอร์ต้นทางและปลายทางได้ กระบวนการนี้เรียกว่าการแบ่งส่วน (segmentation ) โดยปกติแล้ว โปรโตคอล TCP ในคอมพิวเตอร์โฮสต์จะเป็นผู้ทำการแบ่งส่วนนี้ การถ่ายโอนงานนี้ไปยังการ์ดเครือข่าย (NIC) เรียกว่า การถ่ายโอน การแบ่งส่วน TCP (TCP segmentation offload หรือ TSO)

ตัวอย่างเช่น ข้อมูลขนาด 64 KiB (65,536 ไบต์) มักจะถูกแบ่งออกเป็น 45 ส่วน ส่วนละ 1460 ไบต์ ก่อนที่จะถูกส่งผ่าน NIC และเครือข่าย ด้วยความชาญฉลาดของ NIC นั้น CPU ของโฮสต์สามารถส่งข้อมูลขนาด 64 KB ไปยัง NIC ได้ในการร้องขอส่งเพียงครั้งเดียว NIC สามารถแบ่งข้อมูลนั้นออกเป็นส่วนย่อยๆ ขนาด 1460 ไบต์ เพิ่มส่วนหัวของโปรโตคอล TCP, IPและ Data Link Layer ตามแม่แบบที่กำหนดโดย TCP/IP stack ของโฮสต์ และส่งเฟรมที่ได้ผ่านเครือข่าย วิธีนี้ช่วยลดภาระงานของ CPU ได้อย่างมาก ณ ปี 2014 NIC รุ่นใหม่ๆ ในตลาดจำนวนมากรองรับ TSO แล้ว

การ์ดเครือข่ายบางรุ่นใช้งาน TSO ได้อย่างครอบคลุมมากพอที่จะใช้สำหรับการถ่ายโอนการแบ่งส่วนข้อมูลของ โปรโตคอล เลเยอร์การขนส่ง อื่นๆ หรือสำหรับการแบ่งส่วนข้อมูล IPสำหรับโปรโตคอลที่ไม่รองรับการแบ่งส่วนข้อมูลด้วยตนเองเช่น UDP

การถ่ายโอนการแบ่งส่วน UDP

การถ่ายโอนการแบ่งส่วน UDP (UFO) สามารถถ่ายโอนงานดาตาแกรม UDP ไปยังตัวควบคุมอินเทอร์เฟซเครือข่ายได้[ 18 ]

การสนับสนุนใน Linux

ต่างจากระบบปฏิบัติการอื่นๆ เช่น FreeBSD เคอร์เนล Linux ไม่ได้รวมการสนับสนุน TOE (ไม่ควรสับสนกับการถ่ายโอนเครือข่ายประเภทอื่นๆ) [ 19 ]แม้ว่าจะมีแพตช์จากผู้ผลิตฮาร์ดแวร์เช่นChelsioหรือQlogicที่เพิ่มการสนับสนุน TOE แต่ผู้พัฒนาเคอร์เนล Linux คัดค้านเทคโนโลยีนี้ด้วยเหตุผลหลายประการ: [ 20 ]

  • ความปลอดภัย – เนื่องจาก TOE ถูกนำไปใช้ในฮาร์ดแวร์ การแก้ไขช่องโหว่ด้านความปลอดภัยจึงต้องทำกับเฟิร์มแวร์ ของ TOE แทนที่จะเป็นเพียงซอฟต์แวร์ ยิ่งไปกว่านั้น ปัญหานี้ซับซ้อนยิ่งขึ้นไปอีกเนื่องจากฮาร์ดแวร์นี้ยังใหม่และขึ้นอยู่กับผู้ผลิตแต่ละราย เมื่อเทียบกับสแต็ก TCP/IP ที่ผ่านการทดสอบมาอย่างดีแล้ว ซึ่งพบได้ในระบบปฏิบัติการที่ไม่ใช้ TOE
  • ข้อจำกัดของฮาร์ดแวร์ – เนื่องจากมีการจัดเก็บและประมวลผลการเชื่อมต่อบนชิป TOE การขาดแคลนทรัพยากรจึงเกิดขึ้นได้ง่ายกว่าเมื่อเทียบกับ CPU และหน่วยความจำที่มีให้ระบบปฏิบัติการอย่างเหลือเฟือ
  • ความซับซ้อน – TOE ทำลายข้อสมมติฐานที่เคอร์เนลใช้เกี่ยวกับการเข้าถึงทรัพยากรทั้งหมดตลอดเวลา รายละเอียดต่างๆ เช่น หน่วยความจำที่ใช้โดยการเชื่อมต่อที่เปิดอยู่ จะไม่สามารถมองเห็นได้ด้วย TOE นอกจากนี้ TOE ยังต้องการการเปลี่ยนแปลงครั้งใหญ่ในระบบเครือข่ายเพื่อให้รองรับได้อย่างถูกต้อง และแม้ว่าจะทำเช่นนั้นแล้ว ฟีเจอร์ต่างๆ เช่นคุณภาพของบริการและการกรองแพ็กเก็ตอาจใช้งานไม่ได้
  • ระบบ TOE เป็น กรรมสิทธิ์เฉพาะ – แต่ละผู้ผลิตฮาร์ดแวร์มีการใช้งานที่แตกต่างกัน ซึ่งหมายความว่าต้องเขียนโค้ดใหม่มากขึ้นเพื่อรองรับการใช้งาน TOE ที่หลากหลาย ส่งผลให้เกิดความซับซ้อนและอาจส่งผลต่อความปลอดภัย นอกจากนี้ เฟิร์มแวร์ TOE ยังไม่สามารถแก้ไขได้ง่าย เนื่องจากเป็นซอฟต์แวร์แบบปิด
  • ความล้าสมัย – การ์ดเครือข่าย TOE แต่ละตัวมีอายุการใช้งานที่จำกัด เนื่องจากฮาร์ดแวร์ของระบบจะพัฒนาประสิทธิภาพให้ทัดเทียมกับ TOE อย่างรวดเร็ว และในที่สุดก็จะแซงหน้าประสิทธิภาพของ TOE ไปได้

ซัพพลายเออร์

งานวิจัยส่วนใหญ่ในปัจจุบันเกี่ยวกับเทคโนโลยี TOE นั้น ดำเนินการโดยผู้ผลิตการ์ดอินเทอร์เฟซอีเธอร์เน็ต 10 กิกะบิต เช่นBroadcom , Chelsio Communications , Emulex , Mellanox TechnologiesและQLogic

ดูเพิ่มเติม

  • บทความ: การลดภาระ TCP ช่วยแก้ปัญหาได้โดย Andy Currid ในACM Queue
  • คำขอจดสิทธิบัตรเลขที่ 20040042487
  • Mogul, Jeffrey C. (2003). "การถ่ายโอน TCP เป็นความคิดที่โง่เขลาซึ่งถึงเวลาแล้ว" (PDF) . รายงานการประชุม HotOS IX: การประชุมเชิงปฏิบัติการครั้งที่ 9 ว่าด้วยหัวข้อร้อนในระบบปฏิบัติการ . สมาคม USENIX . สืบค้นเมื่อ23 กรกฎาคม 2549 .
  • "เครื่องมือประมวลผล TCP/IP แบบ Offload (TOE)" . 10 Gigabit Ethernet Alliance . เมษายน 2545.
  • การถ่ายโอนงานเครือข่าย Windows
  • GSO ในลินุกซ์
  • คำอธิบายโดยย่อของ LSO ใน Linux
  • กรณีศึกษาปัญหาด้านประสิทธิภาพการทำงานของ LSO และการควบคุมปริมาณการรับส่งข้อมูล (Linux)
  • คุณสมบัติใหม่ของ FreeBSD 7.0 และการพูดคุยโดยย่อเกี่ยวกับการรองรับ TSO เก็บถาวรเมื่อวันที่ 21 ธันวาคม 2016 ที่Wayback Machine
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=TCP_offload_engine&oldid=1337656332#Large_send_offload "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เอ็นจิ้นการถ่ายโอน TCP

TCP offload engine ( TOE ) เป็นเทคโนโลยีที่ใช้ใน การ์ดอินเทอร์เฟซเครือข่าย (NIC) บางตัวเพื่อ ถ่ายโอน การประมวลผลของ สแต็ก TCP/IP ทั้งหมด ไปยังตัวควบคุมเครือข่าย...

วัตถุประสงค์

เดิมที TCP ได้รับการออกแบบมาสำหรับเครือข่ายความเร็วต่ำที่ไม่น่าเชื่อถือ (เช่น โมเด็มแบบ dial-up รุ่นแรกๆ ) แต่ด้วยการเติบโตของอินเทอร์เน็ตในแง่ของ ความเร็วในการส่งข้อมูล หลัก (โดยใช้ Optical Carrier , Gigabit Ethernet และ 10 Gigabit Ethernet links)...

รอบการทำงานของ CPU ที่ว่างลง

โดยทั่วไปแล้ว กฎที่ยอมรับกันโดยทั่วไปคือ ต้องใช้กำลังประมวลผล CPU 1 เฮิรตซ์ ในการส่งหรือรับข้อมูล 1 บิต/วินาที ของ TCP/IP [ 2 ] ตัวอย่างเช่นการรับส่งข้อมูลเครือข่าย 5 Gbit/s ( 625 MB/s ) ต้องการการประมวลผล CPU 5 GHz ซึ่งหมายความว่า ต้องใช้ คอร์ทั้งหมด 2...

การลดปริมาณการรับส่งข้อมูล PCI

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