網絡中的數據(傳輸篇)-----------------UDP協議 TCP協議

 

TCP協議
TCP:Transmission Control Protocol 傳輸控制協議 
主要作用:把數據流分割成適當長度的報文段之後進行傳輸 
工作機制:緊小細微型。 
面向連接意味着兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據包之前必須先建立一個TCP連接。這一過程與打電話很相似,先撥號振鈴,等待對方摘機說“喂”,然後才說明是誰。在一個TCP連接中,僅有兩方進行彼此通信。而UDP更像是發短信,將發送方所有的信息,將所有信息一股腦兒全扔到網絡中。

優勢:可靠性好

  • 當TCP發出一個段後,它啓動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。當TCP收到發自TCP連接另一端的數據,它將發送一個確認。TCP有延遲確認的功能,在此功能沒有打開,則是立即確認。功能打開,則由定時器觸發確認時間點。
  • TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發端超時並重發)
  • 既然TCP報文段作爲IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。
  • TCP的接收端必須丟棄重複的數據
  • 量控制。TCP連接的每一方都有固定大小的緩衝空間。TCP的接收端只允許另一端發送接收端緩衝區所能接納的數據。這將防止較快主機致使較慢主機的緩衝區溢出。

劣勢:速度慢,佔用系統資源高,易被攻擊 
TCP在傳遞數據之前,要先建連接,這會消耗時間,而且在數據傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間。 
由於在每臺設備上都需要維護所有的傳輸連接,而每個連接都會佔用系統的CPU、內存等硬件資源。 
此外,由於TCP有確認機制、三次握手機制,這些也導致TCP容易被人利用,實現DOS、DDOS、CC等攻擊。

應用 
當對網絡通訊質量有要求的時候,比如:整個數據要準確無誤的傳遞給對方,這往往用於一些要求可靠的應用,比如HTTP、HTTPS、FTP等傳輸文件的協議,POP、SMTP等郵件傳輸的協議。 
在日常生活中,常見使用TCP協議的應用如下: 瀏覽器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件傳輸 …………

UDP協議
定義:User Datagram Protocol,用戶數據報協議. 
主要作用:將網絡數據壓縮成數據包的形式。 
數據包格式:一個二進制數據的傳輸單位 
工作機制:蠻幹型。 
它想傳送時就簡單地去抓取來自應用程序的數據,並儘可能快地把它扔到網絡上。因此,在發送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。

優勢:速度快,較安全。 
與TCP協議相比,UDP協議排除了信息可靠傳遞機制,也就是減少了TCP協議中提供數據包分組、組裝和排序的過程需要的時間消耗。其次,UDP是一個無狀態的傳輸協議,所以它在傳遞數據時非常快。沒有TCP的這些機制,UDP較TCP被攻擊者利用的漏洞就要少一些。

劣勢:可靠性差。 
UDP協議是一種無連接的傳輸協議,排除信息可靠傳遞機制帶來速度優勢的同時,顯然降低了可靠性的需求,也就是UDP協議無法得知其是否安全,完整到達的。

應用 
因爲UDP協議的控制選項較少,在數據傳輸過程中延遲小、數據傳輸效率高,適合對可靠性要求不高的應用程序,或者可以保障可靠性的應用程序,如DNS、TFTP、SNMP等。 
在生活中音頻、視頻和普通數據都可以採用UDP協議來進行數據傳輸,比如騰訊QQ這些社交軟件也多采用UDP。

兩者比較

相同:都是傳輸層的協議
不同:TCP是面向連接的,UDP是面向無連接的。

           TCP面向字節流,UDP面向報文的方式。


           TCP是可靠傳輸,UDP是不可靠傳輸。

           TCP有糾錯機制,UDP無糾錯機制。  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章