Eigenes OS - Networking


  • Mod

    Der IRC Client entwickelt sich schon ganz nett. Man müsste die eingehenden "Umlaute und Sonderzeichen" noch für die Bildschirmausgabe übersetzen und alle Eingaben wahlfrei machen.


  • Mod

    Das tcp-Modul schafft ganz schön Aufwand. Momentan fehlt noch der dup-ack Mechanismus und der timer für das Vernichten der Connection aus dem Zustand TIME_WAIT heraus. Wir versuchen, hierfür die todo_list in erweiterter Form einzusetzen.

    Rückblende:
    Wenn man bedenkt, dass das gesamte Internet weitgehend auf dieser Norm rfc 793 aus 1981 basiert, da staunt man schon. Diejenigen, die diese "arpanet" rfc geschrieben haben, wussten das damals nicht, was sie da Wichtiges machen.Alles basiert auf dem engen Ethernet frame von insgesamt 1500 byte, damals ziemlich viel, heute eher wenig. 1981 gab es gerade mal den IBM PC, der noch keine Festplatte sein eigen nannte, sondern lediglich ein oder zwei Floppys kannte. Er wurde ab 1981 fast 6 Jahre lang unverändert gebaut und war der Quasi-Standard schlechthin. Ab 1983 kam der IBM PC XT, 1984 der IBM PC AT (mit Festplatte und 6 MHz CPU). Der "AT" kostete damals über 20000 DM, daran kann ich mich erinnern, selbst für Großfirmen ein stolzer Betrag. 😉

    Auf der anderen Seite werden heute immer noch PCs gebaut mit diesem Prozessortyp x86 und den damit verbundenen lästigen Mechanismen, die noch jeder Pentium-PC (und kompatible) mit sich herum schleppt.


  • Mod

    tcp: dup-ack und Timer für das Vernichten der Connection sind implementiert. Nun gehts bei den Out-of-Order Paketen weiter. 😉


  • Mod

    Code zum Umwandeln von IP-String nach IP_t (von MrX):

    IP_t stringToIP(char* str)
    {
    	IP_t IP;
        for(uint8_t i_start = 0, i_end = 0, byte = 0; byte < 4; i_end++)
        {
            if(str[i_end] == 0)
            {
                IP.IP[byte] = atoi(str+i_start);
                break;
            }
            if(str[i_end] == '.')
            {
                str[i_end] = 0;
                IP.IP[byte] = atoi(str+i_start);
                i_start = i_end+1;
                byte++;
            }
        }
    	return(IP);
    }
    


  • Genau, Fehlerbehandlung wird sowieso überbewertet. Vor allem in einem Kernel. 🙂



  • Ist ja nicht im Kernel 😉



  • Ach so, dann ist das natürlich in Ordnung. 😉


  • Mod

    taljeth: kannst du auch einen konstruktiven Beitrag leisten?



  • Wenn es dir nicht konstruktiv genug ist, auf Schwachpunkt in gepostetem Code hinzuweisen, dann tut es mir leid. Vermutlich kann ich es dann nicht.


  • Mod

    Wirklich konstruktiv bedeutet, Du nimmst den Code und optimierst ihn für alle, oder Du akzeptierst ihn einfach als Information.


Anmelden zum Antworten