JASPER 
(Java Simulasi Protokol untuk Pendidikan dan Penelitian)

simulator Logo

Lihat halaman download untuk mendapatkan program ini

Deskripsi

simulator protokol ini memberikan:

  • kemampuan untuk secara interaktif dan grafis simulasi berbagai protokol komunikasi
  • yang telah ditentukan simulasi dari berbagai protokol terkenal:
    • ABP (Alternating Bit Protocol)
    • ABRA (Abracadabra Protocol)
    • BOOTP (Boot Protocol)
    • HTTP (HyperText Transfer Protocol)
    • IP (Internet Protocol)
    • SMTP (Simple Mail Transfer Protocol)
    • SWP (Sliding Jendela Protocol, tata letak 3 dan 5 kolom)
    • TCP (Transmission Control Protocol)
    • TFTP (Trivial File Transfer Protocol)
    • UDP (User Datagram Protocol)
  • kerangka kerja untuk menciptakan simulasi protokol baru

Simulasi tambahan telah dibuat di bawah kontrak untuk Pearson Education Data dan Komputer Komunikasi oleh William Stallings. Ini tidak tersedia dalam distribusi publik Jasper, tetapi tersedia melaluisitus web Pearson (secara berlangganan).

Anda dapat langsung mencoba simulasi secara online untuk mendapatkan merasakan apa simulator tidak. Web browser Anda akan perlu dikonfigurasi untuk menjalankan Java 1.5 applet dan (idealnya) JavaScript.

simulator ditulis di Jawa, dan dapat digunakan pada hampir platform apapun dengan web browser dan / atau lingkungan Java.

Instalasi

Perhatikan bahwa kode secara online dan pre-built telah disusun menggunakan JDK 1.5. Hal ini juga akan mengkompilasi dan berjalan menggunakan (katakanlah) JDK 1.6.

Simulator disediakan sebagai Zip arsip. Simulator membongkar ke direktori (folder) disebut jasper-NN menurut nomor versi. Anda mungkin mengubah nama ini untuk jasper untuk kesederhanaan. Distribusi berisi:

build.bat, clean.bat

MS DOS batch script untuk mengelola kode

build.xml

Ant membangun file untuk mengelola kode

docs

dokumentasi dasar

html

direktori untuk halaman web dan simulator JAR arsip

sumber

direktori untuk kode Java (protokol, simulator, dukungan)

 

Simulasi sebagai Applet

Simulator dapat digunakan pada file yang didownload dengan mengarahkan browser web di ... /jasper/html (atau mungkin ... /jasper/html/index.html ). Ini mengasumsikan Anda berganti nama menjadi folder distribusi sebagai jasper . Ini akan memunculkan halaman utama, dengan petunjuk umum dan daftar protokol yang dapat disimulasikan. Web browser Anda akan perlu dikonfigurasi untuk menjalankan Java 1.5 applet dan (idealnya) JavaScript. Atau, menggunakan penampil applet pada file (meskipun JavaScript untuk mengatur parameter protokol tidak akan bekerja).

Kebanyakan simulasi dalam format tiga kolom: dua entitas protokol (pengirim / penerima atau A / B) dan media komunikasi (link atau jaringan). Beberapa simulasi menambahkan mengirim dan menerima pengguna (aplikasi) di kolom luar. Format ini berguna untuk menunjukkan bahwa apa yang dilihat pengguna; biasanya ini hanya bagian dari apa yang terjadi dalam protokol.

Dalam web browser, pilih tindakan dengan mengklik daftar di bagian kanan bawah diagram. Tindakan adalah hal-hal seperti pengguna mengirim pesan data atau media penyampaian pesan protokol. Anda benar-benar mengendalikan simulasi. Misalnya Anda dapat memutuskan kapan untuk mengirim pesan, apakah akan mengakui pesan, dan apakah untuk menyampaikan atau kehilangan pesan dalam medium.Sejak simulasi tidak berjalan secara real-time, timeout mungkin segera setelah pesan telah dikirim.

