TCP可靠傳輸的工作原理

2022-08-28 08:09:10 字數 1201 閱讀 6522

由於ip層是盡最大努力交付——不可靠的通訊;所以為了保證可靠傳輸,tcp必須採取適當的措施才能保證兩個傳輸層的通訊變得可靠。理想的通訊是:1.傳輸的通道不產生差錯;2.無論傳送方以多快的速度傳送,接收方都來得及接收處理資料。但是實際上並不存在這樣理想的傳輸,所以我們需要採取一些可靠傳輸的協議,當出現差錯的時候讓對方重傳出現差錯的資料(超時重傳機制),同時在接收方來不及處理資料的時候,及時告知傳送方降低傳送資料的速度(滑動視窗機制——tcp報文段首部有乙個視窗的字段,就是用來告知傳送方,接收方目前能處理的資料的能力)。

停止等待就是每傳送完乙個報文段就停止傳送,等待對方進行確認。

主要有3種情況:

1.無差錯的情況

2.出現差錯

3.接收方傳送的確認包丟失和確認遲到

最簡單的情況,傳送方a每次傳送完乙個報文段就設定乙個超時計時器,每次都能在超時計時器超時之前接收到接收方b傳送回來的確認報文,往復這樣進行通訊。

這種情況是:接收方b收到了傳送方傳送過來的tcp報文段,但是在對資料進行校驗(tcp報文段首部有校驗和字段,用來檢測傳送過來的報文資料是否出現差錯)的時候,發現接收到的報文段出現差錯,這個時候接收方b什麼也不做(不會通知a說收到了差錯的報文段);也可能是報文段在傳輸的過程中丟失了,這種情況b自然不知道,在這兩種情況下,b不會傳送任何資訊,直到a為剛剛傳送的報文段設定的超時計時器超過了時間,就會認為b沒有收到剛傳送的報文段,就會重新傳送剛剛傳送的報文段——超時重傳

這種情況是接收方正確的接收到傳送方傳送的報文段,並且發出確認報文,但是確認報文由於某些原因丟失了,或者是由於網路延遲沒有在傳送方設定的關於這個報文段的超時計時器內達到,這個時候——傳送方就會重新傳送這個報文段,而接收方又收到了重傳的這個報文段,會做2件事:1.丟棄這個報文段(因為剛剛已經正確接收過了,並且已經向上一層交付),不向上一層交付;2.向傳送方a傳送確認報文(不能因為剛剛已經傳送了確認就不傳送,a之所以重傳該報文就是因為沒有收到確認;所以需要再次傳送確認,不然傳送方a就會一直傳送……)

1.傳送方在傳送完乙個報文段後必須暫時儲存已經傳送的報文段的副本——為了超時重傳的時候使用。

2.分組和確認分組都必須編號,所以才知道是對哪個傳送的分組收到了確認……

3.超時計時器的重傳時間的設定——應該比資料在分組傳輸的平均往返時間更長一些。

停止等待協議很簡單,但是有很明顯的缺點——通道利用率很低;因而引入了連續arq協議

TCP 可靠傳輸的工作原理

感謝原作者 tcp 可靠傳輸的工作原理 arq automatic repeat request 自動重傳請求 全雙工通訊的雙發既是傳送方也是接收方。下面為了討論問題的方便,我們僅考慮a傳送資料而b接受資料並傳送確認。因此a就做傳送方,b叫做接收方。因為這裡是討論可靠傳輸的原理,因此把傳送的資料單元...

TCP可靠傳輸的工作原理

1.1.簡介 1.2.確認資料報丟失和遲到 記住一點 只要沒有告訴我你收到了,就表明你沒收到,我就要重發。1.3.可靠通訊的實現 1.4.通道利用率 停止等待協議的優點是簡單,但缺點是通道利用率太低。可以到這樣通道的利用率u是很低的。1.5.流水線傳輸 由以上公式可知,只要提高傳送資料報時間td就可...

TCP可靠傳輸原理

1 分為首部和資料兩部分,二十個位元組固定首部 2 分析 1 兩個位元組源埠 兩個位元組目的埠 2 四個位元組序號 報文段序號 四個位元組確認號 期望收到對方下乙個報文段的第乙個資料位元組的序號 3 四位資料偏移 六位保留 六位控制位 緊急urg 確認ack 推送psh 復位rst 同步syn 終止...