Forum: Mikrocontroller und Digitale Elektronik Internet & Mikrocontroller


von Moritz M. (avrprogger)


Lesenswert?

Hallo,

ich möchte mich mal ein bisschen mehr mit dem Internet und Netzwerken 
(LAN/Ethernet) beschäftigen. Die groben Abläufe kenne ich. Aber wie 
funktioniert das genau? Kennt jemand ein gutes Tutorial, wo das Internet 
von Grund auf erklärt wird. Wie sieht das bei Mikrocontrollern aus, wenn 
ich z.B ein Client bauen will, mit dem ich z.B E-Mails verschicken kann.

Moritz

von Internet (Gast)


Lesenswert?

Der wohl wichtigste Teil, den man für das Verständnis braucht ist das 
OSI Schichtenmodell:
http://de.wikipedia.org/wiki/OSI-Modell

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

Suche Infos zu diesem ominösen Schichtenmodell. Es erklärt einiges, z.B. 
wie die ganzen Buchstaben aus dem Internet auf den Bildschirm kommen.

von .... (Gast)


Lesenswert?

3 riesen themengebiete in einem schlag... ob das eine gute idee ist?

von Karol B. (johnpatcher)


Lesenswert?

Moritz M. schrieb:
> Aber wie
> funktioniert das genau?
Was denn überhaupt? Das Internet? Mir wäre so etwas nicht bekannt. Teil 
des Problems ist ja auch, dass "das Internet" mitunter aus sehr vielen 
verschiedenen Protokollen bzw. Aspekten besteht. Man muss ja nicht ein 
jedes solches Protokoll bis ins Detail kennen, um zu wissen wie "das 
Internet" prinzipiell funktioniert.

Moritz M. schrieb:
> Kennt jemand ein gutes Tutorial, wo das Internet
> von Grund auf erklärt wird.
Klassischerweise erklärt man den Aufbau von Rechnernetzen anhand des 
OSI-Schichtenmodells (siehe https://de.wikipedia.org/wiki/OSI-Modell) 
und geht dabei auf je ein paar Beispiele ein.

Moritz M. schrieb:
> Wie sieht das bei Mikrocontrollern aus, wenn
> ich z.B ein Client bauen will, mit dem ich z.B E-Mails verschicken kann.
Das ist nicht unbedingt etwas, dass du mit einem klassischen 
Mikrocontroller erledigen willst. Überhaupt ist das Thema "Netzwerk" mit 
Mikrocontrollern "problematisch". Im Idealfall hat man nämlich ein 
Betriebssystem, welches mit Hilfe seines bereits vorhandenen 
Netzwerk-Stacks vieles wegabstrahiert. Ansonsten könnte es nämlich 
durchaus eine Lebensaufgabe werden erst einen solchen programmieren zu 
müssen.

Auch das Thema E-Mail ist allse andere als trivial. Zwar mag es 
oberflächlich betrachtet einfach aussehen, aber die entsprechenden RFCs 
sind sehr lang und sich mit E-Mail-Headern auseinandersetzen zu müssen 
ist eigentlich eine Bestrafung. Insofern würde man wohl auch in einem 
solchen Fall etwas fertiges nehmen.

von Markus H. (dasrotemopped)


Lesenswert?

das OSI Modell definiert 7 Schichten,
TCP/IP definiert 4 Schichten.

Wer das OSI Modell kennt, weiss wie es sein sollte,
wer TCP/IP kennt, weiss wie das Internet funktioniert.

Um auf die Frage zurückzukommen, kaufe ein NET-IO und
schaue dir die ETH_M32_EX Firmware dazu an. Ein bisschen
Theorie zu TCP/IP und Netbios Protokoll rundet die Sache ab.

Gruß,

dasrotemopped.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

Karol Babioch schrieb:
> Auch das Thema E-Mail ist allse andere als trivial.

Wenn man auf senden klickt, dann überträgt der Computer die E-Mail per 
SMTP an den SMTP-Server des Mailproviders. Irgendwie schon sehr trivial.

von Andreas B. (andreasb)


Lesenswert?

1. Grundlagen (OSI ist da nicht schlecht)
2. Viel Geduld
3. Selber bauen

Oder, wenn es schnell gehen soll, kaufe dir z.B. im grossen Auktionshaus 
aus China ein ENC28J60 Modul.

http://www.mikrocontroller.net/articles/ENC28J60

Du findest fertige Software die läuft (hier im Forum, bzw. von Ulrich 
Radig). Darauf aufbauen sollte das ganze kein Problem sein.

Dann fehlt dir fürs Mailversenden nur noch SMTP, welches ziemlich 
einfach ist und du durch googeln leicht mehr erfährst.
(Stichwort: SMTP telnet)

Der Aufbau des Webserver, den du hier irgendwo im Forum findest 
(Wikiartikel, hab den jetzt nicht durchgelesen) funktionierte bei mir 
auf Anhieb. Dafür brauchst du keine Vertieften Kenntnisse.

Durch studieren des Code etc. kannst du jedoch vieles lernen.

Ich denke das hier waren die Links:
http://www.ulrichradig.de/home/index.php/software/avr-webserver-software
http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex#download


mfg Andreas

von Morz Kerl (Gast)


Lesenswert?

Es gibt eine Trilogie TCP/IP : TCP/IP Illustrated
TCP/IP Illustrated Volume 1
TCP/IP Illustrated Volume 2
TCP/IP Illustrated Volume 3
Dann kann man sich mit dem Routing System auseinander setzen. Das nennt 
sich dann ARP, DNS, BIND. Da gib't auch wieder Buecher drueber.

Dann gibt's noch die Internet Protkolle, zu email usw. Mit schnell mal 
ein Tutorial downloaden ist da nichts. Das ist eher Knockenarbeit.

von Andreas B. (andreasb)


Lesenswert?

Nachtrag (Editieren geht nicht mehr, weil schon eine Antwort vorhanden):
http://www.ulrichradig.de/forum/viewtopic.php?f=27&t=1328&p=5407

Mailversand ist wohl schon dabei.

Und noch eine Anmerkung: Wenn du es ganz genau wissen willst kann ich 
dir ein Studium empfehlen;-)

