[size=large][b]總述:[/b]
[b]udp的特點[/b]:udp是一種不可靠的、非連線的分組交付服務,但也正是由於其不可靠性,所以他的開銷很小。換言之:udp提供了一種在高效可靠的網路上傳輸資料,而不用笑話哦不必要的網路資源和處理時間的通訊方式。
[b]tcp的特點[/b]:tcp是一種面向連線的可靠的通訊協議,在傳輸開始之前,通訊雙方要通過三次握手來建立連線,以保證連線的可靠性。(後面將具體介紹「三次握手」以及「四次斷開」機制)
[b]tcp協議頭的內容:[/b]
tcp序列號(序列碼,sequence number):32位的序列號由接收端計算機使用,重新分段的報文成最初形式。當syn出現,序列碼實際上是初始序列碼(isn),而第乙個數(acknowledgment number):32位的序列號由接收端計算機使用,重組分段的報文成最初形式。,如果設定了ack控制位,這個值表示乙個準備接收的包的序列碼。
資料偏移量(hlen):4位包括tcp頭大小,指示何處資料開始。
保留(reserved):6位值域,這些位必須是0。為了將來定義新的用途所保留。
標誌(code bits):6位標誌域。表示為:緊急標誌、有意義的應答標誌、推、重置連線標誌、同步序列號標誌、完成傳送資料標誌。按照順序排列是:urg、ack、psh、rst、syn、fin。
視窗(window):16位,用來表示想收到的每個tcp資料段的大小。
校驗位(checksum):16位tcp頭。源機器基於資料內容計算乙個數值,收資訊機要與源機器數值結果完全一樣,從而證明資料的有效性。
優先指標(緊急,urgent pointer):16位,指向後面是優先資料的位元組,在urg標誌設定了時才有效。如果urg標誌沒有被設定,緊急域作為填充。加快處理標示為緊急的資料段。
選項(option):長度不定,但長度必須以位元組。如果沒有選項就表示這個一位元組的域等於0。
填充:不定長,填充的內容必須為0,它是為了數學目的而存在。目的是確保空間的可**性。保證包頭的結合和資料的開始處偏移量能夠被32整除,一般額外的零以保證tcp頭是32位的整數倍。
[b]三次握手:[/b]
在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。
第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;syn:同步序列編號(synchronize sequence numbers)。
第二次握手:伺服器收到syn包,必須確認客戶的syn(ac k=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到服務 器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。
[b]四次斷開(連線終止協議):[/b]
由於tcp連線是全雙工的,因此每個方向都必須單獨進行關閉。這原則是當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向的連線。收到乙個 fin只意味著這一方向上沒有資料流動,乙個tcp連線在收到乙個fin後仍能傳送資料。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。
(1) tcp客戶端傳送乙個fin,用來關閉客戶到伺服器的資料傳送(報文段4)。
(2) 伺服器收到這個fin,它發回乙個ack,確認序號為收到的序號加1(報文段5)。和syn一樣,乙個fin將占用乙個序號。
(3) 伺服器關閉客戶端的連線,傳送乙個fin給客戶端(報文段6)。
(4) 客戶段發回ack報文確認,並將確認序號設定為收到序號加1(報文段7)。[/size]
TCP IP 協議之 UDP協議
1 udp 是面向使用者資料報的運輸層協議哈。不可靠,無連線。2 首部 共8b 源埠號 2b 目的埠號 2b udp長度 2b udp校驗和 2b 說明 1 對於udp的埠號,埠號是用來標記應用程序的,tcp和udp可以共用乙個埠號,這可以在ip首部中的協議欄位來區分開來。2 udp長度是首部長度與...
TCP IP 協議 (傳輸層)UDP協議
從之前介紹的網路層協議來看,通訊的兩端是兩台主機,ip 資料報首部就標明了這兩台主機的 ip 位址。但是從傳輸層來看,是傳送方主機中的乙個程序與接收方主機中的乙個程序在交換資料,因此,嚴格地講,通訊雙方不是主機,而是主機中的程序。主機中常常有多個應用程序同時在與外部通訊 比如你的瀏覽器和 qq 在同...
TCP IP協議棧 之 UDP協議
udp是一種基於ip協議的不可靠傳輸協議,在ip資料的位置如下 ip頭部 20位元組 udp頭 8位元組 udp資料 udp協議是tcp ip的傳輸協議的一部分,與tcp的傳輸不一樣,它提供無連線的 不可靠的傳輸服務。udp協議把應用程式需要傳遞的資料傳送出去,不提供傳送資料報的順序 接收方不向傳送...