TCP視窗機制

2021-07-28 01:54:19 字數 1164 閱讀 4134

視窗機制原理:

比如主機a主機

b傳送資料,為了更高的通話效率,主機

a一次給主機

b發了三次資料。(主機

a給主機

b傳送了乙個大的資料);主機

b收到資料以後他的視窗大小只能處理其中的一部分資料那麼主機

b就會向主機

a恢復乙個確認值三個資料都收到了,但是他的視窗大小只顯示處理了

2個資料,那麼主機

a收到以後就會做乙個傳送處理,將資料調成傳送的量為

2個進行傳送這樣一來就解決了傳送多個而處理不完的現象。

滑動視窗:

滑動視窗用於加速傳輸,比如發了乙個

seq=100

的包,理應收到這個包的確認

ack=101

後再繼續發下乙個包,但有了滑動視窗,只要新包的

seq與沒有得到確認的最小

seq之差小於滑動視窗大小,就可以繼續發。

tcp要保證「可靠

」,就需要對乙個資料報進行

ack確認表示接收端收到。有了滑動視窗,接收端就可以等收到許多

包後只發乙個

ack包,確認之前已經收到過的多個資料報。有了滑動視窗,傳送端在傳送完乙個資料報後不用等待。它的

ack,在滑動視窗大小內可以繼續傳送其

他資料報。舉個例子來看吧。

大家看上圖,標誌位為

.表示所有的

flag都為0

。標誌位p表示

flag

為psh

的tcp

包,用於快速傳輸資料。前三個包是三次握手,客戶端表示自己的滑動視窗大小是

65535

(我的xp

機器),伺服器端表示滑動視窗是

5840

(螢幕寬了,沒截出來)。從第四個包開

始,客戶端向伺服器傳送

psh包,資料長度是

520位元組,伺服器發了

ack確認包。注意此時

win視窗大小發生了改變哈。以此類推。

倒數第二、三包,伺服器在滑動視窗內連續向客戶端發包,客戶端傳送的

ack 124

同時確認了之前的兩個包。這就是滑動視窗的功能了。

如果談到

tcp攻擊就需要注意,

tcp的各種實現中,在滑動視窗之外的

seq會被扔掉!下面會講這個問題。

TCP 視窗機制

tcp協議在能夠傳送資料之前就建立起了 連線 要實現這個連線,啟動tcp連線的那一方首先將傳送乙個syn資料報。這只是乙個不包含資料的資料報,然後,開啟syn標記。如果另一方同時在它收到syn標記的埠通話,它將發回乙個syn ack syn和ack標誌位都被開啟,並將ack 確認 編 號字段設定為剛...

tcp歡動視窗機制 TCP滑動視窗機制

滑動視窗 tcp流量控制 介紹udp時我們描述了這樣的問題 如果傳送端傳送的速度較快,接收端接收到資料後處理的速度較慢,而接收緩衝區的大小是固定的,就會丟失資料。tcp協議通過 滑動視窗 sliding window 機制解決這一問題。看下圖的通訊過程 滑動視窗 1.傳送端發起連線,宣告最大段尺寸是...

TCP滑動視窗機制

tcp協議在能夠傳送資料之前就建立起了 連線 要實現這個連線,啟動tcp連線的那一方首先將傳送乙個syn資料報。這只是乙個不包含資料的資料報,然後,開啟syn標記。如果另一方同時在它收到syn標記的埠通話,它將發回乙個syn ack syn和ack標誌位都被開啟,並將ack 確認 編 號字段設定為剛...