Da lernst du dann jedes Bit von z.B. TCP/IP kennen und was es 
bedeutet...

Die Unterlagen dazu kriegst du z.B. hier: 
https://olat.zhaw.ch/olat/url/RepositoryEntry/56623108

(einfach "Gastzugang" wählen)

Ich wünsche viel Spass beim lesen, es hat ein Skript und Folien.


mfg Andreas

von Karol B. (johnpatcher)


Lesenswert?

Kan asta schrieb:
> Wenn man auf senden klickt, dann überträgt der Computer die E-Mail per
> SMTP an den SMTP-Server des Mailproviders. Irgendwie schon sehr trivial.
Sofern das ernst gemeint ist:

Dann schaue dir mal an was der Computer im Hintergrund macht bzw. 
letztendlich verschickt. I.d.R. wirst du haufenweise Header finden, 
welche nicht unbedingt selbsterklärend sind. Wenn du willst, dass deine 
E-Mail zugestellt wird bzw. nicht in irgendwelchen Spam-Filtern landet, 
dann ist es durchaus empfehlenswert, dass die E-Mail die entsprechenden 
RFCs erfüllt (was generell eine gute Idee ist ;)). Und wenn du schon 
einmal einen Blick in die entsprechenden RFCs geworfen hättest, dann 
wüsstest du, dass diese unheimlich lang sind.

Das ist sicherlich nicht "rocket science", aber trotzdem ist das etwas, 
dass man mal "nicht eben so" vollständig und richtig macht.

Andreas B. schrieb:
> Dann fehlt dir fürs Mailversenden nur noch SMTP, welches ziemlich
> einfach ist und du durch googeln leicht mehr erfährst.
Nein, STMP ist eben nicht so einfach, wie es viele darstellen. Ja, der 
prinzipielle Aufbau ist einfach. Aber sobald man ins Detail geht und 
sich mit den vielen Headern auseinandersetzt, sowie mit dem Thema der 
Kodierung und ähnlichem, wird man feststellen, dass es doch "ein wenig" 
komplexer ist.

