Jump to content

Ցանցային ինտերֆեյսի վերահսկիչ

Վիքիպեդիայից՝ ազատ հանրագիտարանից

Ցանցային ինտերֆեյսի վերահսկիչ (անգլ.՝ network interface controller (NIC)), որը հայտնի է նաև որպես ցանցային քարտ[1], ցանցային ադապտեր կամ LAN ադապտեր, համակարգչային սարքավորում[2], որը համակարգիչը միացնում է համակարգչային ցանցին[3]։

Ավելի վաղ ցանցային ինտերֆեյսի վերահսկիչները սովորաբար իրականացվել են ընդլայնման քարտերի տեսքով, որոնք միացել են համակարգչի լարերին։ Էթերնեթ ստանդարտի ցածր գնի և տարածվածության շնորհիվ այսօրվա համակարգիչների մեծ մասն ունեն ցանցային ինտերֆեյս, որը ներկառուցված է գլխավոր պլատայի վրա կամ տեղադրված է USB միացումով ադապտերի մեջ, չնայած ցանցային քարտերը դեռ հասանելի են։

Ժամանակակից ցանցային ինտերֆեյսի կարգավորիչները հյուրընկալող պրոցեսորներին առաջարկում են առաջադեմ հնարավորություններ, ինչպիսիք են ընդհատման և DMA ինտերֆեյսները, բազմաթիվ ընդունման և փոխանցման հերթերի աջակցությունը, բազմաթիվ տրամաբանական ինտերֆեյսների բաժանումը և կարգավորիչի վրա ցանցային երթևեկության մշակումը, ինչպիսին է TCP բեռնաթափման շարժիչը։

Ցանցային վերահսկիչը իրականացնում է էլեկտրոնային սխեմա, որն անհրաժեշտ է հատուկ ֆիզիկական և տվյալների կապի շերտի ստանդարտներով (օրինակ՝ Էթերնեթ կամ Wi-Fi) հաղորդակցվելու համար[Ն 1]։ Սա հիմք է ստեղծում ամբողջական ցանցային արձանագրությունների ստեկի համար, ինչը հնարավորություն է տալիս հաղորդակցվել նույն լոկալ ցանցի (անգլ.՝ LAN) համակարգիչների միջև, ինչպես նաև իրականացնել լայնածավալ ցանցային հաղորդակցություն երթուղավորվող արձանագրությունների միջոցով, ինչպիսին է Internet protocol-ը (անգլ.՝ IP)։

Ցանցային ինտերֆեյսի վերահսկիչը (անգլ.՝ NIC) թույլ է տալիս համակարգիչներին հաղորդակցվել ցանցի միջոցով՝ օգտագործելով կամ մալուխներ, կամ անլար տեխնոլոգիաներ։ NIC-ը գործում է որպես երկու շերտերի սարք՝ ֆիզիկական և տվյալների կապի։ Ֆիզիկական շերտում այն ապահովում է ֆիզիկական կապը ցանցային միջավայրի հետ (օրինակ՝ մալուխի կամ անլար ալիքի)։ Տվյալների կապի շերտում (հատկապես IEEE 802 և նմանատիպ ցանցերի համար) այն տրամադրում է ցածր մակարդակի հասցեավորման համակարգ՝ յուրաքանչյուր ինտերֆեյսին հատկացված եզակի MAC հասցեների միջոցով։

12 վաղ ISA 8 բիթային և 16 բիթային համակարգչային ցանցային քարտեր: Ներքևի աջ անկյունում գտնվող քարտը վաղ անլար ցանցային քարտ է, իսկ կենտրոնական քարտը՝ մասնակի բեժ պլաստիկե ծածկով, PSTN մոդեմ է:
Intel Ophir 82571 երկմիացքային Gigabit Էթերնեթ կառավարիչ։

