自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TCP協(xié)議的通訊方式

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
TCP是網(wǎng)絡(luò)傳輸層的最主要協(xié)議之一,但是你了解TCP標(biāo)志、端口、緩存和TCP進(jìn)站(Inbound)處理過程么?

一、TCP三次握手

傳輸控制協(xié)議(Transport Control Protocol)是一種面向連接的,可靠的傳輸層協(xié)議。面向連接是指一次正常的TCP傳輸需要通過在TCP客戶端和TCP服務(wù)端建立特定的虛電路連接來完成,該過程通常被稱為“三次握手”??煽啃钥梢酝ㄟ^很多種方法來提供保證,在這里我們關(guān)心的是數(shù)據(jù)序列和確認(rèn)。TCP通過數(shù)據(jù)分段(Segment)中的序列號(hào)保證所有傳輸?shù)臄?shù)據(jù)可以在遠(yuǎn)端按照正常的次序進(jìn)行重組,而且通過確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾?。要通過TCP傳輸數(shù)據(jù),必須在兩端主機(jī)之間建立連接。舉例說明,TCP客戶端需要和TCP服務(wù)端建立連接,過程如下所示:

 

 

在第一步中,客戶端向服務(wù)端提出連接請(qǐng)求。這時(shí)TCP SYN標(biāo)志置位??蛻舳烁嬖V服務(wù)端序列號(hào)區(qū)域合法,需要檢查??蛻舳嗽赥CP報(bào)頭的序列號(hào)區(qū)中插入自己的ISN。服務(wù)端收到該TCP分段后,在第二步以自己的ISN回應(yīng)(SYN標(biāo)志置位),同時(shí)確認(rèn)收到客戶端的第一個(gè)TCP分段(ACK標(biāo)志置位)。在第三步中,客戶端確認(rèn)收到服務(wù)端的ISN(ACK標(biāo)志置位)。到此為止建立完整的TCP連接,開始全雙工模式的數(shù)據(jù)傳輸過程。

二、TCP標(biāo)志

這里有必要介紹一下TCP分段中的標(biāo)志(Flag)置位情況。如下圖所示。

 

 

 

*SYN:同步標(biāo)志

同步序列編號(hào)(Synchronize Sequence Numbers)欄有效。該標(biāo)志僅在三次握手建立TCP連接時(shí)有效。它提示TCP連接的服務(wù)端檢查序列編號(hào),該序列編號(hào)為TCP連接初始端(一般是客戶端)的初始序列編號(hào)。在這里,可以把TCP序列編號(hào)看作是一個(gè)范圍從0到4,294,967,295的32位計(jì)數(shù)器。通過TCP連接交換的數(shù)據(jù)中每一個(gè)字節(jié)都經(jīng)過序列編號(hào)。在TCP報(bào)頭中的序列編號(hào)欄包括了TCP分段中第一個(gè)字節(jié)的序列編號(hào)。

*ACK:確認(rèn)標(biāo)志

確認(rèn)編號(hào)(Acknowledgement Number)欄有效。大多數(shù)情況下該標(biāo)志位是置位的。TCP報(bào)頭內(nèi)的確認(rèn)編號(hào)欄內(nèi)包含的確認(rèn)編號(hào)(w+1,F(xiàn)igure-1)為下一個(gè)預(yù)期的序列編號(hào),同時(shí)提示遠(yuǎn)端系統(tǒng)已經(jīng)成功接收所有數(shù)據(jù)。

*RST:復(fù)位標(biāo)志

復(fù)位標(biāo)志有效。用于復(fù)位相應(yīng)的TCP連接。

*URG:緊急標(biāo)志

緊急(The urgent pointer) 標(biāo)志有效。緊急標(biāo)志置位,

*PSH:推標(biāo)志

該標(biāo)志置位時(shí),接收端不將該數(shù)據(jù)進(jìn)行隊(duì)列處理,而是盡可能快將數(shù)據(jù)轉(zhuǎn)由應(yīng)用處理。在處理 telnet 或 rlogin 等交互模式的連接時(shí),該標(biāo)志總是置位的。