Morz Kerl schrieb:
> ann kann man sich mit dem Routing System auseinander setzen. Das nennt
> sich dann ARP, DNS, BIND. Da gib't auch wieder Buecher drueber.
Und damit hast du schon angefangen, Missinformationen zu verteilen bzw. 
für Verwirrung zu sorgen. Das Routing ist ein Problem von Schicht 3 
(d.h. IP). ARP hat damit nichts zu tun und ist Bestandteil von Schicht 2 
(welches der Zuordnung von MAC-Adressen zu IP-Adressen dient). DNS und 
BIND haben damit absolut nichts zu tun. Die dienen zur Namensauflösung 
und sind i.d.R. nur Komfort.

von Kan a. (Firma: Basta) (kanasta)


Angehängte Dateien:

Lesenswert?

Karol Babioch schrieb:
> I.d.R. wirst du haufenweise Header finden

Nunja, einen SMTP-Header. Da hast du Recht.

Wenn du TCP selbst bauen willst, wirst du auch TCP/IP-Header finden.

von Andreas B. (andreasb)


Lesenswert?

Karol Babioch schrieb:
> Kan asta schrieb:
>> Wenn man auf senden klickt, dann überträgt der Computer die E-Mail per
>> SMTP an den SMTP-Server des Mailproviders. Irgendwie schon sehr trivial.
> Sofern das ernst gemeint ist:
>
> Dann schaue dir mal an was der Computer im Hintergrund macht bzw.
> letztendlich verschickt. I.d.R. wirst du haufenweise Header finden,
> welche nicht unbedingt selbsterklärend sind. Wenn du willst, dass deine
> E-Mail zugestellt wird bzw. nicht in irgendwelchen Spam-Filtern landet,
> dann ist es durchaus empfehlenswert, dass die E-Mail die entsprechenden
> RFCs erfüllt (was generell eine gute Idee ist ;)). Und wenn du schon
> einmal einen Blick in die entsprechenden RFCs geworfen hättest, dann
> wüsstest du, dass diese unheimlich lang sind.

Da er kaum ein kompletten Email Client schreiben wird empfehle ich in 
dieser Hinsicht Wireshark und z.B. Thunderbird. Und schaue mal was 
Thunderbird macht, so als Beispiel, nicht als Spez.

Solange der Text 7bit ASCII und keine Ahänge etc. beinhaltet halten sich 
die Encodingprobleme in Grenzen, und etwas anderes würde ich als 
Anfänger garnicht erst versuchen.



> Morz Kerl schrieb:
>> ann kann man sich mit dem Routing System auseinander setzen. Das nennt
>> sich dann ARP, DNS, BIND. Da gib't auch wieder Buecher drueber.
> Und damit hast du schon angefangen, Missinformationen zu verteilen bzw.
> für Verwirrung zu sorgen. Das Routing ist ein Problem von Schicht 3
> (d.h. IP). ARP hat damit nichts zu tun und ist Bestandteil von Schicht 2
> (welches der Zuordnung von MAC-Adressen zu IP-Adressen dient). DNS und
> BIND haben damit absolut nichts zu tun. Die dienen zur Namensauflösung
> und sind i.d.R. nur Komfort.

Ich stimme kanasta zu.

Hier würde ich als Anfänger eben nicht anfangen, von oben nach unten (im 
OSI Modell) ist meiner Meinung nach einfacher als von unten nach oben.



mfg Andreas

von Morz Kerl (Gast)


Lesenswert?

Natuerlich braucht man ARP, DNS und dergleichen wenn man email 
implementieren will. Erst man muss man sich beim naechsten Router 
anmelden. Dann muss man den Namen des SMTP Servers aufloesen. Und erst 
dann kann eine email lossenden.
Schoen wenn ein Stack das macht, aber wenn nicht, dann eben nicht.
Aeh ja. Mit einem Mega8 macht man's nicht.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

Morz Kerl schrieb:
> Mit einem Mega8 macht man's nicht.

Dafür mit einem Mega32.

Morz Kerl schrieb:
> Erst man muss man sich beim naechsten Router anmelden.

P.S.:Es gibt auch "statische" IPs.

Ist doch alles alte Hose. Gibt es längst. Schauen die Stümper hier:
http://home.arcor.de/fuenfundachtzig/me/me.htm

