在進行兩者之間的區(qū)別和說明之前赫蛇,我們可以先來看看酷麦,在整個TCP/IP網(wǎng)絡(luò)協(xié)議模型之中甚负,這兩個協(xié)議是處于傳輸層的霎挟。所以這兩個協(xié)議都是傳輸層協(xié)議窝剖。
在TCP/IP中能夠?qū)崿F(xiàn)傳輸功能的、最具有代表性的兩個協(xié)議就是TCP和UDP了酥夭。
TCP
TCP是面向連接的赐纱,可靠的流協(xié)議脊奋。
流就是指不間斷的數(shù)據(jù)結(jié)構(gòu)。TCP為提供可靠性傳輸疙描,實行順序控制诚隙、重發(fā)控制機制。
除此之外起胰,還具有流量控制久又、擁塞控制、提高網(wǎng)絡(luò)利用率等眾多功能待错。
TCP通過校驗和籽孙、序列號、確認應答火俄、重發(fā)控制、連接管理以及窗口控制等機制實現(xiàn)可靠性傳輸讲冠。
總結(jié)
TCP 協(xié)議能夠檢測和恢復 IP 層提供的主機到主機的通信中可能發(fā)生的報文丟失瓜客、重復及其他錯誤。TCP 提供了一個可信賴的字節(jié)流通道竿开,這樣應用程序就不需要考慮這些問題谱仪。同時,TCP 協(xié)議是一種面向連接的協(xié)議否彩,在使用 TCP進行通信之前疯攒,兩個應用程序之間需要建立一個 TCP 連接,而這個連接又涉及到兩臺電腦需要完成握手消息的交換列荔。
UDP
UDP不具有可靠的數(shù)據(jù)包協(xié)議敬尺,在UDP的情況下,可以確保發(fā)送消息的大小贴浙,但是不保證消息一定會到達砂吞。
兩者并沒有一定優(yōu)勢區(qū)分,UDP主要用于那些對高速傳播和實時性有較高要求的通信和廣播崎溃。
比如蜻直,通過IP電話進行通話,會使用UDP袁串。
原因:使用TCP的話概而,如果數(shù)據(jù)在傳輸時丟失會重發(fā),但這樣無法流暢的傳輸通話人的聲音囱修。使用UDP不會進行重發(fā)處理赎瑰,即使部分數(shù)據(jù)丟失,只會影響一小部分蔚袍。
此外乡范,多播以及廣播也用UDP協(xié)議配名。
總結(jié)
UDP 協(xié)議不會對 IP 層產(chǎn)生的錯誤進行修復,而是簡單的擴展了 IP 協(xié)議“盡力而為”的數(shù)據(jù)報文服務晋辆,使他能夠在應用程序之間工作渠脉,而不是在主機之間工作,因此使用 UDP協(xié)議必須要考慮到報文丟失瓶佳,順序混亂的問題 芋膘。
UDP應用
1.包總量較少的通信(DNS、SNMP)
- 視頻霸饲、音頻等即時通信
3.廣播通信
4.限定于特定網(wǎng)絡(luò)中的應用通信(LAN)
TCP/IP和UDP/IP通信中为朋,采用五個信號進行識別一個通信。分別是: 源IP地址厚脉,目標IP地址习寸,協(xié)議號,源端口號傻工,目標端口號霞溪。其中一項不同,就是其他通信
端口號的確定:
1.標準既定端口號中捆。
TCP協(xié)議既定的端口號: HTTP:80 鸯匹、ftp:21 、 ssh: 22 泄伪、telnet:23
2.時序分配法服務端去確定監(jiān)聽端口號殴蓬。由系統(tǒng)去確定。
兩者之間最大的區(qū)別是: UDP是面向無連接的通信服務的協(xié)議蟋滴,而TCP是可靠性連接染厅,充分實現(xiàn)了數(shù)據(jù)傳輸時的各種控制功能,可以進行丟包的重發(fā)控制脓杉,還可以把次序亂掉的分包進行順序控制糟秘。此外,作為面向有連接的協(xié)議球散,只有確認通信對端存在時才會發(fā)送數(shù)據(jù)尿赚,從而控制流量的浪費。