Protocolul Bootstrap

Însoțitorii acelor ani s-au confruntat cu problemele legate de conectarea și mișcarea continuă a dispozitivelor noi, precum și de necesitatea de a schimba configurația rețelei pentru a satisface cerințele moderne de rețea. Toate acestea au condus la necesitatea creării unui mecanism de automatizare a configurației nodurilor de rețea, a sistemelor de operare distribuite și a software-ului de rețea. Cea mai eficientă modalitate de a implementa un astfel de mecanism poate fi salvarea parametrilor de configurare și a imaginilor software pe unul sau mai multe servere de boot. În timpul pornirii, sistemul interacționează cu un astfel de server, primește de la acesta parametri de configurare inițiali și, dacă este necesar, descarcă software-ul necesar din acesta.







BOOTP a fost introdus în RFC 951 ca înlocuitor al RARP depășit. Inițial, BOOTP a fost dezvoltat pentru stații de lucru fără discuri. Condițiile moderne au condus la necesitatea de a automatiza încărcarea sistemelor care au doar unelte de bază pentru IP în ROM. UDP și TFTP. Scenariul original de descărcare arată astfel:

Formatul mesajului BOOTP

Același format de mesaj este folosit pentru a solicita și a răspunde la descărcare. În interogare, unele câmpuri au valori zero.

Mesajul BOOTP constă din:

Opcod este 1 pentru interogare și 2 pentru răspuns.

ID-ul tranzacției

ID-ul tranzacției este un număr întreg pe 32 de biți stabilit de client și returnat de server. Acesta permite clientului să corespundă răspunsului cu cererea. Clientul stabilește un număr aleator în acest câmp pentru fiecare solicitare.

Contor de secunde

Când clientul trimite prima solicitare de încărcare a datelor, câmpul numărător de secunde are valoarea zero. Dacă cererea nu returnează un răspuns, clientul trimite din nou solicitarea după expirare, schimbând valoarea în câmpul contorului secundar. Pentru expirare, clientul folosește un interval aleatoriu care crește la 60 de secunde.







Acest câmp nu are un scop special. Conținutul acestuia poate fi verificat de către server sau monitorul de rețea pentru a determina durata așteptării clientului pentru descărcare prin rețea. Serverul poate utiliza valori din câmpul de numere secundare pentru a clasifica interogările prioritare, dar acum în majoritatea implementărilor acest câmp este ignorat.

Numele gazdei serverului

Numele gazdei serverului (numele de gazdă al serverului) este un șir care este completat de server (opțional).

Numele fișierului boot

De asemenea, serverul poate umple câmpul nume de fișier de boot (numele fișierului de boot). În acest câmp, este utilizată calea completă la fișier, care este folosită la momentul încărcării.

Zona dezvoltatorilor

Numerele porturilor

Pentru BOOTP sunt alocate două porturi pre-cunoscute: 67 pentru server și 68 pentru client. Acest lucru înseamnă că clientul nu alege un port efemer neutilizat, și utilizează numărul de port 68. Motivul pentru care au fost alese cele două numere de port, în loc de a folosi doar unul dintre server este că serverul poate trimite un răspuns (deși de obicei acest lucru nu difuzează).

În cazul în care răspunsul de la server au fost difuzate, iar în cazul în care clientul ar trebui să aleagă un număr de port alocat în mod dinamic, aceste emisiuni ar fi obținut și prin alte aplicații de pe alte gazde care utilizează același număr de port efemer. Astfel, putem concluziona că trimiterea unei cereri de difuzare la un număr de port aleator (atribuit dinamic) nu este rațională.

În cazul în care clientul va utiliza un server port cunoscut (67), toate serverele din rețea va fi obligat să se uite la fiecare răspuns de difuzare. (Dacă toate serverele au fost „trezit“, ei vor trebui să verifice codul de operare pentru a determina că acesta este un răspuns, nu o cerere, și apoi „du-te la culcare“.) Prin urmare, alegerea a fost oprit pe drum totul se face acum, adică, clientul are propria sa singurul port cunoscut care este diferit de portul cunoscut al serverului.

notițe







Articole similare

Trimiteți-le prietenilor: