tcp協議的簡單理解

2022-09-03 23:42:17 字數 1318 閱讀 8795

tpc協議屬於傳輸層協議,本篇主要介紹下幾個概念,以及握手和揮手的過程。

1.tcp的幾個概念  

位碼:即tcp標誌位,有6種提示

syn:synchronus,表示建立聯機。

ack:acknowledgement,確認。

push:push,傳送。

fin:finish,結束。

rst:rest,重置。

urg:urgent,緊急。

sequence number:順序號碼。

acknowledge number:確認號碼。

2.三次握手過程(假設主機a和主機b進行通訊)

第一次握手:主機a傳送syn=1,seq_number=123456的資料報到達主機b,主機b由syn=1知道,主機a要求建立聯機。

第二次握手:主機b收到請求之後,需要確認聯機資訊。需要像a傳送ack=1,ack_number=(主機a的seq_number+1),syn=1,seq_number=7654321的包。

第三次握手:主機a收到b的資料報之後,會去檢查ack_number(即第一次傳送的seq_number+1)以及ack=1是否正確,若正確,主機a會像主機b傳送

ack=1,ack_number=(主機b的seq_number+1)

的資料報到達主機b,主機b收到後確認ack=1和ack_number無誤後,建立正常連線。

3.四次揮手的原因

由於tcp的全雙工特性(即資料在兩個方向上能夠同時傳遞),因此每個方向上必須進行單獨的關閉。 關閉的原則是:當一方完成資料傳輸之後,就可以傳送fin=1的資料報

來終止這個方向上

的連線。當一端收到這個fin=1的資料報後,通知應用層另一端已經終止了資料的傳送操作(即收到乙個fin=1的資料報證明這個方向上已經沒有資料流動了)。

兩端單獨關閉的目的就是為了保證

兩端能夠完全的接收到對方傳送的資料報。

4.四次揮手過程(假設主機a和主機b進行通訊)

第一次揮手:主機a像主機b傳送fin=1的資料報;即a告訴b,我(a)傳送給你(b)的資料大小是n,我已經傳送完畢,請求斷開我(a)到你(b)的連線。

第二次揮手:主機b收到主機a傳送的fin資料報,並像主機a傳送ack資料報;即b告訴a,是的,我總共收到了你傳送給我n大小的資料報,現在斷開你(a)到我(b)的連線。

第三次揮手:主機b像主機a傳送fin=1的資料報;即b告訴a,我(b)傳送給你(a)的資料大小是n,我已經傳送完畢,請求斷開我(b)到你(a)的連線。

第四次揮手:主機a收到主機b傳送的fin資料報,並像主機b傳送ack資料報;即a告訴b,是的,我總共收到了你傳送給我n大小的資料報,現在斷開你(b)到我(a)的連線。

Http協議與TCP協議簡單理解

在c 編寫 很多時候會遇到http協議或者tcp協議,這裡做乙個簡單的理解。tcp協議對應於傳輸層,而http協議對應於應用層 從本質上來說,二者沒有可比性。http協議是建立在tcp協議基礎之上的,當瀏覽器需要從伺服器獲取網頁資料的時候,會發出一次http請求。http會通過tcp建立起乙個到伺服...

iOS Http協議與TCP協議簡單理解

在c 編寫 很多時候會遇到http協議或者tcp協議,這裡做乙個簡單的理解。tcp協議對應於傳輸層,而http協議對應於應用層 從本質上來說,二者沒有可比性。http協議是建立在tcp協議基礎之上的,當瀏覽器需要從伺服器獲取網頁資料的時候,會發出一次http請求。http會通過tcp建立起乙個到伺服...

Http協議與TCP協議簡單理解

在c 編寫 很多時候會遇到http協議或者tcp協議,這裡做乙個簡單的理解。tcp協議對應於傳輸層,而http協議對應於應用層,從本質上來說,二者沒有可比性。http協議是建立在tcp協議基礎之上的,當瀏覽器需要從伺服器獲取網頁資料的時候,會發出一次http請求。http會通過tcp建立起乙個到伺服...