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 ?
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
Danke für deine Antwort. Wenn also jemand wissen möchte welcher Ethernet Standart verwendet wird, ist das Ethernet TCP/IP. Korrekt?
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.
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.
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?
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
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...
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
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.
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...
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/
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.