① tcp 和UDP 具體有什麼區別啊
什麼是TCP和UDP
TCP和UDP是TCP/IP協議中的兩個傳輸層協議,它們使用IP路由功能把數據包發送到目的地,從而為應用程序及應用層協議(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供網路服務。TCP提供的是面向連接的、可靠的數據流傳輸,而UDP提供的是非面向連接的、不可靠的數據流傳輸。面向連接的協議在任何數據傳輸前就建立好了點到點的連接。ATM和幀中繼是 面向連接的協議,但它們工作在數據鏈路層,而不是在傳輸層。普通的音頻電話也是面向連接的。
可靠的傳輸協議可避免數據傳輸錯誤。其實現方式是:在構造數據包時在其中設置校驗碼,到達目的地後再採用一定的演算法重新計算校驗碼,通過比較二者,就可以找出被破壞了的數據。因為需要重發被破壞了的和已經丟失的數據,所以在需要重發數據時協議必須能夠使目的地給出源頭的一個確認信號。有些數據包不一定按照順序到達,所以協議必須能夠探測出亂序的包,暫存起來,然後把它們按正確的次序送到應用層中去。另外,協議還必須能夠找出並丟棄重復發送的數據。一組定時器可以限制針對不同確認的等待時間,這樣就可以開始重新發送或重新建立連接。
數據流傳輸協議不支持位傳輸。TCP不能在一個包內以位元組或位為單位構造數據,它只負責傳輸未經構造的8位字元串。
非面向連接的傳輸協議在數據傳輸之前不建立連接,而是在每個中間節點對非面向連接的包和數據包進行路由。沒有點到點的連接,非面向連接的協議,如UDP,是不可靠的連接。當一個UDP數據包在網路中移動時,發送過程並不知道它是否到達了目的地,除非應用層已經確認了它已到達的事實。非面向連接的協議也不能探測重復的和亂序的包。標準的專業術語用「不可靠」來描述UDP。在現代網路中,UDP並不易於導致傳輸失敗,但是你也不能肯定地說它是可靠的。
TCP工作流程
現在讓我們一起來看看TCP段的各個域,在IP包中它們緊跟在IP頭部信息之後。第一個16位確認了源埠,第二個16位確認了目的埠。埠的劃分使IP主機之間可用單個的IP地址實現不同類型的並發連接。在絕大多數現代操作系統中,採用32位IP地址和16位埠地址的組合來確認一個介面。源介面和目的介面的組合就定義了一個連接。有216或65536個可能的埠。最低的1024個埠是常用的,它們是系統為特定的應用層協議所保留的默認設置。如:默認狀態下,HTTP使用埠80,而POP3使用埠110。其它的應用可以使用編號更高的埠。
在接下來的兩個域中,序列號和確認號是TCP實現可靠連接的關鍵。當建立一個TCP連接時,發送方主機發出一個隨機的初始化序列號給初始化器,初始化器將其加1後送回確認域的起始器,這意味著下一個位元組可以發送了。一旦數據開始流動,序列號和確認號將跟蹤已發送了那些數據,那些數據已被確認。因為每個域都是32位,總共可以有232個值,所以每個域的范圍是:0~4294967295,當超過上限時回到0。
4位的偏移量代表TCP頭部一共有多少個32位的信息。這個信息是必不可少的,因為有可選的頭部區域,偏移量標識了頭部的結束和數據的開始。
TCP的設計者保留了接下來的6位,以防萬一將來要對其進行擴展。實際上,自從RFC793(傳輸控制協議)1981年發布以來,還沒人有恰當的理由使用這些位,在這一點上,Jon Postel和他的同事一定是過分謹慎了。
隨後的6位每個都是一個標志。若UNG標志位的值為1,意味著遠在頭部緊急指針區域的數據是有效的;若ACK標志位的值為1,則意味著確認號區域中的數據是有效的。(注意:一個SYN包有一個有意義的序列號,但它的確認號是無意義的,因為它並不確認任何事件)PSH標志位使數據不必等待發送和等待接收。RST標志位將斷開一個連接。SYN(同步)標志位意味著序列號是有效的,FIN(結束)標志位將指出發送方已經發完了數據。
16位長的窗口區域表示了「滑動窗口」的大小,也就是告訴發送方它已經准備好接收多少個字的數據。TCP通過調整窗口的大小來控制數據的流量。一個值為0的窗口意味著通告發送方:如果沒有進一步的通知,接收器已滿,不能再接收更多的數據了。大的窗口可以確保在任何給定的時間傳輸多達65536個未經確認的位元組,但是,當重發定時器超時且又沒有得到接收確認時,窗口將減半,從而有效地降低傳輸速率。
16位的校驗碼區域保證了數據的完整性,保護了TCP頭部和IP頭部的各個區域。發送方計算校驗值並把它插入這個區域,接收方根據收到的包重新計算該值並比較二者,如果它們是匹配的,則認為數據是完整無損的。
當設置緊急標志位時,緊急指針是一個16位的偏移量,它代表必須加快的最後一個字。選擇區域可以容納0或多個32位字,可擴展TCP的性能。大多數常用的選擇區域支持大於65536位元組的窗口,從而縮短了等待確認的時間,尤其是在高傳輸率時。
TCP的傳輸機構有多個定時器。當一個包發送時,重發定時器開始計數;當收到確認信號後,重發定時器停止計數。如果超過設定時間段還沒有收到確認信號,就重發該包。一個比較棘手的問題是如何設置該時間段。如果太長,當網路傳輸錯誤增加時將導致不必要的等待時間;如果太短,就會產生過多的重復包從而降低網路的反應時間。現代TCP協議根據實際情況對重發定時器進行動態設定。
持續定時器對於避免死鎖是必不可少的。如果網路收到了一個大小為0的窗口確認並且丟失了隨後的重發數據的確認,持續定時器將超時並發送一個探針。探針的回應將指出窗口的大小(也許仍為0)。保持定時器在本端沒有任何活動後,將檢查在連接的另一端是否還有運行的進程。如果沒有任何回應,該定時器將斷開連接。
當斷開一個連接時,斷開連接定時器將包的最大生命期加倍。該定時器在連接斷開之前確保流量最大。
不管重發過程執行得多麼有效,很少的丟失包就能嚴重地降低TCP連接的流量。每個未收到的包或包的片段只會在重發定時器超時的時候才會丟失。在數據重發時,接收過程一直在遞送這些重發的數據,這樣就使總體的數據傳輸陷於停頓,直到丟失的數據被取代為止。這些重發過程導致基於TCP的連接有時處於不穩定狀態。
TCP與UDP的選擇
如果比較UDP包和TCP包的結構,很明顯UDP包不具備TCP包復雜的可靠性與控制機制。與TCP協議相同,UDP的源埠數和目的埠數也都支持一台主機上的多個應用。一個16位的UDP包包含了一個位元組長的頭部和數據的長度,校驗碼域使其可以進行整體校驗。(許多應用只支持UDP,如:多媒體數據流,不產生任何額外的數據,即使知道有破壞的包也不進行重發。)
很明顯,當數據傳輸的性能必須讓位於數據傳輸的完整性、可控制性和可靠性時,TCP協議是當然的選擇。當強調傳輸性能而不是傳輸的完整性時,如:音頻和多媒體應用,UDP是最好的選擇。在數據傳輸時間很短,以至於此前的連接過程成為整個流量主體的情況下,UDP也是一個好的選擇,如:DNS交換。把SNMP建立在UDP上的部分原因是設計者認為當發生網路阻塞時,UDP較低的開銷使其有更好的機會去傳送管理數據。TCP豐富的功能有時會導致不可預料的性能低下,但是我們相信在不遠的將來,TCP可靠的點對點連接將會用於絕大多數的網路應用。
② 連接同一個wifi的兩個手機(算在區域網內了吧)通過彼此的QQ聊天時,數據要經過騰訊伺服器嗎走tcp還是udp
是的,任何QQ的聊天內容都要經過騰訊的伺服器。A給B發消息的實際過程是A的消息發送到伺服器上,然後伺服器下發給B。不過,如果是在線傳送文件,則文件是直接在區域網中發送的,不會經過騰訊的伺服器。QQ在傳輸層採用UDP協議為主,TCP協議為輔;應用層使用的是騰訊自行研發的qq:\\協議。
③ wifi是tcp還是udp
WIFI是以IEEE802.11為標準的無線區域網技術,類似於乙太網的概念;tcp和udp是具體應用的通信連接方式,是傳輸層的一種協議;所以該問題不成立。
④ TCP與UDP的區別,以及它們各自的定義
1、TCP要求系統資源較多,UDP較少。
2、UDP程序結構較簡單。
3、流模式(TCP)與數據報模式(UDP)。
4、TCP保證數據正確性,UDP可能丟包。
5、TCP保證數據順序,UDP不保證。
6、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接。
7、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。
總之,TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議。
⑤ 請說出TCP UDP 的特點及區別
TCP與UDP的區別
中國移動、中國聯通推行的GPRS網路、CDMA網路已覆蓋大量的區域,通過無線網路實現數據傳輸成為可能。無線Modem採用GPRS、CDMA模塊通過中國移動、中國聯通的GPRS、CDMA網路進行數據傳輸,並通TCP/IP協議進行數據封包,可靈活地實現多種設備接入,工程安裝簡單,在工業現場數據傳輸的應用中,能很好的解決偏遠無網路無電話線路地區的數據傳輸的難題。同傳統的數傳電台想比較,更具有簡便性、靈活性、易操作性,同時還降低了成本,無線Modem傳輸方案是現代化工業現場數據傳輸最好的選擇方案。
目前中國移動、中國聯通提供的GPRS網路、CDMA網路的數據傳輸帶寬在40Kbps左右,且受帶寬的限制,數據採集方案最好採用於主動告警、數據輪巡採集、告警主動回叫等對傳輸帶寬佔用較少的採集方式。同時考慮對前置機實時採集方案的支持,無線Modem傳輸方案只能作為目前傳輸方案的補充。
隨著無線通訊技術的不斷發展,無線傳輸數據帶寬將不斷提高,採用3G無線網路,數據傳輸帶寬將達到2M,無線傳輸方案將逐漸成為監控傳輸組網的主要應用方案。
目前,由於GPRS和CDMA固有的特性,在各個領域中GPRS和CDMA的應用也越來越廣泛,但是關於傳輸中使用TCP/IP協議還是UDP協議,卻爭論很多。
這里先簡單的說一下TCP與UDP的區別:
1。基於連接與無連接
2。對系統資源的要求(TCP較多,UDP少)
3。UDP程序結構較簡單
4。流模式與數據報模式
5。TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證
另外結合GPRS網路的情況具體的談一下他們的區別:
1。TCP傳輸存在一定的延時,大概是1600MS(移動提供),UDP響應速度稍微快一些。
2。TCP包頭結構
源埠16位
目標埠 16位
序列號 32位
回應序號 32位
TCP頭長度 4位
reserved 6位
控制代碼6位
窗口大小16位
偏移量16位
校驗和16位
選項 32位(可選)
這樣我們得出了TCP包頭的最小大小.就是20位元組.
UDP包頭結構
源埠16位
目的埠16位
長度 16位
校驗和 16位
UDP的包小很多.確實如此.因為UDP是非可靠連接.設計初衷就是盡可能快的將數據包發送出去.所以UDP協
議顯得非常精簡.
3。GPRS網路埠資源,UDP十分緊缺,變化很快;而TCP採用可靠鏈路傳輸,不存在埠變化的問題工業場合的應用一般都有以下特點,
1。要求時時傳輸,但也有一些場合是定時傳輸,總的來說在整個傳輸過程中要求伺服器中心端和GPRS終端設備能相互的、時時的傳輸數據。
TCP本身就是可靠鏈路傳輸,提供一個時時的雙向的傳輸通道,能很好的滿足工業現場傳輸的要求。但是GPRS網路對TCP鏈路也存在一個限制:此條鏈路在長時間(大概20分鍾左右,視具體情況而定)沒有數據流量,會自動降低此鏈路的優先順序直至強制斷開此鏈路。所以在實際使用中也會採用心跳包(一般是一個位元組的數據)來維持此鏈路。
UDP由於自身特點,以及GPRS網路UDP埠資源的有限性,在一段時間沒有數據流量後,埠容易改變,產生的影響就是從伺服器中心端向GPRS終端發送數據,GPRS終端接收不到。具體的原因就是移動網關從中作了中轉,需要隔一定時間給主機發UDP包來維持這個IP和埠號,這樣主機就能主動給GPRS發UDP包了並且我在測試中發現,這個間隔時間很短,我在1多分鍾發一次UDP包才能夠維持,但是再長可能移動網關那邊就要丟失這個埠了,此時如果主機想主動發數據給GPRS,那肯定是不行的了,只有GPRS終端設備再發一個UDP包過去,移動重新給你分配一個中轉IP和埠,才能夠進行雙向通訊。
2。要求數據的丟包率較小。有些工業場合,例如電力、水務抄表,環保監測等等,不容許傳輸過程中的數據丟失或者最大限度的要求數據的可靠性。從這一點來看,很顯然在無線數據傳輸過程中,TCP比UDP更能保證數據的完整性、可靠性,存在更小的丟包率。在實際測試中也是如此。以廈門桑榮科技有限公司提供的GPRS終端設備為例:TCP的在千分之9,UDP的在千分之17左右。
3。要求降低費用。目前有很大部分GPRS設備的應用都是取代前期無線數傳電台,除了使用范圍外,其考慮的主要問題就是費用。能降低費用當然都是大家最願意接受的。和費用直接相關的就是流量了,流量低,費用就低了。雖然TCP本身的包頭要比UDP多,但是UDP在實際應用中往往需要維護雙向通道,就必須要通過大量的心跳包數據來維護埠資源。總的比較起來,UDP的實際流量要比TCP還要大。很多使用者在初期的時候並不了解UDP需要大量心跳包來維持埠資源這個問題,往往都認為UDP要比TCP更節省流量,實際上這里存在著一個誤區。
4。在某些特定的應用場合,例如一些銀行的時時交互系統,對響應速度要求很高,此時數據傳輸頻率較快,不需要大量心跳包維持UDP埠資源,採用UDP就比較有利了。
5。在目前的1:N的傳輸模式中,既有多個GPRS終端設備往一個伺服器中心傳輸數據,此時採用UDP會比TCP要好的多,因為UDP耗用更少的系統資源。但是在實際應用中卻發現,很多用戶還是採用TCP的傳輸方式,建立二級中心1:A(1:N),即每一個分中心對應N/A台設備,獨立處理數據,再統一將數據傳送到主中心。這樣既能保證了傳輸過程中採用了TCP的傳輸協議,又能很好處理了中心伺服器的多鏈路的系統耗用的問題。
總的來說,我認為TCP/IP協議更能滿足目前各行業對遠程數據傳輸的要求,它提供更穩定更便利的傳輸通道,很好的滿足了遠程數據傳輸的要求。
⑥ 網路層中哪些協議屬於TCP哪些屬於UDP
TCP和UDP都是傳輸層的協議,位於網路層之上,LZ問的應當是應用層的協議吧?
應用層中SNMP,DHCP,DNS,RIP,NetBIOS,SMB,CIFS等是基於UDP的;HTTP,TELNET,FTP,SMTP,POP3,IMAP等是基於TCP的。
⑦ 採用的是TCP協議還是UDP協議
TCP協議與UDP協議的區別
首先咱們弄清楚,TCP協議和UCP協議與TCP/IP協議的聯系,很多人犯糊塗了,一直都是說TCP/IP協議與UDP協議的區別,我覺得這是沒有從本質上弄清楚網路通信!
TCP/IP協議是一個協議簇。裡麵包括很多協議的。UDP只是其中的一個。之所以命名為TCP/IP協議,因為TCP,IP協議是兩個很重要的協議,就用他兩命名了。
TCP/IP協議集包括應用層,傳輸層,網路層,網路訪問層。
其中應用層包括:
超文本傳輸協議(HTTP):萬維網的基本協議.
文件傳輸(TFTP簡單文件傳輸協議):
遠程登錄(Telnet),提供遠程訪問其它主機功能,它允許用戶登錄
internet主機,並在這台主機上執行命令.
網路管理(SNMP簡單網路管理協議),該協議提供了監控網路設備的方法,以及配置管理,統計信息收集,性能管理及安全管理等.
域名系統(DNS),該系統用於在internet中將域名及其公共廣播的網路節點轉換成IP地址.
其次網路層包括:
Internet協議(IP)
Internet控制信息協議(ICMP)
地址解析協議(ARP)
反向地址解析協議(RARP)
最後說網路訪問層:網路訪問層又稱作主機到網路層(host-to-network).網路訪問層的功能包括IP地址與物理地址硬體的映射,以及將IP封裝成幀.基於不同硬體類型的網路介面,網路訪問層定義了和物理介質的連接.
當然我這里說得不夠完善,TCP/IP協議本來就是一門學問,每一個分支都是一個很復雜的流程,但我相信每位學習軟體開發的同學都有必要去仔細了解一番。
下面我著重講解一下TCP協議和UDP協議的區別。
TCP(Transmission Control Protocol,傳輸控制協議)是面向連接的協議,也就是說,在收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次「對話」才能建立起來,其中的過程非常復雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發出連接請求數據包:「我想給你發數據,可以嗎?」,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的數據包:「可以,你什麼時候發?」,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:「我現在就發,你接著吧!」,這是第三次對話。三次「對話」的目的是使數據包的發送和接收同步,經過三次「對話」之後,主機A才向主機B正式發送數據。
詳細點說就是:(文章部分轉載http://zhangjiangxing-gmail-com.iteye.com,主要是這個人講解得很到位,的確很容易使人理解!)
TCP三次握手過程
1 主機A通過向主機B 發送一個含有同步序列號的標志位的數據段給主機B ,向主機B 請求建立連接,通過這個數據段,
主機A告訴主機B 兩件事:我想要和你通信;你可以用哪個序列號作為起始數據段來回應我.
2 主機B 收到主機A的請求後,用一個帶有確認應答(ACK)和同步序列號(SYN)標志位的數據段響應主機A,也告訴主機A兩件事:
我已經收到你的請求了,你可以傳輸數據了;你要用哪佧序列號作為起始數據段來回應我
3 主機A收到這個數據段後,再發送一個確認應答,確認已收到主機B 的數據段:"我已收到回復,我現在要開始傳輸實際數據了
這樣3次握手就完成了,主機A和主機B 就可以傳輸數據了.
3次握手的特點
沒有應用層的數據
SYN這個標志位只有在TCP建產連接時才會被置1
握手完成後SYN標志位被置0
TCP建立連接要進行3次握手,而斷開連接要進行4次
1 當主機A完成數據傳輸後,將控制位FIN置1,提出停止TCP連接的請求
2 主機B收到FIN後對其作出響應,確認這一方向上的TCP連接將關閉,將ACK置1
3 由B 端再提出反方向的關閉請求,將FIN置1
4 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束.
由TCP的三次握手和四次斷開可以看出,TCP使用面向連接的通信方式,大大提高了數據通信的可靠性,使發送數據端
和接收端在數據正式傳輸前就有了交互,為數據正式傳輸打下了可靠的基礎
名詞解釋
ACK TCP報頭的控制位之一,對數據進行確認.確認由目的端發出,用它來告訴發送端這個序列號之前的數據段
都收到了.比如,確認號為X,則表示前X-1個數據段都收到了,只有當ACK=1時,確認號才有效,當ACK=0時,確認號無效,這時會要求重傳數據,保證數據的完整性.
SYN 同步序列號,TCP建立連接時將這個位置1
FIN 發送端完成發送任務位,當TCP完成數據傳輸需要斷開時,提出斷開連接的一方將這位置1
TCP的包頭結構:
源埠 16位
目標埠 16位
序列號 32位
回應序號 32位
TCP頭長度 4位
reserved 6位
控制代碼 6位
窗口大小 16位
偏移量 16位
校驗和 16位
選項 32位(可選)
這樣我們得出了TCP包頭的最小長度,為20位元組。
UDP(User Data Protocol,用戶數據報協議)
(1) UDP是一個非連接的協議,傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,並盡可能快地把它扔到網路上。在發送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。
(2) 由於傳輸數據不建立連接,因此也就不需要維護連接狀態,包括收發狀態等,因此一台服務機可同時向多個客戶機傳輸相同的消息。
(3) UDP信息包的標題很短,只有8個位元組,相對於TCP的20個位元組信息包的額外開銷很小。
(4) 吞吐量不受擁擠控制演算法的調節,只受應用軟體生成數據的速率、傳輸帶寬、源端和終端主機性能的限制。
(5)UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持復雜的鏈接狀態表(這裡面有許多參數)。
(6)UDP是面向報文的。發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付給IP層。既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。
我們經常使用「ping」命令來測試兩台主機之間TCP/IP通信是否正常,其實「ping」命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網路就是通的。
UDP的包頭結構:
源埠 16位
目的埠 16位
長度 16位
校驗和 16位
小結TCP與UDP的區別:
1.基於連接與無連接;
2.對系統資源的要求(TCP較多,UDP少);
3.UDP程序結構較簡單;
4.流模式與數據報模式 ;
5.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。
⑧ tcp ip協議udp協議等等這些ios分層中的協議,也適用於電腦上的無線網路嗎,我是說電腦上的,不是手機上的
適用,TCP和UDP協議是在運輸層使用的,而IP協議是在網路層使用,當你無線上網時都要用到的,希望能幫到你,我也是初學者,如果有什麼問題,互相交流哦
⑨ 網路通信時選擇基於TCP/IP協議 還是 UDP/IP協議
一般是TCP協議,可以確保傳輸的安全性,會幫你解決亂序重傳的問題。UDP主要用來傳一些輔助性的、不重要、不怕丟失的信息,以提供傳輸性能。
⑩ 80211協議tcp和udp的區別
802.11協議是無線網路的協議集,包含2.4G和5.8G的所有協議,分別為802.11a/b/g/n/ac,其中802.11b/g/n是2.4G的協議,802.11a/ac是5.8G的協議。
TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次「對話」才能建立起來,其中的過程非常復雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:「我想給你發數據,可以嗎?」,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的數據包:「可以,你什麼時候發?」,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:「我現在就發,你接著吧!」,這是第三次對話。三次「對話」的目的是使數據包的發送和接收同步,經過三次「對話」之後,主機A才向主機B正式發送數據。
UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!
UDP適用於一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用「ping」命令來測試兩台主機之間TCP/IP通信是否正常,其實「ping」命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網路就是通的。例如,在默認狀態下,一次「ping」操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因為對方主機收到後會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因為UDP協議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。