*FIN:結(jié)束標(biāo)志

帶有該標(biāo)志置位的數(shù)據(jù)包用來結(jié)束一個(gè)TCP回話,但對(duì)應(yīng)端口仍處于開放狀態(tài),準(zhǔn)備接收后續(xù)數(shù)據(jù)。#p#

三、TCP端口

為了能夠支持同時(shí)發(fā)生的并行訪問請(qǐng)求,TCP提供一種叫做“端口”的用戶接口。端口是操作系統(tǒng)核心用來識(shí)別不同的網(wǎng)絡(luò)回話過程。這是一個(gè)嚴(yán)格的傳輸層定義。通過TCP端口和IP地址的配合使用,可以提供到達(dá)終端的通訊手段。實(shí)際上,在任一時(shí)刻的互聯(lián)網(wǎng)絡(luò)連接可以由4個(gè)數(shù)字進(jìn)行描述: 來源IP地址和來源端口,目的IP地址和目的端口。位于不同系統(tǒng)平臺(tái),用來提供服務(wù)的一端通過標(biāo)準(zhǔn)的端口提供相應(yīng)服務(wù)。舉例來說,標(biāo)準(zhǔn)的TELNET守護(hù)進(jìn)程(telnet daemon)通過監(jiān)聽TCP 23端口,準(zhǔn)備接收用戶端的連接請(qǐng)求。

四、TCP緩存(TCP Backlog)

通常情況下,操作系統(tǒng)會(huì)使用一塊限定的內(nèi)存來處理TCP連接請(qǐng)求。每當(dāng)用戶端發(fā)送的SYN標(biāo)志置位連接請(qǐng)求到服務(wù)端的一個(gè)合法端口(提供TCP服務(wù)的一端監(jiān)聽該端口)時(shí),處理所有連接請(qǐng)求的內(nèi)存使用量必須進(jìn)行限定。如果不進(jìn)行限定,系統(tǒng)會(huì)因處理大量的TCP連接請(qǐng)求而耗盡內(nèi)存,這在某種程度上可以說是一種簡單的DoS攻擊。這塊經(jīng)過限定的,用于處理TCP連接的內(nèi)存稱為TCP緩存(TCP Backlog),它實(shí)際上是用于處理進(jìn)站(inbound)連接請(qǐng)求的一個(gè)隊(duì)列。該隊(duì)列保存那些處于半開放(half-open)狀態(tài)的TCP連接項(xiàng)目,和已建立完整連接但仍未由應(yīng)用程序通過accept()調(diào)用提取的項(xiàng)目。如果這個(gè)緩存隊(duì)列被填滿,除非可以及時(shí)處理隊(duì)列中的項(xiàng)目,否則任何其它新的TCP連接請(qǐng)求會(huì)被丟棄。

一般情況下,該緩存隊(duì)列的容量很小。原因很簡單,在正常的情況下TCP可以很好的處理連接請(qǐng)求。如果當(dāng)緩存隊(duì)列填滿的時(shí)候新的客戶端連接請(qǐng)求被丟棄,客戶端只需要簡單的重新發(fā)送連接請(qǐng)求,服務(wù)端有時(shí)間清空緩存隊(duì)列以相應(yīng)新的連接請(qǐng)求。

在現(xiàn)實(shí)環(huán)境中,不同操作系統(tǒng)支持TCP緩沖隊(duì)列有所不同。在BSD結(jié)構(gòu)的系統(tǒng)中,如下所示:

 

 

五、TCP進(jìn)站(Inbound)處理過程

為了更好的講述TCP SYN Flood的攻擊過程,我們先來介紹一下正常情況下,TCP進(jìn)站處理的過程。

