計算機網路之傳輸層 可靠傳輸的基本原理

2021-10-09 23:05:48 字數 1028 閱讀 7983

正常情況下,傳送方發出訊息1,等待一段時間,將會收到對方的確認訊息1。

如果出現差錯的情況,傳送方傳送訊息1之後,以下3種情況都會觸發超時重傳。

每傳送乙個訊息,都需要設定乙個定時器

停止等待協議是最簡單的可靠傳輸協議

停止等待協議對通道的利用率不高

arq(automatic repeat request: 自動重傳請求)

既然單個傳送和確認效率低,能不能批量傳送和確認?

下面這些例子以報文為單位,視窗大小為6,只是為了更好地理解。實際的tcp協議是以位元組為單位的,而且視窗大小是很大的。

假設視窗大小為6,一次性只能同時傳送6個報文的資料。有12個報文需要傳送,某乙個時刻,假設當第乙個和第二個報文收到確認訊息以後,視窗會向前移動2個單位,那麼視窗有3-8,其中7和8是沒有傳送出去的,把未傳送的傳送出去。假設某乙個時刻,1-5的傳送的報文都收到確認訊息了,1-5每個報文都要收到確認訊息,這樣網路開銷太大了,所以誕生了累計確認。

只需要報文5收到確認訊息,就表示5之前的確認訊息都已經收到了,這就是累計確認。然後,視窗就可以向前移動5個單位了,此時,可以批量傳送7-11的報文了,等待確認訊息的到來。

舉個例子,這個累計確認就好比班長幫助老師匯報考勤。某乙個時刻,剛好傳送了5個報文,報文5剛好當了班長,班長記下1-4的同學的考勤,然後通過班長去告訴老師說我們5個人都到齊了,不需要說每個同學都要到老師辦公室向老師說我到了,這樣效率太低了,只需要班長乙個人跑一趟老師辦公室匯報一下考勤就ok了。這樣,提公升了通訊的效率

計算機網路之傳輸層

明天就考計算機網路,暫時先簡單的寫一寫 tcp 協議,日後再繼續寫完這一層吧。實際的傳輸通道總是不夠理想的,不可避免的會發生一些差錯,這就需要我們制定一些規則來使得傳輸變得可靠,tcp 協議就這樣應運而出。這是 tcp 協議中採用的最簡單的一種實現可靠傳輸的協議。如下圖,停止等待 就是傳送端傳送乙個...

計算機網路之傳輸層

網路層只把分組傳送到目的主機,但是真正通訊的並不是主機而是主機中的程序。傳輸層提供了程序間的邏輯通訊,傳輸層向高層使用者遮蔽了下面網路層的核心細節,使應用程式看起來像是在兩個傳輸層實體之間有一條端到端的邏輯通訊通道。向兩個主機中程序間的通訊提供通用資料傳輸服務 區別 首部字段只有 8 個位元組,包括...

計算機網路 傳輸層

為什麼要劃分傳輸層?既然網路層已經能把源主機上發出的資料傳送給目的主機,那麼為什麼還需要加上乙個傳輸層呢?這就需要我們理解主機使用者應用層通訊的主體,位於兩台網路主機中真正的資料通訊主體並不是這兩台主機,而是兩台主機中的各種網路應用程序.同一時間一台主機上可能有多個程序同時執行,這時候就需要為應用程...