Skip to content

Repository files navigation

Network Simulator

Version Next.js React TypeScript TailwindCSS FOSS Total Lines

A comprehensive, client-side, browser-based network simulator for learning switching, routing, wireless, security, IoT, CLI terminal workflows.

Live App: network2026.vercel.app · Alternative: tuzlanet.vercel.app

Demo & Videos / Tanıtım Videoları

Network Simulator


⚡ Quick Start / Hızlı Başlangıç

# 1. Depoyu klonlayın ve bağımlılıkları yükleyin
npm install

# 2. Geliştirme sunucusunu başlatın (http://localhost:3000)
npm run dev

# 3. Tip kontrolü, lint ve testleri çalıştırın
npx tsc --noEmit
npm run check

🧩 CLI Varyasyon Desteği / CLI Alias Compatibility

Simülatör, standart komut formatının yanı sıra yaygın olarak kullanılan alternatif CLI biçimlerini de tanır. configure terminal gibi ana komutlar yanında; system-view, show config ve display interface brief gibi kısa veya farklı yazım biçimleri de aynı akışta çalışır. Bu sayede öğrenciler daha tanıdık komut kalıplarıyla pratik yapabilir, ancak sistem yine tek bir standart komut modeline dayanır.


💻 Sistem Gereksinimleri / System Requirements

Rol / Platform Gereksinimler Açıklama
Son Kullanıcı (Windows) Windows 10/11 Edge WebView2 yerleşiktir. Ekstra hiçbir kurulum gerekmez.
Son Kullanıcı (macOS) macOS 13+ (Ventura) WebKit yerleşiktir. .dmg çift tıklanarak doğrudan kurulur.
Son Kullanıcı (Linux) Ubuntu, Debian, Fedora, Arch vb. webkit2gtk kütüphanesi gerekir. .AppImage doğrudan çalışır.
Son Kullanıcı (Mobil/PWA) iOS Safari / Android Chrome Tarayıcıdan "Ana Ekrana Ekle" ile anında uygulama gibi kurulur.
Geliştirici (Masaüstü Derleme) Node.js (>=20.9), Rust & Cargo, C++ Build Tools npm run build:exe için gereklidir.
Geliştirici (Android Derleme) Android Studio, Android SDK/NDK, Java (JDK 17+) tauri android build için gereklidir.

🚀 Key Features / Öne Çıkan Özellikler

  • 🎬 Otomatik Topoloji Üretimi & Canlı Sanal İmleç Simülasyonu: Hazır ve dinamik ağ topolojilerinin tuval üzerinde adım adım, insansı hızda sanal imleç hareketiyle kurulması; üst araç çubuğundan cihaz ve kablo türü (straight, crossover, console, serial, fiber) seçimi; cihaz pencereleri açılarak IP konfigürasyonu, PC Komut İstemi (ping) ve Switch/Router konsollarında (enable, configure terminal, interface, ip address, no shutdown, vlan) kelime kelime yazılan CLI komutlarının gerçek zamanlı yürütülmesi ve canlı Timeline History kaydı.
  • 🧪 Kurumsal CLI Regresyon Matrisi & Sorun Giderme (Troubleshooting) Modu: CLI no komutları (no shutdown, no ip address, no ip route, no access-group, no switchport access vlan vb.) için uçtan uca E2E test matrisi, bozuk topoloji üretimi ile etkileşimli arıza enjeksiyonu (wrongVlan, wrongGateway, shutdownPort, aclDeny, brokenTrunk, ospfIssue, natIssue, stpIssue), hop-by-hop paket yolculuğu (ARP, VLAN, Routing, ACL, NAT, TTL) ve RFC uyumlu paket düşme nedenleri kaydı.
  • ⚙️ Gerçek Zamanlı Protokol Durum Makineleri & Yaşlanma Engine: OSPF (Down...Full), BGP (Idle...Established) ve LACP durum makineleri; ARP, CAM/MAC tablosu ve Dynamic NAT kaydı otomatik yaşlanma (aging) ve temizleme mekanizmaları.
  • 📸 Topoloji Anlık Görüntü & Geri Yükleme: Ağ topolojisini tek tıkla dondurma, kontrol noktaları (Checkpoint) oluşturma, JSON dışa/içe aktarma ve anlık geri yükleme.
  • 🐍 Python Yorumlayıcısı, Dosya & GUI/Ses/3D İşlemleri: PC terminalinde OOP, Decorator, Generator, open() ile sanal dosya I/O; tkinter/form ile görsel pencereli form uygulamaları; Web Audio API tabanlı dinamik nota/akor/müzik ve ses efekti (audio/music/synth) sentezleme; scene3d/three3d ile interaktif 3D sahne, katı geometri (CSG) ve ışıklandırma motoru; soket ağ programlama.
  • 🖼️ Masaüstü (Tauri) WebView Tuval Düzeltmeleri: Tuval görünümü artık SVG transform özniteliğiyle uygulanıyor; macOS (WKWebView) ve Linux (WebKitGTK) üzerinde foreignObject notlarının cihaz/kablolardan kopması giderildi. Fare ve dokunmatik kaydırmalar tuval yerel koordinatlarına çevrildiği için paketlenmiş masaüstü yerleşimlerinde imleç kayması yaşanmıyor; fare ile kaydırma bırakıldığı anda dururken dokunmatik inertia korunuyor.
  • 🖱️ Etkileşim ve Export Tutarlılığı: Cihaz gövdelerinin tamamı tıklanabilir; cihaz pencereleri Alt + sol tık + sürükle ile taşınabilir. PNG export, canlı topolojinin kablo eğrilerini, paralel kablo ofsetlerini, kablosuz dalga çizimlerini ve Inria Sans fontunu kullanır.
  • 🎨 Çift Kademeli Grafik & Performans Modu (High / Low): Yüksek grafik modunda modern radial-gradient ambiyans ışık havuzları, neon parıltı çizgileri ve backdrop-blur-xl cam efekti; düşük grafik modunda eski veya zayıf donanımlar için tüm gölgeleri, filtreleri, saydamlıkları ve animasyonları kapatan tam sıfır efektli (Zero Effects) flat 2D performans modu.
  • 🔒 Firewall Stateful SPI & Pipeline İyileştirmeleri: Conntrack SPI enforcement artık yalnızca firewall tipi cihazlarda aktif; router ve switch'ler paketleri geçirir ve sessizce takip eder. DHCP Relay Engine (dhcpRelayEngine.ts) temizlendi; DhcpHeader tabanlı giaddr + Option 82 işlemesi ile 233 test dosyası, 2096 test tamamı başarılı.