Համակարգչային ցանցերի պատմության մեջ, ցանցային ինտերֆեյսի վերահսկիչները սկզբում իրականացվում էին որպես ընդլայնման քարտեր, որոնք միացվում էին համակարգչի մագիստրալին։ Ժամանակի ընթացքում, Էթերնեթ ստանդարտի ցածր գնի և լայն տարածման շնորհիվ, այսօրվա համակարգիչների մեծ մասն ունեն ցանցային ինտերֆեյս, որը ներկառուցված է գլխավոր պլատայի մեջ։ Ավելի նոր սերվերային մայրական պլատաները կարող են ունենալ նույնիսկ մի քանի ներկառուցված ցանցային ինտերֆեյսներ։ Էթերնեթի հնարավորությունները կամ ինտեգրված են մայրական պլատայի չիպսետի մեջ, կամ իրականացվում են առանձին, էժան Էթերնեթ չիպի միջոցով։ Առանձին ցանցային քարտի կարիք այլևս չի լինում, բացառությամբ այն դեպքերի, երբ անհրաժեշտ են լրացուցիչ անկախ ցանցային կապեր կամ օգտագործվում է ոչ Էթերնեթ տիպի ցանց։ Համակարգչային սարքաշարի ընդհանուր միտումը դեպի բաղադրիչների ինտեգրումը մեկ չիպի վրա է, և այս միտումը կիրառվում է նաև ցանցային ինտերֆեյսի վերահսկիչների դեպքում։

Էթերնեթ ցանցային վերահսկիչները սովորաբար ունեն 8P8C վարդակ, որտեղ միանում է ցանցային մալուխը։ Ավելի հին NIC-երն ունեցել են նաև BNC կամ AUI միացումներ։ Էթերնեթ ցանցային վերահսկիչներն աջակցում են 10 Մբիթ/վ, 100 Մբիթ/վ և 1000 Մբիթ/վ արագություններ։ Նման վերահսկիչները նշանակվում են 10/100/1000՝ ցույց տալով, որ դրանք կարող են աշխատել 10, 100 կամ 1000 Մբիթ/վ արագությամբ։ Այսօր արդեն հասանելի են նաև 10 գիգաբիթ Էթերնեթ NIC-եր, որոնք 2014 թվականի նոյեմբերից սկսել են ներառվել նաև համակարգչային մայրական պլատաներում[4][5]։

Մոդուլային կառուցվածքները, ինչպիսիք են SFP-ն և SFP+-ը, լայն տարածում ունեն, հատկապես Թելքաօպտիկական կապի ոլորտում։ Դրանք սահմանում են ստանդարտացված բնիկ մեդիայից կախված հաղորդիչների համար, ինչը թույլ է տալիս օգտատերերին հեշտությամբ հարմարեցնել ցանցային ինտերֆեյսն իրենց կարիքներին։

Ցանցային միակցիչին կից կամ դրա մեջ ներկառուցված LED ցուցիչները օգտատիրոջը տեղեկացնում են՝ արդյոք ցանցը միացված է, և երբ տվյալների փոխանցում է տեղի ունենում։

Ցանցային ինտերֆեյսի վերահսկիչը կարող է ունենալ ROM (կարդալու համար նախատեսված հիշողություն)՝ իր գործարանային MAC հասցեն պահելու համար[6]։

Qlogic QLE3442-CU SFP+ երկմիացքային ցանցային քարտ։

NIC-ը կարող է օգտագործել հետևյալ տեխնիկաներից մեկը կամ մի քանիսը՝ ցույց տալու համար, որ փոխանցման համար փաթեթներ կան.

  • Հարցում (անգլ.՝ Polling). CPU-ն ծրագրի կառավարման ներքո ստուգում է ծայրամասային սարքի վիճակը։
  • Ընդհատումով կառավարվող ներմուծում/արտածում (անգլ.՝ Interrupt-driven I/O). ծայրամասային սարքը ինքն է ահազանգում CPU-ին, որ պատրաստ է տվյալներ փոխանցել։

