Ich simuliere HTTP-Client-Verkehr mit RAW-Socket. Ich sende ein SYN-Paket und hole das SYN-ACK vom Server. Schließlich sende ich ein ACK + Anfragepaket und warte auf die Antwort. Ich bemerkte, dass bei der Verwendung von wget oder curl der erste ACK und die Anfrage in zwei verschiedenen Paketen gesendet werden. Warum ist das und ist das relevant für irgendetwas?Warum wird eine HTTP-Anfrage nach dem ersten Paket gesendet?
0
A
Antwort
0
Eine Clientanwendung, die einen TCP-Socket verwendet, ruft in der Regel socket() auf, dann connect() und send(). Die Funktion connect() stellt die TCP-Verbindung her, und dazu benötigt das TCP-Protokoll 3 Pakete: SYN, SYN + ACK, ACK. Danach sendet der Aufruf send() die ersten Daten. Daher werden die ACK und Daten getrennt gesendet.
Ich denke, Ihr Paketfluss erfüllt wahrscheinlich das TCP-Protokoll (siehe https://tools.ietf.org/html/rfc793), aber es ist ungewöhnlich.
Verwandte Themen
- 1. Zeichenfolge nach dem ersten '.'
- 2. Warum eine Schaltfläche geklickt wird, wenn ein Formular gesendet wird?
- 3. Warum wird Event.RENDER nicht gesendet?
- 4. Warum wird das zweite Instrument vor dem ersten evaluiert?
- 5. RxSwift-Treiber wird nach dem ersten Wert entsorgt
- 6. Gruppe nach dem ersten Zeichen
- 7. Stopp DIR-Befehl nach dem ersten Treffer der Suche wird
- 8. Wie wird der Junit-Test nach dem ersten Test abgebrochen?
- 9. Canvas-Manipulationsereignis, das erst nach dem ersten Versuch ausgelöst wird
- 10. Angular $ q.all wird nach dem ersten Versprechen aufgerufen
- 11. C Programmabsturz nach dem ersten Scanf
- 12. Warum werden Nachrichten an die Trace-Quelle gesendet, die bei allen außer dem ersten Komponententest fehlen?
- 13. Scrollen Sie nach unten, wenn eine neue Nachricht gesendet wird
- 14. SSIS 2012 Paket hängt nach dem Zufallsprinzip
- 15. Splash-Screen nach dem ersten Laden ausschalten
- 16. Java Regex Rückkehr nach dem ersten Spiel
- 17. JQuery funktioniert nach dem ersten Klick nicht
- 18. Warum wird mein Javascript-Formular nicht gesendet?
- 19. Zurück zum ersten Frame nach dem Videospiel
- 20. SparkSQL zweite Explosion nach dem ersten
- 21. XCOPY-Ausschlussliste nach dem ersten Ausschluss ignoriert
- 22. Prevent Ereignis nach dem ersten Ereignis-Erfassungs
- 23. Wie zählen Zeilen nach dem ersten Buchstaben?
- 24. PyUnit: Stop nach dem ersten Test fehlgeschlagen?
- 25. Angularjs Last nach dem ersten JSON
- 26. Ändern der Sortierkriterien nach dem ersten Ergebnis
- 27. Erhalte alles nach dem ersten Zeichen
- 28. zip variable leer nach dem ersten Gebrauch
- 29. PHP/MySQL-Gruppenliste nach dem ersten Zeichen
- 30. Nach dem ersten Null-Bit suchen (Assembly)?
Ich denke, Ihre Frage wird beantwortet [hier] (http://stackoverflow.com/questions/3761276/when-should-i-use-tcp-nodelay-and-when-tcp-cork) – DaSourcerer
Es ist weil das ist die Art, wie sie arbeiten, und nein, es ist für nichts relevant. – EJP