服務(wù)端處于監(jiān)聽狀態(tài),客戶端用于建立連接請(qǐng)求的數(shù)據(jù)包(IP packet)按照TCP/IP協(xié)議堆棧組合成為TCP處理的分段(segment)。

分析報(bào)頭信息: TCP層接收到相應(yīng)的TCP和IP報(bào)頭,將這些信息存儲(chǔ)到內(nèi)存中。

檢查TCP校驗(yàn)和(checksum):標(biāo)準(zhǔn)的校驗(yàn)和位于分段之中(Figure-2)。如果檢驗(yàn)失敗,不返回確認(rèn),該分段丟棄,并等待客戶端進(jìn)行重傳。

查找協(xié)議控制塊(PCB{}):TCP查找與該連接相關(guān)聯(lián)的協(xié)議控制塊。如果沒有找到,TCP將該分段丟棄并返回RST。(這就是TCP處理沒有端口監(jiān)聽情況下的機(jī)制) 如果該協(xié)議控制塊存在,但狀態(tài)為關(guān)閉,服務(wù)端不調(diào)用connect()或listen()。該分段丟棄,但不返回RST??蛻舳藭?huì)嘗試重新建立連接請(qǐng)求。

建立新的socket:當(dāng)處于監(jiān)聽狀態(tài)的socket收到該分段時(shí),會(huì)建立一個(gè)子socket,同時(shí)還有socket{},tcpcb{}和pcb{}建立。這時(shí)如果有錯(cuò)誤發(fā)生,會(huì)通過標(biāo)志位來拆除相應(yīng)的socket和釋放內(nèi)存,TCP連接失敗。如果緩存隊(duì)列處于填滿狀態(tài),TCP認(rèn)為有錯(cuò)誤發(fā)生,所有的后續(xù)連接請(qǐng)求會(huì)被拒絕。這里可以看出SYN Flood攻擊是如何起作用的。

丟棄:如果該分段中的標(biāo)志為RST或ACK,或者沒有SYN標(biāo)志,則該分段丟棄。并釋放相應(yīng)的內(nèi)存。

 

【編輯推薦】

  1. 智能配線系統(tǒng)端口技術(shù)技術(shù)發(fā)展與應(yīng)用
  2. H3C交換機(jī)端口鏡像配置方法總結(jié)
  3. D-Link 推出全新SOHO系列端口DKVM-2DK/2DU
  4. Unix類操作系統(tǒng)的TCP/IP堆棧加固之IP協(xié)議部分
  5. 如何實(shí)現(xiàn)端口靜態(tài)添加組播MAC地址
責(zé)任編輯:Writer 來源: tt網(wǎng)絡(luò)
相關(guān)推薦

2013-03-04 09:59:04

路由器TCPIP

2010-07-13 09:47:22

HART協(xié)議

2010-06-11 14:18:59

通訊協(xié)議

2010-07-12 21:14:09

UDP協(xié)議

2013-08-01 10:01:02

網(wǎng)絡(luò)協(xié)議TCP協(xié)議UDP協(xié)議

2009-04-09 10:11:00

TCPIP通訊

2010-07-06 17:52:54

HART通訊協(xié)議

2010-06-17 18:00:40

網(wǎng)絡(luò)通訊協(xié)議

2010-06-18 14:37:20

TCP IP協(xié)議

2023-12-07 12:22:45

2013-09-17 13:10:17

TCP協(xié)議網(wǎng)絡(luò)協(xié)議

2010-06-09 13:54:13

TCP傳輸協(xié)議

2010-06-08 13:50:40

TCP IP協(xié)議族

2010-07-07 10:45:22

TCP UDP協(xié)議

2010-09-17 16:38:41

TCP IP協(xié)議

2010-06-09 16:28:50

TCP IP傳輸協(xié)議

2010-09-08 15:34:27

TCP IP協(xié)議棧

2010-06-18 15:31:21

TCP IP協(xié)議簇

2010-06-13 15:16:02

2010-06-11 13:54:58

WAP通訊協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)