Ich finde es immer wieder belustigend, wie Anfänger Anfänger davor 
warnen, wie kompliziert und unüberschaubar alles ist.  Natürlich muss 
man nicht bücherweise RFCs wälzen, um eine einfache Mail abzusetzen. 
Auch haben RFCs und Spam-Filter nix miteinander zu tun. Und dass das 
Greenhorn den TCP-Stack nicht selbst schreiben wird, ist doch wohl auch 
allen klar. Dafür gibt es doch die generische und allseits beliebte 
CopyPaste-Programmiersprache.

@Karol Babioch:
http://www.ceseros.de/wer-wir-sind
peinlich, peinlich.

von Michael M. (technikus)


Lesenswert?

.... schrieb:
> 3 riesen themengebiete in einem schlag... ob das eine gute idee ist?

Naja, wenn man sich bereits in der AVR-Welt zurechtgefunden hat, ist das 
AVR NetIO von Pollin kombiniert mit z.B. Ulrich Radigs Firmware eine 
ganz interessante Sache. Mich hat es fasziniert, wie man mit solch 
begrenzten Ressourcen einen kleinen Webserver aufziehen kann.
Alles was man wissen muß gibt es ja hier 
http://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin

Servus
Michael

von Karol B. (johnpatcher)


Lesenswert?

Kan asta schrieb:
> Nunja, einen SMTP-Header. Da hast du Recht.
Nein. nicht einen, sondern eine Vielzahl solcher. Hast du dir denn 
überhaupt schon einmal den "Quellcode" einer E-Mail angesehen. Sofern 
diese über richtig konfigurierte E-Mailserver geleitet werden soll, 
bedarf es schon ein wenig mehr als das was du im Screenshot gezeigt 
hast. Gerade mit Kodierung, Anhängen und derlei Lustigkeiten wird es 
"interessant".

Kan asta schrieb:
> Wenn du TCP selbst bauen willst, wirst du auch TCP/IP-Header finden.
Wobei da schon ein beträchtlicher Unterschied besteht. TCP/IP Header 
sind "binär" und verhältnismäßig kurz. SMTP-Header liegen in Textform 
vor und können fast beliebig komplex werden.

Andreas B. schrieb:
> Solange der Text 7bit ASCII und keine Ahänge etc. beinhaltet halten sich
> die Encodingprobleme in Grenzen, und etwas anderes würde ich als
> Anfänger garnicht erst versuchen.
Ich würde als Anfänger nicht einmal das versuchen. Wozu auch ;).

Andreas B. schrieb:
> Hier würde ich als Anfänger eben nicht anfangen, von oben nach unten (im
> OSI Modell) ist meiner Meinung nach einfacher als von unten nach oben.
Keine Ahnung, ob das wirklich einfacher ist. Klassischerweise macht man 
es eben von unten nach oben (d.h. von Schicht 1 an aufwärts). Das hat 
halt den Vorteil, dass man sich in den "oberen" Schichten auf die 
unteren "verlassen" kann, da man diese bereits kennt. Das macht es 
vielleicht einfacher das "große Ganze" zu überblicken. Ansonsten müsste 
man ja stets sagen, dass sich da untere Schichten drum kümmern, ohne 
diese bereits zu kennen. Wenn man sich mit diesen dann befasst, hat man 
unter Umständen das Problem, dass man vielleicht den Überblick verloren 
hat.

Morz Kerl schrieb:
> Natuerlich braucht man ARP, DNS und dergleichen wenn man email
> implementieren will.
Es ging konkret um das Routing. Der Satz oben ist so formuliert, als ob 
ARP und DNS etwas mit dem Routing zu zu hätten. Das haben sie aber 
definitiv nicht. Und was BIND mit dem Ganzen zu tun hat, weiß ich auch 
nicht. BIND ist eine konkrete Implementierung eines DNS-Servers. Wir 
haben bisher nur von Protokollen bzw. abstrakten Konzepten gesprochen.

Kan asta schrieb:
> Ich finde es immer wieder belustigend, wie Anfänger Anfänger davor
> warnen, wie kompliziert und unüberschaubar alles ist.
Das sagst natürlich du als Profi, der schon alles mindestens zweimal 
implementiert hat?

