Un driver de interfață este un mic program de calculator sau un set de programe care acționează ca o legătură între software-ul computerului și hardware-ul unei plăci de interfață de rețea (NIC). Producătorii și programatorii de NIC utilizează o interfață specifică de programare a aplicațiilor (API), cunoscută sub numele de specificația interfeței driverului de rețea (NDIS). Acesta stabilește toate regulile necesare pentru ca un program de calculator, cum ar fi un sistem de operare, să interacționeze cu un NIC. Există, de fapt, mai multe tipuri de drivere de interfață descrise în NDIS, dar, în esență, sarcina principală a NDIS este de a face ca câteva straturi ale modelului de interconectare a sistemelor deschise (OSI) să coopereze între ele.
Modelul OSI este format din șapte straturi, dintre care unele au mai multe substraturi. Primul strat este stratul fizic, care se ocupă de specificațiile fizice pentru un NIC, cum ar fi un dongle universal serial bus (USB), un card Ethernet, un adaptor wireless și așa mai departe. Al doilea și al treilea strat al modelului OSI sunt acolo unde se întâmplă toată magia NDIS. Al doilea strat este stratul de legătură de date și constă din două substraturi, cel de sus denumit controlul legăturii logice (LLC) și cel de jos denumit controlul accesului media (MAC). Un driver de dispozitiv se ocupă de sub-stratul MAC, în timp ce driverul de interfață se ocupă de sub-stratul LLC, oferind o interfață între acesta și al treilea strat al modelului OSI, stratul de rețea.
Lucrând ca intermediar, un NDIS înglobează, în esență, toată complexitatea confuză a hardware-ului unui NIC și oferă un set de funcții pentru interacțiunea acestuia cu protocoalele de rețea necesare pentru comunicare. Un programator trebuie pur și simplu să urmeze regulile stabilite în NDIS pentru a crea driverele reale de interfață. La nivelul inferior de hardware, aceste drivere sunt cunoscute sub numele de drivere miniport, în timp ce driverele de nivel superior sunt scrise folosind NDIS API pentru a gestiona protocoalele de bază ale rețelei, cum ar fi protocolul Internet (IP), securitatea protocolului Internet (IPsec), protocolul pentru mesaje de control Internet. (ICMP) și schimbul de pachete Internetwork (IPX), printre altele.
Când comunicarea în rețea are loc prin intermediul unei NIC, biții de date sunt primiți mai întâi de dispozitivul fizic și apoi, prin arhitectura modelului OSI, datele sunt mutate din hardware în sus pe diferitele straturi ale modelului OSI până când sunt prezentate într-un format mai mare. ușor de înțeles de către utilizator. Astfel, fiecare strat al modelului oferă servicii pentru vecinii săi. Datele părăsesc primul strat, stratul fizic, și lovesc MAC-ul sub-stratului inferior în al doilea strat, unde driverul de dispozitiv îl transmite LLC. Driverele de protocol ale LLC îl mută apoi la nivelul rețelei.
Un alt tip de driver de interfață este driverul intermediar, care acționează ca o carcasă, conținând interfețe atât pentru driverele de miniport, cât și pentru driverele de protocol de rețea. Aceste drivere intermediare pot fi apoi conectate împreună și oferă abilitatea driverului de interfață de a controla traficul primit de NIC. Driverele intermediare sunt utile pentru diverse nevoi, cum ar fi filtrarea datelor, echilibrarea încărcării, monitorizarea traficului de rețea și colectarea de informații statistice. De asemenea, funcționează bine ca traducător între șoferii de transport mai vechi și un șofer de miniport care vorbește cu un format media pe care șoferul mai vechi nu îl poate înțelege.
NDIS a fost conceput inițial de Microsoft®, lucrând împreună cu 3Com®, așa că mulți producători de hardware își scriu driverele pentru a sprijini mai întâi sistemele de operare Microsoft®. Ca rezultat, NDIS este limitat la arhitecturi hardware de computer bazate pe familia Intel® 80386 de procesoare pe 32 de biți sau 64 de biți. Mișcarea de software liber a dezvoltat, de asemenea, un program, numit NDISWrapper, care este capabil să încarce drivere de interfață dezvoltate inițial pentru Microsoft® Windows® pentru a fi utilizate cu sisteme de operare gratuite, asemănătoare Unix®, cum ar fi Linux®. Utilizatorii derivatelor gratuite Berkley Software Distributions (BSD), cum ar fi FreeBSD® și NetBSD®, au găsit, de asemenea, capacitatea de a utiliza drivere de interfață Windows® prin utilizarea software-ului dezvoltat de un proiect cunoscut sub numele de Project Evil. Limitările hardware x86 ale NDIS au condus la un alt proiect, dezvoltat de Apple și Novell®, numit interfața deschisă de legătură de date (ODI), care a oferit aproape aceleași reguli și funcționalități ca și un NDIS, dar cu accent pe Apple® Macintosh&; și sistemele Novell NetWare®.