Supporting the community

Simulator pentru Protocolul Jasper

Simularea Protocoalelor Java pentru Educatie si Cercetare

 

Vezi pagina de descarcare pentru a obtine acest program

Descriere

Acest simulator de protocol ofera:

 

  • Capacitatea de simulare interactiva si grafica a unei game largi de protocoale de comunicatii
  • Un cadru pentru crearea de noi simulari de protocol
  • Simulari predefinite ale diferitelor protocoale cunoscute:
  • ABP (Protocolul Bit Alternating)
  • ABRA (Protocolul Abracadabra)
  • BOOTP (Protocolul de boot)
  • HTTP (protocol de transfer HyperText)
  • IP (Internet Protocol)
  • SMTP (Protocol de transfer simplu de mesaje)
  • SWP (Protocolul ferestrei glisante, aspectul coloanelor 3 si 5)
  • TCP (Protocolul de control al transmisiei)
  • TFTP (Protocol trivial de transfer de fisiere)
  • UDP (protocolul de utilizator datagram)

Puteti incerca imediat simularile online pentru a obtine o simtire a ceea ce face simulatorul. Browserul web va trebui sa fie configurat pentru a rula Java applets si Java (in mod ideal).

Simulatorul este scris in Java si poate fi folosit pe mai multe platforme cu un browser web (supus securitatii appletului) si / sau un mediu Java. Pentru a compila sau a extinde simulatorul necesita un mediu de dezvoltare Java cum ar fi Oracle JDK (si in mod ideal, si Apache Ant). Pentru a rula simularile necesita un mediu de rulare Java, cum ar fi Oracle JRE. Codul a fost pre-construit folosind JDK 1.8. Cu toate acestea, ar trebui sa compileze si sa ruleze utilizand Java 5 in continuare.

 

Instalare

Simulatorul este furnizat ca arhiva Zip. Simulatorul despacheteaza intr-un director numit jasper-N.N in functie de numarul versiunii. S-ar putea sa redenumiti in jasper pentru simplitate. Distributia conține:

build.xml
Ant construi fisierul pentru a gestiona codul
docs
documentatia de baza
html
director pentru pagini de simulare de protocol si arhiva JAR
scenarios
exemplu de fisiere scenariu
source
directoare pentru cod Java (protocol, simulator, suport)

Simulare precum un Applet

Simulatorul poate fi folosit pe diverse protocoale prin deschiderea html / index.html intr-un browser web. Aceasta presupune ca ati redenumit dosarul de distributie ca Jasper. Aceasta va aduce pagina principala, cu instructiuni generale si o lista de protocoale care pot fi simulate. Browserul web va trebui sa fie configurat pentru a rula aplicatii Java si (in mod ideal) JavaScript. Datorita restrictiilor de securitate Java trebuie sa autorizezi difuzarea codului precompilat creat de Universitatea din Stirling. Alternativ, utilizati un fisier de vizualizare a applet-urilor pe fisiere (desi parametrii JavaScript pentru setarea protocolului nu vor funcționa).

Cele mai multe simulari sunt in format de trei coloane: doua entitati de protocol (expeditor / receptor sau A / B) si un mediu de comunicatii (link sau retea). Cateva simulari adauga utilizatorii care trimit si primesc (aplicatii) in coloanele exterioare. Acest format este util pentru a arata ce vade utilizatorul; De obicei, aceasta este doar o parte din ceea ce se intampla in protocol.

Intr-un browser web, selectati o actiune facand clic pe lista din dreapta-jos a diagramei. Actiunile sunt lucruri precum un utilizator care trimite un mesaj de date sau un mediu care transmite un mesaj de protocol. Controlul total simularea. De exemplu, puteti decide cand sa trimiteti mesaje, daca doriti sa confirmati mesajele si daca doriti sa difuzati sau sa pierdeti mesajele in mediu. Deoarece simularea nu ruleaza in timp real, este posibil un interval de timp de expirare de indată ce a fost trimis un mesaj.

Ultima actiune din diagrama este afisata in rosu. De asemenea, in diagrama verde se pot observa si diverse comentarii de protocol, de ex. Ca sa produs un timp de expirare sau ca un mesaj a fost ignorat.

