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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP实现可靠传输

發(fā)布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP实现可靠传输 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. TCP 和 UDP的區(qū)別:

  • TCP面向連接;UDP無連接
  • TCP保證數(shù)據(jù)的可靠傳輸,數(shù)據(jù)傳送無差錯,不丟失,無重復(fù),按序到達;UDP不保證可靠交付
  • TCP連接一對一;UDP支持更廣泛
  • UDP實時性好,效率高,適用場景:短消息傳輸,大量客戶端,對數(shù)據(jù)安全性要求不高但實時性要求高
  • TCP面向數(shù)據(jù)流;UDP面向數(shù)據(jù)報

2. TCP如何保證數(shù)據(jù)傳輸?shù)目煽啃?#xff1f;

  1. 序列號ACK信號:發(fā)送方按照順序給要發(fā)送的數(shù)據(jù)包的每個字節(jié)都標(biāo)上編號。接收方接收到發(fā)送方的數(shù)據(jù)包之后,回傳一個ACK信號,標(biāo)識下一個需求的數(shù)據(jù)包初始字節(jié)編號。

  2. 超時重發(fā):在等待接收方回傳的ACK信號超時后,發(fā)送方重發(fā)數(shù)據(jù)包。一旦開始重傳,下一次等待的時間間隔指數(shù)增長,重發(fā)一定次數(shù)后還是收不到ACK信號,將強制終止連接。

  3. TCP的連接管理:建立連接的三次握手和斷開連接的四次揮手。

  4. 以段為單位發(fā)送數(shù)據(jù)包:在建立TCP連接的同時,兩端協(xié)商發(fā)送數(shù)據(jù)包的單位,稱為“最大消息長度”:MSS。 【TCP數(shù)據(jù)(MSS字節(jié))】【TCP首部(20字節(jié))】【IP首部(20字節(jié))】

  5. 滑動窗口:以段為單位發(fā)送數(shù)據(jù)包,每發(fā)送一個數(shù)據(jù)包需要等待一個ACK信號,當(dāng)數(shù)據(jù)包往返時間越長效率越低?;瑒哟翱谥写翱谇岸藶橐寻l(fā)送但為收到ACK的數(shù)據(jù),后端為待發(fā)送數(shù)據(jù)。發(fā)送端一次發(fā)送多個數(shù)據(jù),接收端回傳收到的連續(xù)數(shù)據(jù)的ACK信號,緩存缺失數(shù)據(jù)之后的數(shù)據(jù)包(保持順序)。發(fā)送端當(dāng)收到ACK信號時,窗口向前依次移動,直到遇到有數(shù)據(jù)未確認時停止。一段時間后啟動超時重傳,接收端若收到缺失數(shù)據(jù),則和緩存數(shù)據(jù)一起發(fā)送ACK信號,否則,拋棄緩存數(shù)據(jù)。

  6. 流量控制:TCP首部有一個字段來通知窗口的大小,接收端通過設(shè)置來主動控制傳輸流量。

  7. 擁塞控制:發(fā)送端通過擁塞窗口主動控制傳輸流量。慢啟動:防止雙方通信剛開始就傳送大量數(shù)據(jù)包,發(fā)送端擁塞窗口初始設(shè)置為1MSS,每接受一個ACK信號,窗口擴大為兩倍。發(fā)送數(shù)據(jù)時,取擁塞窗口和滑動窗口的較小值。同時設(shè)定一個慢啟動閾值,當(dāng)擁塞窗口大小超過閾值時,改為線性增長,直到網(wǎng)絡(luò)擁塞。擁塞時將慢啟動閾值設(shè)置為當(dāng)前窗口的的一半,并將擁塞窗口的值設(shè)置為1,然后再次重復(fù)操作。

?

轉(zhuǎn)載于:https://www.cnblogs.com/walker993/p/9570902.html

總結(jié)

以上是生活随笔為你收集整理的TCP实现可靠传输的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。