Forum: Mikrocontroller und Digitale Elektronik Ethernet Protokoll


von Lars W. (Gast)


Lesenswert?

Hallo,

ich habe einen Webserver mit einem ESp32 aufgebaut. Der ESp32 verbindet 
sich per WLAn mit dem Router und wartet auf Anfragen. Jetzt kann man 
einen PC mit dem Router verbinden und die html Seite vom ESP anfragen.
Diese Kommunikation funktioniert mit dem http Protokoll.

Jetzt bekam ich die Frage: Welches Protokoll für diese Kommunikation 
verwendet wird ? Bzw. Welcher Industrie Standart verwendet wird ? Also 
zwischen PC und ESP.
Aus meiner Sicht funktioniert diese Kommunikation über das Http 
Protokoll.
Ist das soweit korrekt. Oder müsste man sagen über das Ethernet TCP/IP 
Protokoll ?

Ich verstehe den Unterschied nicht. Wenn das Http Protokoll verwendet 
wird wird doch automatisch auch die TCP Schicht,die IP Schicht und die 
Ethernet Schicht benutzt.

Vielleicht kann mir hier jemand helfen ?

von Flip B. (frickelfreak)


Lesenswert?

Die Bauen aufeinander auf, beispiele und erkläsrungen findets du im 
zusammenhang mit dem schichtenmodell.  HTTP kannst du auch z. b. plain 
text über einen UART senden, wäre aber ungewöhnlich

von Thomas W. (goaty)


Angehängte Dateien:

Lesenswert?


von Lars W. (Gast)


Lesenswert?

Danke für deine Antwort. Wenn also jemand wissen möchte welcher Ethernet 
Standart verwendet wird, ist das Ethernet TCP/IP. Korrekt?

von Stefan F. (Gast)


Lesenswert?

Lars W. schrieb:
> Danke für deine Antwort. Wenn also jemand wissen möchte welcher
> Ethernet Standart verwendet wird, ist das Ethernet TCP/IP. Korrekt?

Du verwendest HTTP über TCP/IP über WiFi. Die Versionen der Protokolle 
sollte man wohl noch angeben. Vermutlich:

* HTTP 1.1
* TCP/IP v4
* Wifi 802.11g oder n

Unter Ethernet verstehe ich verkabelte Verbindungen.

von Stefan (Gast)


Lesenswert?

Lars W. schrieb:
> Ist das soweit korrekt. Oder müsste man sagen über das Ethernet TCP/IP
> Protokoll ?
Formal korrekt wäre: http (Anwendung) over TCP (Transport) over 
IP(Vermittlung) over 802.11 (WLAN) typ. Bitübertragung in einen 
geteilten Medium. 802.3 Ethernet wird typ. bei leitungsgebundener 
Bitübertragung genutzt.