Daca faceti o greseala sau doriti doar sa faceti backtrack in simulare, faceti clic pe Undo. Puteti anula cati pasi doriti, pana la inceputul simularii. Daca faceti clic pe Redo, veti efectua din nou ultimul pas anulat. Clear va reporni simularea cu parametrii actuali ai protocolului. Daca faceti clic pe Executare, simulatorul se va difuza automat, facand alegeri aleatorii pentru dvs. Daca nu sunteti sigur la ce sa experimentati, acesta este un mod usor de a vedea protocolul in actiune. In timp ce se intâmpla acest lucru, butonul Run se schimba la Stop. Faceti clic pe Stop pentru a readuce simulatorul la controlul utilizatorului. Puteti continua in acest moment ca si cum ati fi facut toate alegerile automate.

Butoanele Imprimare, Incarcare si Salvare sunt dezactivate, deoarece simularile functioneaza ca apleturi. Daca doriti o copie de hartie a simularii, pozitionati bara de defilare in panoul de simulare intr-un punct interesant si tipariti intreaga pagina web.

Unele simulari au parametri de protocol asociate. Pentru a modifica setarile implicite, introduceti noi valori si faceti clic pe Modificati valori. In unele cazuri, aceasta va forta simularea sa se reporneasca. Urmatoarea este o imagine a unei simulari TCP client-server, care prezinta parametrii de protocol si principalele controale de simulare.

TCP Simulation

Simulare precum o Aplicatie

Rularea unei simulari de protocol ca aplicatie permite accesul la butoanele Print, Load si Save.

Print produce o copie de hartie a intregului scenariu de simulare. Retineti ca paginile individuale nu pot fi selectate pentru imprimare. Latimea imprimarii este determinata de latimea ferestrei de pe ecran. Constantele winWidth si winHeight in ProtocolSimulator definesc dimensiunea initială a ferestrei. Valoarea constanta maxHeight in TimeSequenceDiagram defineste dimensiunea verticala a paginilor imprimate. Dimensiunile curente sunt potrivite pentru hartia A4. Daca este necesar, modificati-le pentru (sa zicem) scrisoare SUA.

Incarcati sarcini un fisier scenariu de simulare (cu un nume care se termina in .scn); Acest lucru trebuie sa fie pentru acelasi protocol pe care il simulati in prezent. Acesta inlocuieste scenariul de simulare actual (daca exista). Salvarea salveaza simularea curenta ca fisier scenariu (cu un nume care se termina in .scn). Daca sunteti aventuros, puteti crea si edita propriile scenarii folosind un editor de text.

Atunci cand simulatorul este rulat ca o aplicatie, un nume de protocol obligatoriu urmeaza clasa principala a simulatorului. Parametrii protocolului pot fi apoi furnizati daca este necesar; Protocoalele au valori implicite pentru acestea. Sa presupunem ca simulatorul a fost construit si urmeaza sa fie pornit de la nivelul de sus al lui Jasper. Urmatoarele (impartite aici in două randuri) vor executa TCP in modul client-server, cu alte dimensiuni ale ferestrei de mesaj decat cea implicita:

java -cp html/ProtocolSimulator.jar simulator.ProtocolSimulator
      TCP/cs windowSizeA=500 windowSizeB=300

Dezvoltare

Se ofera sursa completa a simulatorului. (Cele mai multe fisiere au sfarsitul liniei Unix.) Codul ar trebui, de preferinta, sa fie reconstruit utilizand fisierul build.xml Ant. Ant -p va tipari informatii de ajutor despre construirea de tinte. Ant simulator va reconstrui ProtocolSimulator.jar in directorul html. Ant clean va elimina toate fisierele de clasa compilate si fisierele de rezerva, dar pastrand fisierul JAR. Fara patare va elimina chiar si acest lucru.

Daca nu aveti Ant, va trebui sa compilati fisierele sursa Java manual si sa creati un fisier JAR din rezultat.

