作為資深資料通訊從業者,我可以回答您的問題,我可以明確的講,TCP傳輸是十分可靠的,可靠到什麼程度,它可以一個位元組都不錯而且不少的傳送給對方。同時tcp傳送是儘可能的使用最大頻寬來傳送的。
首先,介紹為什麼tcp傳送是可靠的
Tcp傳送是依靠滑動視窗來控制傳送的,使用傳送報文,接收響應報文,來確定所傳送的資料是否正確的到達對方。
如上圖,比如報文傳送的資料,依次是1、2、3、4……12。Tcp會使用一個滑動視窗(如圖)控制傳送的節奏。
視窗左邊:已傳送並ack確認的資料,比如圖中,1、2、3,已經收到對方的確認,那麼這些資料已經正確傳送過去。
視窗大小:接收方通告
傳送方只能傳送窗口裡面覆蓋的資料,比如,已經發送了4、5、6。這些報文已經發送,但是還沒有收到對方確認,所以視窗不右移。
如果收到了4的確認,那麼窗口才會右移,說明4已經成功的傳送到了對方。
視窗的移動,說明左邊已經成功被對方接受,不會出現丟包的現象。
如果長時間收不到對方確認(一般對方三個報文確認請求都不是4,比如都是5),就會重發報文4,
那麼tcp怎麼儘可能使用最大頻寬呢?
首先視窗大小,也就是對方能接受多少資料,如果視窗範圍內,比如上圖4、5、6、7、8、9,這些報文在視窗內,傳送方儘可能傳送,也就是儘可能使用頻寬。
在視窗允許傳送的範圍內,比如,允許傳送4——9的資料,Tcp不是一下突發這6個報文,它會根據指數退避演算法,試探性的增加發送速率,
比如,第一次傳送1個,沒丟包,說明網路頻寬可以,第二次傳送2個,還沒丟包,第三次傳送4個,這樣指數遞增。
這種傳送方法,避免一次突發很多資料,造成網路擁塞而丟包,當沒有丟包情況下,傳送數量會指數遞增,增加發送報文數量,儘可能的使用現有網路頻寬,直到增加到對方傳送視窗限制。
作為資深資料通訊從業者,我可以回答您的問題,我可以明確的講,TCP傳輸是十分可靠的,可靠到什麼程度,它可以一個位元組都不錯而且不少的傳送給對方。同時tcp傳送是儘可能的使用最大頻寬來傳送的。
首先,介紹為什麼tcp傳送是可靠的
Tcp傳送是依靠滑動視窗來控制傳送的,使用傳送報文,接收響應報文,來確定所傳送的資料是否正確的到達對方。
如上圖,比如報文傳送的資料,依次是1、2、3、4……12。Tcp會使用一個滑動視窗(如圖)控制傳送的節奏。
視窗左邊:已傳送並ack確認的資料,比如圖中,1、2、3,已經收到對方的確認,那麼這些資料已經正確傳送過去。
視窗大小:接收方通告
傳送方只能傳送窗口裡面覆蓋的資料,比如,已經發送了4、5、6。這些報文已經發送,但是還沒有收到對方確認,所以視窗不右移。
如果收到了4的確認,那麼窗口才會右移,說明4已經成功的傳送到了對方。
視窗的移動,說明左邊已經成功被對方接受,不會出現丟包的現象。
如果長時間收不到對方確認(一般對方三個報文確認請求都不是4,比如都是5),就會重發報文4,
那麼tcp怎麼儘可能使用最大頻寬呢?
首先視窗大小,也就是對方能接受多少資料,如果視窗範圍內,比如上圖4、5、6、7、8、9,這些報文在視窗內,傳送方儘可能傳送,也就是儘可能使用頻寬。
在視窗允許傳送的範圍內,比如,允許傳送4——9的資料,Tcp不是一下突發這6個報文,它會根據指數退避演算法,試探性的增加發送速率,
比如,第一次傳送1個,沒丟包,說明網路頻寬可以,第二次傳送2個,還沒丟包,第三次傳送4個,這樣指數遞增。
這種傳送方法,避免一次突發很多資料,造成網路擁塞而丟包,當沒有丟包情況下,傳送數量會指數遞增,增加發送報文數量,儘可能的使用現有網路頻寬,直到增加到對方傳送視窗限制。