日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 系统应用编程——网络编程(TCP 协议三次握手过程)

發布時間:2023/12/9 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 系统应用编程——网络编程(TCP 协议三次握手过程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TCP(Transmission Control Protocol) 傳輸控制協議?

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


位碼即tcp標志位,有6種標示:

SYN ( synchronous 建立聯機 )?

ACK ( acknowledgement ?確認 )?

PSH ( push 傳送 )

?FIN ( finish 結束 )?

RST ( reset 重置 )?

URG( urgent 緊急 )


SYN

? ? ? 在連接建立時用來同步序號。當SYN=1而ACK=0時,表明這是一個連接請求報文。對方若同意建立連接,則應在響應報文中使SYN=1和ACK=1. 因此, ?SYN置1就表示這是一個連接請求或連接接受報文。

ACK

? ? ??TCP協議規定,只有ACK=1時有效,也規定連接建立后所有發送的報文的ACK必須為1

Sequence number (順序號碼)

? ? ???發送方首次發出為了確認接收方回應?ack=seq+1;作為一個順序號碼---第三次握手需要用到。

Acknowledge number (確認號碼)

? ? ???為了回應seq,等于seq+1,課本上的小寫ack。


三次握手過程:

第一次握手:

? ? ? ? 主機A發送位碼為SYN=1(?主機A告訴主機B我們需要建立聯機),隨機產生seq number=1234567(?完全是個隨機數,一個主機有可能同時要進行與多個主機之間的聯機)的數據包到服務器,主機B由SYN=1知道,A要求建立聯機;?

第二次握手:

? ? ? ?主機B收到請求后要確認聯機信息,向A發送ack number = (主機A的seq+1=1234567+1),??SYN=1(主機B回應主機A好的,我們建立聯機吧),ACK = 1(確認我已經收到了!只有兩種情況,ACK=1表示它確認發來的 數據已經接收無誤;ACK=0表示不包含確認信息,一般不確認的話則會忽略不現實此字段。同時發送自己的seq number。


第三次握手:

? ? ? ??主機A收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ACK(與上面一個意思)是否為1,若正確,則主機A知道主機B 已經正確收到自己發送的信息,此時主機A會再發送ack number= (主機B的seq+1),?ACK=1,seq =1+1234567(作為順序號碼),主機B收到后確認seq值與ACK=1則連接建立成功。

總結

以上是生活随笔為你收集整理的Linux 系统应用编程——网络编程(TCP 协议三次握手过程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。