Http協議三次握手過程

Http協議三次握手過程  

TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接:

位碼即tcp標志位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)

Sequence number(順序號碼) Acknowledge number(確認號碼)

TCP/IP基礎--TCP三次握手

第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求建立聯機;

第二次握手:主機B收到請求后要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包

第三次握手:主機A收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。

完成三次握手,主機A與主機B開始傳送數據。

 

在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。 
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認; 
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。 完成三次握手,客戶端與服務器開始傳送數據.

 

實例:

IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116發送位碼syn=1,隨機產生seq number=3626544836的數據包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立聯機;

第二次握手:192.168.1.123收到請求后要確認聯機信息,向192.168.1.116發送ack number=3626544837,syn=1,ack=1,隨機產生seq=1739326486的包;

第三次握手:192.168.1.116收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,192.168.1.116會再發送ack number=1739326487,ack=1,192.168.1.123收到后確認seq=seq+1,ack=1則連接建立成功。

轉載:http://blog.163.com/wangzhenbo85@126/blog/static/1013632822013423502833/?suggestedreading&wumii

原創文章,作者:bisheng,如若轉載,請注明出處:http://www.www58058.com/18218

(2)
bishengbisheng
上一篇 2016-06-22 15:46
下一篇 2016-06-22 15:48

相關推薦

  • N26 第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 演示:     [root@47d523181d25 /]# cp -r /etc/skel/ /home/tuser1     [root@47d523…

    Linux干貨 2017-02-25
  • Linux發展史

    Linux發展史 一、歷史 (一)、Unix 1、Unix操作系統是一個強大的多用戶、多任務操作系統,支持多種處理器架構。 2、最早由KenThompson(湯普遜)、Dennis Ritchie(丹尼斯·里奇,C語言之父,Unix之父)和Douglas McIlroy(麥克羅伊,程式設計師)于1969年在AT&T的貝爾實驗室開發。 3、目前它的商標…

    Linux干貨 2016-10-14
  • vim淺談

            在Linux的世界里,絕大部分的配置文件都是以ASCII的純文本形式存在的,所以作為一名優秀的Geek,熟練掌握一種文本編輯輯器是非常重要的。         Linux世界中的文本編輯器有很多…

    Linux干貨 2015-04-27
  • Linux磁盤管理實操

    Linux磁盤管理實操 1、創建一個10G分區,并格式為ext4文件系統。 先使用fdisk工具創建一個10G的新分區。使用fdisk打開要創建磁盤分區的物理設備fdisk /dev/sdb,然后使用n指令創建新的分區,分區類型選此處選擇為主分區,第一個柱面使用默認的1,最后的柱面,使用+10G這種表示方式,表示創建的分區大小為10G。 創建后可以使用p指令…

    系統運維 2016-12-13
  • vim簡單操作

    vim第一講 光標在屏幕文本中的移動既可以用箭頭鍵,也可以使用 hjkl 字母鍵。 h (左移) j (下行) k (上行) l (右移) 欲進入 Vim 編輯器(從命令行提示符),請輸入:vim 文件名 <回車> 欲退出 Vim 編輯器,請輸入 <ESC> :q! <回車> 放棄所有改動。 或者輸入 <ESC&gt…

    Linux干貨 2017-07-29
  • haproxy代理服務

    HAProxy: LB Cluster:         四層:   lvs, nginx(stream),haproxy(mode tcp)         七層:   http: nginx(http, ngx_http_upstrea…

    Linux干貨 2017-05-17

評論列表(2條)

  • stanley
    stanley 2016-06-22 15:47

    磚頭厚的技術難點書被你三言總結完畢

  • bisheng
    bisheng 2016-06-23 10:43

    簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。

    TCP三路握手,作用為完成三次握手,主機A與主機B開始傳送數據。

    第一次握手:客戶端A(狀態為SYN_SEND)發送位碼為syn=1,隨機產生seq number=1234567的數據包到服務器,服務器B(狀態為LISTEN)由SYN=1知道,客戶端A要求建立聯機;

    第二次握手:服務器B(狀態為SYN_RECV)收到請求后要確認聯機信息,向客戶A發送ack number=(客戶端A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包

    第三次握手:客戶端A(狀態為ESTABLISHED)收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,客戶端A會再發送ack number=(服務器B的seq+1),ack=1,服務器B(狀態為ESTABLISHED)收到后確認seq值與ack=1則連接建立成功。

    TCP四路揮手,是因為TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。

    (1)客戶端A(狀態為FIN_WAIT)發送一個FIN,用來關閉客戶A到服務器B(狀態為)的數據傳送。

    (2)服務器B(狀態為CLOSE_WAIT)收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。

    (3)服務器B(狀態為LAST_ACK)關閉與客戶端A的連接,發送一個FIN給客戶端A。

    (4)客戶端A(狀態為TIME_WAIT)發回ACK報文確認,并將確認序號設置為收到序號加1。

欧美性久久久久