Stel dat in HTTP-antwurd nei it passearjen fan Squid yn ferskate fêstleine TCP-segmenten ferskynt. Dat kin gewoan TCP-gedrach wêze, en gjin bewiis dat it antwurd ferkeard ferdield is.

In foarútproxy hat normaal twa ferbiningen:

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

Elke ferbining hat syn eigen TCP-steat, folchnûmers en pakketisearring. De proxy kin gegevens fan ien ferbining lêze en nei de oare skriuwe sûnder de oarspronklike segmintegroottes te bewarjen. Buffering, stjoertiid, oerlêst en de grinzen fan it paad kinne in oare groepearring opleverje.

Trije grinzen dy’t de muoite wurdich binne om apart te hâlden

GrinsWat dy bepaalt
TCP-segmentIt ferfier- en netwurkpaad
Resultaat fan in socket-lêzingDe beskikbere streambytes en de buffer fan de oanropper
HTTP-berjocht of -frameDe ramwurkregels fan it HTTP-protokol

Ien lêzing kin in part fan in kop, in folsleine kop tegearre mei lichemsbytes, of gegevens befetsje dy’t mear as ien grinzen op applikaasjenivo oerstekke. TCP ferbynt “ein fan it HTTP-antwurd” net mei de ein fan in slagge lêzing.

Dêrom sammelt in HTTP/1.1-analyzer koppen en past de jildende regels foar lichemsramwurk ta, wêrûnder lingte, oerdrachtskodearring of tastiene ferbiningssluting. In HTTP/2-frame is in protokolstruktuer dy’t sels TCP-segmenten oerstekke kin; it is gjin oare namme foar in netwurkpakket.

In slagge CONNECT-tunnel bewarret de tunnelleare streambytes wylst er noch altyd twa TCP-skinkels brûkt. Syn segmintgrinzen kinne ferskille sels as de proxy de bytes yn ’e tunnel net feroare hat.

Fergelykje by it ûndersykjen fan skea de opnij gearstalde applikaasjegegevens. Pakketten telle of oan beide kanten gelikense pakketlingten ferwachtsje freget TCP om in grinsgarânsje dy’t it net jout.

Relatearre artikelen