osi七層架構 與tcp/ip四層架構
應用層 應用層
表示層 傳輸層
會話層 網路層
傳輸層 鏈路層
網路層資料鏈路層
物理層三次握手
1.握手是為了建立連線,tcp三次握手的流程如下:
第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認
第二次握手:伺服器收到syn包,必須確認客戶端的syn(ack=j+1)同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_rcvd狀態
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1)客戶端和伺服器進入estableshed。
2.為什麼需要三次握手才能建立起連線?
為了初始化sequecenumber的值?用作之後通訊的序號以保證應用層接收到的資料不會因為網路上的傳輸問題而亂序
四次揮手
服務端和客戶端都可以觸發
tcp連線必須經過時間2msl後才能真正釋放掉
我們假設是客戶端斷開連線
第一次揮手:客戶端傳送乙個fin=1,seq=u(最後乙個位元組的序號)用來關閉客戶端到伺服器的資料傳送,客戶端進入fin_wait_1狀態
第二次揮手:伺服器收到fin=1後,傳送乙個ack給客戶端,確認序號的值為收到的序號+1即(seq=u+1),伺服器進入close_wait(關閉等待狀態)
第三次揮手:伺服器發乙個fin=1,用來關閉伺服器到客戶端的資料傳遞,伺服器進入last_ack狀態
第四次揮手:客戶端收到fin後,客戶端進入time_wait狀態接著發乙個ack給伺服器,確認序號為收到序號的值+1,伺服器進入closed狀態,客戶端過2msl(報文存活最大時間,linux一般為30s)後進入closed狀態
為什麼會有time_wait狀態
1)確保有足夠的時間讓對方接收到ack包
2)避免新舊連線混淆
為什麼要四次揮手才能斷開連線
因為全雙工,所以傳送方和接收方都需要fin報文和ack報文
網路相關知識
tcp ip模型分為 應用層 傳輸層 網路層 物理層。這個模型為常用模型,網路資料傳輸時在傳送端資料通過層層包裝,從應用層到物理層,最後形成的包傳送給接收端,接收端拿到原始資料報後再從物理層到應用層層層解析,最後得到傳送端傳送的真正資料。物理層主要對映的是網絡卡的mac位址。網路層主要對映的是物理i...
網路相關知識
http的請求方式?get和post方式的區別 狀態碼請求建立連線流程 http資料傳遞 tcp四次揮手釋放連線 面試題 http的持久連線 怎麼判斷乙個請求是否結束?charles抓包原理 https與網路安全相關問題 https連線建立的流程 https是怎麼保證資料的安全傳輸的 tcp udp...
網路相關知識 網域名稱
e mail位址 和普通信件一樣,e mail也是用某種形式的 位址 來確定傳送目標的。這種接收位址就是郵件的e mail位址,它用來唯一確定郵件的傳送目標。給某人傳送電子郵件時,唯一需要知道的一條資訊就是這個人的internet電子郵件位址。e mail位址的形式是由兩部分組成的,一部分指示收信人...