Linux / macos में TCP timeout कैसे चेक करें?


11

मुझे अपने MacOS पर नेटवर्क की समस्या है जिसका मुझे निवारण करने की आवश्यकता है। मुझे पता है कि टीसीपी सॉकेट में आंतरिक टाइमआउट है जो कनेक्शन को बंद कर देगा यदि दूरस्थ पार्टी जवाब नहीं दे रही है (लेकिन कोई भी सुंदर डिस्कनेक्ट नहीं है)। क्या यह कोई कमांड / टूल है जिसका उपयोग मैं इस टाइमआउट (ओं) के सटीक मूल्य की जांच करने के लिए कर सकता हूं?

जवाबों:


15

आप सभी सिस्टम-सेट tcp मानों के साथ देख सकते हैं

$ sysctl net.inet.tcp

Tcp_var.h, tcp_subr.c, और tcp_timer.c से व्याख्या की गई:

  • net.inet.tcp.keepidle = रखने योग्य निष्क्रिय टाइमर
  • net.inet.tcp.keepintvl = रखवाले भेजने के लिए अंतराल
  • syn.inet.tcp.keepinit = syn की स्थापना के लिए समय समाप्त
  • net.inet.tcp.mssdflt = डिफ़ॉल्ट टीसीपी अधिकतम सेगमेंट आकार
  • net.inet.tcp.v6mssdflt = IPv6 के लिए डिफ़ॉल्ट टीसीपी अधिकतम सेगमेंट आकार
  • net.inet.tcp.minmss = Minmum TCP अधिकतम खंड आकार
  • net.inet.tcp.minmssoverload = प्रति सेकंड टीसीपी सेगमेंट की संख्या MINMSS आकार के तहत होने की अनुमति है
  • net.inet.tcp.rfc1323 = rfc1323 (उच्च प्रदर्शन टीसीपी) एक्सटेंशन सक्षम करें
  • net.inet.tcp.rfc1644 = rfc1644 (TTCP) एक्सटेंशन सक्षम करें
  • net.et.tcp.do_tcpdrain = tbp_dcrain पर अतिरिक्त सहायता के लिए tcp_drain दिनचर्या सक्षम करें
  • net.inet.tcp.pcbcount = सक्रिय पीसीबी की संख्या
  • net.inet.tcp.icmp_may_rst = कुछ ICMP अगम्य संदेश SYT__ENT में कनेक्शन रद्द कर सकते हैं
  • net.inet.tcp.strict_rfc1948 = यह निर्धारित करता है कि क्या RFC1948 का पालन ठीक से किया जाता है
  • net.inet.tcp.isn_reseed_interval = ISN रहस्य को पुनः प्राप्त करने के बीच सेकंड
  • net.inet.tcp.background_io_enabled = पृष्ठभूमि IO सक्षम
  • net.inet.tcp.rtt_min = min rtt मान की अनुमति है
  • net.inet.tcp.randomize_ports = टीसीपी पोर्ट संख्याओं को रैंडमाइज करें
  • net.inet.tcp.tcbhashsize = टीसीपी नियंत्रण-ब्लॉक हैशटेबल का आकार
  • net.inet.tcp.msl = अधिकतम खंड जीवनकाल
  • net.inet.tcp.always_keepalive = सभी TCP कनेक्शन पर SO_KEEPALIVE मानें
  • net.inet.tcp.broken_peer_syn_rxmit_thres = टीसीपी से पहले पुनर्प्राप्त किए गए SYNs की संख्या बाकी प्रयासों के दौरान rfc1323 और rfc1644 को निष्क्रिय कर देती है
  • net.inet.tcp.pmtud_blackhole_detection = पथ MTU डिस्कवरी ब्लैक होल डिटेक्शन
  • net.inet.tcp.pmtud_blackhole_mss = पथ MTU डिस्कवरी ब्लैक होल डिटेक्शन ने MSC को कम किया

मुझे विश्वास है कि SO_KEEPALIVE सेट होने पर कनेक्शन बंद होने से पहले डिफ़ॉल्ट रूप से 8 रखवाले भेजे जाएंगे। टाइम्स मिलीसेकंड में हैं।


4

लिनक्स के लिए आप उपयोग कर सकते हैं:

$ sysctl -a | grep net.ipv4

3

मुझे यकीन नहीं है कि यह वही है जो आप खोज रहे हैं, लेकिन आप इसके साथ जीवित मूल्य की जांच कर सकते हैं:

$ netstat -o

3
netstat मैक ओएस एक्स 10.6.6 में मेरे लिए '-ओ' विकल्प को स्वीकार नहीं करता
fuzzyTew

1

शायद असंबंधित, लेकिन मेरे लिए काम करता है:

मैं ssh / tcp इंटरैक्टिव टाइमआउट को हमारे एक सर्वर में निर्धारित करने की कोशिश कर रहा हूं, इसलिए मैं सिर्फ:

date; ssh host.domain 'sleep 10000'; date

उदाहरण आउटपुट:

Thu May 24 12:22:39 CEST 2018
packet_write_wait: Connection to 172.29.1.27 port 22: Broken pipe
Thu May 24 14:22:40 CEST 2018
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.