Kapsam notu: README’de listelenen CLI, parser, state, paket yakalama ve forwarding özellikleri her protokolde aynı olgunluk seviyesinde değildir. NetFlow/sFlow, MQTT, CoAP, NETCONF-YANG ve RESTCONF için mevcut davranışlar eğitim amaçlı simülasyon kapsamındadır; “destekleniyor” ifadesi tek başına tam üretim protokol uygulaması veya gerçek harici collector/server uyumluluğu anlamına gelmez. Kontrol düzlemi komutları çerçeve düzeyinde çalışır: frame'ler süreç içinde sentezlenir, sokete veya kabloya yazılmaz; netconfTransport.ts XML yerine düz bir nesne işler ve bu sonuçlar realismLevel: sim-only olarak işaretlenir. Bu nedenle harici bir NETCONF/RESTCONF yöneticisiyle veya MQTT/CoAP broker ile birlikte kullanılamazlar.

Olgunluk ve paket smoke testi: Control-plane özelliklerinin sim-only sınırları, v7.0 kanıt matrisi, gerçek .AppImage/.dmg smoke checklist’i ve low-resource parity tablosu için Feature Maturity and Desktop Smoke Checklist belgesine bakın.


📊 Proje Durumu / Project Status

Metrik / Metric Değer / Value
Version / Sürüm 7.6.0
Total Lines / Toplam Satır (src/) ~253,628
Source Files / Kaynak Dosya 1188
Test Files / Test Dosyaları 249
Tests / Testler 2250
Documentation Files / Dokümantasyon Dosya 26
Example Projects / Örnek Proje 49
Guided Lessons / Rehberli Ders 19
Exams / Sınavlar 6

📖 Documentation / Dokümantasyon

Bölüm / Section Doküman / Document Açıklama / Description
📘 Ana Eğitim Kitapçığı NETWORK_SIMULATOR_KITAPCIK.md Tüm özellikler, CLI, eğitim, senaryolar ve laboratuvarlar (Kapsamlı Kitapçık)
📗 Uygulama & Kullanım Rehberi NETWORK_SIMULATOR_REHBERI.md Modüler şasi, mimari, cihaz tipleri, kablolar, bash/python rehberi
Kurulum / Setup INSTALL.md Kurulum ve derleme / Installation and build
Başlangıç / Getting started USAGE.md Kullanım ve klavye kısayolları / Usage and shortcuts
PC_CMD_REFERENCE.md PC CMD komutları / PC CMD commands
TOPOLOGY_GENERATOR.md Topoloji üretici sihirbazı / Topology generator
CLI CLI_COMMANDS.md CLI komut referansı / CLI command reference
CLI_GUIDED_TUTORIAL.md Rehberli CLI dersleri / Guided CLI lessons
Ağ / Networking WIRELESS_CONFIGURATION_GUIDE.md Kablosuz ağ yapılandırması / Wireless configuration
L3_SWITCH_CONFIGURATION.md L3 switch yapılandırması / L3 switch configuration
PACKET_CAPTURE_GUIDE.md Paket yakalama paneli / Packet capture panel
Referans / Reference ProjeOzellikleri.md Özellik envanteri / Feature inventory
DOCUMENTATION_INDEX.md Tüm belgelerin indeksi / Documentation index
history.md Sürüm geçmişi / Changelog
Geliştirme / Development CONTRIBUTING.md Katkı ve geliştirme rehberi / Contribution guide