Kan asta schrieb:
> Auch haben RFCs und Spam-Filter nix miteinander zu tun.
Das lässt mich wiederum daran zweifeln, ob du schon je etwas in dieser 
Richtung implementiert hast. Ein jeder moderne Spamfilter (bzw. sogar 
Mailserver, welcher die E-Mail dann gar nicht erst annimmt) wird nämlich 
die E-Mail darauf prüfen, ob sie den gängigen RFCs entspricht, da man in 
der Vergangenheit beobachtet hat, dass diejenigen, die viel Spam 
verschicken i.d.R. eben keine Lust haben sich durch diese zu "wälzen". 
Das fängt mit einfachen Datums- und E-Mailangaben an, und zieht sich 
durch den Rest der Header.

Kan asta schrieb:
> @Karol Babioch:
> http://www.ceseros.de/wer-wir-sind
> peinlich, peinlich.
Ich nehme an, dass man es als eine Form der Anerkennung ansehen kann, 
wenn man sein Gegenüber "googlet" ;). Und zu o.g. Seite kann ich nur 
soviel sagen: Meine Idee war es nicht ;).

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

Karol Babioch schrieb:
> Gerade mit Kodierung, Anhängen und derlei Lustigkeiten wird es
> "interessant".

Natürlich, der Anfänger will mit seinem Mikrocontroller lange 
BASE64-Passagen mit mehreren gechunkten Bilddateien übertragen.

Karol Babioch schrieb:
> Ich würde als Anfänger nicht einmal das versuchen.

Aber hauptsache mitreden.

Karol Babioch schrieb:
> Es ging konkret um das Routing.

Der TO will keinen Router bauen.

Karol Babioch schrieb:
> Das sagst natürlich du als Profi, der schon alles mindestens zweimal
> implementiert hat?

Einmal reicht.

Karol Babioch schrieb:
> Ein jeder moderne Spamfilter (bzw. sogar
> Mailserver, welcher die E-Mail dann gar nicht erst annimmt) wird nämlich
> die E-Mail darauf prüfen, ob sie den gängigen RFCs entspricht

Natürlich, mit formaler Verifikation und Induktion.

Karol Babioch schrieb:
> eine Idee war es nicht ;).

Würd ich jetzt auch so sagen, wenn ich in diesem Affen- ähh Appzirkus 
drinstecken würde.

von Karol B. (johnpatcher)


Lesenswert?

Kan asta schrieb:
> Natürlich, der Anfänger will mit seinem Mikrocontroller lange
> BASE64-Passagen mit mehreren gechunkten Bilddateien übertragen.
Das sollte nur einen Ausblick darüber verschaffen, dass es schnell 
"kompliziert" wird.

Kan asta schrieb:
> Aber hauptsache mitreden.
Entgegen deiner Einschätzung bilde ich mir ein, durchaus mitreden zu 
können. Lass das vielleicht andere entscheiden.

Kan asta schrieb:
> Der TO will keinen Router bauen.
Der TO hat aber nach den Grundlagen des Internets gefragt. Router 
gehören da sicherlich mit dazu. Außerdem hast du das natürlich 
wunderschön aus dem Kontext gerissen. "Morz Kerl" hatte ARP und DNS 
(bzw. BIND) mit dem Routing in Verbindung gebracht. Ich habe ihn 
lediglich darauf hingewiesen, dass das falsch ist.

Kan asta schrieb:
> Einmal reicht.
Dem setze ich das folgende Zitat entgegen: "Plan to throw one away; you 
will, anyhow."

Kan asta schrieb:
> Natürlich, mit formaler Verifikation und Induktion.
Das du versucht das jetzt ins Lächerliche zu ziehen, soll zeigen, dass 
ich recht habe, oder wie ;)?

Kan asta schrieb:
> Würd ich jetzt auch so sagen, wenn ich in diesem Affen- ähh Appzirkus
> drinstecken würde.
Interessant, dass du dich so auf die persönliche Schiene verbissen hast: 
Fehlen dir die Argumente?

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

Wozu braucht ein Vollprofi wie ich Argumente?
Wieso rede ich überhaupt noch mit dir?
wieso hast du keine Ahnung?
Fragen über Fragen...

von Matthias (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.