關於syn為什麼沒有回應的問題真是鬱悶了好久。
現象就是在客戶端發出syn包的時候,伺服器端對客戶端的syn包不做任何回應。
在網上逛了逛,終於找到有人也發生了這樣的情況,發生的原因解釋如下:
當客戶端發出的syn包帶有時間戳的情況下,經過nat轉換後,如果使用的埠被之前使用過,而且時間戳大於本次syn包中的時間戳。系統將會直接丟棄。造成本次鏈結無法正常完成tcp/ip的3次握手。【該功能和rfc1323有關,後面有鏈結】
解決的方法很簡單,分為兩種:
在客戶端:關閉rfc1323
在服務端:設定sysctl.conf裡面tcp_timestamps=0也可以只用命令sysctl -w net.ipv4.tcp_timestamps=0
收集到的幾種客戶端的rfc引數位置
linux:和伺服器端的基本相同
微軟為登錄檔方式,位置為【hklm\system\currentcontrolset\services\tcpip\parameters\tcp1323opts】:
windows xp:預設值為3
windows 7 家庭版:預設值為1
windows 7 旗艦版:沒有找到這個鍵值
關於本文提到的技術解釋:
tcp1323opts:
rfc1323:
最早看到解決這個問題的文章:
vue 資料不響應的問題排除 解決
資料不響應,可能是用法有問題使用者名稱 使用者性別 if userinfo.officialaccount export default methods 1.將本來要新增的屬性提前在data中定義好data 2.直接替換掉userinfothis.userinfo 3.使用vue.setimport...
為何不響應WM CHAR訊息的解釋理解
wm char必須由wm keydown經過translatemessage得到,如果你當前擁有焦點的控制項無法進行輸入,則收不到wm char訊息 然wm keydown訊息是當乙個非系統鍵被按下時該訊息傳送給具有鍵盤焦點的視窗。也就是說具有焦點的視窗才能響應 keydown mfc基礎對話方塊的...
Android3 1 後廣播不響應的問題
在做android開發時,很多應用由於各種目的,希望在機器啟動時被喚醒,一般的做法是寫乙個broadcastreceiver,接收對應的boot action,當然別忘了在manifest中新增permission android.permission.receive boot completed ...