TCP、UDP之三次握手四次揮手
阿新 • • 發佈:2018-12-06
1.
http協議的簡介
HTTP,HyperText Transfer Protocol。超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議。基於TCP的協議,HTTP是一個客戶端和伺服器端請求和應答的標準
2.
TCP三次握手過程
SYN是請求同步的意思,synchronize(同步)的縮寫
ACK是確認同步的意思,acknowledgement(確認)的縮寫
TCP是主機對主機層的傳輸控制協議,提供可靠的連線服務
TCP的三次握手
第一次握手:(客戶端:伺服器在嗎?)
建立連線時,客戶端A發生SYN包(SYN=j)到伺服器B
並進入SYN_SEND狀態,等待伺服器B確認
第二次握手:(伺服器:收到了,在的,)
伺服器B收到SYN包,必須確認客戶A的SYN,ACK=j+1
同時自己也傳送一個SYN包,SYN=k
即,SYN+ACK包,此時伺服器進入SYN_RECV狀態
第三次握手:(客戶端:我要發資料了)
客戶端A收到伺服器B的SYN+ACK包
向伺服器B傳送確認包ACK(ACK=k+1)
此包傳送完畢,客戶端A和伺服器B進入ESTABLISHED狀態,完成三次握手
3.
TCP四次揮手過程
客戶端A傳送一個FIN.用來關閉客戶A到伺服器B的資料傳送(報文段4)(客戶端:我要關了)
伺服器B收到這個FIN. 它發回一個ACK,確認序號為收到的序號+1(報文段5)。和SYN一樣,一個FIN將佔用一個序號(服務端:好的,收到)
伺服器B關閉與客戶端A的連線,傳送一個FIN給客戶端A(報文段6)(服務端:我也要關了)
客戶端A發回ACK報文確認,並將確認序號設定為序號加1(報文段7)(客戶端:好的,收到)
4.
伺服器如何複用同一個埠而不會提示埠被佔用
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
允許地址重用
三次握手:保證收發雙方正常通訊確保資料不丟失(提升效率節省時間)
四次揮手:全雙工雙通道收發都必須關閉需要來回四次,保證雙方正常回收資源