मेरे पास एक टीसीपी सर्वर है जो एक मशीन ("सर्वर") पर सुन रहा है जो उबुन्टु 12.04.3 (कर्नेल 3.8.0-31-जेनेरिक) चल रहा है। यह 2 विभिन्न क्लाइंट मशीनों से कनेक्शन प्राप्त करता है। मशीन A उबंटू 12.04.4 (3.11.0-17-जेनेरिक) और मशीन बी उबंटू 11.10 (3.0.0-32-सर्वर) चला रही है।
यदि सर्वर पर टीसीपी टाइमस्टैम्प सक्षम हैं (sysctl net.ipv4.tcp_timestamps = 1) तो कभी-कभी मशीन A से SYN पैकेट को "अनदेखा" किया जाता है। सर्वर पर (गैर-विवादास्पद मोड में) tcpdump का उपयोग करके मैं SYNs को ओके और सही चेकसम के साथ देख सकता हूं - बस कोई प्रतिक्रिया नहीं है - कोई SYN / ACK और कोई RST नहीं। मशीन A, SYN को त्यागने से पहले कई बार पीछे ले जाता है। मशीन ए पर चलने वाला क्लाइंट सॉफ्टवेयर (इस मामले में wget) तुरंत एक नए कनेक्शन के साथ रिटायर हो जाता है और तत्काल SYN / ACK प्राप्त करता है।
मशीन बी में एक ही सर्वर के साथ कोई समस्या नहीं है और यह ट्रैफ़िक सामान्य दिखता है - यह मशीन ए के समान टीसीपी विकल्पों का उपयोग कर रहा है (साथ ही मैं कैप्चर फ़ाइलों से जो भी देखता हूं)। सर्वर पर टीसीपी टाइमस्टैम्प को अक्षम करने से सब कुछ काम हो जाता है जैसा कि इसे करना चाहिए।
नजरअंदाज किए गए SYN पैकेट में टाइमस्टैम्प मेरे लिए मान्य हैं, लेकिन मुझे यकीन नहीं है कि वे समस्या क्यों पैदा कर रहे हैं या यदि वे अंतर्निहित कारण हैं।
मैंने यहाँ anonyimised pcap डाल दी है 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) इसके SYNs को नजरअंदाज कर दिया गया है। पैकेट 18 से 27 दूसरी सफलता है।
मुझे संदेह है कि यह एक ऐसी ही समस्या है जिसका वर्णन " क्यों एक सर्वर एक SYN पैकेट के जवाब में SYN / ACK पैकेट नहीं भेजता है " और टाइमस्टैम्प को अक्षम करने के लिए एक वर्कअराउंड है जिसे मैं समझना चाहता हूं कि क्या हो रहा है। क्या यह सिर्फ एक बग है?
कोई स्थानीय फ़ायरवॉल नहीं चल रहा है। सर्वर कुछ टीसीपी कनेक्शन (लगभग किसी भी समय 32K) को संभालता है, लेकिन इसमें बहुत सारी मुफ्त मेमोरी / सीपीयू हैं। पीक में दिखाए गए परीक्षण के समय मशीन ए और सर्वर के बीच कोई अन्य टीसीपी कनेक्शन नहीं था। ऐसा कोई संकेत नहीं है कि सर्वर एप्लिकेशन की स्वीकार कतार अचानक भर रही है (इसके अलावा दोनों क्लाइंट को प्रभावित करना चाहिए जिन्हें मैं मानता हूं)। जैसा कि सर्वर पर लिए गए फलक में पैकेट ठीक दिखते हैं, ऐसा नहीं लगता कि कोई हस्तक्षेप करने वाला नेटवर्क डिवाइस चीजों को तोड़ रहा है।
मैंने मूल रूप से इसे ubuntu मंचों में पोस्ट किया है, लेकिन संकेत में यह अधिक उपयुक्त स्थान हो सकता है। एक सुराग के ऋण के लिए उम्मीद है।