Pentru a modifica o simulare de protocol existenta sau pentru a scrie una noua, va fi nevoie de o cunoastere a cadrului de simulare. Vedeti articolul Un simulator vizual de protocol interactiv pentru detalii despre acest lucru si un exemplu extins de dezvoltare a unei simulari. Odata ce cadrul este inteles, o simulare simpla poate fi dezvoltata intr-o zi; Protocoalele complexe ar putea dura o saptamana sau doua pentru a se dezvolta.

Sa presupunem ca doriti sa dezvoltati o noua simulare a protocolului EXP ("Exemplu de protocol"). Va trebui sa scrieti EXP.java pentru a instantia diferitele entitati din protocol. Pentru un protocol simplu, scrie EXPSender.java si EXPReceiver.java pentru a defini comportamentul unei entitati de protocol de trimitere sau de primire. Protocoalele mai complexe ar putea implica definirea entitatilor separate pentru a gestiona interfata de serviciu si entitatea protocolului. De asemenea, ar putea fi necesar sa se defineasca formatele mesajelor protocolului si o variatie a mediei de baza care sa le corespunda.

Datorita cresterii securitatii Java, applet-urile trebuie sa fie semnate de un certificat adecvat. Acest lucru a fost facut pentru codul precompilat. Daca aveti nevoie sa reconstruiti codul, veti avea nevoie de propriul magazin de chei si certificat digital. Consultati fisierul Ant build pentru a le utiliza.

Retineti ca o mare parte din lucrarile de dezvoltare au fost intreprinse de studenti, astfel incat nivelul comentariilor din cod este oarecum limitat in anumite locuri. Simularea ABP este cea mai simpla dintre protocoale si este un loc bun pentru a incepe. Simularea TFTP este cel mai bine comentat si cel mai bine explicat. Acesta ilustreaza aproape toate punctele-cheie in dezvoltarea simularii.

Licenta

Acest program este software liber. Puteti sa il redistribuiti si / sau sa-l modificasi in conformitate cu termenii Licentei Publice Generale GNU publicate de Fundatia pentru Software Liber - fie versiunea 3 a Licentei, fie (la alegere) orice versiune ulterioara.

Acest program este distribuit in speranaa ca va fi util, dar fara nicio garantie, fara nici macar garantia implicita de vandabilitate sau adecvare pentru un anumit scop. Pentru mai multe detalii, consultati Licenta publica generala GNU.

Multumiri

Simulatorul de protocol a fost dezvoltat de Stiinta informatica si Matematica la Universitatea din Stirling. Iain A. Robin a realizat cea mai mare parte a dezvoltarii pentru proiectul sau de Master sub supravegherea lui Ken Turner. Paul Johnson si Kenneth A. Whyte au contribuit la dezvoltarea unor simulari pentru proiectele lor de masterat. Dr. Peter J. B. King, Universitatea Heriot-Watt, au oferit idei si sugestii utile.

