傳輸層定義了主機應用程式之間端到端的連通性,而tcp(傳輸控制協議)就是傳輸層常用的一種協議。
tcp為應用程式提供一種面向連線的、可靠的服務。
tcp的可靠性:
面向連線的傳輸
最大報文段長度
傳輸確認機制
首部和資料的檢驗和
流量控制
tcp協議的報文結構
tcp協議三次握手、四次握手、超時重傳
三次握手是指建立tcp連線協議時,需要在客戶端和伺服器之間傳送三個包,握手過程中傳送的包裡不包含資料,三次握手完畢之後,客戶端與伺服器才正式開始傳送資料。
第一次握手:客戶端傳送第乙個包,其中syn標誌位為1(表示請求連線),seq=0,ack=0(針對syn的確認應答).此時客戶端進入syn傳送狀態,等待伺服器的確認。
第二次握手:伺服器收到這個包之後傳送乙個回應包,其中syn=1,seq=0,ack=1,此時伺服器進入syn接收狀態。
第三次握手:客戶端接收到伺服器的回應包之後,向伺服器傳送第三個包,syn=0(招呼已經打完),seq=1(確認收到伺服器發來的seq=0的資料,接下來請求發1),ack=1(seq+1).此包傳送完畢,客戶端和伺服器進入established成功建立狀態,完成三次握手。
四次揮手是指終止tcp連線協議時,需要在客戶端和伺服器之間傳送四個包
第一次揮手:客戶端向伺服器傳送第乙個請求關閉連線的包,其中fin=1,seq=x,ack=y。
第二次揮手:伺服器收到客戶端發來的fin包後,向客戶端傳送乙個fin=0,seq= y,ack=x+1的包,確認客戶端發來的fin請求。
第三次揮手:伺服器向客戶端傳送fin=1,seq=y,ack=x+1的包請求切斷連線。
第四次揮手:客戶端向伺服器傳送fin=1,seq=x+1,ack=y+1的包。至此,完成四次揮手。
超時重傳指的是,傳送資料報在一定時間週期內沒有收到相應的ack,等待一定時間後,就認為這個資料報丟失,就會重新傳送。
為什麼建立連線協議是三次握手,而關閉連線卻是四次握手?
建立連線時,ack和syn可以放在乙個報文裡來傳送。而關閉連線時,被動關閉方可能還需要傳送一些資料後,再傳送fin報文表示同意現在可以關閉連線了,所以它這裡的ack報文和fin報文多數情況下都是分開傳送的。
tcp協議三次握手 四次揮手
起初,伺服器和客戶端都為closed狀態。在通訊開始前,雙方都得建立各自的傳輸控制塊 tcb 伺服器建立完tcb後遍進入listen狀態,此時準備接收客戶端發來的連線請求。第一次握手 客戶端向服務端傳送連線請求報文段。該報文段的頭部中syn 1,ack 0,seq x。請求傳送後,客戶端便進入syn...
TCP協議三次握手四次揮手
1.什麼是tcp協議 tcp協議是作用在傳輸層的傳輸控制協議 tcp 提供一種面向連線的 可靠的位元組流服務 在乙個 tcp 連線中,僅有兩方進行彼此通訊。廣播和多播不能用於 tcp tcp 使用校驗和,確認和重傳機制來保證可靠傳輸 tcp 給資料分節進行排序,並使用累積確認保證資料的順序不變和非重...
TCP協議三次握手四次揮手
tcp有哪些過程?a.建立連線 b.資料傳輸 c.終止連線 tcp三次握手和四次揮手的過程?syn,ack是什麼?syn 請求建立連線 含有同步序列號的標誌位的資料,tcp建立連線時,將這個 位 置1 ack 針對syn的確認應答 fin是什麼?fin 傳送端完成傳送任務 位 當tcp完成資料傳輸需...