檢視網路的連線狀態常用的檔案是/proc/net/snmp及/proc/net/netstat檔案,當你開啟這兩個檔案時,你會出現格式比較亂,因為它裡面包含的資料比較多,我們一般用以下兩個命令來檢視相應的網路狀態,其命令為:
netstat -s和nstat -az
這兩個檔案中包含的資訊較多,這裡只簡單的寫出了幾個與三次握手相關的幾個引數,並簡單地分析了它的含義:
tcpattemptfails
:(連線嘗試失敗數) 1.
試圖和乙個不存在的套介面建立連線時,連線失敗,而tcp
attemptfails
同時會加1
2. 被動連線(
syn_
send)等待第三次握手的
ack應答訊號超時或者為其它的錯誤應答時,連線將會失敗,且同時
tcpattemptfails
的值將加1。
microsoftinternetexplorer402documentnotspecified7.8normal0
tcpextlistendrops(監聽佇列連線丟棄數)
和tcplistenoverflows
(監聽佇列連線溢位數):
1. 首先是檢視現有的連線數是否大於設定的
backlog,如果大於就丟棄,並相應的引數值加
1。其中
backlog
是由程式和系統引數
net.core.somaxconn
共同設定,當
backlog
的值大於系統設定的
net.core.somaxconn
時則取net.core.somaxconn
的值,否則取程式設定的
backlog
值。這種出錯的方式也被記錄在
tcplistenoverflows
中(其只記錄了連線個數不足而產
生溢位錯誤的次數!)。
2. 接收到連線的應答訊號時,但它的源位址和目標不同,或者為空時,這個連線將被丟棄。而
tcplistendrops
值也會加1。
3. 當連線沒有問題時,系統將會分配必要的資源,而此時沒有足夠的資源時則會錯,此時的連線也會被丟棄,同時
tcplistendrops
值也會加1。
4. 最後在新建繫結埠的時候如果出現資源的不足時
tcplistendrops
值也會加1。
syncookiesfailed:
當net.ipv4.tcp_syncookies = 1
開啟時,
syncookiesfailed是通過
tcp_v4_hnd_req
呼叫子函式
cookie_v4_check做一系列的合法性校驗
,主要工作是在半連線佇列中看是否存在當前的socket
連線,如果
不存在則說明這個
是錯誤的應答,其值加
1。其它的資料含義可以參考:
tcp的三次握手 傳輸層 TCP 三次握手
使用tcp協議進行通訊的雙方必須先建立連線,然後才能開始傳輸資料。為了確保連線雙方可靠性,在雙方建立連線時,tcp協議採用了三次握手策略。如圖 客戶端傳送帶有syn標誌的連線請求報文段,然後進入syn send狀態,等待服務端的確認。服務端接收到客戶端的syn報文段後,需要傳送ack資訊對這個syn...
TCP的三次握手
tcp的三次握手分類 網路分析 第一步 請求方向服務方傳送syn,表示想發起一次tcp連線。我們假定這次的序列號是某個數值x 初始的ack號為0 trust target syn seq x ack 0 第二步 服務方產生syn,ack響應,並向請求方傳送ack,ack的值為x 1,表示資料成功接收...
TCP的三次握手
tcp被稱為可靠的資料傳輸協議,主要是通過許多機制來實現的,其中最重要的就是三次握手的功能。如何利用tcp的報頭來確認這個資料報已經被對方接受,並進一步與對方主機實現連線呢?看下圖 我們把上述過程分為a.b.c.d四個階段來說明 a 資料報發起 當客戶端想要對伺服器端發起連線時,就必須要送出乙個要求...