Katakan satu respons HTTP muncul dalam beberapa segmen TCP yang ditangkap selepas melalui Squid. Itu boleh jadi tingkah laku TCP biasa, bukan bukti bahawa respons itu dipecahkan secara salah.

Proksi hadapan biasanya mempunyai dua sambungan:

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

Setiap sambungan mempunyai keadaan TCP, nombor jujukan dan pemaketan sendiri. Proksi boleh membaca data daripada satu sambungan dan menulisnya ke sambungan yang lain tanpa mengekalkan saiz segmen asal. Penimbalan, masa penghantaran, kesesakan dan had saiz laluan boleh menghasilkan pengelompokan lain.

Tiga sempadan yang wajar diasingkan

SempadanApa yang menentukannya
Segmen TCPLaluan pengangkutan dan rangkaian
Hasil bacaan soketBait aliran yang tersedia dan penimbal pemanggil
Mesej atau bingkai HTTPPeraturan pembingkaian protokol HTTP

Satu bacaan boleh mengandungi sebahagian pengepala, pengepala penuh bersama bita badan, atau data yang merentasi lebih daripada satu sempadan peringkat aplikasi. TCP tidak mengikat “penghujung respons HTTP” pada penghujung bacaan yang berjaya.

Oleh itu penghurai HTTP/1.1 mengumpul pengepala dan menggunakan peraturan pembingkaian badan yang berkenaan, termasuk panjang, pengekodan pemindahan atau penutupan sambungan yang dibenarkan. Bingkai HTTP/2 ialah struktur protokol yang boleh merentasi segmen TCP dengan sendirinya; ia bukan nama lain bagi paket rangkaian.

Terowong CONNECT yang berjaya mengekalkan aliran bita terowong sambil masih menggunakan dua kaki TCP. Sempadan segmennya boleh berbeza walaupun proksi tidak mengubah bita di dalam terowong.

Apabila menyiasat kerosakan, bandingkan data aplikasi yang dipasang semula. Membandingkan bilangan paket atau menjangka panjang paket yang sama pada kedua-dua belah meminta jaminan sempadan daripada TCP yang tidak diberikannya.

Artikel berkaitan