TCP協議和UDP協議基礎介紹


TCP協議和UDP協議區別

標簽(空格分隔): TCP,udp


TCP的三次握手

TCP被稱為可靠的數據傳輸協議,主要是通過許多機制來實現的其中最主要的就是三次握手的功能,當然,TCP傳送數據的機制非常復雜,有興趣的朋友請自行參考相關的網絡書籍,那么如何利用TCP的包頭來確認這個數據包已經被對方接收,並進一步對方的主機實現連接?我們以圖說明:

image.png-318.4kB

在上邊的數據包連接的過程中,必須經過三次確認的動作,所以這種連接方式也被稱為三次握手(Tree-way handshake)那么我們將上邊的步驟分為:A,B,C,D四個階段來說明;

  • A:數據包發起:
  • B:數據包接受也確認數據包傳輸:
  • C:回送確認數據包:
  • D:取得最后的確認:
    若一切順利,就能建立真正的連接了;
    也就是說你必須了解“網絡是雙向的”這個事實,所以不論是客戶端還是服務端都必須通過一次SYN和ACK來建立連接,所以總共進行三次交談!在設定的防火牆或者是追蹤網絡連接的問題時,這個“雙向”的概念是最容易忽略的,而且常常導致無法成功連接的問題;

如下例子模擬三次握手:
有人問:***你在嗎?
回答:在的,你在嗎?
對方回答:在的
此時兩個人確認彼此都可以聽到對方的時候,就可以建立可靠的連接了;

無連接的UDP的協議:

UDP的全稱是即:用戶數據報協議,UDP和TCP不一樣,UDP不提供可靠的傳輸模式,因為它不是面向連接的機制,這是因為在UDP的傳送過程中,接收端在接收導數據包之后,不會回復響應數據包(ACK)給發送端,所以數據包並不像TCP有較為嚴密的檢查機制;

TCP的數據包確實是比較可靠的,因為通過三次握手,不過,也由於三次握手的緣故,TCP數據包的傳輸速度會非常的慢,至於UDP數據包由於不需要確認對方是否正確的收到數據,故報頭數據較少,所以UDP就可以在data 處填充更多的數據,同時UDP比較適合需要實施反映一些數據流,例如影向實時傳輸軟件等等,就可以實用這類的數據包傳輸,也就是UDP的傳輸並不考慮連接要求,連接終止與流量控制等特性,所以適合的場景是:當數據的正確性要求不是很重要的時候,例如:網絡攝影機;

另外的很多的軟件提供了TCP和UDP的傳輸協議的,舉例來說,查看主機的名字DNS服務就同時提供了TCP和UDP協議,由於UDP較為快速,所以我們的client端可以先使用UDP來與服務器連接,但是當使用UDP連接卻還是無法取得正確的數據時,便轉換為較為可靠的TCP協議來傳輸了,這樣可以同時兼顧快速和可靠的傳輸;

  • :例子:上課的時候老師一直講很多的東西,不管同學聽不聽他都一直講,也不需要學生的響應,就一直講,這就是UDP協議


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM