Sourcecode Fortschritt


  • 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).


  • Mod

    version = "0.0.2.223 - Rev: 1070"

    tcp.h/c: msl (maximum segment lifetime) eingebaut in connection->tcb und auf 10 sec gesetzt in createConnection(...)



  • Version 0.0.2.224:

    - memcpyr geschaffen (optimiert mit rep movsl), genutzt durch memmove. -> memmove optimiert.
    - kheap nutzt nun memmove statt for-Schleife
    - CPU-Cache in kernel.asm aktiviert (Bits 30 und 29 in CR0 gelöscht)
    - todolist enthält nun timer-ähnliche Funktion


  • Mod

    version = "0.0.2.225 - Rev: 1072"

    Neue timer-Funktion verwendet im tcp-Prozess. Allerdings sind da noch Fehler im Ablauf im ACTIVE CLOSE Ablauf (qemu, irc). In FIN_WAIT_2 kommt ein ACK PSH und nicht das erwartete FIN. TODO: analysieren.


Anmelden zum Antworten