Sourcecode Fortschritt


  • Mod

    version = "0.0.2.202 - Rev: 1048"

    Fehler korrigiert in tcp.c, der zu #PF führte (malloc ...)

    tcp_showOutBuffers(connection,true); <--- testweise in tcp.c, zeile 460


  • Mod

    version = "0.0.2.203 - Rev: 1049"

    Netzwerk: Fehlerbeseitigung, Verfeinerung


  • Mod

    version = "0.0.2.204 - Rev: 1050"

    bei tcp_showOutBuffers werden bereits per ACK bestätigte Daten grün und die anderen braun angzeigt.

    Idee: Die grün angezeigten Daten können gelöscht werden, weil bereits angekommen und bestätigt. Die braun angezeigten Daten werden nach einer gewissen Zeit erneut gesendet. Hierbei wird keine Sinnfrage gestellt.


  • Mod

    version = "0.0.2.205 - Rev: 1051"

    - Zeiterfassung packet sent und packet acknowledged eingebaut, RTT-Bestimmung ( http://de.wikipedia.org/wiki/Paketumlaufzeit )


  • Mod

    version = "0.0.2.206 - Rev: 1052"

    - Verbesserte Version für RTT



  • Version 0.0.2.207:

    - tcp_findConnection verbessert: Mit tcp_findConnectionListen zusammengeführt, beachtet beim passiven Verbinden die Angabe des Ports
    - Angefangen, lastPacket zu entfernen. Nur noch der derzeit nötige Teil ist vorhanden
    - Zahlreiche Codestyle-Anpassungen. Bitte Styleguide beachten: Leerzeichen statt Tabs, keine Leerzeichen am Zeilenende.


  • Mod

    version = "0.0.2.208 - Rev: 1054"

    - RTO wird bestimmt nach RFC 2988 und aufgerundet auf 1000 msec (typische RTT sind ca. 100 ms ins Internet)
    - #define SYSTEMFREQUENCY 100 in timer.h (nicht mehr versteckt in ckernel.c) 🙂


  • Mod

    version = "0.0.2.209 - Rev: 1055"

    - retransmission eingefügt (rfc2988)

    version = "0.0.2.210 - Rev: 1056"

    - Fehler korrigiert bei retransmit (seq.nxt anstelle alte seq wurde in tcp_send geschickt)

    version = "0.0.2.211 - Rev: 1057"

    - Testwert für RTO in tcp.c entfernt. Jetzt wieder check auf time > RTO.


  • Mod

    version = "0.0.2.212 - Rev: 1058"

    Vereinfachungen im Code von tcp.c, z.B. send_ACK(...)


  • Mod

    version = "0.0.2.213 - Rev: 1059"

    - Fehler in RTO calculation (in letzter Versioin versehentlich eingebaut) wieder behoben


  • Mod

    version = "0.0.2.214 - Rev: 1060"

    - Eigenen tcp-Log auf die serielle Schittstelle 1 implementiert, der empfangene und gesendete Pakete mit relativen seq-/ack-Numbers dokumentiert
    - Fehler korrigiert (mit Hilfe des serial Logs aufgefallen!) 🙂

    Einfügen in qemu-Batch: -serial file:serielleSchnittstelle1.txt (nicht com1.txt verwenden. Das wird bereits unsichtbar verwendet, kann also nicht erstellt werden.)

    Bsp. mit "browser":

    send:  SYN	    seq:	0	  seq nxt:	1
    recv:  SYN ACK	seq:	0	  rcv nxt:	1	  ack:	1
    send:  ACK	    seq:	1	  seq nxt:	1	  ack:	1		 SND.UNA:	0
    
    send:  ACK	    seq:	1	  seq nxt:	82	 ack:	1
    recv:  ACK PSH	seq:	1	  rcv nxt:	248	ack:	82		SND.UNA:	82
    send:  ACK	    seq:	82	 seq nxt:	82	 ack:	248
    recv:  ACK PSH	seq:	248	rcv nxt:	755	ack:	82		SND.UNA:	82
    send:  ACK	    seq:	82	 seq nxt:	82	 ack:	755
    recv:  ACK PSH	seq:	248	rcv nxt:	755	ack:	82		SND.UNA:	82
    send:  ACK	    seq:	82	 seq nxt:	82	 ack:	755
    
    send:  RST	    seq:	82	 seq nxt:	82
    

    Reihenfolge der Pakete stimmt so wie oben (dort manuell sortiert) in der Ausgabe noch nicht, liegt noch am Sourcecode, da wir dort noch sofort senden, den serial_log gebe ich erst am Ende der tcp_receive aus. Sollte noch sinnvoll umgebaut werden. Die Abläufe funktionieren noch nicht komplett RFC793ff. konform.


  • Mod

    version = "0.0.2.215 - Rev: 1061"

    - tcp structs und abläufe weiter optimiert (Paket-Reihenfolge kommt nun richtig)



  • Version 0.0.2.216:

    - Unterstützung für PE-Dateien implementiert
    - VM86-Tasks haben nun ein eigenes PD -> Mehrere VM86-Tasks mit gleicher virtuellen Adresse (0x100) sind nun möglich
    - waitForEvent implementiert, Als syscall eingeführt, in Userprogrammen genutzt
    - RTO-Formel korrigiert (Klammern falsch gesetzt)
    - Kleinigkeiten. U.a. Include-Gruppierung in ckernel.c überarbeitet


  • Mod

    version = "0.0.2.217 - Rev: 1063"

    Kleine Korrekturen in tcp.c


  • Mod

    version = "0.0.2.218 - Rev: 1064"

    //serial.h: 
    static inline void serial_logUINT(uint8_t com, uint32_t num)
    static inline void serial_logINT (uint8_t com, int32_t  num)
    

    Anwendung in tcp.c (vereinfachter code)



  • Version 0.0.2.219:

    - serial_log verhält sich nun analog zu printf
    - Code von network.h/usb_hc.c nach pci.c verlegt
    - Bugfix: Memoryleak beim löschen von eventqueues beseitigt
    - Bugfix: Freetimetask nimmt nun keine events mehr an
    - Verbesserungen am heap (placementMalloc in Funktion ausgelagert, unnötigen code hinter _MALLOC_FREE_ versteckt)


  • Mod

    version = "0.0.2.220 - Rev: 1066"

    - starwars darstellung optimiert (Folge ESC,[,H als Bildtrenner nach clearScreen übersetzt und RU (bedeutung?) gelöscht)
    - region_t nun als packed (spart 2 byte)


  • Mod

    version = "0.0.2.220 - Rev: 1067"

    - Fehler in starwars.c korrigiert (das RU entstammt der MAC des qemu gateway???)


  • Mod

    version = "0.0.2.221 - Rev: 1068"

    Weitere Korrekturen in tcp.c (ports nun zufällig zwischen 49152 und 65535)


  • Mod

    version = "0.0.2.222 - Rev: 1069"

    - Im Heap gespeicherte tcp In/Out-Pakete werden beim Schließen gelöscht (Test: Browser klappt)
    - Anmerkung: ge-ackte Pakete in der out-Liste werden nun sofort vollständig gelöscht (nicht erst beim Schließen). In den vorhergehenden Versionen wurde nur das Listenelement gelöscht, ohne die Struct und die Daten zu löschen (üble Fehlerquelle).


Anmelden zum Antworten