複製鏈接
請複製以下鏈接發送給好友

可靠傳輸

鎖定
傳輸技術 指充分利用不同信道的傳輸能力構成一個完整的傳輸系統,使信息得以可靠傳輸的技術。傳輸系統是通信系統的重要組成部分,傳輸技術主要依賴於具體信道的傳輸特性。
充分利用不同信道的傳輸能力,使信息得到可靠傳輸的技術。有效性和可靠性是信道傳輸性能的兩個主要指標。
實際傳輸系統都存在噪聲、色散等干擾,它們影響信息傳輸的可靠性。
可靠傳輸,就是採用一系列技術來保障信息在發送方和接收方準確、精確的傳輸。
中文名
可靠傳輸
外文名
Reliable transfer
相關協議
停止等待協議、ARQ
應用領域
計算機通訊
最理想的傳輸有兩個特點:
1)傳輸信道不產生差錯;
2)不管發送方是否降低發送數據的速度,不需要採取任何措施就能夠實現可靠傳輸。
然而實際中的網絡並不能夠達到這種理想的狀態,但我們可以通過使用一些可靠傳輸的協議去處理這些問題,比如規定如果發現發送的數據發生錯誤時讓發送方重新發送,這樣的協議有停止等待協議、連續ARQ協議。

可靠傳輸TCP/IP協議的可靠性

TCP:傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客户和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之後才能傳輸數據。TCP提供超時重發,丟棄重複數據,流量控制等功能,保證能從一端傳到另一端。
當應用層向TCP層發送用於網間傳輸的、用字節表示的數據流,TCP則把數據流分割成適當長度的報文段,最大傳輸段大小(MSS)通常受該計算機連接的網絡的數據鏈路層的最大傳送單元(MTU)限制。之後TCP把數據包傳給IP層,由它來通過網絡將包傳送給接收端實體的TCP層。
TCP為了保證報文傳輸的可靠,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的字節發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的數據(假設丟失了)將會被重傳。
在數據正確性與合法性上,TCP用一個校驗和函數來檢驗數據是否有錯誤,在發送和接收時都要計算校驗和;同時可以使用md5認證對數據進行加密。
在保證可靠性上,採用超時重傳和捎帶確認機制。
在流量控制上,採用滑動窗口協議,協議中規定,對於窗口內未經確認的分組需要重傳。
UDP:用户數據協議,是一個簡單的面向數據的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸數據報削不用在客户和服務器之間建立一個連接,且沒有超時重發機制,故而傳輸速度很快。
TCP提供一種面向連接的、可靠的字節流服務。面向連接意味着兩個使用TCP的應用(通常是一個客户和一個服務器)在彼此交換數據包之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對方摘機説“喂”,然後才説明是誰。在一個TCP連接中,僅有兩方進行彼此通信。廣播和多播不能用於TCP。

可靠傳輸TCP可靠傳輸機制

總結一下,TCP通過下列方式來提供可靠性:
1)面向字節流和緩存機制:應用數據被分割成TCP認為最適合發送的數據塊。這和UDP完全不同,應用程序產生的數據長度將保持不變。由TCP傳遞給IP的信息單位稱為報文段或段(segment)。
2)超時重發和確認機制:當TCP發出一個段後,它啓動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。當TCP收到發自TCP連接另一端的數據,它將發送一個確認。TCP有延遲確認的功能,在此功能沒有打開,則是立即確認。功能打開,則由定時器觸發確認時間點。
3)檢驗和機制:TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發端超時並重發)。
4)字節編號機制:既然TCP報文段作為IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。
5)自動丟棄重複機制:既然IP數據報會發生重複,TCP的接收端必須丟棄重複的數據。
6)流量控制:TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩衝空間。TCP的接收端只允許另一端發送接收端緩衝區所能接納的數據。這將防止較快主機致使較慢主機的緩衝區溢出。
兩個應用程序通過TCP連接交換8bit字節構成的字節流。TCP不在字節流中插入記錄標識符。我們將這稱為字節流服務(byte stream service)。如果一方的應用程序先傳10字節,又傳20字節,再傳50字節,連接的另一方將無法瞭解發方每次發送了多少字節。只要自己的接收緩存沒有塞滿,TCP 接收方將有多少就收多少。一端將字節流放到TCP連接上,同樣的字節流將出現在TCP連接的另一端。
另外,TCP對字節流的內容不作任何解釋。TCP不知道傳輸的數據字節流是二進制數據,還是ASCⅡ字符、EBCDIC字符或者其他類型數據。對字節流的解釋由TCP連接雙方的應用層解釋。