เมื่อเร็ว ๆ นี้เราได้ตระหนักถึงปัญหาการเชื่อมต่อ TCP ที่ จำกัด เฉพาะผู้ใช้ mac และ Linux ที่เรียกดูเว็บไซต์ของเรา
จากมุมมองของผู้ใช้มันนำเสนอตัวเองเป็นเวลาเชื่อมต่อนานมากไปยังเว็บไซต์ของเรา (> 11 วินาที)
เราจัดการเพื่อติดตามลายเซ็นทางเทคนิคของปัญหานี้ แต่ไม่สามารถระบุสาเหตุที่เกิดขึ้นหรือวิธีแก้ไขได้
โดยทั่วไปสิ่งที่เกิดขึ้นคือเครื่องของลูกค้ากำลังส่งแพ็กเก็ต SYN เพื่อสร้างการเชื่อมต่อ TCP และเว็บเซิร์ฟเวอร์ได้รับ แต่ไม่ตอบสนองกับแพ็คเก็ต SYN / ACK หลังจากไคลเอนต์ส่งแพคเก็ต SYN หลายครั้งสุดท้ายเซิร์ฟเวอร์ตอบกลับด้วยแพ็คเก็ต SYN / ACK และทุกอย่างเรียบร้อยสำหรับการเชื่อมต่อที่เหลือ
และแน่นอนนักเตะที่มีปัญหา: มันไม่ต่อเนื่องและไม่เกิดขึ้นตลอดเวลา (แม้ว่ามันจะเกิดขึ้นระหว่าง 10-30% ของเวลา)
เราใช้ Fedora 12 Linux เป็นระบบปฏิบัติการและ Nginx เป็นเว็บเซิร์ฟเวอร์
ภาพหน้าจอของการวิเคราะห์ wireshark
ปรับปรุง:
การปิดการปรับสเกลของหน้าต่างบนไคลเอนต์ทำให้ไม่สามารถเกิดปัญหาได้ ตอนนี้ฉันแค่ต้องการการแก้ปัญหาด้านเซิร์ฟเวอร์ (เราไม่สามารถทำให้ลูกค้าทุกคนทำได้) :)
การปรับปรุงครั้งสุดท้าย:
วิธีแก้ไขคือปิดทั้งการปรับสเกลหน้าต่าง TCP และการ ประทับเวลา TCPบนเซิร์ฟเวอร์ของเราที่สาธารณชนสามารถเข้าถึงได้