wireshark抓包
SYN: synchronize sequence numbers 同步序列號, 兩端數(shù)據(jù)傳輸時, 所傳遞每個報文段都有一個序列號, 真是由于這個序列號才能保證傳輸?shù)膱笪亩卧诮邮辗侥軌虬凑枕樞蚧謴?fù)成原來的報文.
ACK: acknowledgment 確認, 當某一端接收到報文包, 通過回傳ACK來確認接收到報文這件事.
三次握手
三次握手
- 客戶端發(fā)送SYN包+一個隨機序列號seq1
- 服務(wù)端接收到報文, 發(fā)送SYN/ACK包+隨機序列號seq2+確認號ack1(seq1+1)
- 客戶端接收到報文, 發(fā)送ACK包+確認號ack2(seq2+1)
數(shù)據(jù)傳輸
當三次握手建立連接以后, 就開始傳輸數(shù)據(jù)通訊了.
在通訊的過程中發(fā)送端會發(fā)送seq代表序列號, 序列號和當前已經(jīng)發(fā)送的字節(jié)總數(shù)相關(guān).
中間還有一些復(fù)雜的過程, 比如數(shù)據(jù)丟失處理 流量控制等.
四次揮手
在上圖用wireshark抓包中, 只抓到了三次揮手
四次揮手
- 主動方發(fā)送FIN/ACK包+隨機序列號seq1
- 被動方接收到數(shù)據(jù)包, 發(fā)送ACK包+隨機序列號seq2+確認序列號ack(seq1+1)
- 被動方發(fā)送FIN/ACK包+隨機序列號seq3+確認序列號ack(seq1+1)
- 主動方接收到數(shù)據(jù)包, 發(fā)送ACK包+隨機序列號seq4+確認序列號ack(seq3+1)