暑期實習備戰(計算機網路傳輸層)

2021-09-12 02:00:50 字數 1702 閱讀 5537

tcp四次揮手

tcp保證可靠傳輸

tcpudp的區別

tcp是面向連線的,提供可靠交付,有擁塞控制,流量控制,提供全雙工通訊,面向位元組流(把引用層傳下來的報文看成位元組流,把位元組流組織成大小不等的資料塊),每條tcp連線只能是點對點(一對一)。

udp無連線的,盡最大可能交付,沒有擁塞控制,面向報文(對於應用程式傳下來的報文不合併也不拆分,只新增udp首部),支援一對一,一對多,多對多的互動通訊。

主機a傳送請求建立連線的請求 此時:syn = 1 seq = x ack = 0;

主機b接收之後如果要建立連線,傳送乙個確認連線的確認 此時:ack = 1 seq = y ack = x + 1;

主機a對這個建立連線的確認的確認 ack = 1 seq = x + 1 ack = y + 1;

其中ack表示確認

seq是乙個隨機序列

ack是對seq的確認所以是seq+1

因為如果客戶端傳送的請求連線的請求超時了,但是過了一段時間之後伺服器又收到了這個請求。那麼如果是兩次握手建立連線,這個時候伺服器就會建立連線,並返回乙個確認,然後伺服器的資源就會造成浪費,但是如果是三次握手,在第二次確認客戶端收到之後,由於不需要連線,則不會返回乙個確認,一段時間之後伺服器會關閉連線。

主機a傳送fin = 1終止請求 seq = u隨機初始序列號u

主機b傳送ack = 1確認終止 ack = u + 1下個資料報的編號 seq = v隨機初始序列號v

主機b傳送fin = 1終止請求 ack = u + 1下個資料報編號 seq = w初始隨機序列號

主機a收到確認傳送ack = 1確認 seq = u + 1 ack = w + 1下個資料報編號是終止序號那個w

主機a等待2msl之後關閉連線

保證a傳送的最後乙個ack報文段能到達b,由於這個ack可能丟失然後b會接收不到最終fin+ack確認報文,b會超時重傳一次fin+ack報文而a收到之後會再次重傳一次並啟動2msl計時器

可以使本連線持續時間產生的所有報文段從網路中消失,確保下乙個新連線中不會出現舊的連線請求報文段

因為tcp是全工雙向連線,每次的fin只能關閉乙個方向的連線

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

慢開始和擁塞避免

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

慢開始每輪將cwnd加倍,會讓cwnd增漲速度飛快,從而網路擁塞的可能性也很高。設定乙個滿開始門限ssthresh,當cwnd>=ssthresh時進入擁塞避免,每輪次只講cwnd+1

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

快重傳和快恢復

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

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

計算機網路 傳輸層

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

計算機網路(傳輸層)

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

計算機網路 傳輸層

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