NIC-ը փաթեթի տվյալները փոխանցելու համար կարող է օգտագործել հետևյալ տեխնիկաներից մեկը կամ մի քանիսը.

  • Ծրագրավորված ներմուծում/արտածում (անգլ.՝ Programmed input/output). CPU-ն տվյալները տեղափոխում է NIC-ից հիշողություն կամ հակառակը։
  • Հիշողության ուղղակի մուտք (անգլ.՝ DMA). CPU-ից բացի մեկ այլ սարք ստանձնում է համակարգային մագիստրալի վերահսկողությունը՝ տվյալները NIC-ից հիշողություն կամ հակառակը տեղափոխելու համար։ Սա թուլացնում է CPU-ի ծանրաբեռնվածությունը, բայց պահանջում է ավելի շատ տրամաբանություն քարտի վրա։ Բացի այդ, NIC-ի վրա փաթեթային բուֆերի կարիք չի լինում, և ուշացումը կարող է նվազել։

Արդյունավետություն և առաջադեմ ֆունկցիոնալություն

[խմբագրել | խմբագրել կոդը]
Ասինխրոն փոխանցման ռեժիմի (անգլ.՝ ATM) ցանցային ինտերֆեյս
Intel 82574L Gigabit Ethernet NIC, PCI Express ×1 քարտ, որը ապահովում է երկու սարքերի ընդունման հերթեր[7]։

Բազմահերթ NIC-երը (անգլ.՝ Multi-queue NIC) տրամադրում են բազմաթիվ փոխանցման և ընդունման հերթեր, ինչը թույլ է տալիս, որ NIC-ի կողմից ստացված փաթեթները բաշխվեն ընդունման հերթերից մեկին։ NIC-ը կարող է մուտքային տրաֆիկը բաշխել ընդունման հերթերի միջև՝ օգտագործելով հեշ ֆունկցիա։ Յուրաքանչյուր ընդունման հերթին հատկացվում է առանձին ընդհատում. այդ ընդհատումներից յուրաքանչյուրը տարբեր CPU-երին կամ CPU-երի միջուկներին ուղղորդելով՝ հնարավոր է բաշխել մեկ NIC-ի կողմից ստացված ցանցային տրաֆիկի կողմից առաջացած ընդհատման հարցումների մշակումը, ինչը բարձրացնում է արդյունավետությունը[8][9]։

Վերը նկարագրված ընդհատումների ապարատային բաշխումը կոչվում է ընդունման կողմի սանդղակավորում (անգլ.՝ receive-side scaling (RSS))[10]էջ 82։ Գոյություն ունեն նաև բացառապես ծրագրային իրականացումներ, ինչպիսիք են՝ ստացվող փաթեթների ղեկավարումը (անգլ.՝ receive packet steering (RPS)), ստացվող հոսքի ղեկավարումը (անգլ.՝ receive flow steering (RFS))[8] և Intel Flow Director-ը[10]էջ 98,99[11][12][13]։ Արդյունավետության հետագա բարձրացում կարելի է ապահովել՝ ընդհատման հարցումները ուղղելով այն պրոցեսորներին կամ միջուկներին, որոնք կատարում են այն կիրառական ծրագրերը, որոնց համար նախատեսված են ցանցային փաթեթները։ Այս տեխնիկան CPU քեշերի ավելի լավ կիրառման և քիչ անհրաժեշտ կոնտեքստի փոխարկումների շնորհիվ բարելավում է տեղայնացման սկզբունքը և հանգեցնում է ավելի բարձր ընդհանուր արդյունավետության, նվազեցնում է ուշացումը և բարելավում է սարքաշարի օգտագործումը։

