Ethernet Protokoll

Gast #6573740
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 ?
Gast #6573770
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.
Gast #6573790
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.
Gast #6573852
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?
Angehängte Dateien:
#6573856
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.
Gast #6573865
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...
Gast #6574020
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...
Gast #6574112
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/
#6576646
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
Beitrag #6576656 wurde von einem Moderator gelöscht.
Gast #6577290
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)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren