計算機網路(傳輸層)

2021-09-19 12:52:44 字數 2661 閱讀 9585

應用層:為特定應用程式提供資料傳輸服務,例如 http、dns 等協議。資料單位為報文。

傳輸層:實現網路不同主機上使用者程序之間的資料通訊,可靠與不可靠的傳輸,傳輸層的錯誤檢測,流量控制等

資料鏈路層:。資料鏈路層把網路層傳下來的分組封裝成幀。資料鏈路層廣泛使用了迴圈冗餘檢驗(crc)來檢查位元差錯。

物理層:考慮的是怎樣在傳輸**上傳輸資料位元流。

在向下的過程中,需要新增下層協議所需要的首部或者尾部,而在向上的過程中不斷拆開首部和尾部。

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

2.1tcp和udp區別(位元組就是散亂的資料 報文就是新增了標記,封裝後的資料)

2.2 udp 報頭欄位和含義

2.3 tcp如何保證可靠性

同步 syn :在連線建立時用來同步序號。當 syn=1,ack=0 時表示這是乙個連線請求報文段。若對方同意建立連線,則響應報文中 syn=1,ack=1。

終止 fin :用來釋放乙個連線,當 fin=1 時,表示此報文段的傳送方的資料已傳送完畢,並要求釋放連線。

2.4 tcp 的三次握手

確認 ack :當 ack=1 時確認號字段有效,否則無效。tcp 規定,在連線建立後所有傳送的報文段都必須把 ack 置 1。

同步 syn :在連線建立時用來同步序號。當 syn=1,ack=0 時表示這是乙個連線請求報文段。若對方同意建立連線,則響應報文中 syn=1,ack=1。

終止 fin :用來釋放乙個連線,當 fin=1 時,表示此報文段的傳送方的資料已傳送完畢,並要求釋放連線。

確認號 ack:期望收到的下乙個報文段的序號。

三次握手的原因

第三次握手是為了防止失效的連線請求到達伺服器,讓伺服器錯誤開啟連線。

客戶端傳送的連線請求如果在網路中滯留,那麼就會隔很長一段時間才能收到伺服器端發回的連線確認。客戶端等待乙個超時重傳時間之後,就會重新請求連線。但是這個滯留的連線請求最後還是會到達伺服器,如果不進行三次握手,那麼伺服器就會開啟兩個連線。如果有第三次握手,客戶端會忽略伺服器之後傳送的對滯留連線請求的連線確認,不進行第三次握手,因此就不會再次開啟連線。

2.5 tcp 的四次揮手

四次揮手的原因

確保資料能夠完成傳輸,但關閉連線時,當收到對方的 fin 報文通知時,它僅僅表示對方沒有資料傳送給你了;但未必你所有的資料都全部傳送給對方了,所以你不會馬上關閉 socket,也即你可能還需要傳送一些資料給對方之後,再傳送 fin 報文給對方來表示你同意現在可以關閉連線了,所以它這裡的 ack 報文和 fin 報文多數情況下都是分開傳送的。

2.6 tcp流量控制

tcp 連線的每一方都有固定大小的緩衝空間,tcp的接收端只允許傳送端傳送接收端緩衝區能接納的資料。

2.7 擁塞控制

流量控制是為了讓接收方能來得及接收,而擁塞控制是為了降低整個網路的擁塞程度。

tcp 主要通過四個演算法來進行擁塞控制:慢開始、擁塞避免、快重傳、快恢復。

1.慢開始、擁塞避免

傳送的最初執行慢開始,令 cwnd = 1,傳送方只能傳送 1 個報文段;當收到確認後,將 cwnd 加倍,因此之後傳送方能夠傳送的報文段數量為:2、4、8 …

設定乙個慢開始門限 ssthresh,當 cwnd >= ssthresh 時,進入擁塞避免,每個輪次只將 cwnd 加 1。

如果出現了超時,則令 ssthresh = cwnd / 2,然後重新執行慢開始。

2.快重傳、快恢復

(在接收方,要求每次接收到報文段都應該對最後乙個已收到的有序報文段進行確認。例如已經接收到 m1 和 m2,此時收到 m4,應當傳送對 m2 的確認)

在傳送方,如果收到三個重複確認,那麼可以知道下乙個報文段丟失,此時執行快重傳,立即重傳下乙個報文段。例如收到三個 m2,則 m3 丟失,立即重傳 m3。

在這種情況下,只是丟失個別報文段,而不是網路擁塞。因此執行快恢復,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此時直接進入擁塞避免。

計算機網路 傳輸層

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

計算機網路(傳輸層)

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

計算機網路 傳輸層

運輸層最重要的兩種協議 tcp協議,udp協議 真正的通訊 兩個主機之間應用程序的通訊 運輸層的重要功能 1 復用 傳送方的不同應用程序使用同乙個運輸層協議傳輸資料 應用層 運輸層 2 分用 接收方的運輸層在剝去報文首部後把資料真正交付到目的應用程序 運輸層 應用層 網路層和運輸層的區別 網路層說明...