Tindakan terakhir dalam diagram ditampilkan dalam warna merah. Berbagai komentar protokol mungkin juga dicatat dalam warna hijau diagram, misalnya yang timeout terjadi atau yang pesan diabaikan.

Jika Anda membuat kesalahan, atau hanya ingin mundur dalam simulasi, kemudian klik Undo . Anda dapat membatalkan sebanyak langkah yang Anda suka, sampai ke awal simulasi. Mengklik Redo akan tampil lagi langkah terakhir yang diurungkan. Batal akan restart simulasi dengan parameter protokol saat ini. Jika Anda klik pada Run simulator akan berjalan secara otomatis, membuat pilihan acak untuk Anda. Jika Anda tidak yakin apa untuk bereksperimen dengan, ini adalah cara mudah melihat protokol dalam aksi. Sementara ini terjadi, para Run perubahan tombol untuk Berhenti . Klik Berhenti untuk kembali simulator untuk kontrol pengguna. Anda dapat melanjutkan pada saat ini seolah-olah Anda telah membuat semua pilihan otomatis sendiri.

The Print , Beban dan Simpan tombol dinonaktifkan karena simulasi berjalan sebagai applet. Jika Anda ingin hard copy dari simulasi, posisi scroll bar di panel simulasi pada titik yang menarik dan mencetak halaman web secara keseluruhan.

Beberapa simulasi telah dikaitkan parameter protokol. Untuk mengubah default yang ditampilkan, masukkan nilai-nilai baru dan klik Ubah Nilai . Dalam beberapa kasus, ini akan memaksa simulasi untuk me-restart. Berikut ini adalah screen-shot dari simulasi TCP, menunjukkan parameter protokol dan kontrol simulasi utama.

          TCP Simulasi

Simulasi sebagai Aplikasi

Menjalankan simulasi protokol sebagai aplikasi memberikan akses ke Print , beban dan Simpan tombol.

Cetak menghasilkan hard copy dari seluruh simulasi skenario. Perhatikan bahwa setiap halaman tidak dapat dipilih untuk dicetak. Lebar cetakan ditentukan oleh lebar jendela di layar. Konstanta winWidth danwinHeight di ProtocolSimulator menentukan ukuran jendela awal. Konstan maxHeight di TimeSequenceDiagram mendefinisikan ukuran vertikal dari halaman yang dicetak. Ukuran saat ini sesuai untuk kertas A4. Jika perlu, mengubah mereka untuk huruf (katakanlah) US.

Beban beban file simulasi skenario (dengan nama berakhiran .scn ); ini harus untuk protokol yang sama seperti Anda sedang simulasi. Ia menggantikan simulasi skenario ini (jika ada). Simpan menyimpan simulasi saat ini sebagai file skenario (dengan nama berakhiran .scn ). Jika Anda berjiwa petualang, Anda dapat membuat dan mengedit skenario Anda sendiri menggunakan editor teks.

Ketika simulator dijalankan sebagai aplikasi, nama protokol wajib mengikuti kelas simulator utama. parameter protokol kemudian dapat diberikan jika diperlukan; protokol memiliki default untuk ini.Asumsikan bahwa simulator telah dibangun dan harus dimulai dari tingkat atas Jasper. Berikut ini akan menjalankan TCP dalam mode client-server, dengan jendela pesan ukuran selain default:


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

 

 Pengembangan

Sumber lengkap simulator disediakan. (Sebagian besar file cenderung memiliki Unix End-Of-Line.) Kode sebaiknya dibangun kembali menggunakan Ant build.xml membangun file. Ant p akan mencetak membantu informasi tentang target membangun. Simulator semut akan membangun kembali ProtocolSimulator.jar di html direktori. ant bersih akan menghapus semua file kelas dikompilasi dan file backup, tetapi melestarikan file JAR. bersih semut akan menghapus bahkan ini.

