一.區別
二者都是有用的和常用的,如果純粹從概念上區分二者就比較費解了,我們直接從功能上進行區分,簡單明了:
這兩種傳輸協議也就是合於適配不同的業務和不同的硬件終端。
在使用中,類似於圖像、聲音等對可靠性要求沒有那么高的業務可以用UDP,他們不需要准確存儲對准確性無要求但要求速度快。
類似於文本、程序、文件等要求可靠的數據最好就用TCP,但會犧牲一些速度。
對系統資源的要求:CP較多,UDP少。
程序結構:UDP程序結構較簡單,TCP復雜。
流模式與數據報模式: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協議了。
Udp是一種面向無連接的通信協議,該協議使得數據傳輸的速度得到大幅度的提高。視頻聊天語音聊天基本都是用UPD協議。
我的總結:
一、UDP:
1、將數據源和目的地封裝到數據包中,不需要建立連接
2、每個數據包的大小限制在64k以內
3、因無連接,是不可靠協議
4、不需要建立連接,速度快
例子:聊天、對講機就是UDP的,面向無連接(不管在不在,知不知道,只管發送,求速度),丟數據也不管。速度快。數據被分成包
二、TCP:
1、建立連接,形成傳輸數據的通道
2、在連接中進行大量數據的傳輸
3、通過三次握手完成連接、是可靠協議
4、必須建立連接,效率會稍低
例子:電話通話,必須連接,對方同意才可以發送數據(不然就等待),不能丟失數據。