面向鏈接。
每一條TCP鏈接只能是點對點的(一對一)。
提供可靠交付的服務(無差錯,不丟失,不重複,且按序到達)(校驗和、重傳控制、序號標識、滑動窗口、確認應答實現可靠傳輸。如丟包時的重發控制,還能夠對次序亂掉的分包進行順序控制。)。
提供全雙工通訊。
面向字節流。html
無鏈接。
盡最大努力交付(不保證可靠交付)。
面向報文。
無擁塞控制。
支持一對1、一對多、多對一和多對多的交互通訊。
首部開銷小(只有四個字段:源端口、目的端口、長度、檢驗和)。瀏覽器
(1) FTP:定義了文件傳輸協議,使用21端口。
(2) Telnet:一種用於遠程登錄的端口,使用23端口,用戶能夠以本身的身份遠程鏈接到計算機上,可提供基於DOS模式下的通訊服務。
(3) SMTP:郵件傳送協議,用於發送郵件。服務器開放的是25號端口。
(4) POP3:它是和SMTP對應,POP3用於接收郵件。POP3協議所用的是110端口。
(5) HTTP:是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。緩存
(1) DNS:用於域名解析服務,將域名地址轉換爲IP地址。DNS用的是53號端口。
(2) SNMP:簡單網絡管理協議,使用161號端口,是用來管理網絡設備的。因爲網絡設備不少,無鏈接的服務就體現出其優點。
(3) TFTP(Trivial File Transfer Protocal),簡單文件傳輸協議,該協議在熟知端口69上使用UDP服務。安全
UDP不屬於鏈接協議,具備資源消耗少,處理速度快的優勢,因此一般音頻,視頻和普通數據在傳送時,使用UDP較多,由於即便丟失少許的包,也不會對接受結果產生較大的影響。服務器
傳輸層沒法保證數據的可靠傳輸,只能經過應用層來實現了。實現的方式能夠參照tcp可靠性傳輸的方式,只是實現不在傳輸層,實現轉移到了應用層。網絡
最簡單的方式是在應用層模仿傳輸層TCP的可靠性傳輸。下面不考慮擁塞處理,可靠UDP的簡單設計。併發
一、添加seq/ack機制,確保數據發送到對端
二、添加發送和接收緩衝區,主要是用戶超時重傳。
三、添加超時重傳機制。
詳細說明:送端發送數據時,生成一個隨機seq=x,而後每一片按照數據大小分配seq。數據到達接收端後接收端放入緩存,併發送一個ack=x的包,表示對方已經收到了數據。發送端收到了ack包後,刪除緩衝區對應的數據。時間到後,定時任務檢查是否須要重傳數據。tcp
目前有以下開源程序利用udp實現了可靠的數據傳輸。分別爲RUDP、RTP、UDT。.net