1. 程式人生 > >關於TCP/UDP協議的理解

關於TCP/UDP協議的理解

協議簡介:

協議對於網路安全管理有非常重要的意義,它可以用於檢測病毒的存在,發現病毒,阻止病毒。比如防火牆,防火牆就是通過檢測網路資料包,來判斷是否違反了事先設定好的規則,從而達到對網路安全進行管理的目的。

網路七層協議:

所以網路七層協議(OSI)便成為開放性的通訊系統互連參考模型,因為它是一個定義得非常好的協議規範。但是它為什麼被稱作七層協議呢?主要是因為OSI模型是一個七層結構,每層都可以有幾個子層。OSI的7層從上到下分別是 7 應用層 6 表示層 5 會話層 4 傳輸層 3 網路層 2 資料鏈路層 1 物理層。如下圖:
 

TCP/UDP協議:

而TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協議就是屬於其中的傳輸層協議。其中TCP提供IP環境下的資料可靠傳輸,它提供的服務包括資料流傳送、可靠性、有效流控、全雙工操作和多路複用。通過面向連線、端到端和可靠的資料包傳送。通俗的來講,TCP就是在主機A與主機B進行資料傳送之前,為其提前開闢一條資料傳輸的道路,再發送資料,因此TCP協議保證了傳輸過程中的準確性,不容易出錯;而UDP則不為IP提供可靠性、流控或差錯恢復功能。通俗的來講,UDP不會提前開闢一條資料傳輸的通道,主機A直接把資料傳輸給主機B一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經濟的應用。TCP支援的應用協議主要有:Telnet、FTP、SMTP等;UDP支援的應用層協議主要有:NFS(網路檔案系統)、SNMP(簡單網路管理協議)、DNS(主域名稱系統)、TFTP(通用檔案傳輸協議)等。

連線的具體過程:

面向連線的TCP協議:
TCP(Transmission Control Protocol,傳輸控制協議)是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。一個TCP協議的連線需要3個步驟:首先主機A向主機B傳送連線請求的資料包,請求向其傳輸資料,然後主機B向主機A傳送同意連線,並要求與主機A同步(同步是指兩臺主機,一個在傳送,一個在接受,協調工作)的資料包,最後主機A再發一個確認與主機B同步的資料包,這樣就形成了相當於開闢了一條通道,然後主機A就可以向主機B傳送資料啦。所以TCP協議能為應用程式提供可靠的通訊連線,使一臺計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的資料通訊系統往往使用TCP協議傳輸資料。同時我們可以觀察到當主機A向主機B傳輸6367個數據包時,主機B作為資料接受方,仍要傳送3456個數據包。如下圖:

 面向非連線的UDP協議:
UDP(User Data Protocol,使用者資料報協議)是與TCP相對應的協議。它是面向非連線的協議,它不與對方建立連線,而是直接就把資料包傳送過去!就是說主機A不管主機B處於什麼狀態,也不提前告訴B要傳輸資料給它,就直接傳送資料給主機B。因此UDP適用於一次只傳送少量資料、對可靠性要求不高的應用環境。同時我們可以觀察到,當主機A向主機B傳輸4個數據包時,主機B就會接受4個數據包。如下圖:

TCP/UDP協議的區別:

TCP協議和UDP協議各有所長、各有所短,適用於不同要求的通訊環境。TCP協議和UDP協議之間的差別如附表所示。

 

本文原文地址:https://blog.csdn.net/qq_44026235/article/details/84929430