国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

看圖理解TCP的三次握手和四次揮手

gotham / 1510人閱讀

摘要:建立連接次握手次握手的目的同步連接雙方的序列號(hào)和確認(rèn)號(hào)交換窗口大小信息。客戶端狀態(tài)建立連接三次握手服務(wù)端狀態(tài)第一次握手建立連接。計(jì)算規(guī)則為序列號(hào)為應(yīng)答碼對(duì)方上次的首次發(fā)送時(shí)為系統(tǒng)隨機(jī)生成對(duì)方的無數(shù)據(jù)傳輸時(shí)或者報(bào)文數(shù)據(jù)的長(zhǎng)度

閱讀時(shí)間:8min
閱讀目標(biāo):

掌握TCP連接過程

學(xué)會(huì)計(jì)算seq、ack碼

TCP 協(xié)議是HTTP協(xié)議的重要基礎(chǔ),充分理解TCP協(xié)議的連接及端口,有助于我們深入理解網(wǎng)絡(luò)請(qǐng)求和連接。今天就來看圖學(xué)習(xí)TCP請(qǐng)求的連接、數(shù)據(jù)傳輸及端口連接。

OSI7層網(wǎng)絡(luò)模型
OSI是Open System Interconnection的縮寫,國際標(biāo)準(zhǔn)化組織(ISO)制定了OSI模型,該模型定義了不同計(jì)算機(jī)互聯(lián)的標(biāo)準(zhǔn),是設(shè)計(jì)和描述計(jì)算機(jī)網(wǎng)絡(luò)通信的基本框架。
參考模型(從上至下) 各層含義
應(yīng)用層 為應(yīng)用程序提供服務(wù),如HTTP、FTP、SMTP、POP3等
表示層 數(shù)據(jù)格式轉(zhuǎn)換翻譯、數(shù)據(jù)加密解密、壓縮解壓縮
會(huì)話層 不同機(jī)器之間的用戶建立及管理會(huì)話
傳輸層 建立管理和維護(hù)端到端的連接,TCP、UDP
網(wǎng)絡(luò)層 IP地址及路由選擇
數(shù)據(jù)鏈路層 物理尋址,將原始比特流轉(zhuǎn)化為邏輯傳輸線路
物理層 機(jī)械、電子、定時(shí)接口通信信道上上的原始比特流傳輸
1. 傳輸層
接受上一次的數(shù)據(jù),將數(shù)據(jù)進(jìn)行分割,保證數(shù)據(jù)準(zhǔn)確到達(dá)對(duì)端。
2. TCP
TCP是面向連接的無狀態(tài)的協(xié)議。為了連接的可靠性,每次連接的建立都需要3次握手。
2.1 建立連接(3次握手)

3次握手的目的:

同步連接雙方的序列號(hào)和確認(rèn)號(hào);

交換TCP窗口大小信息。

客戶端(狀態(tài)) 建立連接(三次握手) 服務(wù)端(狀態(tài))
CLOSED LISTEN
SYN seq=0 ==》
SYN_SENT
《== SYN ACK ack=1,seq=0
SYN_RCVD
ACK ack=1,seq=1 ==》
ESTABLISHED ESTABLISHED

第一次握手: 建立連接。客戶端發(fā)送連接請(qǐng)求,發(fā)送SYN報(bào)文,隨機(jī)生成seq,本例默認(rèn)為0。然后,客戶端進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器的確認(rèn)。

第二次握手: 服務(wù)器收到客戶端的SYN報(bào)文段。需要對(duì)這個(gè)SYN報(bào)文段進(jìn)行確認(rèn),發(fā)送ACK報(bào)文,將ack設(shè)置為1(ack值為對(duì)方seq+1或者seq+L(數(shù)據(jù)長(zhǎng)度L))。同時(shí),自己還要發(fā)送SYN請(qǐng)求信息,將seq為0。服務(wù)器端將上述所有信息一并發(fā)送給客戶端,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)。

第三次握手: 客戶端收到服務(wù)器的ACK和SYN報(bào)文后,進(jìn)行確認(rèn),然后將ack設(shè)置為1,seq設(shè)置為1,向服務(wù)器發(fā)送ACK報(bào)文段,這個(gè)報(bào)文段發(fā)送完畢以后,客戶端和服務(wù)器端都進(jìn)入ESTABLISHED狀態(tài),完成TCP三次握手。

2.2 數(shù)據(jù)傳輸
客戶端 數(shù)據(jù)傳輸 服務(wù)端
PSH seq=1, ACK ack=1(segmentLen = 99) ==》
《== PSH seq=1, ACK ack=100 (segmentLen = 119)
ACK ack=120,seq=100 ==》

客戶端先向服務(wù)器發(fā)送數(shù)據(jù),該數(shù)據(jù)報(bào)是長(zhǎng)度為99的數(shù)據(jù)。

服務(wù)器收到報(bào)文后, 也向客戶端發(fā)送了一個(gè)數(shù)據(jù)進(jìn)行確認(rèn)(ACK),并且返回客戶端要請(qǐng)求的數(shù)據(jù),數(shù)據(jù)的長(zhǎng)度為111,將seq設(shè)置為1,ack設(shè)置為120(1 + 119)。

客戶端收到服務(wù)器返回的數(shù)據(jù)后進(jìn)行確認(rèn)(ACK),將seq設(shè)置為100, ack設(shè)置為112(1 + 111)。

