Sourcecode Fortschritt
-
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)
-
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)
-
version = "0.0.2.220 - Rev: 1067"
- Fehler in starwars.c korrigiert (das RU entstammt der MAC des qemu gateway???)
-
version = "0.0.2.221 - Rev: 1068"
Weitere Korrekturen in tcp.c (ports nun zufällig zwischen 49152 und 65535)
-
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).