wireshark 時(shí)序圖顯示了一段時(shí)間內(nèi)的數(shù)據(jù)流情況。根據(jù)定義,數(shù)據(jù)流是單向流動(dòng)的。所以如果抓包是客戶端從 FTP 服務(wù)器上下載文件,你必須單機(jī)一個(gè)從服務(wù)器發(fā)來(lái)的包,然后僅顯示一個(gè)方向的數(shù)據(jù)流。這是一個(gè)帶有些注釋的縮放的截圖:

x 軸是時(shí)間,比如上圖顯示了 2.35 s。y 軸是 tcp 序號(hào),序號(hào)表示發(fā)送的字節(jié)數(shù)。每發(fā)送一個(gè)字節(jié),序號(hào) +1。理想情況下,希望看到一條向右上角增長(zhǎng)的平滑直線。直線斜率是管道理論上的帶寬。直線越陡,管道吞吐越大。
黑色的 I 型線表示 tcp 數(shù)據(jù)段。更長(zhǎng) I 型線,代表這個(gè)包的數(shù)據(jù)越多。最下面的灰線是接受者已經(jīng)確認(rèn)過(guò)的字節(jié)。對(duì)于圖上一個(gè)時(shí)間點(diǎn),ack 確認(rèn)線和 I 型 tcp 已發(fā)的數(shù)據(jù)線之間的距離為在途字節(jié)數(shù)(已發(fā)送但還在路上未確認(rèn)的字節(jié)數(shù))。所以在2.35s,服務(wù)器發(fā)送了 40,400,000 字節(jié),ack 確認(rèn)的是 40,000,000 字節(jié),那么有 400,000 字節(jié)還沒(méi)有被確認(rèn),正在中間網(wǎng)絡(luò)上。(藍(lán)線和紅線是后加上的標(biāo)記,不是圖表的一部分)。
最上面的線是計(jì)算出來(lái)的接受方窗口的大小。為 ack 確認(rèn)的序號(hào)加上當(dāng)前通道的接受窗口。如果當(dāng)前 ack 確認(rèn) 40,000,000 ,同時(shí)通告窗口是 1,200,000,那么計(jì)算出來(lái)的接受窗口是 41,200,000。當(dāng)前發(fā)送 tcp 數(shù)據(jù)序號(hào)(40,400,000)與計(jì)算出來(lái)的接收方窗口(41,200,000)之間的距離表示接收方 buffer 還有多少可用(800,000)。