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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP协议以及三次握手

發布時間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP协议以及三次握手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TCP協議,傳輸控制協議(英語:TransmissionControl Protocol,縮寫為 TCP)是一種面向連接的、可靠的基于字節流的傳輸層通信協議,由IETF的RFC793定義。

tcp通信需要經過創建連接、數據傳送、終止連接三個步驟。

?

?可靠傳輸:

1)TCP采用發送應答機制

TCP發送的每個報文段都必須得到接收方的應答才認為這個TCP報文段傳輸成功

2)超時重傳

發送端發出一個報文段之后就啟動定時器,如果在定時時間內沒有收到應答就重新發送這個報文段。

TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的包發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據包就被假設為已丟失將會被進行重傳。

3)錯誤校驗

TCP用一個校驗和函數來檢驗數據是否有錯誤;在發送和接收時都要計算校驗和。

4)?流量控制和阻塞管理

流量控制用來避免主機發送得過快而使接收方來不及完全收下。

?

TCP與UDP的不同點

  • 面向連接(確認有創建三方交握,連接已創建才作傳輸。)
  • 有序數據傳輸
  • 重發丟失的數據包
  • 舍棄重復的數據包
  • 無差錯的數據傳輸
  • 阻塞/流量控制

?


?

我們把tcp通信的報文稱為段。

?

  • 客戶端發送一個帶SYN標志的TCP報文到服務器。這是三次握手過程中的段1。
    客戶端發出段1,SYN位表示連接請求。序號是1000(實際是一個隨機數,此處以1000為例),這個序號在網絡通訊中用作臨時的地址,每發一個數據字節,這個序號要加1,這樣在接收端可以根據序號排出數據包的正確順序,也可以發現丟包的情況。mss表示最大段尺寸,如果一個段太大,封裝成幀后超過了鏈路層的最大幀長度,就必須在IP層分片,為了避免這種情況,客戶端聲明自己的最大段尺寸,建議服務器端發來的段不要超過這個長度。
  • ?

  • 服務器端回應客戶端,是三次握手中的第2個報文段,同時帶ACK標志和SYN標志。它表示對剛才客戶端SYN的回應;同時又發送SYN給客戶端,詢問客戶端是否準備好進行數據通訊。
    服務器發出段2,也帶有SYN位,同時置ACK位表示確認,確認序號是1001,表示“我接收到序號1000及其以前所有的段,請你下次發送序號為1001的段”,也就是應答了客戶端的連接請求,同時也給客戶端發出一個連接請求SYN,序號是8000(實際也是一個隨機數,此處以8000為例),同時聲明最大尺寸為1024。
  • ?

  • 客戶必須再次回應服務器端一個ACK報文,這是報文段3。
    客戶端發出段3,對服務器的連接請求進行應答,確認序號是8001。
  • 在這個過程中,客戶端和服務器分別給對方發了連接請求,也應答了對方的連接請求,其中服務器的請求和應答在一個段中發出,因此一共有三個段用于建立連接,稱為“三次握手(three-way-handshake)”。在建立連接的同時,雙方協商了一些信息,例如雙方發送序號的初始值、最大段尺寸等。

    ?

    在TCP通訊中,如果一方收到另一方發來的段,讀出其中的目的端口號,發現本機并沒有任何進程使用這個端口,就會應答一個包含RST位的段給另一方。例如,服務器并沒有任何進程使用8080端口,我們卻用telnet客戶端去連接它,服務器收到客戶端發來的SYN段就會應答一個RST段,客戶端的telnet程序收到RST段后報告錯誤Connectionrefused。

    ?

    ?

    總結

    以上是生活随笔為你收集整理的TCP协议以及三次握手的全部內容,希望文章能夠幫你解決所遇到的問題。

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