tcp協議通訊工作原理
一、tcp三次握手
傳輸控制協議(transport control protocol)是一種面向連線的,可靠的傳輸層協議。面向連線是指一次正常的tcp傳輸需要通過在tcp客戶端和tcp服務端建立特定的虛電路連線來完成,該過程通常被稱為「三次握手」。可靠性可以通過很多種方法來提供保證,在這裡我們關心的是資料序列和確認。tcp通過資料分段(segment)中的序列號保證所有傳輸的資料可以在遠端按照正常的次序進行重組,而且通過確認保證資料傳輸的完整性。要通過tcp傳輸資料,必須在兩端主機之間建立連線。舉例說明,tcp客戶端需要和tcp服務端建立連線,過程如下所示:
tcp client
flags
tcp server
1 send syn (seq=w)
----syn--->
syn received
2 syn/ack received
send syn (seq=x), ack (w+1)
3 send ack (x+1)
----ack--->
ack received, connection established
w: isn (initial sequence number) of the client
x: isn of the server
在第一步中,客戶端向服務端提出連線請求。這時tcp syn標誌置位。客戶端告訴服務端序列號區域合法,需要檢查。客戶端在tcp報頭的序列號區中插入自己的isn。服務端收到該tcp分段後,在第二步以自己的isn回應(syn標誌置位),同時確認收到客戶端的第乙個tcp分段(ack標誌置位)。在第三步中,客戶端確認收到服務端的isn(ack標誌置位)。到此為止建立完整的tcp連線,開始全雙工模式的資料傳輸過程。
二、tcp標誌
這裡有必要介紹一下tcp分段中的標誌(flag)置位情況。如下圖所示:
*syn:同步標誌
同步序列編號(synchronize sequence numbers)欄有效。該標誌僅在三次握手建立tcp連線時有效。它提示tcp連線的服務端檢查序列編號,該序列編號為tcp連線初始端(一般是客戶端)的初始序列編號。在這裡,可以把tcp序列編號看作是乙個範圍從0到4,294,967,295的32位計數器。通過tcp連線交換的資料中每乙個位元組都經過序列編號。在tcp報頭中的序列編號欄包括了tcp分段中第乙個位元組的序列編號。
*ack:確認標誌
確認編號(acknowledgement number)欄有效。大多數情況下該標誌位是置位的。tcp報頭內的確認編號欄內包含的確認編號(w+1,figure-1)為下乙個預期的序列編號,同時提示遠端系統已經成功接收所有資料。
*rst:復位標誌
復位標誌有效。用於復位相應的tcp連線。
*urg:緊急標誌
緊急(the urgent pointer) 標誌有效。緊急標誌置位,
*psh:推標誌
該標誌置位時,接收端不將該資料進行佇列處理,而是盡可能快將資料轉由應用處理。在處理 telnet 或 rlogin 等互動模式的連線時,該標誌總是置位的。
*fin:結束標誌
帶有該標誌置位的資料報用來結束乙個tcp回話,但對應埠仍處於開放狀態,準備接收後續資料。
三、tcp埠
四、tcp快取(tcp backlog)
通常情況下,作業系統會使用一塊限定的記憶體來處理tcp連線請求。每當使用者端傳送的syn標誌置位連線請求到服務端的乙個合法埠(提供tcp服
TCP協議通訊流程
伺服器呼叫socket bind listen 完成初始化後,呼叫accept 阻塞等待,處於監聽埠的狀態,客戶端呼叫socket 初始化後,呼叫connect 發出syn段並阻塞等待伺服器應答,伺服器應答乙個syn ack段,客戶端收到後從connect 返回,同時應答乙個ack段,伺服器收到後從...
TCP協議的工作機制
1 首先在主機a上建立tcp伺服器端,監聽埠為 80,執行命令如下 netwox 89 p 802 在主機 b 上建立 tcp 客戶端,連線 tcp 伺服器端,執行命令如下 netwox 87 i 192.168.59.131 p 803 此時就在兩台主機上建立了連線,可以進行通訊 進行抓包,其中 ...
ARP協議工作原理
arp協議工作原理 一 arp協議簡介 arp,全稱address resolution protocol,中文名為位址解析協議,它工作在資料鏈路層,在本層和硬體介面聯絡,同時對上層提供服務。ip資料報常通過乙太網傳送,乙太網裝置並不識別32位ip位址,它們是以48位乙太網位址傳輸乙太網資料報。因此...