Բազմահերթ NIC-երի դեպքում, լրացուցիչ արդյունավետություն կարելի է ապահովել՝ ելքային տրաֆիկը բաշխելով տարբեր փոխանցման հերթերի միջև։ Տարբեր փոխանցման հերթեր տարբեր պրոցեսորներին կամ պրոցեսորի միջուկներին հատկացնելով՝ կարելի է խուսափել օպերացիոն համակարգի ներքին կոնֆլիկտներից։ Այս մոտեցումը սովորաբար կոչվում է փոխանցվող փաթեթների ղեկավարում (անգլ.՝ transmit packet steering (XPS))[8]։

Որոշ ապրանքներ առաջարկում են NIC բաժանում (անգլ.՝ NPAR), որը նաև հայտնի է որպես պորտի բաժանում (անգլ.՝ port partitioning)։ Այս տեխնոլոգիան, օգտագործելով SR-IOV վիրտուալացումը, մեկ 10 գիգաբիթ Ethernet NIC-ը բաժանում է բազմաթիվ առանձին վիրտուալ NIC-երի, որոնցից յուրաքանչյուրն ունի իրեն հատկացված թողունակությունը։ Օպերացիոն համակարգի համար այս վիրտուալ NIC-երը ներկայացվում են որպես առանձին PCI սարքեր[1][14]։

Որոշ NIC-եր ապահովում են TCP բեռնաթափման շարժիչ (անգլ.՝ TCP offload engine)։ Այս գործառույթը թույլ է տալիս TCP/IP ստեկի ամբողջ մշակման ծանրաբեռնվածությունը տեղափոխել ցանցային վերահսկիչի վրա՝ թուլացնելով պրոցեսորի բեռը։ Այս տեխնոլոգիան հատկապես արդյունավետ է բարձր արագությամբ ցանցերի (օրինակ՝ Gigabit և 10 Gigabit Ethernet) դեպքում, որտեղ ցանցային ստեկի մշակումը զգալի ծանրաբեռնվածություն է ստեղծում[15]։

Որոշ NIC-եր ունեն ինտեգրված դաշտի կողմից ծրագրավորվող տրամաբանական մատրիցներ (անգլ.՝ field-programmable gate array (FPGA))։ Դրանք նախատեսված են ցանցային տրաֆիկը մշակելու համար՝ նախքան այն հոսթ համակարգչին փոխանցելը, ինչը թույլ է տալիս զգալիորեն նվազեցնել ուշացումները ժամանակի նկատմամբ զգայուն աշխատանքների դեպքում[16]։ Որոշ NIC-եր նույնիսկ առաջարկում են ամբողջական ցածր ուշացման TCP/IP ստեկներ, որոնք աշխատում են այդ ինտեգրված FPGA-ների վրա։ Դրանք օգտագործում են գրադարաններ, որոնք կանխում են ցանցային այն գործողությունները, որոնք սովորաբար կատարվում են օպերացիոն համակարգի միջուկի կողմից։ Solarflare-ի բաց կոդով OpenOnload ցանցային ստեկը, որն աշխատում է Linux-ի վրա, դրա օրինակ է։ Այս ֆունկցիոնալությունը հայտնի է որպես օգտատիրոջ մակարդակի ցանցային ապահովում[17][18][19]։

  1. ↑ Չնայած գոյություն ունեն այլ ցանցային տեխնոլոգիաներ, Էթերնեթը (IEEE 802.3) և Wi-Fi-ը (IEEE 802.11) 1990-ականների կեսերից ի վեր որպես տեղական ցանցերի տեխնոլոգիաներ գրեթե ամենուրեք տարածվել են։

Ծանոթագրություններ

