您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關計算機網絡TCP與UDP兩者區別及原理是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
UDP和TCP 在使用TCP/IP 體系結構的網絡通信中,這兩個協議的使用頻率僅次于網際層的IP協議。TCP/IP 體系結構應用層中的某些協議需要使用運輸層的TCP 提供的服務,而另一些協議需要使用運輸層的UDP 提供的服務,UDP 是用戶數據報協議的英文縮寫詞,TCP 是傳輸控制協議的英文縮寫詞。
如下圖所示,兩個小電腦圖標代表英特網上的兩臺主機,縱坐標為時間。
兩臺主機如果在運輸層使用UDP協議進行通信,雙方可以隨時發送數據,因此UDP是無連接的。
再來看使用TCP 協議的情況,使用TCP協議的通信,雙方在進行數據傳輸之前必須使用三報文握手來建立TCP 連接。TCP 連接建立成功后才能進行數據傳輸,數據傳輸結束后必須使用四報文揮手來釋放TCP連接。需要注意的是這里所謂的連接是指邏輯連接關系,而不是物理連接,綜上所述UDP是無連接的,而TCP是面向連接的。
下圖是某個局域網上的使用UDP協議進行通信的四臺主機,其中任何一臺主機都可向其他三臺主機發送廣播,也可以向某個多播組發送多播,還可以向某臺主機發送單播。也就是說UDP支持單播多播以及廣播,換句話說UDP支持一對一,一對多以及一對全的通信。
一臺主機向其他三臺主機發送廣播:
向某個多播組發送多播:
向某臺主機發送單播:
再來看使用TCP協議的情況。使用TCP協議的通信,雙方在進行數據傳輸之前必須使用三報文握手來建立TCP連接。TCP連接建立成功后,通信雙方之間就好像有一條可靠的通信信道,通信雙方使用這條基于TCP連接的可靠信道進行通信。很顯然,TCP僅支持單播,也就是一對一的通信。
三報文握手”建立TCP連接:
基于TCP連接的可靠信道:
先來看使用UDP協議的情況。發送方的應用進程將應用層報文交付給運輸層的UDP,UDP直接給應用層報文添加一個UDP首部,使之成為UDP用戶數據報,然后進行發送。需要說明的是,為了簡單起見,我們忽略運輸層下面的各層處理。
接收方的UDP收到該UDP用戶數據報后,去掉UDP首部,將應用層報文交付給應用進程。也就是說,UDP對應用進程交下來的報文既不合并也不拆分,而是保留這些報文的邊界。換句話說,UDP是面向應用報文的。
再來看使用TCP協議的情況。
1、發送方的TCP把應用進程交付下來的數據塊僅僅看作是一連串的無結構的字節流,TCP并不知道這些帶傳送的字節流的含義。
2、發送方將他們編號并存儲在自己的發送緩存中。
3、TCP根據發送策略,從發送緩存中提取一定數量的字節構建TCP報文段并發送。
1、接收方的TCP一方面從所接收到的TCP報文段中取出數據載荷部分,并存儲在接收緩存中,一方面將接收緩存中的一些字節交付給應用進程。
2、TCP不保證接收方應用進程所收到的數據塊與發送方應用進程所發出的數據塊具有對應大小的關系(例如,發送方應用進程交給發送方的TCP共10個數據塊,但接收方的TCP可能只用了4個數據塊,就把收到的字節流交付給了上層的應用進程,但接收方收到的字節流必須和發送方應用進程發出的字節流完全一樣。)當然,接收方的應用進程必須有能力識別收到的字節流,并把它還原成有意義的應用層數據。
因此,TCP是面向字節流的,這正是TCP 實現可靠傳輸、流量控制以及控制的基礎。
需要說明的是,為了突出示意圖的要點,我們只畫出了一個方向的數據流。在實際網絡中,基于TCP連接的兩端,可以同時進行TCP 報文段的發送和接收,也就是全雙工通信。另外,圖中的數據部分只包含了幾個字節,實際當中一個TCP報文段包含上千個字節是很常見的。
TCP/IP體系結構的網際層向其上層提供的是無連接不可靠的傳輸服務,當運輸層使用UDP協議時,向其上層提供的也是無連接不可靠的傳輸服務。
發送方給接收方發送UDP用戶數據報,若傳輸過程中用戶數據報受到干擾而產生誤碼,接收方UDP可以通過該數據報首部中的校驗和字段的值檢查出產生物碼的情況,但僅僅丟棄該數據報其他什么也不做。
發送方給接收方發送UDP用戶數據報,如果該數據報被英特網中的某個路由器丟棄了,發送方UDP不做任何處理,因為UDP向上層提供的是無連接不可靠的傳輸服務。
因此,對于UDP用戶數據報出現的物碼和丟失等問題,UDP并不關心,基于UDP的這個特點,UDP適用于實時應用,例如IP電話、視頻會議等。
再來看使用TCP協議的情況,盡管網際層中的IP協議向上層提供的是無連接不可靠的傳輸服務,也就是說,IP數據報可能在傳輸過程中出現丟失,誤碼,但只要運輸層使用TCP協議,就可向其上層提供面向連接的可靠傳輸服務。
我們可將其想象成使用TCP協議的收發,雙方基于TCP連接的可靠性到進行數據傳輸,不會出現誤碼丟失、亂序以及重復等傳輸差錯。因此,TCP適用于要求可靠傳輸的應用,例如文件傳輸。
一個UDP用戶數據報由首部和數據載荷兩部分構成,其首部格式如下圖所示:
僅有4個字段,每個字段長度為2個字節,由于UDP不提供可靠傳輸服務,它僅僅在網際層的基礎上添加了用于區分應用進程的端口,因此他的首部非常簡單,僅有8個字節。
一個TCP報文段由手部和數據載荷兩部分構成,其首部格式如下圖所示:
這比UDP用戶數據報的首部復雜的多,其最小長度為20字節,最大長度為60字節,這是因為TCP要實現可靠傳輸、流量控制控制等服務,其首部自然會比較復雜,首部中的字段比較多,首部長度也比較長。
UDP和TCP對比表格:
類型 | 是否面向連接 | 傳輸可靠性 | 傳輸形式 | 傳輸效率 | 所需資源 | 應用場景 | 首部字節 |
---|---|---|---|---|---|---|---|
TCP | 是 | 可靠 | 字節流 | 慢 | 多 | 文件傳輸、郵件傳輸 | 20~60個字節 |
UDP | 否 | 不可靠 | 數據報文段 | 快 | 少 | 即時通訊、域名轉換 | 8個字節 |
UDP和TCP對比圖:
關于計算機網絡TCP與UDP兩者區別及原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。