程式設計實踐雜記 TCP重傳率高的監控

2021-09-27 09:39:07 字數 844 閱讀 7827

重傳率=重傳報文數/有效報文數

其中有效報文數:指的是除了純ack包外的報文總數。

tcp重傳率是對網路質量的乙個體現。

簡單包裝netstat -s的輸出可以計算出tcp重傳率。現成的指令碼如下:

#!/bin/bash

export path='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'

shelldir="$( cd "$( dirname "$" )" && pwd )"

netstat -s -t > /tmp/netstat_s >/dev/null

s_r=`cat /tmp/netstat_s | grep 'segments send out' | awk ''`

s_re=`cat /tmp/netstat_s | grep 'segments retransmited' | awk ''`

[ -e $/s_r ] || touch $/s_r

[ -e $/s_re ] || touch $/s_re

l_s_r=`cat $/s_r`

l_s_re=`cat $/s_re`

echo $s_r > $/s_r

echo $s_re > $/s_re

tcp_re_rate=`echo "$s_r $s_re $l_s_r $l_s_re" | awk ''`

echo $tcp_re_rate

發生重傳說明網路傳輸有丟包,基本上從3個點去定位:客戶端網路情況、服務端網路情況、中間鏈路網路情況

TCP 超時重傳

tcp是一種可靠的協議,在網路互動的過程中,由於tcp報文是封裝在ip協議中的,ip協議的無連線特性導致其可能在互動的過程中丟失,在這種情況下,tcp協議如何保障其傳輸的可靠性呢?t c p通過在傳送資料報文時設定乙個超時定時器來解決這種問題,如果在定時器溢位時還沒有收到來自對端對傳送報文的確認,它...

tcp超時重傳

重傳定時器 tcp 必須維護乙個重傳定時器,以進行超時重傳 問題 如何設定超時時間間隔 rto?時間間隔太短則可能導致大量不必要的重傳 太長則導致效能下降 tcp 採用了乙個高度動態的演算法,來不斷的調整時間間隔,這個演算法就是 jacobson 1988 演算法 在此演算法中,tcp 需要維護幾個...

TCP重傳機制

tcp進行傳輸時,發出去的請求包在規定時間內沒有收到ack,不管是請求包丟失,還是ack包丟失,還是網路延遲,總之,這裡都是需要有個重傳機制的。常見的導致重傳情況有 資料報傳輸途中丟失 接收端的ack確認報文在傳輸途中丟失 接收端異常未響應ack或被接收端丟棄。tcp的重傳機制有兩種 超時重傳和快速...