2.3 斷開鏈接(4次揮手)
客戶端(狀態(tài)) 斷開連接 服務(wù)端(狀態(tài))
FIN ACK ack=120,seq=100 ==》
FIN_WAIT_1
《== ACK ack=101,seq=120
FIN_WAIT_2 CLOSE_WAIT
《== ACK ack=101,seq=120
LAST_ACK
ACK ack=121,seq=101 ==》
TIME_WAIT CLOSE

第一次揮手:客戶端向服務(wù)器發(fā)送一個(gè)FIN報(bào)文段,將設(shè)置seq為100和ack為120,;此時(shí),客戶端進(jìn)入 FIN_WAIT_1狀態(tài),這表示客戶端沒有數(shù)據(jù)要發(fā)送服務(wù)器了,請(qǐng)求關(guān)閉連接;

第二次揮手:服務(wù)器收到了客戶端發(fā)送的FIN報(bào)文段,向客戶端回一個(gè)ACK報(bào)文段,ack設(shè)置為101,seq設(shè)置為120;服務(wù)器進(jìn)入了CLOSE_WAIT狀態(tài),客戶端收到服務(wù)器返回的ACK報(bào)文后,進(jìn)入FIN_WAIT_2狀態(tài);

第三次揮手:服務(wù)器會(huì)觀察自己是否還有數(shù)據(jù)沒有發(fā)送給客戶端,如果有,先把數(shù)據(jù)發(fā)送給客戶端,再發(fā)送FIN報(bào)文;如果沒有,那么服務(wù)器直接發(fā)送FIN報(bào)文給客戶端。請(qǐng)求關(guān)閉連接,同時(shí)服務(wù)器進(jìn)入LAST_ACK狀態(tài);

第四次揮手:客戶端收到服務(wù)器發(fā)送的FIN報(bào)文段,向服務(wù)器發(fā)送ACK報(bào)文段,將seq設(shè)置為101,將ack設(shè)置為121,然后客戶端進(jìn)入TIME_WAIT狀態(tài);服務(wù)器收到客戶端的ACK報(bào)文段以后,就關(guān)閉連接;此時(shí),客戶端等待2MSL后依然沒有收到回復(fù),則證明Server端已正常關(guān)閉,客戶端也可以關(guān)閉連接了。

 計(jì)算規(guī)則: 
seq 為序列號(hào)
ack 為應(yīng)答碼
seq = 對(duì)方上次的ack;(首次發(fā)送時(shí)seq為系統(tǒng)隨機(jī)生成)
ack = 對(duì)方的seq+1(無數(shù)據(jù)傳輸時(shí)) 或者 seq+L(報(bào)文數(shù)據(jù)的長(zhǎng)度L)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/94010.html

相關(guān)文章

  • 淺談Http協(xié)議(五):基于Tcp協(xié)議三次握手四次揮手

    摘要:很多人都知道協(xié)議是基于協(xié)議創(chuàng)造出來的采用文本方式傳輸非二進(jìn)制傳輸?shù)膽?yīng)用層協(xié)議,協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸,而應(yīng)用層協(xié)議,主要解決如何包裝和規(guī)范數(shù)據(jù)。你也可以自己定義應(yīng)用層協(xié)議,只不過所有配套的東西都要自己重新造輪子。 從問題切入能幫我們更好地理解晦澀難懂的概念。很多人都知道http協(xié)議是基于Tcp協(xié)議創(chuàng)造出來的采用文本方式傳輸(非二進(jìn)制傳輸)的應(yīng)用層協(xié)議,TPC/I...

    weknow619 評(píng)論0 收藏0
  • 淺談Http協(xié)議(五):基于Tcp協(xié)議三次握手四次揮手

    摘要:很多人都知道協(xié)議是基于協(xié)議創(chuàng)造出來的采用文本方式傳輸非二進(jìn)制傳輸?shù)膽?yīng)用層協(xié)議,協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸,而應(yīng)用層協(xié)議,主要解決如何包裝和規(guī)范數(shù)據(jù)。你也可以自己定義應(yīng)用層協(xié)議,只不過所有配套的東西都要自己重新造輪子。 從問題切入能幫我們更好地理解晦澀難懂的概念。很多人都知道http協(xié)議是基于Tcp協(xié)議創(chuàng)造出來的采用文本方式傳輸(非二進(jìn)制傳輸)的應(yīng)用層協(xié)議,TPC/I...

    TNFE 評(píng)論0 收藏0
  • 漫畫:一招學(xué)會(huì)TCP三次握手四次揮手

    摘要:三次握手和四次揮手的問題在面試中是最為常見的考點(diǎn)之一。上面有一個(gè)非常特殊的狀態(tài),它是主動(dòng)關(guān)閉的一方在回復(fù)完對(duì)方的揮手后進(jìn)入的一個(gè)長(zhǎng)期狀態(tài),這個(gè)狀態(tài)標(biāo)準(zhǔn)的持續(xù)時(shí)間是分鐘,分鐘后才會(huì)進(jìn)入到狀態(tài),釋放套接字資源。 showImg(https://segmentfault.com/img/remote/1460000018918991); TCP三次握手和四次揮手的問題在面試中是最為常見的考點(diǎn)...

    LuDongWei 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<