ฉันมีเซิร์ฟเวอร์ TCP ฟังบนเครื่อง ("เซิร์ฟเวอร์") ที่ใช้งาน Ubuntu 12.04.3 (เคอร์เนล 3.8.0-31-generic) ได้รับการเชื่อมต่อจาก 2 เครื่องไคลเอนต์ที่แตกต่างกัน Machine A กำลังเรียกใช้ Ubuntu 12.04.4 (3.11.0-17-generic) และเครื่อง B กำลังเรียกใช้ Ubuntu 11.10 (3.0.0-32-server)
หากเปิดใช้งานการประทับเวลา TCP บนเซิร์ฟเวอร์ (sysctl net.ipv4.tcp_timestamps = 1) ดังนั้นบางครั้ง SYN แพ็กเก็ตจากเครื่อง A จะถูก "เพิกเฉย" การใช้ tcpdump บนเซิร์ฟเวอร์ (ในโหมดที่ไม่มี promiscuous) ฉันสามารถเห็น SYN มาถึงแล้วพร้อมกับ checksums ที่ถูกต้อง - ไม่มีการตอบสนอง - ไม่มี SYN / ACK และไม่มี RST เครื่อง A จะทำการส่งสัญญาณซ้ำอีกหลายครั้งก่อนที่จะยอมแพ้ ซอฟต์แวร์ไคลเอ็นต์ทำงานบนเครื่อง A (ลองใช้ในกรณีนี้) ลองใหม่ด้วยการเชื่อมต่อใหม่และทำสำเร็จได้รับ SYN / ACK ทันที
เครื่อง B ไม่มีปัญหากับเซิร์ฟเวอร์เดียวกันและการรับส่งข้อมูลดูปกติ - ใช้ตัวเลือก TCP เดียวกับเครื่อง A (จากสิ่งที่ฉันเห็นจากไฟล์จับภาพ) การปิดใช้งานการประทับเวลา TCP บนเซิร์ฟเวอร์ทำให้ทุกอย่างทำงานได้ตามปกติ
การประทับเวลาในแพ็คเก็ต SYN ที่ถูกละเว้นดูเหมือนว่าใช้ได้สำหรับฉัน แต่ฉันไม่แน่ใจว่าทำไมพวกเขาถึงก่อให้เกิดปัญหาหรือเป็นสาเหตุพื้นฐานเลย
ฉันได้ใส่ pcap anonyimised นี่https://www.dropbox.com/s/onimdkbyx9lim70/server-machineA.pcap มันถูกถ่ายบนเซิร์ฟเวอร์ (10.76.0.74) แสดงเครื่อง A (10.4.0.76) แสดง HTTP GET (แพ็คเก็ต 1 ถึง 10) สำเร็จแล้ว 1 วินาทีหลังจากนั้นพยายามดึง URL เดียวกันอีกครั้ง (แพ็คเก็ต 11 ถึง 17) แต่แทน SYN ของมันถูกเพิกเฉย แพ็คเก็ตที่ 18 ถึง 27 เป็นความสำเร็จอีกอย่างหนึ่ง
ฉันสงสัยว่านี่เป็นปัญหาที่คล้ายกับที่อธิบายไว้ใน " ทำไมเซิร์ฟเวอร์ไม่ส่งแพ็กเก็ต SYN / ACK เพื่อตอบสนองต่อแพ็คเก็ต SYN " และในขณะที่การปิดใช้งานการประทับเวลาเป็นวิธีแก้ปัญหาฉันต้องการทำความเข้าใจกับสิ่งที่เกิดขึ้น นี่เป็นเพียงข้อบกพร่องหรือไม่?
ไม่มีการเรียกใช้ไฟร์วอลล์ในเครื่อง เซิร์ฟเวอร์จัดการการเชื่อมต่อ TCP ค่อนข้างน้อย (ประมาณ 32K ในแต่ละครั้ง) แต่มีหน่วยความจำ / CPU มากมาย ในช่วงเวลาของการทดสอบที่แสดงใน pcap ไม่มีการเชื่อมต่อ TCP อื่น ๆ ระหว่างเครื่อง A และเซิร์ฟเวอร์ ไม่มีสัญญาณว่าคิวการยอมรับของแอปพลิเคชันเซิร์ฟเวอร์นั้นเต็มไปด้วย (นอกจากนั้นควรส่งผลกระทบต่อลูกค้าทั้งสองที่ฉันจะเข้าใจ) เมื่อแพ็กเก็ตดูโอเคใน pcap ที่ถ่ายบนเซิร์ฟเวอร์ดูเหมือนว่าอุปกรณ์เน็ตเวิร์กที่เข้ามาแทรกแซงจะแตกหัก
ฉันโพสต์ครั้งแรกนี้ในฟอรั่มอูบุนตู แต่ในความเข้าใจย้อนหลังนี่อาจเป็นตำแหน่งที่เหมาะสมกว่า หวังว่าจะได้เบาะแส