von Lars W. (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für eure Antworten. Ich werde dann mal noch konkreter.

Im Anhang findet Ihr eine Möglichen Aufbau. Der PC ist über LAN mit dem 
Router verbunden, der ESP32 kann auch über LAN mit dem Router verbunden 
sein oder auch über WLAN.

Öffnet der PC einen Browser und tippt die IP ein, sendet der PC einen 
HTTP GET Request an den ESP32. Dieser Antwortet indem er die index.html 
überträgt.

Die Frage war: Welches Protokoll wird für diese Verbindung verwendet?
Antwort: Das http Protokoll, dieses basiert auf TCP/IP.

Dann ist die Frage doch korrekt beantwortet, oder nicht?

von Jack V. (jackv)


Lesenswert?

Lars W. schrieb:
> Antwort: Das http Protokoll, dieses basiert auf TCP/IP.
>
> Dann ist die Frage doch korrekt beantwortet, oder nicht?

Nein. HTTP, TCP und IP sind drei der verwendeten Protokolle. Darunter 
ist eben noch Ethernet, im Falle von Ethernet. Die Sache mit’m 
Schichtenmodell wurde hier schon erwähnt – du solltest dich einlesen, 
wenn es dich wirklich interessiert. Schon die Übersicht auf WP sollte 
für Erleuchtung sorgen: https://de.wikipedia.org/wiki/Ethernet

Lars W. schrieb:
> Im Anhang findet Ihr eine Möglichen Aufbau.

Im Anhang finde ich leider nur Datenmüll. Mag daran liegen, dass ich die 
benötigte Software nicht besitze. Ein Bild, im Falle von Schemata 
idealerweise SVG, wäre die bessere, weil von jedem anschaubare, Option 
gewesen.

: Bearbeitet durch User
von Lars W. (Gast)


Lesenswert?

Also wäre die korrekte Antwort: HTTP - TCP - IP - Ethernet ?

von 50c (Gast)


Lesenswert?


von Jack V. (jackv)


Lesenswert?

Die korrekte Antwort wäre: HTTP über TCP über IP über Ethernet.

von c-hater (Gast)


Lesenswert?

Lars W. schrieb:

> Dann ist die Frage doch korrekt beantwortet, oder nicht?

Nein, sie ist unvollständig beantwortet.

Die (möglicherweise auch nur fast*) vollständige Antwort wurde im Thread 
bereits gepostet.

(*) Wenn der PC seinerseits per LAN und nicht per WLAN an den AP 
angebunden ist, dann fehlt halt die Beschreibung dieses LAN-Stücks.

Es kann aber auch sein, das sie ZU vollständig beantwortet wurde, weil 
der Frager seinerseits keine Ahnung hat und eigentlich nur "http" 
hören/lesen wollte...

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Schau dir das mal an. Vielleicht hat sich deine Frage danach erledigt.
https://www.adlerweb.info/blog/2016/09/25/bitbasics-crashkurs-netzwerkprotokolle/

Edit: Link getauscht

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Wobei man in der Regel "TCP/IP" schreibt, nicht "TCP über IP". Keine 
Ahnung, warum. Vielleicht weil diese beiden Layer in der Regel in ein 
und dem Selben stück Programm/Treiber stecken.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Wobei man in der Regel "TCP/IP" schreibt, nicht "TCP über IP". Keine
> Ahnung, warum. Vielleicht weil diese beiden Layer in der Regel in ein
> und dem Selben stück Programm/Treiber stecken.

In gut strukturierten Stacks sind IP und TCP natürlich ziemlich 
weitgehend voneinander abgeschottet, genau so, wie das Modell das als 
sinnvoll beschreibt. Man kann also TCP-Support i.d.R. einfach weglassen, 
wenn man TCP nicht benötigt und der Protokollstack läuft trotzdem 
(unterstützt dann aber natürlich kein TCP mehr).

Aber trotzdem hast du natürlich Recht, weil jeder Stack, der was auf 
sich hält, natürlich TCP zumindest als Option anbietet.

Zumindest theoretisch wäre es aber denkbar, den Stack des einen 
Anbieters ohne TCP zu benutzen, dafür aber die TCP-Implementierung eines 
anderen. Aber nur, wer sonst nix zu tun hat, würde sich auf dieses 
Abenteuer einlassen wollen...

von Stefan (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wobei man in der Regel "TCP/IP" schreibt, nicht "TCP über IP".
Wobei diejenigen die nur die Regel kennen bereits 3 von 4 Schichten als 
'korrekt' empfinden.
Schau dir mal das Video in dem die 4 Schichten erklärt werden mal an. 
Vielleicht hat sich deine Regel danach erledigt.
https://www.adlerweb.info/blog/2016/09/25/bitbasics-crashkurs-netzwerkprotokolle/

von Sebastian W. (wangnick)


Lesenswert?

Lars W. schrieb:
> Öffnet der PC einen Browser und tippt die IP ein, sendet der PC einen
> HTTP GET Request an den ESP32. Dieser Antwortet indem er die index.html
> überträgt.

Im Prinzip ja. Tatsächlich passiert aber einiges mehr. Der PC baut erst 
einmal eine TCP/IP-Verbindung auf, dann sendet er den HTTP GET request, 
dann erhält er die Antwort, und dann wird die TCP/IP-Verbindung auch 
irgendwann wieder abgebaut. Und jeder dieser Schritte besteht aus 
mehreren Paketen die hin- und herfliessen. Zum Beispiel muss die 
IP-Schicht des PC die Ethernet-Zieladresse (MAC) in den gesendeten 
Paketen angeben, und wenn er die vom ESP32 (oder vom nächsten Gateway 
auf der Route zum ESP32) noch nicht kennt muss er sie erst noch aus der 
IP-Adresse ermitteln, bei IPv4 mit dem ARP-Protokoll.

Hilfreich zum Verständnis ist dabei immer Wireshark.

LG, Sebastian

: Bearbeitet durch User
Beitrag #6576656 wurde von einem Moderator gelöscht.
von Stefan (Gast)


Lesenswert?

Sebastian W. schrieb:
> Der PC baut erst einmal eine TCP/IP-Verbindung auf,
Nein. Der PC sendet erst die Anforderung einer HTTP-Verbindung an den 
ESP32 und dann bauen PC und ESP32 eine HTTP/TCP-Verbindung auf 
(Schicht 4/Verbindungs'sprache' durch Wahl von Verbindungsport:80; 
aufbauend auf Schicht 3:TCP)
Hilfreich zum Verständnis könnte Erfahrungen mit einer Telefonverbindung 
sein, die auf Anruf des PC-Nutzers nach Reaktion des Angerufenen 
aufgebaut wird.

> dann sendet er den HTTP GET request,
mit Wireshark ließe sich auch das Senden von 
connection:close|keep-alive
beobachten

> dann erhält er die Antwort,
korrekt

> und dann wird die TCP/IP-Verbindung auch
> irgendwann wieder abgebaut.
Nein. Besser programmierte Anwendungen wie ein Browser belasten den 
TCP/IP-Stack nicht unnötig mit ungenutzten TCP-Verbindungen bis sie 
irgendwann durch irgendeine Ursache abgebaut werden.

> Jeder Schritte besteht aus
> mehreren Paketen die hin- und herfliessen.
Korrekt werden IPv4/Ethernet und andere Pakete gesendet und empfangen. 
Bei fließenden Paketen ist etwas in der IT defekt.

> Zum Beispiel muss die IP-Schicht des PC die
> Ethernet-Zieladresse (MAC) in den gesendeten
> Paketen angeben,
Nein, die IP-Schicht (IP == Internet Protokoll; Vermittlungsschicht) 
kennt keine MAC.
Die lokal-Netzwerk-Schicht(Schicht 1 im TCP/IP-Schichtenmodell) muss 
zusätzlich zur MAC-Adresse die IP-Zieladresse in den Paketen angeben, 
damit der Inhalt über das LAN hinaus vermittelt werden kann.

> und wenn er die vom ESP32 (oder vom nächsten Gateway
> auf der Route zum ESP32) noch nicht kennt muss er sie erst > noch aus der 
IP-Adresse ermitteln, bei IPv4 mit dem ARP-Protokoll.
Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu 
einer Netzwerkadresse der Internetschicht die physische Adresse 
(Hardwareadresse) der Netzzugangsschicht ermittelt
Schicht 2 (Internet) <--- ARP ---> Schicht 1 (LAN)
https://de.wikipedia.org/wiki/Address_Resolution_Protocol

> Hilfreich zum Verständnis ist dabei immer Wireshark.
Nein. Mit Verständnis des verwendeten IP/TCP-Modell kann eine 
HTTP-Verbindung
https://www.tecchannel.de/a/hypertext-transfer-protocol,401210,2
über den Rechner auf dem Wireshark läuft verstanden/analysiert werden.

Korrekte Kurzschreibweisen HTTP-Übertragung im TCP/IP-Schichtenmodell:
http://www.informatik.uni-hamburg.de/TKRN/world/lernmodule/LMint/Popup/TCP-IP-schichtenmodell.htm:
"HTTP - TCP - IP - Ethernet"  (das Verständnis konnte alle 4 Schichten 
mit dem gleichen Symbol trennen)
"HTTP1.1 über TCP über IPv4 über Ethernet" (zusätzlich die kulturelle 
Angewohnheit "4 über 3 über 2 über 1" statt "4 über 3/2 über 1"  zu 
schreiben)

DNS-Übertragung im TCP/IP-Schichtenmodell:
"DNS/UDP/IPv4/Ethernet"  (das Verständnis konnte alle 4 Schichten mit 
dem gleichen Symbol trennen)
"DNS über UDP/IP über Ethernet" (wenn ein man in der Regel "UDP/IP" 
statt "UDP über IP" schreibt)

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.