TCP和UDP的區別趣解

來源:互聯網
上載者:User

tcp串連就像打電話,兩者之間必須有一條不間斷的通路,資料不到達對方,對方
就一直在等待,除非對方直接掛電話。先說的話先到,後說的話後到,有順序。

udp就象寄一封信,發信者只管發,不管到。但是你的信封上必須寫明對方的地址。
發信者和收信者之間沒有通路,靠郵電局聯絡。信發到時可能已經過了很久,也可
能根本沒有發到。先發的信未必先到,後發的也未必後到。

說的很簡單,具體的東西當然很複雜。但是java把所有的操作都封裝好了,用起
來到挺方便的。 

TCP---傳輸控制通訊協定,提供的是連線導向、可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立一個TCP串連,之後才能傳輸資料。TCP提供逾時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。
UDP---使用者資料包通訊協定,是一個簡單的面向資料報的運輸層協議。UDP不提供可靠性,它只是把應用程式傳給IP層的資料報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸資料報前不用在客戶和伺服器之間建立一個串連,且沒有逾時重發等機制,故而傳輸速度很快。

用TCP還是UDP,那要看你的程式注重哪一個方面?可靠還是快速?

       說到TCP和UDP,首先要明白“串連”和“無串連”的含義,他們的關係可以用一個形象地比喻來說明,就是打電話和寫信。兩個人如果要通話,首先要建立串連——即打電話時的撥號,等待響應後——即電話中後,才能相互傳遞資訊,最後還要中斷連線——即掛電話。寫信就比較簡單了,填寫好收信人的地址後將信投入郵筒,收信人就可以收到了。從這個分析可以看出,建立串連可以在需要痛心地雙方建立一個傳遞資訊的通道,在發送方發送請求串連資訊接收方響應後,由於是在接受方響應後才開始傳遞資訊,而且是在一個通道中傳送,因此接受方能比較完整地收到發送方發出的資訊,即資訊傳遞的可靠性比較高。但也正因為需要建立串連,使資源開銷加大(在建立串連前必須等待接受方響應,傳輸資訊過程中必須確認資訊是否傳到及中斷連線時發出相應的訊號等),獨佔一個通道,在中斷連線錢不能建立另一個串連,即兩人在通話過程中第三方不能打入電話。而無串連是一開始就發送資訊(嚴格說來,這是沒有開始、結束的),只是一次性的傳遞,是先不需要接受方的響應,因而在一定程度上也無法保證資訊傳遞的可靠性了,就像寫信一樣,我們只是將信寄出去,卻不能保證收信人一定可以收到。
TCP是連線導向的,有比較高的可靠性,
一些要求比較高的服務一般使用這個協議,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向不需連線的,使用這個協議的常見服務有DNS、SNMP、QQ等。對於QQ必須另外說明一下,QQ2003以前是只使用UDP協議的,其伺服器使用8000連接埠,偵聽是否有資訊傳來,用戶端使用4000連接埠,向外發送資訊(這也就不難理解在一般的顯IP的QQ版本中顯示好友的IP地址資訊中連接埠常為4000或其後續連接埠的原因了),即QQ程式既接受服務又提供服務,在以後的QQ版本中也支援使用TCP協議了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.