● 四、簡單描述一下,tcp的連線和釋放過程。
考察點:網路基礎
1、tcp三次握手
tcp運輸連線有三個階段:連線建立、資料傳送、連線釋放 。tcp連線過程通常叫做握手,握手需要客戶端和伺服器端交換三個報文,如下圖所示。
之所以需要三次握手是因為tcp是可靠傳輸,三次能夠剛好可靠又不多餘。tcp三次握手與socket的連線過程是相關聯對應的,socket就是對於tcp/ip的封裝。
客戶端有closed、syn-send、established三種狀態,服務端有closed、listen、syn-rcvd、established四種狀態。伺服器會首先建立連線,並且進入監聽等待階段,等待客戶端的請求,當需要傳送請求時,瀏覽器客戶端主動開啟連線,然後伺服器被動開啟連線。
連線過程
發出訊息或者收到訊息後狀態才會進行切換,客戶端與伺服器的握手是乙個往復確認的過程
比如客戶端說我要從666號開始,傳送100個資料,伺服器說,我是從888號開始回應的
上面的seq=x 和 seq=y seq=x+1(上乙個seq=x,下乙個自然就是seq=x+1了)都是各自的序號,握手的過程就是syn seq ack ack的來回確認 ,syn ack是頭部的字段,可以理解為標誌位,協議中有對他們的值有具體的規定,ack就是確認號,確認號是期望收到的對方的下乙個報文段的第乙個資料位元組的序號,也就是收到的序號+1 ,否則隨便乙個,怎麼對得上號
為什麼要三次握手?
如果不是三次握手,只有兩次
如果客戶端發出請求連線時,報文延時了,於是客戶端重新傳送了一次連線請求訊息,後來收到了確認,建立了連線,然後完成了資料傳輸,關閉了連線,此時,伺服器收到了那個遲到的請求訊息,此時他應該是個廢物了,但是如果只有兩次握手,伺服器收到請求就響應建立了連線了,但是如果是三次,客戶端不會再次確認,伺服器也就隨後知道了這訊息有問題,不會建立連線
2、tcp四次揮手
連線建立以後就可以進行資料通訊傳輸了。通訊結束後,需要斷開連線,斷開連線需要四次互動,常被稱為四次揮手
最初狀態均為established,客戶端與伺服器相互進行資料傳送
下圖假設客戶端無資料傳送,請求斷開連線
斷開過程
msl 是maximum segment lifetime英文的縮寫「報文最大生存時間」,他是任何報文在網路上存在的最長時間,超過這個時間報文將被丟棄。
如果大家需要進一步了解運輸層的其他相關知識,可以參考
cs - notes
計算機網路基礎 運輸層
運輸層協議是在端系統而不是在網路路由器中實現的。在傳送方,運輸層將接受來自傳送應用程序的報文,並將其換成運輸層分組 運輸層報文段。然後將這些報文段傳送給網路層 網路層不檢查封裝在運輸層報文段的字段 在接受放,就是乙個逆過程,不做贅述。運輸層實際就是將主機間交付擴充套件到程序間交付,稱為運輸層的多路復...
計算機網路 運輸層
問題 一 運輸層為相互通訊的的應用程序提供邏輯通訊 問題二 埠和套接字的意義 問題三 理解udp和tcp協議 問題四 在不可靠的網路上實現可靠傳輸的工作原理 問題五 tcp的滑動視窗 流量控制 擁塞控制和連線管理 1 埠 應用層所有的應用程序都可以通過運輸層傳送到ip層,這就是復用 運輸層從ip層收...
計算機網路 運輸層
運輸層協議作用於端系統,為執行在不同主機上的程序提供了邏輯通訊,將主機間的交付擴充套件到程序間交付。該層的分組稱為segment 報文段 多路復用 主機把不同套接字 每生成乙個套接字同時分配乙個埠號 收集的資料封裝後生成報文段,傳送給網路層 多路分解 將運輸層報文段的不同資料 通過套接字的埠號 交付...