網路協議 HTTP TCP

2021-10-02 00:06:36 字數 1807 閱讀 8664

一、協議是網路中計算機間通訊的一系列規則集合。

二、作用有兩個,一是建立對等層之間的虛擬通訊,二是實現層次之間的無關性。

三、4/5/7層協議

每層協議:

應用層:http、ftp、ssh、smtp、snmp、ftp、dns

表示層:

會話層:

傳輸層:tcp、udp

網路層:ip、icmp、igmp

資料鏈路層:arp、rarp

物理層四、http

發起http請求url

封裝http請求資料報

瀏覽器與伺服器tcp三次握手

傳送請求

伺服器反饋

斷開連線

五、

tcp三次握手

第一次握手:建立連線時,客戶端傳送syn包(syn=x)到伺服器,並進入syn_sent狀態,等待伺服器確認;syn:同步序列編號(synchronize

sequence numbers)。

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=x+1),同時自己也傳送乙個syn包(syn=y),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=y+1),此包傳送完畢,客戶端和伺服器進入established(tcp連線成功)狀態,完成三次握手。

四次揮手

1)客戶端程序發出連線釋放報文,並且停止傳送資料。釋放資料報文首部,fin=1,其序列號為seq=u(等於前面已經傳送過來的資料的最後乙個位元組的序號加1),此時,客戶端進入fin-wait-1(終止等待1)狀態。

tcp規定,fin報文段即使不攜帶資料,也要消耗乙個序號。

2)伺服器收到連線釋放報文,發出確認報文,ack=1,ack=u+1,並且帶上自己的序列號seq=v,此時,服務端就進入了close-wait(關閉等待)狀態。tcp伺服器通知高層的應用程序,客戶端向伺服器的方向就釋放了,這時候處於半關閉狀態,即客戶端已經沒有資料要傳送了,但是伺服器若傳送資料,客戶端依然要接受。這個狀態還要持續一段時間,也就是整個close-wait狀態持續的時間。

3)客戶端收到伺服器的確認請求後,此時,客戶端就進入fin-wait-2(終止等待2)狀態,等待伺服器傳送連線釋放報文(在這之前還需要接受伺服器傳送的最後的資料)。

4)伺服器將最後的資料傳送完畢後,就向客戶端傳送連線釋放報文,fin=1,ack=u+1,由於在半關閉狀態,伺服器很可能又傳送了一些資料,假定此時的序列號為seq=w,此時,伺服器就進入了last-ack(最後確認)狀態,等待客戶端的確認。

5)客戶端收到伺服器的連線釋放報文後,必須發出確認,ack=1,ack=w+1,而自己的序列號是seq=u+1,此時,客戶端就進入了time-wait(時間等待)狀態。注意此時tcp連線還沒有釋放,必須經過2∗∗msl(最長報文段壽命)的時間後,當客戶端撤銷相應的tcb後,才進入closed狀態。

6)伺服器只要收到了客戶端發出的確認,立即進入closed狀態。同樣,撤銷tcb後,就結束了這次的tcp連線。可以看到,伺服器結束tcp連線的時間要比客戶端早一些。

HTTP TCP四次揮手

引言正文 有彩蛋哦 遲到的四次揮手,之前在看三次握手時已經整理過四次揮手了,然後一直在忙給忘記了今天發出來 在三次握手過程中,server傳送syn ack之後,收到client的ack之前的tcp連線稱為半連線 half open connect 此時server處於syn rcvd狀態,當收到a...

網路協議分層 網路協議介紹

現在的網路都採用分層的方式進行工作 高層 包括應用層 表示層 會話層 傳輸層,負責主機之間的資料傳輸 底層 網路層 資料鏈路層 物理層,負責網路資料傳輸 從高層到底層分別是 應用層 提供程式之間的通訊,常見協議有http ftp 表示層 處理資料格式 資料加密等,常見協議有nbssl lpp 會話層...

網路協議 RPC協議

遠端呼叫協議,用於定義服務之間的介面呼叫規範標準 最早的rpc框架之一 1.2.1 外部資料表示法 xdr 規定互動協議的檔案,包括 與古老的rpc協議相比,雙方的soap協議沒必要完全一致 引數順序 引數個數等 更加靈活 也是乙個xml,描述了方法名 服務名 埠 請求引數等資訊,通過在服務位址後加...