1. 程式人生 > >TCP、UDP協議理解

TCP、UDP協議理解

1、網路協議簡述

計算機之間的通訊需要遵循一定的協議(可以理解為一種訊號解讀的規範)。這些協議分為四個層次:
1、物理層:指的是用於計算機資料傳輸的真實物理媒介。
2、連線層:連線層中的資訊以幀(一段有限的0/1序列)為單位傳輸,連線層協議的作用是根據一定的0/1組合
識別幀的起始和結束,不關注幀中包含的資訊。
3、傳輸層:傳輸層協議包括TCP和UDP,使用埠號來識別資料傳輸的物件。
4、應用層:對被傳輸的資訊格式做出進一步的規範。如用於Web瀏覽的HTTP協議,是應用層的協議,但它的資料傳輸是依靠TCP協議上的,即可稱HTTP協議是TCP協議族中的一種。

2、TCP(傳輸控制協議)

TCP(Transmission Control Protocol,傳輸控制協議)面向連結。在正式收發資料之前,需要使用 三次握手協議 和對方先建立可靠的連結。

首先,應用層向TCP層傳送用於網間傳輸的、用8位位元組表示的資料流,然後TCP把資料流分割槽成適當長度的報文段。
TCP三次握手的過程如下:
(1)客戶端傳送SYN(SEQ=x)報文給伺服器端,進入 SYN_SEND狀態。 / /服務端提出傳送資料的請求
(2)伺服器端收到SYN報文,迴應一個SYN (SEQ=y) ACK(ACK=x+1)報文,進入SYN_RECV狀態。 / /伺服器端傳送同意連結和要求同步
(3)客戶端收到伺服器端的SYN報文,迴應一個ACK(ACK=y+1)報文,進入Established狀態。/ /客戶端確認要求同步

TCP可通過建立的連結進行可靠的傳輸,無差錯,不丟失,不重複。一旦發生丟包(資料包丟失),TCP會將後續的包進行快取,等待前面的包重傳成功後再進行後續傳輸,因而會多消耗一些流量,並造成延時。

2、UDP(使用者資料報協議)

UDP(User Data Protocol,使用者資料報協議)是與TCP相對的協議。同屬於傳輸層協議,UDP不面向連線,在不建立連線的情況下直接傳送資料包。
因不需要建立連線,也不存在丟包重傳的機制,UDP比TCP少消耗一點兒流量並能達到更好的實時性。也正因如此,UDP一般適用於一次只傳輸少量資料,對可靠性要求不高的應用環境。(因為一旦發生丟包,就收不到資料了)

3、TCP與UDP的區別總結

(1)TCP建立連線;UDP不需要建立連線直接傳輸資料。
(2)TCP可靠性高,可用於傳輸大量的資料;UDP可靠性較差,用於傳輸少量的資料。
(3)TCP傳輸速度較慢,有一定的延時;UDP傳輸速度較快,實時性較好。
(4)另:網路環境的改善使得UDP的丟包率下降,同時也可以使用應用層重傳來保證資料的傳輸。