tcp 傳送的資料單元稱為報文段。乙個 tcp 報文段分為 tcp 首部和 tcp 資料兩部分,整個 tcp 報文段作為 ip 資料報的資料部分封裝在 ip 資料報中,如圖所示:
各欄位意義如下:
tcp 是面向連線的協議,因此每個 tcp 連線都有三個階段:建立連線、資料傳送和連線釋放。tcp 連線的管理就是使運輸連線的建立和釋放都能正常進行。
在 tcp 連線建立的過程中,要解決以下三個問題:
tcp 把連線作為最基本的抽象,每條 tcp 連線有兩個端點,tcp 連線的端點不是主機,不是主機的 ip 位址,不是應用程序,也不是傳輸層的協議埠。tcp 連線的埠稱為套接字(socket),埠拼接到 ip 位址即構成套接字。
每條 tcp 連線唯一地被通訊兩端的兩個端點確定tcp 連線的建立採用客戶端/伺服器方式。主動發起連線建立的應用程式稱為客戶端,而被動等待連線建立的應用程式稱為伺服器
第一段的意思是
syn = 1: a 要建立連線了!
seq = x(隨機): 因為還沒有資料,所以寫什麼都無所謂
第二段的意思是
syn = 1: 我 b 同意你 a 建立連線!
ack = 1: 連線建立了,之後的 ack 必須都置為 1
seq = y(隨機): 因為還沒有資料,所以寫什麼都無所謂
ack = x + 1:之前傳送方 a 說傳送的是第 x 位資料(雖然傳送方是瞎說的),所以我 b 要的是 x + 1 位資料
第三段的意思是
syn = 0: syn 只有在建立連線時才為 1,其他時候均設為 0
ack = 1: 連線建立了,之後的 ack 必須都置為 1
seq = x + 1: 我 a 傳送的報文段的第乙個位元組就是 x + 1
ack = y + 1: 之前接收方 b 說傳送的是第 y 位資料(雖然接收方是瞎說的),所以我 a 要的是 y + 1 位資料
注意一下,tcp 是雙向的,所以不存在絕對不變的傳送方接收方,這裡的兩台主機都同時是傳送方和接收方這裡會存在乙個問題,syn 洪氾攻擊:
syn 洪氾攻擊發生在 osi 第四層,這種方式利用 tcp 協議的特性,就是三次握手。攻擊者傳送 tcp syn,syn 是 tcp 三次握手中的第乙個資料報,而當伺服器返回 ack 後,該攻擊者就不對其進行再確認,那這個 tcp 連線就處於掛起狀態,也就是所謂的半連線狀態,伺服器收不到再確認的話,還會重**送 ack 給攻擊者,這樣更加會浪費伺服器的資源。攻擊者就對伺服器傳送非常大量的這種 tcp 連線,由於每乙個都沒法完成三次握手,所以在伺服器上,這些 tcp 連線會因為掛起狀態而消耗 cpu 和記憶體,最後伺服器可能宕機,就無法為正常使用者提供服務了。
第一段的意思是
fin = 1:a 要釋放連線了!
seq = u:發了好多資料,這裡只是用 u 指代一下,這裡 u 是有確定值的
第二段的意思是
ack = 1:連線建立了,之後的 ack 必須都置為 1
seq = v:發了好多資料,這裡只是用 v 指代一下,這裡 v 是有確定值的
ack = u + 1:之前傳送方 a 說傳送的是第 u 位資料,所以我 b 要的是 u + 1 位資料(儘管此時 a 已經決定釋放連線了)
第三段的意思是
fin = 1:b 要釋放連線了!
ack = 1:連線建立了,之後的 ack 必須都置為 1
seq = w:發了好多資料,這裡只是用 w 指代一下,這裡 w 是有確定值的
ack = u + 1:之前傳送方 a 說傳送的是第 u 位資料,所以我 b 要的是 u + 1 位資料(因為 a 直接不發資料了,所以第二段第三段的 ack 都是 u + 1)
第四段的意思是
ack = 1:連線建立了,之後的ack必須都置為1
seq = u + 1:之前發的資料時第 u 位資料,b 也要第 u + 1 位資料,所以我發第 u + 1 位資料
ack = w + 1:之前傳送方 b 說傳送的是第 w 位資料,所以我 a 要的是 w + 1 位資料
為什麼需要等待計時 2 msl?因為這樣可以保證 b 可以收到 a 的終止報文段進而進入關閉狀態比如說如果 a 的第四段報文丟失,那麼等待乙個 msl 之後 b 就會重傳第三段報文,花費小於1 msl之後 a 就會再收到第三段報文,之後就可以再次向 b 傳送第四段報文提示 b 關閉連線
計算機網路 TCP協議
tcp協議是面向連線的協議,把連線作為最基本的抽象。每一條tcp連線唯一的被通訊兩端的兩個端點所確定。tcp協議是點對點,而不是點對多點。端點又被稱為套接字,tcp協議規定,ip位址拼接埠號就構成套接字。1 可靠資料運輸原理 1 tcp協議傳送兩種資料報,一種資料報用來傳輸資料,一種資料報用來傳送控...
計算機網路 協議
網路檔案服務 在nfs的應用中,本地nfs的客戶端應用可以透明地讀寫位於遠端nfs伺服器上的檔案,就像訪問本地檔案一樣。snmp network management protocol 簡單網路管理協議 能夠使網路管理員提高網路管理效能,及時發現並解決網路問題以及規劃網路的增長 smtp mail ...
計算機網路 計算機網路7層協議
人與人交流需要協議,例如使用同一語言,或者對方能明白的其他肢體語言 人與機器交流也需要協議,例如需要通過滑鼠或者鍵盤輸入,機器給予特定的輸出,例如列印執行某個程式 機器與機器交流更需要協議,計算機網路是由一系列的協議構成的,osi open system interconection 是開放型系統互...