當兩台主機採用tcp協議進行通訊時,在交換資料前將建立連線。通訊完成後,將關閉會話並終止連線。連線和會話機制保障了tcp的可靠性功能。
請參見圖中建立並終止tcp連線的步驟。
主機將跟蹤會話過程中的每個資料段,並使用tcp報頭中的資訊了解每台主機所接收到的資料。
每個連線都代表兩股單向通訊資料流或者會話。若要建立連線,主機應執行三次握手。tcp報頭中的控制位指出了連線的進度和狀態。
三次握手:
1.確認目的裝置存在於網路上;
2.確認目的裝置有活動的服務,並且正在源客戶端要使用的目的埠號上接受請求;
3.通知目的裝置源客戶端想要在該埠號上建立通訊會話。
在tcp連線中,充當客戶端的主機將向伺服器發起該會話。
tcp連線建立的過程分為三個步驟:
1.客戶端向伺服器傳送包含初始序列值的資料段,開啟通訊會話;
2.伺服器傳送包含確認值的資料段,其值等於收到的序列值加1,並加上其自身的同步序列值。該值比序列號大1,因為ack總是下乙個預期位元組或二進位制八位數。通過此確認值,客戶端可以將響應和上一次傳送到伺服器的資料段聯接起來;
3.傳送帶確認值的客戶端響應,其值等於接受的序列值加1。這便完成了整個建立連線的過程。
為了理解三次握手的過程,必須考察兩台主機間交換的不同值。在tcp資料段報頭中,有六個包含控制資訊的1位元字段,用於管理tcp程序。這些字段分別是:
urg—緊急指標
ack—確認字段
psh—推送功能
rst—重置連線
syn—同步序列號
fin—傳送方已傳輸完所有資料
這些字段用作標誌,由於它們都只有1位元大小,所以它們都只有兩個值:1或者0。當值設為1時,表示資料段中包含控制資訊。
通過4步流程法,可以交換標誌,以終止tcp連線。
tcp三次握手
步驟1:
tcp客戶端傳送帶同步序列號(syn)控制標誌設定的資料段,指示包含在報頭中的序列號字段的初始值,用以開啟三次握手。序列號的初始值稱為初始序列號(isn),由系統隨機選取,並用於跟蹤會話過程中從客戶端到伺服器的資料流。在會話過程中,每從客戶端向伺服器傳送乙個位元組的資料,資料段報頭中包含的isn值就要加1。
如圖所示,協議分析器的輸出結果中顯示了syn控制標誌和相應的序列號。
syn控制標誌被置位並且相應的序列號設定為0。儘管圖中的協議分析器已顯示了序列號和確認號的相應值,但其真實值應該為32位二進位數字。我們可以通過研究packet bytes窗格確定資料段報頭中傳送的實際數值。此處您可以看到以十六進製制顯示的四個位元組。步驟2:
tcp伺服器需要確認從客戶端處收到syn資料段,從而建立從客戶端到伺服器的會話。為了達到此目的,伺服器應向客戶端傳送帶ack標誌設定的資料段,表明確認編號有效。客戶端將這種帶確認標誌設定的資料段理解為確認資訊,即伺服器已收到從tcp客戶端發出的syn資訊。
確認編號欄位的值等於客戶端初始序列號加1。此時建立從客戶端到伺服器的會話。ack標誌將在會話其間保持設定。我們在前面已經學過,客戶端和伺服器之間的會話實際上是由兩個單向的會話組成的:乙個是從客戶端到伺服器的會話,另乙個則正好相反。在三次握手過程的第二步中,伺服器必須發起從伺服器到客戶端的響應。為開啟會話,伺服器應採用與客戶端同樣的方法使用syn標誌。該操作設定報頭中的syn控制標誌,從而建立從伺服器到客戶端的會話。syn標誌表明序列號字段的初始值已包含在報頭中,且該值將用於跟蹤會話過程中從伺服器返回客戶端的資料流。
如右圖所示,協議分析器的輸出結果中顯示了ack和syn控制標誌的設定,以及相應的序列號和確認號。
步驟3:
最後,tcp客戶端傳送包含ack資訊的資料段,以示對伺服器傳送的tcp syn資訊的響應。在該資料段中,不包括使用者資料。確認號字段的值比從伺服器接收的初始序列號值大1。一旦在客戶端和伺服器之間建立了雙向會話,該通訊過程中交換的所有資料段都將包含ack標誌設定。
如圖所示,協議分析器的輸出結果中顯示了ack控制標誌,以及相應的序列號和確認號。
通過以下方式,可以加強資料網路的安全性:
拒絕建立tcp會話;
只允許建立特定服務的會話;
只允許已建立會話之間的通訊。
以上安全策略可以應用於所有tcp會話,也可以僅應用於某些選定會話。
若要關閉連線,應設定資料段報頭中的fin(結束)控制標誌。為終止每個單向tcp會話,需採用包含fin資料段和ack資料段的二次握手。因此,若要終止tcp支援的整個會話過程,需要實施四次交換,以終止兩個雙向會話。注意:在本部分中,為了更容易理解,採用了客戶端和伺服器端進行說明。實際上,終止的過程可以在任意兩台完成會話的主機之間展開。
1.當客戶端的資料流中沒有其它要傳送的資料時,它將傳送帶fin標誌設定的資料段;
2.伺服器傳送ack資訊,確認收到從客戶端發出的請求終止會話的fin資訊;
3.伺服器向客戶端傳送fin資訊,終止從伺服器到客戶端的會話;
4.客戶端傳送ack響應資訊,確認收到從伺服器發出的fin資訊。
當會話中的客戶端沒有其它要傳輸的資料時,它將在資料段報頭中設定fin標誌。然後,會話中的伺服器端將傳送包含ack標誌設定的一般資料段資訊,通過確認號確認已經收到所有資料。當所有資料段得到確認後,會話關閉。
另一方向的會話採用相同的方式關閉。接收方在資料段的報頭中設定fin標誌,然後傳送到傳送方,表明沒有其它需要傳送的資料。返回的確認資訊確定已接收所有資料,隨即該方向的會話關閉。
如右圖所示,在資料段報頭中設定了fin和ack控制標誌,並從而關閉了http會話。
也可以通過三次握手方式關閉連線。當客戶端沒有其它要傳輸的資料時,它將向伺服器傳送fin資訊。如果伺服器也沒有其它要傳輸的資料,它將傳送同時包含fin和ack標誌設定的響應資訊,將兩步並作一步。最後,客戶端返回ack資訊。
TCP IP三次握手協議
tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線 位碼即tcp標誌位,有6種標示 syn synchronous建立聯機 ack acknowledgement 確認 psh pus...
TCP IP協議三次握手
建立起乙個tcp連線需要經過 三次握手 第一次握手 客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 syn k 即syn ack包,此時伺服器進入syn recv狀...
TCP IP協議的三次握手
在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立一次連線。第一次 a b 傳送 syn 包。標誌位 syn 1 序號seq 200 隨機產生的數 主機a向b請求連線 第二次 b a 傳送 syn,ack 包。標誌位 syn 1,ack 1 序號seq 500 隨機產生的數 ack...