Кіріспе

Компьютерді желіге қосатын аппараттық компонент. Желілік интерфейс контроллері (ЖІК, сондай-ақ желілік интерфейс картасы деп те аталады) – компьютерді компьютер желісіне қосатын компьютерлік аппараттық компонент. Алғашқы желілік интерфейс контроллерлері көбінесе компьютерлік шинаға қосылатын кеңейту карталары түрінде іске асырылды. Ethernet стандартының төмен құны және кең таралғандығының арқасында, көбінесе жаңа компьютерлерде желілік интерфейс аналық платаға орнатылған немесе USB арқылы қосылатын құрылғыға (донгл) кіріктірілген. Қазіргі заманғы желілік интерфейс контроллерлері хост процессорларына үзіліс және DMA интерфейстерін, бірнеше қабылдау және жіберу кезектерін қолдау, бірнеше логикалық интерфейске бөлу және TCP жүктемесін түсіру механизмі сияқты контроллерлік желілік трафикті өңдеу сияқты кеңейтілген мүмкіндіктерді ұсынады.

Мақсаты

Желілік контроллер белгілі бір физикалық қабат пен Ethernet немесе Wi-Fi сияқты деректер байланысы қабат стандартын қолдана отырып, байланыс құруға қажетті электрондық схеманы іске асырады. Бұл толық желілік протокол стегіне негіз болып табылады, ол бір жергілікті желідегі (LAN) компьютерлер арасында және Интернет протоколы (IP) сияқты маршрутталатын протоколдар арқылы кең ауқымды желілік байланыстарды жүзеге асыруға мүмкіндік береді. Желілік карта (NIC) компьютерлерге компьютерлік желі арқылы, кабельдерді немесе сымсыз байланысты пайдалана отырып, байланыс жасауға мүмкіндік береді. Желілік карта (NIC) физикалық қабат және деректер байланысы қабатының құрылғысы болып табылады, себебі ол желілік ортаға физикалық қол жеткізуді қамтамасыз етеді және IEEE 802 және ұқсас желілер үшін желілік интерфейстерге бірегей тағайындалған MAC-адрестерді пайдалану арқылы төменгі деңгейдегі адрестеу жүйесін қамтамасыз етеді.

Жүгірту қабілеті және жетілдірілген функционалдық

Көп кезекті желілік карталар (NIC) бірнеше жіберу және қабылдау кезектерін қамтамасыз етеді, бұл NIC-ке түскен пакеттерді оның қабылдау кезектерінің біріне тағайындауға мүмкіндік береді. NIC кіріс трафигін қабылдау кезектері арасында хэш-функцияны қолдану арқылы бөлуі мүмкін. Әрбір қабылдау кезегі жеке үзіліске тағайындалады; осы үзілістердің әрқайсысын әртүрлі процессорларға (CPU) немесе процессорлық өзектерге бағыттай отырып, бір NIC-ке түскен желілік трафиктан туындаған үзіліс сұраныстарын өңдеуді таратуға болады, бұл өнімділікті жақсартады. Жоғарыда сипатталған үзілістердің аппараттық деңгейде таратылуы қабылдау жағындағы масштабтау (RSS) деп аталады. Таза бағдарламалық шешімдер де бар, мысалы, қабылдау пакетін бағыттау (RPS) және қабылдау ағынын бағыттау (RFS). Өнімділікті одан әрі арттыру үшін үзіліс сұраныстарын осы үзілістерді тудырған желілік пакеттердің соңғы мақсаты болып табылатын бағдарламаларды іске асыратын процессорларға немесе өзектерге бағыттауға болады. Бұл әдіс сілтемелердің жергіліктілігін жақсартады, нәтижесінде жалпы өнімділік артады, жауап уақыты төмендейді және процессор кэшін тиімді пайдалану мен қажетсіз контексттік ауысулардың азаюының арқасында аппараттық құралдар жақсырақ қолданылады. Көп кезекті NIC-терде шығыс трафигін әртүрлі жіберу кезектеріне бөлу арқылы қосымша өнімділікті жақсартуға болады. Әртүрлі процессорларға немесе процессорлық өзектерге әртүрлі жіберу кезектерін тағайындау арқылы операциялық жүйенің ішкі қақтығыстарынан аулақ болуға болады. Бұл тәсіл әдетте жіберу пакетін бағыттау (XPS) деп аталады. Кейбір NIC-тер желілік контроллерге толық TCP/IP стегінің өңдеуін жүктеу үшін TCP босату механизмін ұсынады. Бұл әсіресе Gigabit Ethernet және 10 Gigabit Ethernet сияқты жоғары жылдамдықты желілік интерфейстерде қолданылады, онда желілік стек өңдеуінің ауыртпалығы маңызды болады. Кейбір NIC-тер хост компьютерге желілік трафик жеткенге дейін пайдаланушы бағдарламалай алатын өңдеу үшін интеграцияланған өрістік бағдарламаланатын қақпалық массивтерді (FPGA) ұсынады, бұл уақытқа сезімтал жұмыс жүктемелерінде жауап уақытын едәуір қысқартуға мүмкіндік береді. Сонымен қатар, кейбір NIC-тер интеграцияланған FPGA-ларда жұмыс істейтін толық TCP/IP стектерін ұсынады, олар операциялық жүйе ядросы әдетте орындайтын желілік операцияларды орындайтын пайдаланушы кеңістігі кітапханаларымен біріктірілген; Solarflare-дің Linux жүйесінде жұмыс істейтін ашық бастапқы коды бар OpenOnload желілік стегі сондай-ақ мысал болып табылады. Мұндай мүмкіндіктер әдетте пайдаланушы деңгейіндегі желі деп аталады.