核心-syn-ack rto修改
嘗試修改syn ack 包的重傳時間修改,剛開始 使用
ip route list
ip route change ... rto_min 20ms
ss -ite
使用命令 ss -ite 發現rto 從200+ ms 降到30ms 等,說明配置有生效,網上說的rto_min 200ms 修改生效
問題在於,如果僅僅是通過這種不科學的驗證方式 無法確定syn ack 的丟失重傳時間,經過驗證 syn ack 的 丟失重傳時間 為 tcp_timeout_init 1秒 而不是 tcp_rto_min
tcp_timeout_init
搜尋與之相關的函式
tcp_schedule_loss_probe 此函式為尾部丟失定時探測 不是syn ack
if (tp->srtt_us) else
tcp_timeout_init
修改 返回的為配置值
tcp_connect_init 作為客戶端對外建聯
tcp_connect_request 作為服務端 接收客戶端建聯
if (!want_cookie)
inet_csk_reqsk_queue_hash_add(sk, req,
tcp_timeout_init((struct sock *)req)); //
af_ops->send_synack(sk, dst, &fl, req, &foc,
!want_cookie ? tcp_synack_normal :
tcp_synack_cookie);
在實際測試過程中 配置值 需要乘以10 倍才是真實的超時重傳值。可能與最小tick 間隔10ms 有關吧
測試工具:
packet drill 、或者使用 raw socket 封裝的發包工具
ip route 修改的是路由快取中的值:
static inline u32 tcp_rto_min(struct sock *sk)
Linux核心引數修改
由於linux的核心引數資訊都存在記憶體中,因此可以通過命令直接修改,並且修改後直接生效。但是,當系統重新啟動後,原來設定的引數值就會丟失,而系統每次啟動時都會自動去 etc sysctl.conf檔案中讀取核心引數,因此將核心的引數配置寫入這個檔案中,是乙個比較好的選擇。首先開啟 etc sysc...
linux修改核心頻率
1.kernel kconfig.hz 在config hz 100 之前新增 config hz 10 bool 10 hz help 10 hz is added by song.在 default 100 if hz 100 之前新增 default 100 if hz 10 2.kernel...
Linux修改核心引數
linux proc sys kernel 和 proc sys vm下的檔案控制核心的執行,可以通過修改引數的方式來改變核心功能 立即生效 修改引數方法 方法一 echo value proc sys path root lulijuan hostname helloworld root luli...