TCP 三次握手,四次揮手
1.? http協(xié)議的簡介
HTTP,HyperText Transfer Protocol既荚。超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議恰聘【涓鳎基于TCP的協(xié)議憨琳,HTTP是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn).
2. TCP三次握手過程
SYN是請求同步的意思,synchronize(同步)的縮寫
ACK是確認(rèn)同步的意思篙螟,acknowledgement(確認(rèn))的縮寫
TCP是主機對主機層的傳輸控制協(xié)議,提供可靠的連接服務(wù)
TCP的三次握手
第一次握手:(客戶端:服務(wù)器在嗎遍略?)
建立連接時,客戶端A發(fā)生SYN包(SYN=j)到服務(wù)器B
并進入SYN_SEND狀態(tài)绪杏,等待服務(wù)器B確認(rèn)
第二次握手:(服務(wù)器:收到了,在的蕾久,)
服務(wù)器B收到SYN包,必須確認(rèn)客戶A的SYN,ACK=j+1
同時自己也發(fā)送一個SYN包障簿,SYN=k
即栅迄,SYN+ACK包,此時服務(wù)器進入SYN_RECV狀態(tài)
第三次握手:(客戶端:我要發(fā)數(shù)據(jù)了)
客戶端A收到服務(wù)器B的SYN+ACK包
向服務(wù)器B發(fā)送確認(rèn)包ACK(ACK=k+1)
此包發(fā)送完畢毅舆,客戶端A和服務(wù)器B進入ESTABLISHED狀態(tài),完成三次握手
3. TCP四次揮手過程
客戶端A發(fā)送一個FIN.用來關(guān)閉客戶A到服務(wù)器B的數(shù)據(jù)傳送(報文段4)(客戶端:我要關(guān)了)
服務(wù)器B收到這個FIN. 它發(fā)回一個ACK岂津,確認(rèn)序號為收到的序號+1(報文段5)余掖。和SYN一樣,一個FIN將占用一個序號(服務(wù)端:好的赁豆,收到)
服務(wù)器B關(guān)閉與客戶端A的連接冗美,發(fā)送一個FIN給客戶端A(報文段6)(服務(wù)端:我也要關(guān)了)
客戶端A發(fā)回ACK報文確認(rèn),并將確認(rèn)序號設(shè)置為序號加1(報文段7)(客戶端:好的粉洼,收到)
4.服務(wù)器如何復(fù)用同一個端口而不會提示端口被占用
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
允許地址重用
5. str.splitlines()按照行('\r', '\n', '\r\n')分隔,返回一個包含各行作為元素的列表