TCP協議

1、TCP與UDPweb

  TCP(傳輸控制協議)和UDP(用戶數據報協議)是OSI模型中的傳輸層中的協議。TCP提供可靠的通訊傳輸,而UDP則常被用於廣播和細節控制交給應用的通訊傳輸。傳輸層的功能是使源主機和目標端主機上的實體能夠進行會話。瀏覽器

  TCP協議是一個面向鏈接的、可靠的協議。它將一臺主機發出的字節流無差錯地發往互聯網上的其餘主機。須要三次握手創建鏈接才能進行數據傳輸。在發送端,它負責把上層傳送下來的字節流分紅報文段並傳遞給下層。在接收端,它負責把收到的報文進行重組後遞交給上層。TCP協議還要處理端到端的流量控制,以免緩慢接收的接收方沒有足夠的緩衝區接收發送方發送的大量數據。安全

  UDP協議是一個不可靠、無鏈接協議,不與對方創建鏈接而是直接就把數據包發送過去。主要適用於不須要對報文進行排序和流量控制的場合。UDP適用於一次只傳少許數據、對可靠性要求不高的應用環境。好比,咱們常用「ping」命令來測試兩臺主機之間TCP/IP通訊是否正常,其實「ping」命令的原理就是向對方主機發送UDP數據包,而後對方主機確認收到數據包,若是數據包是否到達的消息及時反饋回來,那麼網絡就是通的。服務器

TCP/UDP的優缺點:網絡

  TCP的優勢:可靠、穩定;TCP的可靠體如今TCP在傳遞數據以前,會有三次握手來創建來鏈接,並且在數據傳遞時,有確認、窗口、擁塞控制機制,在數據傳完後,還會斷開鏈接來節約系統資源。函數

  TCP的缺點:慢、效率低、佔用系統資源高、易被攻擊;TCP在傳遞數據以前,要先創建鏈接,這會消耗時間,並且在數據傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,並且要在每臺設備上維護全部的傳輸鏈接。事實上,每一個連接都會佔用系統的CPU、內存等硬件資源。並且由於TCP有確認機制、三次握手機制,這些也致使TCP容易被人利用,實現DOS、DDOS、CC等攻擊。測試

  UDP的優勢:快、比TCP稍安全;UDP沒有TCP的握手、確認、窗口、重傳、擁塞控制等機制,UDP是一個無狀態的傳輸協議,因此它在傳遞數據是很是快。沒有TCP的這些機制,UDP較TCP被攻擊者利用的漏洞就要少一些,但UDP也是沒法避免攻擊的,好比UDP Flood攻擊......spa

  UDP的缺點:不可靠、不穩定;由於UDP沒有TCP那些可靠的機制,在數據傳遞時,若是網絡質量很差,就會很容易丟包。排序

二者的區別大體以下:內存

  TCP面向鏈接;UDP面向非鏈接,即發送數據前不須要創建鏈接;

  TCP提供可靠的服務(數據傳輸);UDP沒法保證;

  TCP面向字節流、UDP面向報文;

  TCP數據傳輸慢;UDP數據傳輸快;

TCP/UDP應用場景:

  何時使用TCP?答:當對網絡通信質量有要求時,好比:整個數據要準確無誤地傳遞給對方,這每每用於一些要求可靠的應用,好比HTTP、HTTPS、FTP等傳輸文件的協議,POP、SMTP等郵件傳輸協議。

  何時使用UDP?答:當對網絡通信質量要求不高時,要求網絡通信速度能儘可能的快,這是就可使用UDP。

面向鏈接和麪向無鏈接的區別?

  面向鏈接舉例:兩我的之間經過電話進行通訊;面向無鏈接舉例:郵政服務,用戶把信函放在郵件中期待郵政處理流程來傳遞郵政包裹。顯然,不可達表明不可靠。

  TCP通訊須要服務器端偵聽listen、接收客戶端鏈接請求accept,等待客戶端connect創建鏈接後才能進行數據包的收發(recv/send)工做。而UDP則服務器和客戶端的概念不明顯,服務器端即接收端須要綁定端口,等待客戶端數據的到來,後續即可以進行數據的收發(recvfrom/sendto)工做。

TCP和UDP中報文的邊界問題:在默認的阻塞模式下,TCP無邊界,UDP有邊界。

  對於TCP協議,客戶端連續發送數據,主要服務端的這個函數的緩衝區足夠的大,會一次性接收過來,即客戶端是分好幾回發過來,是有邊界的,而服務端卻一次性接收過來,這個名師無邊界的;

  對於UDP協議,客戶端連續發送數據,即便服務端的這個函數的緩衝區足夠大,也只會一次一次的接收,發送多少次接收多少次,即客戶端分幾回發送過來,服務端就必須按幾回接收,從而證實,UDP的通信模式是有邊界的。

2、TCP對應的協議和UDP對應的協議

TCP對應的協議:

  1)FTP:定義了文件傳輸協議,使用21端口。計算機開了FTP服務即是啓動了文件傳輸服務。下載文件、上傳主頁,都要用到FTP服務。

  2)Telent:它是一種用於遠程登錄的端口,用戶能夠以本身的身份遠程鏈接到計算機上,經過這種端口能夠提供一種基於DOS模式下的通訊服務。如之前的BBS是純字符界面的,支持BBS的服務器將23端口打開,對外提供服務。

  3)SMTP:定義了簡單郵件傳送協議,如今不少郵件服務器都用的是這個協議,用於發送郵件。如經常使用的免費郵件服務中用的就是這個郵件服務端口,因此在電子郵件設置中常看到有SMTP端口設置這個欄,服務器開放的是25號端口。

  4)POP3:它是和SMTP對應,POP3用於接收郵件,一般狀況下,POP3協議所用的是110端口。也就是說,只要你有相應的使用POP3協議的程序,就能夠不以web方式登錄進郵箱界面,直接用郵件程序就能夠收到郵件。

  5)HTTP協議:是從web服務器傳輸超文本到本地瀏覽器的傳送協議。

UDP對應的協議:

  1)DNS:用於域名解析服務,將域名地址轉換爲IP地址。DNS用的是53端口。

  2)SNMP:簡單網絡管理協議,使用161端口,是用來管理網絡設備的。因爲網絡設備不少,無鏈接的服務就體現出其優點。

  3)TFTP,簡單文件傳輸協議,該協議在端口69上使用UDP服務。

相關文章
相關標籤/搜索