Stellt Iech vir, eng HTTP-Antwert erschéngt no dem Passage duerch Squid an e puer opgehollenen TCP-Segmenter. Dat kann normale TCP-Verhalen sinn, an net de Beweis, datt d’Äntwert falsch opgedeelt gouf.

En Forward-Proxy huet normalerweis zwou Verbindungen:

client ⇄ TCP connection A ⇄ proxy ⇄ TCP connection B ⇄ origin

All Verbindung huet hiren eegene TCP-Zoustand, hir Sequenznummeren an hir Paketéierung. De Proxy kann Daten aus enger Verbindung liesen an an déi aner schreiwen, ouni déi ursprénglech Segmentgréissten ze halen. Pufferung, Sendezäit, Iwwerlaaschtung an d’Gréisstgrenze vum Wee kënnen eng aner Gruppéierung erginn.

Dräi Grenzen, déi een apart sollte halen

GrenzWat se bestëmmt
TCP-SegmentDen Transport- an de Netzwierkwee
Resultat vun engem Socket-LiesenDéi verfügbar Stream-Bytes an de Puffer vum Opruffenden
HTTP-Noriicht oder -FrameD’Framing-Regele vum HTTP-Protokoll

Ee Lies kann en Deel vun engem Header, en ganze Header zesumme mat Body-Bytes oder Daten enthalen, déi méi wéi eng Grenz op Applikatiounsniveau iwwerschreiden. TCP verbënnt „Enn vun der HTTP-Antwert“ net mam Enn vun engem gelongene Lies.

Dofir sammelt en HTTP/1.1-Parser Headeren a wendt déi zoutreffend Reegele fir d’Body-Framing un, dorënner Längt, Transferkodéierung oder erlaabt Zoumaache vun der Verbindung. En HTTP/2-Frame ass eng Protokollstruktur, déi selwer TCP-Segmenter ka iwwerschreiden; et ass keen aneren Numm fir e Netzwierkpak.

En erfollegräichen CONNECT-Tunnel hält de getunnelte Byte-Stroum, benotzt awer nach ëmmer zwou TCP-Strecken. Seng Segmentgrenze kënne verschidde sinn, och wann de Proxy d’Byten am Tunnel net geännert huet.

Wann Dir e Schued ënnersicht, vergläicht déi nei zesummegesat Applikatiounsdaten. Paketzuelen ze vergläichen oder op béide Säite identesch Paketlängten ze erwaarden, freet vum TCP eng Grenzgarantie, déi et net gëtt.

Ähnlech Artikelen