Jika Anda tidak memiliki Ant tetapi menggunakan MS DOS / Windows, Anda malah dapat menggunakan batch file build.bat dan clean.bat . Ini melakukan tugas-tugas dasar menciptakan file simulator JAR dan merapikan file membangun.

Untuk memodifikasi simulasi protokol yang ada atau menulis yang baru akan membutuhkan pengetahuan tentang kerangka simulasi. Lihat artikel Sebuah Interaktif Visual Protocol Simulator untuk rincian ini dan contoh diperpanjang bagaimana mengembangkan simulasi. Setelah kerangka dipahami, simulasi sederhana dapat dikembangkan dalam sehari; protokol yang kompleks bisa mengambil satu atau dua minggu untuk berkembang.

Misalkan Anda ingin mengembangkan simulasi baru protokol EXP ( 'Contoh Protocol'). Anda akan perlu untuk menulis EXP.java instantiate berbagai entitas dalam protokol. Untuk protokol sederhana, Anda kemudian akan menulis EXPSender.java dan EXPReceiver.java untuk menentukan perilaku dari entitas protokol mengirim atau menerima. Lebih protokol yang kompleks dapat melibatkan mendefinisikan entitas yang terpisah untuk menangani antarmuka layanan dan entitas protokol. Ini juga mungkin diperlukan untuk menentukan format pesan protokol dan variasi pada mendasari Sedang untuk mencocokkan ini.

Ingatlah bahwa banyak pekerjaan pembangunan dilakukan oleh siswa, sehingga tingkat komentar dalam kode agak terbatas di tempat. The ABP simulasi adalah yang paling sederhana dari protokol dan merupakan tempat yang baik untuk memulai. Simulasi TFTP adalah yang terbaik berkomentar dan terbaik menjelaskan protokol. Ini menggambarkan hampir semua poin-poin penting dalam pengembangan simulasi.

lisensi

Program ini adalah perangkat lunak bebas. Anda diizinkan untuk mendistribusikan dan / atau memodifikasinya di bawah ketentuan GNU General Public License sebagaimana dipublikasikan oleh Free Software Foundation - baik versi 2 dari Lisensi, atau (dengan pilihan Anda) versi yang lebih baru.

Program ini didistribusikan dengan harapan bahwa itu akan berguna, tetapi tanpa jaminan apapun , bahkan tanpa jaminan tersirat dari diperjualbelikan atau kesesuaian untuk tujuan tertentu . Lihat GNU General Public License untuk rincian lebih lanjut.

Anda mungkin mendistribusikan kembali software ini tersedia Anda melestarikan berkas README ini. Laporan bug harus dikirim ke Ken Turner , yang juga akan menghargai menerima koreksi atau kode untuk protokol baru.

Ucapan Terima Kasih

Iain A. Robin melakukan sebagian besar pembangunan untuk proyek Master di bawah pengawasan Ken Turner. Paul Johnson dan Kenneth A. Whyte kontribusi terhadap perkembangan dari beberapa simulasi untuk proyek-proyek Master mereka.

