Nid yw procsïi blaen yn cadw ffiniau segmentau TCP
Gwahanwch segmentu TCP, darlleniadau soced ac ymffurfio HTTP wrth archwilio traffig ar y ddwy ochr i brocsïi blaen.
Tybiwch fod ymateb HTTP yn ymddangos mewn sawl segment TCP a gafwyd ar ôl iddo basio trwy Squid. Gall hynny fod yn ymddygiad TCP cyffredin, yn hytrach na thystiolaeth bod yr ymateb wedi’i rannu’n anghywir.
Yn arferol, mae gan brocsïi blaen ddau gysylltiad:
client ⇄ TCP connection A ⇄ proxy ⇄ TCP connection B ⇄ origin
Mae gan bob cysylltiad ei gyflwr TCP, ei rifau dilyniant a’i becynnu ei hun. Gall y procsïi ddarllen data o un cysylltiad a’i ysgrifennu i’r llall heb gadw maint y segmentau gwreiddiol. Gall byffro, amseru anfon, tagfeydd a therfynau maint y llwybr gynhyrchu carpiad gwahanol.
Tair ffin sy’n werth eu cadw ar wahân
| Ffin | Beth sy’n ei phennu |
|---|---|
| Segment TCP | Y llwybr cludo a’r llwybr rhwydwaith |
| Canlyniad darllen soced | Y beitiau ffrwd sydd ar gael a byffer y galwr |
| Neges neu ffrâm HTTP | Rheolau ymffurfio’r protocol HTTP |
Gall un darlleniad gynnwys rhan o bennawd, pennawd cyfan ynghyd â beitiau corff, neu ddata sy’n croesi mwy nag un ffin ar lefel cymhwysiad. Nid yw TCP yn cysylltu “diwedd yr ymateb HTTP” â diwedd darlleniad llwyddiannus.
Felly mae parsar HTTP/1.1 yn cronni pennawdau ac yn defnyddio’r rheolau ymffurfio corff perthnasol, gan gynnwys hyd, codio trosglwyddo neu gau cysylltiad a ganiateir. Mae ffrâm HTTP/2 yn strwythur protocol a all ei hun groesi segmentau TCP; nid yw’n enw arall am becyn rhwydwaith.
Mae twnnel CONNECT llwyddiannus yn cadw’r ffrwd beitiau twnelu tra’n dal i ddefnyddio dwy goes TCP. Gall ei ffiniau segment fod yn wahanol hyd yn oed pan nad yw’r procsïi wedi newid y beitiau y tu mewn i’r twnnel.
Wrth ymchwilio i lygredd, cymharwch y data cymhwysiad a ailosodwyd. Mae cymharu cyfrifon pecynnau neu ddisgwyl hyd pecynnau unfath ar y ddwy ochr yn gofyn i TCP am warant ffin nad yw’n ei rhoi.