Sourcecode Fortschritt
-
version = "0.0.2.199 - Rev: 1044"
- Kleine Korrekturen im Netzwerkbereich
-
version = "0.0.2.200 - Rev: 1045"
- #defines ... in os.h getestet und Fehler beseitigt (nun können alle geöffnet werden. Code compiliert, aber das Programm ist nicht mehr wirklich lauffähig. )
- icmp.c Zahlen gegen die defines ausgetauscht aus icmp.h
- Ausgaben bei Netzwerk verfeinert (z.B. nur eigenes tcp-window beim Senden)
- tcp-window-Steuerung verbessertTODO: tcp In-Buffer freigeben nach Weitergabe an die Application
-
version = "0.0.2.200 - Rev: 1046"
starwars:
Bildschirmlöschen eingebaut (vielleicht muss man noch Pakete zusammenfassen)
-
version = "0.0.2.201 - Rev: 1047"
- NetBIOS hinzugefügt
- tcp Out Buffer versuchsweise verwendet (log-Fkt. eingebaut)
- strg+p pingt jetzt 10.0.2.x (x = 0 ... 254)
-
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
-
version = "0.0.2.203 - Rev: 1049"
Netzwerk: Fehlerbeseitigung, Verfeinerung
-
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.
-
version = "0.0.2.205 - Rev: 1051"
- Zeiterfassung packet sent und packet acknowledged eingebaut, RTT-Bestimmung ( http://de.wikipedia.org/wiki/Paketumlaufzeit )
-
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.
-
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)
-
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.
-
version = "0.0.2.212 - Rev: 1058"
Vereinfachungen im Code von tcp.c, z.B. send_ACK(...)
-
version = "0.0.2.213 - Rev: 1059"
- Fehler in RTO calculation (in letzter Versioin versehentlich eingebaut) wieder behoben
-
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.
-
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
-
version = "0.0.2.217 - Rev: 1063"
Kleine Korrekturen in tcp.c
-
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)