Sejarah

  • Versi 1.0: Swasta versi internal, Iain Robin, 1 September 1999
     
  • Versi 1.1: versi internal Swasta, Ken Turner, 22 Desember 2000
     
  • Versi 1.2: Swasta versi internal, Ken Turner, 5 Maret 2001
     
  • Versi 1.3: Rilis publik pertama, Ken Turner 6 Juni 2001
     
  • Versi 1.4: memperbarui Umum, Ken Turner, 9 Maret 2006:
     
    • File HTML diperbarui menjadi XHTML-compliant.
    • Sumber diperbarui untuk JDK 1.5, dan swing grafis yang digunakan. Perhatikan bahwa JDK 1.5 atau yang lebih baru sekarang diperlukan untuk kembali kompilasi atau untuk menjalankan kode.
    • Struktur direktori tingkat atas revisi untuk memiliki sumber , membangun dan docs direktori.
    • Makefile digantikan oleh Ant membangun berkas. Hanya membangun dan bersih batch file dipertahankan. [Berkat Dr. PJB Raja, Heriot-Watt University, untuk berkontribusi terhadap ini.]
    • Baris kosong diabaikan dalam file skenario.
    • ABP dan SWP3 kontrol media sekarang ditawarkan melalui parameter (pengiriman / rugi, pengiriman hanya, otomatis). Ini akan mungkin digunakan prinsip ini dengan protokol lain, tetapi masuk akal hanya beberapa kasus. [Berkat Dr. PJB Raja, Heriot-Watt University, untuk berkontribusi terhadap ini.]
    • SMTP pesan protokol telah sedikit diubah namanya untuk konsistensi dengan RFC.
    • TCP ukuran jendela default dipulihkan di restart. Ucapan Terima Kasih sekarang dikirim pada penerimaan data, dan bukan ketika jendela menerima menjadi penuh. Beberapa perubahan yang kompleks yang disebabkan oleh ini. Data tertunda pengiriman sekarang dikirim ke pengguna sebelum Closed. Terbuka sementara masih Penutupan sekarang mengarah ke Ditutup ketika sepenuhnya ditutup daripada segera. Gandakan SYN ditambah ACK sekarang membatalkan transmisi ulang sementara Didirikan.
       
  • Versi 1.5: Extensions untuk protokol baru, Ken Turner, 11 Februari 2011:
     
    • Pekerjaan baru yang besar telah penambahan simulasi baru (CSMA / CD, Multicast, Multiplexing, Protocol Stack, TCP Lambat Start). Sebagai pekerjaan ini dilakukan di bawah kontrak untuk Pearson Education, tidak dipublikasikan tersedia. Namun, perbaikan lain yang dibuat di versi ini tersedia untuk umum.
    • Lebih komentar, terutama javadoc, telah ditambahkan ke banyak file (yang juga telah diformat ulang).
    • pemeriksaan menyeluruh lebih dari nilai-nilai telah ditambahkan ke JavaScript dalam file HTML. Selain itu, file HTML telah direvisi dan diformat ulang.
    • The TimeSequenceDiagram kelas telah dimodifikasi. Ruang vertikal sekarang ditambahkan sebelum MEMBERIKAN acara protokol, dan juga sebelum komentar (bahkan jika itu bukan yang pertama). Sebuah acara protokol TRAVERSE telah ditambahkan untuk menangani situasi yang panah putus-putus melintasi beberapa kolom. Sebuah sesuai TraverseTransmission kelas telah ditambahkan.
    • The Medium kelas telah diperpanjang dengan dua isEmpty metode: satu untuk memeriksa apakah media benar-benar kosong dari pesan, dan satu untuk memeriksa apakah media kosong dari pesan dari sumber tertentu.
    • Semua TCP kelas telah diperpanjang untuk mendukung slow-start varian ( TCP / ss ). Selain itu, beberapa masalah dengan TCP telah dikoreksi (situasi tidak jelas di mana protokol tidak sembuh ketika mencoba untuk menutup). The TIME_WAIT negara sekarang digunakan untuk mengatasi situasi ini, termasuk pemutusan lebih tiba-tiba ketika FIN diterima dalam situasi yang tidak biasa.
    • Sebuah Protocol sekarang dapat sekarang menerapkan metode getRandNumbers dan setRandomNumbers (secara default ini melakukan apa-apa yang bermanfaat). Jika metode ini diterapkan, daftar nomor acak ditambahkan ke skenario baris header ketika skenario disimpan, dan dipulihkan ketika skenario dimuat. Ini adalah untuk protokol seperti CSMA yang menghasilkan angka acak mereka sendiri (sebagai lawan media yang melakukannya sesuai rilis sebelumnya). Baris header sekarang dalam format seperti "Jasper CSMA 0.3,0.01,0.891". Jika tidak ada nomor acak yang hadir mengikuti jenis protokol (seperti halnya dengan file skenario sebelumnya) maka tidak ada tindakan yang diambil.