Istoric

  • Versiunea 1.0: Versiune privata interna, Iain Robin, 1 Septembrie 1999

  • Versiunea 1.1: Versiune privata interna, Ken Turner, 22 Decembrie 2000

  • Versiunea 1.2: Versiune privata interna, Ken Turner, 5 Martie 2001

  • Versiunea 1.3: Prima eliberare publica, Ken Turner 6 iunie 2001

  • Versiunea 1.4: Actualizare generala, Ken Turner, 9 Martie 2006:

  • Fisierele HTML actualizate pentru a fi compatibile cu XHTML.
  • Sursa actualizata pentru JDK 1.5 si grafica Swing utilizata. Retineti ca acum este necesar JDK 1.5 sau o versiune ulterioara pentru a re-compila sursa sau pentru a rula codul.
  • Structura directorului de nivel superior revizuita pentru a avea directoare sursa, construire si docs.
  • Makefile inlocuit de fisierul Ant build. Creaza si curata numai fisierele batch pastrate. (Mulțumita Dr. Peter J. B. King, Universitatea Heriot-Watt, pentru ca a contribuit la acest lucru.)
  • Liniile goale ignorate in fisiere scenariu.
  • Controlul ABP si SWP3 mediu este acum oferit printr-un parametru (livrare / pierdere, livrare numai, automat). Ar fi posibil ca, in principiu, sa se utilizeze acest lucru cu alte protocoale, dar are sens doar in unele cazuri. (Multumita Dr. Peter J. B. King, Universitatea Heriot-Watt, pentru ca a contribuit la acest lucru.)
  • Mesajele de protocol SMTP au fost usor redenumite pentru consistenta cu RFC.
  • Dimensiunea implicita a ferestrei TCP a fost restabilita la repornire. Aprecierile trimise acum la primirea datelor si nu la primirea ferestrei devin pline. Unele schimbări complexe cauzate de acest lucru. Datele in asteptarea livrarii sunt trimise acum utilizatorilor inainte de inchis. Deschis in timp ce inca inchiderea duce acum la inchis atunci cand este complet inchis, mai degraba decat imediat. Duplicatul SYN plus ACK anuleaza acum orice retransmisie in timp ce este stabilita.
  • Versiunea 1.5: Extensii pentru protocoale noi, Ken Turner, 11 Februarie 2011
  • Au fost intreprinse noi lucrari noi pentru Pearson Education pe noile simulari (CSMA / CD, Multicast, Multiplexing, Protocolul Stack, TCP Slow Start) care sa insoteasca noua editie a "Data and Computer Communications" de William Stallings.
  • Mai multe comentarii, in special JavaDoc, au fost adaugate la multe fisiere (care au fost, de asemenea, reformatate).
  • Au fost adaugate mai multe verificari detaliate ale valorilor JavaScript in fisierele HTML. In plus, fisierele HTML au fost revizuite si reformatate.
  • Clasa TimeSequenceDiagram a fost modificata. Spatiul vertical este acum adaugat inainte de un eveniment DELIVER protocol si, de asemenea, inainte de un COMENT (chiar daca nu este primul). A fost adaugat un eveniment protocol TRAVERSE pentru a face fata situatiei in care o sageata punctata traverseaza mai multe coloane. A fost adaugata o clasa corespunzatoare TraverseTransmission.
  • Clasa Medium a fost extinsa cu doua metode isEmpty: una pentru a verifica daca mediul este complet gol de mesaje si unul pentru a verifica daca mediul este gol de mesaje de la o anumita sursa.
  • Toate clasele TCP au fost extinse pentru a sprijini varianta de pornire lenta (TCP / ss). In plus, unele probleme cu TCP au fost corectate (situatii obscure in care protocolul nu sa redresat atunci cand incearca sa inchida). Starea TIME_WAIT este acum utilizata pentru a face fata acestor situatii, inclusiv terminarea mai abrupta atunci cand FIN este primit in situatii neobisnuite.
  • Un protocol poate implementa acum metodele getRandNumbers si setRandomNumbers (in mod implicit acestea nu fac nimic util). Daca aceste metode sunt implementate, atunci cand scenariul este salvat, o lista cu numere aleatorii este ataaata la linia antetului scenariului si este restaurata atunci cand scenariul este incarcat. Acest lucru este valabil pentru protocoale precum CSMA care genereaza propriile numere aleatoare (spre deosebire de mediile care o fac ca si in versiunile precedente). Linia de antet este acum intr-un format precum "Jasper CSMA 0.3,0.01,0.891". Daca nu exista numere aleatorii dupa tipul protocolului (ca an cazul fisierelor de scenarii anterioare), atunci nu se ia nicio masura
  • Versiunea 1.6: Distributie via SourceForge, Ken Turner, 18 Decembrie 2014

    • Simulatorul a fost ambalat si pus la dispozitie via SourceForge.
  • Versiunea 1.7: Actualizare pentru Java 7u51 inainte, Ken Turner, 28 Septembrie 2015

    • Fisierul de constructie stabileste acum atributul "Caller-Allowable-Codebase" in manifestul JAR al simulatorului. Acest lucru este facut pentru ca versiunile mai recente de Java sa permita accesul JavaScript la applet-ul simulatorului. Utilizatorul va fi rugat sa permita accesul la applet din orice fisier URL.
    • Simulatorul pre-construit JAR a fost semnat cu un certificat de la Universitatea din Stirling, valabil pana in august 2018.

Translated by: Irina Vasilescu

Link to the original page: Click Here

We love giving back to the community

We believe in helping people and that matter to us more than anything else. Since the very beginning of our company, our team have been willing and wishing to help.