⌨️ Keyboard Shortcuts / Klavye Kısayolları

Simülatör kontrollerine hızlıca göz atmak için aşağıdaki listeyi genişletin. Daha fazla detay için USAGE.md dosyasına bakın.

⌨️ Click to expand Keyboard Shortcuts / Klavye Kısayollarını görmek için tıklayın

Canvas / Tuval

Shortcut / Kısayol Action (EN) İşlem (TR)
Ctrl + Z Undo Geri al
Ctrl + Y Redo Yeniden yap
Ctrl + C Copy selected device Seçili cihazı kopyala
Ctrl + X Cut selected device Seçili cihazı kes
Ctrl + V Paste Yapıştır
Ctrl + A Select all Tümünü seç
Ctrl + S Save project Projeyi kaydet
Ctrl + O Open project file Proje dosyasını aç
Ctrl + N / Alt + N New project Yeni proje
Ctrl + P Print topology Topolojiyi yazdır
Ctrl + F Toggle fullscreen Tam ekrana geç / çık
Shift + ? Open Shortcuts guide modal Kısayol kılavuzu modalını aç
Alt + M Toggle Minimap display Minimap (Harita) göster / gizle
Alt + L Toggle Network Log panel Ağ Olay Günlüğü panelini aç / kapat
Alt + F Zoom to fit all devices Tüm cihazları ekrana sığdır (Fit View)
Alt + R Reset zoom/pan view Görünümü sıfırla
Delete / Backspace Delete selected Seçili öğeyi sil
Escape Cancel selection / Close mode Seçimi iptal et / Modu kapat
Ctrl + Drag Snap to grid Nokta ızgaraya yapıştır
Ctrl + Scroll Zoom in / out Yakınlaştır / Uzaklaştır
Space + Drag Pan canvas Canvas'ı kaydır
Alt + Left-click + Drag Move any device window Cihaz penceresinin herhangi bir yerinden taşı
Arrow Keys Move selected device(s) Seçili cihaz(lar)ı taşı
Shift + Arrow Keys Move selected device(s) faster Seçili cihaz(lar)ı daha hızlı taşı
Mouse Selection Auto-Copy text on mouse selection CMD, CLI & Konsol geçmişinden metin seçilince otomatik kopyalama
F1 Open / close help panel Yardım panelini aç / kapat
F2 Rename / configure selected device Seçili cihazı yeniden adlandır / yapılandır
F5 Refresh network topology Ağ topolojisini yenile
Tab Focus next device Sonraki cihaza odaklan
Shift + Tab Open window switcher when windows are open Açık pencereler arasında geçiş yap
Ctrl + M Minimize active device window Etkin cihaz penceresini küçült
Home Reset topology view Topoloji görünümünü sıfırla
End Focus last element Son öğeye odaklan
Page Up Scroll canvas up Canvas'ı yukarı kaydır
Page Down Scroll canvas down Canvas'ı aşağı kaydır
Double-click (Empty Space) Reset topology view Topoloji görünümünü sıfırla
Double-click (Device) Open collapsible device panel Daraltılabilir cihaz panelini aç

Ping Packet Analysis / Ping Paket Analizi

Shortcut / Kısayol Action (EN) İşlem (TR)
P Play / Pause packet analysis Paket analizi: Oynat / Duraklat
N Next hop (when paused) Sonraki Hop (duraklatıldığında)

CLI / CMD

Shortcut / Kısayol Action (EN) İşlem (TR)
Tab Auto-complete command Komut tamamlama
Arrow Up / Down Command history Komut geçmişi
Enter Execute command Komutu çalıştır
Ctrl + L Clear terminal Terminali temizle
? Show available commands Kullanılabilir komutları göster
Ctrl + C Cancel command (CLI) Komutu iptal et

🛠️ Tech Stack / Teknoloji

  • Framework: Next.js 16 (App Router), React 19
  • Language: TypeScript 7.0
  • Styling: Tailwind CSS 4, Radix UI Icons & Components
  • State Management: Zustand 5.0
  • PDF Engine: jsPDF + High-DPI HTML5 Canvas

📜 License / Lisans

Free and open source under the MIT License. See LICENSE.

Özgür ve açık kaynak. LICENSE dosyasına bakın.

Releases

Used by

Contributors

Languages