計算機網路之傳輸層

2021-08-02 17:56:13 字數 889 閱讀 3161

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

a 傳送第乙個分組後,會建立乙個「超時計時器」,不管發生了任何事 ( 分組丟失、超時,或者 確認訊息丟失、超時),只要 a 端未在規定時間內收到 b 端傳送的確認訊息,a 端都會重新傳送此分組,也稱作「自動重傳協議」 arq 協議。

但是此種方式使得通道利用率非常低,如圖:

這裡引入通道利用率的計算公式:

a 傳送分組的時間 td,往返時間 rtt ,確認傳送時間 ta,忽略 a 和 b 確認分組的時間,通道的利用率 u 可用以下公式計算: u = td / ( td + rtt + ta )

那麼如何改進這種方式呢?這就牽扯出了「連續 arq 協議」,即一次性傳送多個分組出去,極大提高通道利用率。如圖:

當對網路中某一資源的的需求大於該資源所能處理資料的能力時,稱作「擁塞」。
那麼處理擁塞的解決方法有哪些呢?

計算機網路之傳輸層

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

計算機網路 傳輸層

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

計算機網路(傳輸層)

網路層提供了主機之間的邏輯通訊,運輸層為運輸在不同主機上的程序之間提供了邏輯通訊。運輸層協議是在端系統中而不是在路由器中實現的。運輸協議能夠提供的服務常常受制於底層網路層協議的服務模型。底層無法提供時延或頻寬保證,運輸層協議也無法提供。但是即使底層網路協議不可靠,運輸協議也可以提供可靠的資料傳輸服務...