1. 程式人生 > >網路協議之TCP和UDP

網路協議之TCP和UDP

 

 

應用層向TCP層傳送用於網間傳輸的、用8位位元組表示的資料流,然後TCP把資料流分割成適當長度的報文段(通常受該計算機連線的網路的資料鏈路層的最大傳送單元(MTU)的限制)。之後TCP把結果包傳給IP層,由它來通過網路將包傳送給接收端實體的TCP層。TCP為了保證不發生丟包,就給每個位元組一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的位元組發回一個相應的確認(ACK);如果傳送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的資料(假設丟失了)將會被重傳。TCP用一個校驗和函式來檢驗資料是否有錯誤;在傳送和接收時都要計算和校驗。

首先,TCP建立連線之後,通訊雙方都同時可以進行資料的傳輸,其次,它是全雙工的;在保證可靠性上,採用超時重傳和捎帶確認機制。

在流量控制上,採用滑動視窗協議,協議中規定,對於視窗內未經確認的分組需要重傳。

擁塞控制上,採用廣受好評的TCP擁塞控制演算法(也稱AIMD演算法),該演算法主要包括三個主要部分:1,加性增、乘性減;2,慢啟動;3,對超時事件做出反應。

在一個TCP連線中,僅有兩方進行彼此通訊。廣播和多播不能用於TCP。

1.應用資料被分割成TCP認為最適合傳送的資料塊。這和UDP完全不同,應用程式產生的資料報長度將保持不變。由TCP傳遞給IP的資訊單位稱為報文段或段(

segmentTCP如何確定報文段的長度。

2.當TCP發出一個段後,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。當TCP收到發自TCP連線另一端的資料,它將傳送一個確認。這個確認不是立即傳送,通常將推遲幾分之一秒

3TCP將保持它首部和資料的檢驗和。這是一個端到端的檢驗和,目的是檢測資料在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發端超時並重發)。

4.既然TCP報文段作為IP資料報來傳輸,而IP資料報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的資料進行重新排序,將收到的資料以正確的順序交給應用層。

5.既然IP資料報會發生重複,TCP的接收端必須丟棄重複的資料。

6TCP還能提供流量控制。TCP連線的每一方都有固定大小的緩衝空間。TCP的接收端只允許另一端傳送接收端緩衝區所能接納的資料。這將防止較快主機致使較慢主機的緩衝區溢位。

 

1.面向連線的傳輸;

2.端到端的通訊;

3.高可靠性,確保傳輸資料的正確性,不出現丟失或亂序;

4.全雙工方式傳輸;

5.採用位元組流方式,即以位元組為單位傳輸位元組序列;

6.緊急資料傳送功能。

 

TCP段結構中埠地址都是16位元,可以有在0~65535範圍內的埠號。對於這65536個埠號有以下的使用規定:

1.埠號小於256的定義為常用埠,伺服器一般都是通過常用埠號來識別的。任何TCP/IP實現所提供的服務都用1~1023之間的埠號,是由IANA來管理的;

2.客戶端只需保證該埠號在本機上是惟一的就可以了。客戶埠號因存在時間很短暫又稱臨時埠號;

3.大多數TCP/IP實現給臨時埠號分配1024~5000之間的埠號。大於5000的埠號是為其他伺服器預留的。

 

TCP協議和UDP協議的區別

1TCP協議面向連線,UDP協議面向非連線

2TCP協議傳輸速度慢,UDP協議傳輸速度快

3TCP協議保證資料順序,UDP協議不保證

4TCP協議保證資料正確性,UDP協議可能丟包

5TCP協議對系統資源要求多,UDP協議要求少

TCP = Transmission Control Protocol 傳輸控制協議

 

地址解析協議(Address Resolution ProtocolARP)是在僅知道主機IP地址時確定其實體地址的一種協議。因IPv4乙太網的廣泛應用,其主要作用是通過已知IP地址,獲取對應實體地址的一種協議。但其也能在ATM(非同步傳輸模式)FDDIIP(Fiber Distributed Data Interface光纖分散式資料介面)網路中使用。從IP地址到實體地址的對映有兩種方式:表格方式和非表格方式。ARP具體說來就是將網路層IP層,也就是相當於OSI的第三層)地址解析為資料鏈路層MAC層,也就是相當於OSI的第二層)的MAC地址