[խմբագրել | խմբագրել կոդը]
  1. 1 2 «Enhancing Scalability Through Network Interface Card Partitioning» (PDF). Dell. 2011 թ․ ապրիլ. Վերցված է 2014 թ․ մայիսի 12-ին.
  2. ↑ «Physical Network Interface». Microsoft. 2009 թ․ հունվարի 7.
  3. ↑ Posey, Brien M. (2006). «Networking Basics: Part 1 - Networking Hardware». Windowsnetworking.com. TechGenix Ltd. Արխիվացված է օրիգինալից 2012-06-29-ին. Վերցված է 2012 թ․ հունիսի 9-ին.
  4. ↑ Jim O'Reilly (2014 թ․ հունվարի 22). «Will 2014 Be The Year Of 10 Gigabit Ethernet?». Network Computing. Վերցված է 2015 թ․ ապրիլի 29-ին.
  5. ↑ «Breaking Speed Limits with ASRock X99 WS-E/10G and Intel 10G BASE-T LANs». asrock.com. 2014 թ․ նոյեմբերի 24. Վերցված է 2015 թ․ մայիսի 19-ին.
  6. ↑ John Savill (2000 թ․ նոյեմբերի 12). «How can I change a network adapter card's MAC address?». Վերցված է 2023 թ․ նոյեմբերի 6-ին.
  7. ↑ «Intel 82574 Gigabit Ethernet Controller Family Datasheet» (PDF). Intel. 2014 թ․ հունիս. էջ 1. Վերցված է 2014 թ․ նոյեմբերի 16-ին.
  8. 1 2 3 Tom Herbert; Willem de Bruijn (2014 թ․ մայիսի 9). «Linux kernel documentation: Documentation/networking/scaling.txt». kernel.org. Վերցված է 2014 թ․ նոյեմբերի 16-ին.
  9. ↑ «Intel Ethernet Controller i210 Family Product Brief» (PDF). Intel. 2012. Վերցված է 2014 թ․ նոյեմբերի 16-ին.
  10. 1 2 «Intel Look Inside: Intel Ethernet» (PDF). Xeon E5 v3 (Grantley) Launch. Intel. 2014 թ․ նոյեմբերի 27. Արխիվացված է օրիգինալից (PDF) 2015 թ․ մարտի 26-ին. Վերցված է 2015 թ․ մարտի 26-ին.
  11. ↑ «Linux kernel documentation: Documentation/networking/ixgbe.txt». kernel.org. 2014 թ․ դեկտեմբերի 15. Վերցված է 2015 թ․ մարտի 26-ին.
  12. ↑ «Intel Ethernet Flow Director». Intel. 2015 թ․ փետրվարի 16. Վերցված է 2015 թ․ մարտի 26-ին.
  13. ↑ «Introduction to Intel Ethernet Flow Director and Memcached Performance» (PDF). Intel. 2014 թ․ հոկտեմբերի 14. Վերցված է 2015 թ․ հոկտեմբերի 11-ին.
  14. ↑ Patrick Kutch; Brian Johnson; Greg Rose (2011 թ․ սեպտեմբեր). «An Introduction to Intel Flexible Port Partitioning Using SR-IOV Technology» (PDF). Intel. Վերցված է 2015 թ․ սեպտեմբերի 24-ին.
  15. ↑ Jonathan Corbet (2007 թ․ օգոստոսի 1). «Large receive offload». LWN.net. Վերցված է 2015 թ․ մայիսի 2-ին.
  16. ↑ «High Performance Solutions for Cyber Security». New Wave Design & Verification. New Wave DV. Արխիվացված է օրիգինալից 2021-12-05-ին. Վերցված է 2025-08-11-ին.
  17. ↑ Timothy Prickett Morgan (2012 թ․ փետրվարի 8). «Solarflare turns network adapters into servers: When a CPU just isn't fast enough». The Register. Վերցված է 2014 թ․ մայիսի 8-ին.
  18. ↑ «OpenOnload». openonload.org. 2013 թ․ դեկտեմբերի 3. Վերցված է 2014 թ․ մայիսի 8-ին.
  19. ↑ Steve Pope; David Riddoch (2008 թ․ մարտի 21). «OpenOnload: A user-level network stack» (PDF). openonload.org. Արխիվացված է օրիգինալից (PDF) 2014-07-24-ին. Վերցված է 2014 թ․ մայիսի 8-ին.

Արտաքին հղումներ

[խմբագրել | խմբագրել կոդը]