如何确保TCP协议传输稳定可靠?
TCP,控制傳輸協(xié)議,它充分實現(xiàn)了數(shù)據(jù)傳輸時的各種控制功能:
針對發(fā)送端發(fā)出的數(shù)據(jù)包確認應(yīng)答信號ACK;
針對數(shù)據(jù)包丟失或者出現(xiàn)定時器超時的重發(fā)機制;
針對數(shù)據(jù)包到達接收端主機順序亂掉的順序控制;
針對高效傳輸數(shù)據(jù)包的滑動窗口控制;
針對避免網(wǎng)絡(luò)擁堵時候的流量控制;
針對剛開始啟動的時候避免一下子發(fā)送大量數(shù)據(jù)包而導(dǎo)致網(wǎng)絡(luò)癱瘓的慢啟動算法和擁塞控制。
此外,TCP作為一種面向有連接的控制傳輸協(xié)議,只有在確認對端主機存在時才會發(fā)送數(shù)據(jù),從而可以控制通信流量的浪費。
?
?
?TCP通過序列號、超時重傳、檢驗和、流量控制、滑動窗口、擁塞控制實現(xiàn)可靠性。
1、應(yīng)用數(shù)據(jù)被分割成TCP認為最適合發(fā)送的數(shù)據(jù)塊。
2、TCP給發(fā)送的每一個包進行編號,接收方對數(shù)據(jù)包進行排序,把有序數(shù)據(jù)傳送給應(yīng)用層。
3、TCP的接收端會丟棄重復(fù)的數(shù)據(jù)。
4、超時重傳:當(dāng)TCP發(fā)出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發(fā)這個報文段。
5、校驗和:TCP將保持它首部和數(shù)據(jù)的檢驗和,發(fā)送的數(shù)據(jù)包的二進制相加然后取反。這是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段。
6、流量控制:TCP連接的每一方都有固定大小的緩沖空間,TCP的接收端只允許發(fā)送端發(fā)送接收端緩沖區(qū)能接納的我數(shù)據(jù)。當(dāng)接收方來不及處理發(fā)送方的數(shù)據(jù),能提示發(fā)送方降低發(fā)送的速率,防止包丟失。TCP使用的流量控制協(xié)議是可變大小的滑動窗口協(xié)議。接收方有即時窗口(滑動窗口),隨ACK報文發(fā)送。(TCP 利用滑動窗口實現(xiàn)流量控制)
7、滑動窗口:實際中的傳輸方式,
需要說明一下,如果你不了解TCP的滑動窗口這個事,你等于不了解TCP協(xié)議。
我們都知道,TCP必需要解決的可靠傳輸以及包亂序的問題,
所以,TCP必需要知道網(wǎng)絡(luò)實際的數(shù)據(jù)處理帶寬或是數(shù)據(jù)處理速度,這樣才不會引起網(wǎng)絡(luò)擁塞,導(dǎo)致丟包。
8、擁塞控制:當(dāng)網(wǎng)絡(luò)擁塞時,減少數(shù)據(jù)的發(fā)送。發(fā)送方有擁塞窗口,發(fā)送數(shù)據(jù)前比對接收方發(fā)過來的即使窗口,取小慢啟動、擁塞避免、擁塞發(fā)送、快速恢復(fù)。應(yīng)用數(shù)據(jù)被分割成TCP認為最適合發(fā)送的數(shù)據(jù)塊,TCP的接收端會丟棄重復(fù)的數(shù)據(jù)。?
停止等待協(xié)議也是為了TCP協(xié)議傳輸穩(wěn)定可靠,它的基本原理就是每發(fā)完一個分組就停止發(fā)送,等待對方確認。在收到確認后再發(fā)下一個分組。
轉(zhuǎn)載于:https://www.cnblogs.com/raysync0704/p/11140083.html
總結(jié)
以上是生活随笔為你收集整理的如何确保TCP协议传输稳定可靠?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统下安装卸载jdk
- 下一篇: drf认证组件源码分析