A發(fā)送端,B接收端,假設(shè)只在一個方向進(jìn)行
以字節(jié)為單位的滑動窗口

發(fā)送端A根據(jù)收到B發(fā)送的確認(rèn)來調(diào)整自己的發(fā)送窗口,也就是說A的窗口是動態(tài)可調(diào)的,發(fā)送窗口的大小根據(jù)前沿和后沿來共同決定。
后沿的變化
后沿的變化分為兩種,1.不動:不動的情況a.沒有收到新的確認(rèn),對方通知的窗口大小也不變;b.收到了新的確認(rèn),但是通知窗口變小了,此時需要后移前沿。2.前移:收到了新的確認(rèn),通知的窗口大小沒有變化,標(biāo)識數(shù)據(jù)已經(jīng)安全到達(dá),可以發(fā)送后面的數(shù)據(jù)。
緩存的概念
應(yīng)用程序?qū)⒆止?jié)流寫入TCP的發(fā)送緩存,接收方的應(yīng)用程序從TCP的接收緩存中讀取字節(jié)流。發(fā)送窗口通常只是發(fā)送緩存的一部分,且窗口的后沿適合發(fā)送緩存重合的。
發(fā)送端的緩存和窗口
發(fā)送端的緩存用來存放:1.發(fā)送應(yīng)用程序傳送給發(fā)送方TCP準(zhǔn)備發(fā)送的數(shù)據(jù);2.TCP已發(fā)送但未收到確認(rèn)的數(shù)據(jù)
接收端的緩存和窗口
接收端的緩存用來存放:1.按序到達(dá)、但尚未被接收應(yīng)用程序讀取的數(shù)據(jù);1.為按序到達(dá)的數(shù)據(jù)