Μηδενικό παράθυρο TCP μέσω διαμεσολαβητή: εντοπίστε τον παραλήπτη
Εντοπίστε τον έλεγχο ροής TCP στην πλευρά του πελάτη ή του διακομιστή ενός διαμεσολαβητή πριν αποδώσετε μια κολλημένη λήψη στην κλιμάκωση παραθύρου ή στο μέγεθος buffer.
Μια καταγραφή πακέτων λέει TCP ZeroWindow. Πριν αλλάξετε μια ρύθμιση πυρήνα, εντοπίστε το άκρο που διαφημίζει το μηδέν.
Αυτό το άκρο περιγράφει τη χωρητικότητα λήψης του σε αυτή τη σύνδεση TCP. Δεν ανακοινώνει πόσο εύρος ζώνης έχει ολόκληρος ο διαμεσολαβητής. Ένας έλεγχος μηδενικού παραθύρου επιτρέπει στον αποστολέα να ανακαλύψει αν άλλαξε η διαφημιζόμενη χωρητικότητα· οι έλεγχοι από μόνοι τους δεν αποδεικνύουν απώλεια πακέτων ή χαλασμένο διαμεσολαβητή.
browser <-- TCP A --> proxy <-- TCP B --> website
Πρόκειται για ξεχωριστές συνομιλίες TCP. Υποθέστε ότι το πρόγραμμα περιήγησης σταματά να διαβάζει μια μεγάλη απόκριση και διαφημίζει μηδέν στο A. Ο διαμεσολαβητής μπορεί τελικά να σταματήσει να αδειάζει το B καθώς γεμίζουν τα δικά του buffer. Ένα μεταγενέστερο μηδενικό παράθυρο στο B μπορεί να είναι συνέπεια του αργού πελάτη και όχι το αρχικό πρόβλημα.
Η αντίστροφη κατάσταση είναι δυνατή κατά τη μεταφόρτωση. Αν η εφαρμογή προορισμού σταματήσει να καταναλώνει δεδομένα, το παράθυρό της στο B μπορεί να κλείσει. Η πίεση μπορεί τότε να ταξιδέψει πίσω προς τον πελάτη μέσα από τα buffer του διαμεσολαβητή.
Βάλτε τις παρατηρήσεις σε σειρά
- Καταγράψτε τα άκρα της σύνδεσης και την κατεύθυνση της επηρεασμένης μεταφοράς δεδομένων.
- Εντοπίστε ποιο άκρο διαφήμισε πρώτο ένα συρρικνούμενο ή μηδενικό παράθυρο λήψης.
- Ελέγξτε αν η εφαρμογή του διάβαζε, είχε παγώσει σε άλλη λειτουργία ή περιοριζόταν από πόρους.
- Συγκρίνετε το χρονισμό στην άλλη σύνδεση του διαμεσολαβητή πριν αποδώσετε την αρχική αιτία.
Οι ετικέτες ανάλυσης παραθύρου του Wireshark είναι χρήσιμες ερμηνείες της καταγραφής, όχι οδηγία να αυξήσετε κάθε buffer λήψης. Η κλιμάκωση παραθύρου πρέπει επίσης να ερμηνεύεται με βάση τη διαπραγμάτευση της σύνδεσης.
Το να δοκιμάσετε άλλο άκρο από μια λίστα διαμεσολαβητών και να δείτε τη μεταφορά να ανακάμπτει είναι χρήσιμη απόδειξη ότι η διαδρομή άλλαξε. Από μόνο του όμως δεν αποδεικνύει ότι η υλοποίηση TCP κάποιου λειτουργικού συστήματος ήταν ελαττωματική. Κρατήστε την εξήγηση δεμένη με τη διεργασία λήψης και τη σύνδεση όπου άρχισε η αναμονή.