1. 程式人生 > >TCP-UDP-資料報-資料流

TCP-UDP-資料報-資料流

簡述:

在學習tcp與udp的時候會看到一種說法“tcp提供有確認,有連線的資料流服務,udp提供無確認,無連線的資料報服務”。這裡的資料報和資料流困擾了我一段時間,下邊我談談我對這個的理解。

詳述:

為什麼說tcp提供資料流服務而udp提供資料報服務呢?這其實與這兩個協議本身的傳輸機制有關,tcp提供可靠的傳輸機制,也就是說只要是被髮送的資料都會被接收方接收到,並且雙方也知道被正確接收了,這就有一種現象:一段比較大的資料被分段傳送出去,對於接收方而言,就像一股水流一樣不斷地並且一滴不漏的被接收(這個過程中有確認機制,更加形象地類似水流),非常類似於水流。而udp不負責可靠傳輸,他只知道盡最大的努力把資料傳送出去,並不關心資料是否被接收方實際接收,對於接收方而言,他接收資料的情形是:來一個我接受一個,並不關心中間是否有丟失的資料報,就像飛機空頭物資一樣,並不是投一包東西,然後地面確認一下,再投第二包東西(這種方式在無形中使得物資之間有了一種默契),而是多架飛機一起往下投物資,沒有順序可言,哪個先下來我先接那個,並且投下的物資是否在半空被老鷹叼走了地面並不關心(這種方式下,不同物資之間似乎相互獨立,從傳輸層理解的話就是每個udp報文獨立存在,他們的聯絡是發生在他的高層應用層)。再結合到資料的傳送和接收上,對於接收端而言並無順序可言,資料報之間沒有約定的連線格式,每個udp資料報之間就像獨立的個體一樣。

總結:

流體現出來的特性是資料報之間前後聯絡,有一定的確認機制,而報體現出來的是表面的獨立性。然後再結合兩個協議的理論知識,將通俗的理解結合到理論,這樣就很容易理解了。