TCP和UDP都是傳輸層協(xié)議日杈,但是兩者具有不同的特性和應(yīng)用場景
TCP | UDP | |
---|---|---|
可靠性 | 可靠 | 不可靠 |
連接性 | 面向連接 | 面向無連接 |
報文 | 面向字節(jié)流 | 面向報文 |
效率 | 低 | 高 |
雙工性 | 全雙工 | 一對一脏里、一對多硫痰、多對一刻剥、多對多 |
流量控制 | 滑動窗口 | 無 |
擁塞控制 | 慢開始馋记、擁塞避免驰后、快重傳肆资、快恢復(fù) | 無 |
傳輸速度 | 慢 | 快 |
應(yīng)用場景 | 對效率要求低,對準確度要求高或者要求有連接的場景灶芝。比如:電子郵件(SMTP)郑原、萬維網(wǎng)(HTTP)、文件傳輸(FTP) | 對效率要求高夜涕,對準確度要求低的場景犯犁。比如:域名轉(zhuǎn)換(DNS)、遠程文件服務(wù)器(NFS) |
名詞解釋:
1 面向報文和面向字節(jié)流
面向報文的傳輸方式是應(yīng)用層交給UDP多長的報文女器,UDP就發(fā)送多長的報文酸役,即一次發(fā)送一個報文。因此應(yīng)用程序必須選擇大小合適的報文驾胆。報文太長涣澡,則IP層需要分片,降低效率丧诺。
面向字節(jié)流的傳輸方式是應(yīng)用程序和TCP的交互是一次一個數(shù)據(jù)塊(大小不等)入桂,TCP把這些數(shù)據(jù)塊看成是一連串無結(jié)構(gòu)的字節(jié)流。TCP有一個緩沖驳阎,當應(yīng)用程序傳送的數(shù)據(jù)塊太長抗愁,TCP就會把它分割成多塊傳送。
2 雙工性
全雙工:是指在發(fā)送數(shù)據(jù)的同時也能夠接收數(shù)據(jù)搞隐,兩者同步進行驹愚,這好像我們平時打電話一樣,說話的同時也能夠聽到對方的聲音劣纲。目前的網(wǎng)卡一般都支持全雙工逢捺。
半雙工:所謂半雙工就是指一個時間段內(nèi)只有一個動作發(fā)生,舉個簡單例子癞季,一條窄窄的馬路劫瞳,同時只能有一輛車通過倘潜,當目前有兩量車對開,這種情況下就只能一輛先過志于,等到頭兒后另一輛再開涮因,這個例子就形象的說明了半雙工的原理。
參考:
雙工性的概念摘自百度知道:https://zhidao.baidu.com/question/21855854.html
https://github.com/LRH1993/android_interview/blob/master/computer-networks/tcpip.md