established关键字
1,首先回顧一下TCP協(xié)議:
TCP數(shù)據(jù)包中有六個(gè)標(biāo)志位(Code Bits):6 位標(biāo)志域。表示為:緊急標(biāo)志、有意義的應(yīng)答標(biāo)志、推、重置連接標(biāo)志、同步序列號標(biāo)志、完成發(fā)送數(shù)據(jù)標(biāo)志。按照順序排列是:URG、ACK、PSH、RST、SYN、FIN。在整個(gè)TCP數(shù)據(jù)傳輸過程中ACK位除了在第一次握手的時(shí)候置位為0外,其他任何時(shí)候都置位為1。
三次握手過程:
?
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。
第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
2,再次拿一個(gè)ACL來舉例說明(摘自TCP/IP路由技術(shù) 第一卷 第556頁):
假設(shè)你實(shí)現(xiàn)了一個(gè)訪問列表可以阻止外部發(fā)起的TCP會話進(jìn)入到你的網(wǎng)絡(luò)中,但是你又想讓內(nèi)部發(fā)起的TCP會話的響應(yīng)通過,那應(yīng)該怎么辦?通過檢查TCP段頭內(nèi)的ACK和RST標(biāo)記,關(guān)鍵字established可以實(shí)現(xiàn)這一點(diǎn)。如果這兩個(gè)標(biāo)記都沒有被設(shè)置,表明源點(diǎn)正在向目標(biāo)建立TCP連接,那么匹配不會發(fā)生。最終報(bào)文將會在訪問列表中的后繼行中被拒絕。示例如下:
access-list 110 permit tcp any 172.22.0.0 0.0.255.255 established
access-list 110 permit tcp any host 172.22.15.83 eq 25
access-list 110 permit tcp 10.0.0.0 0.255.255.255 172.22.114.0 0.0.255 eq 23
第1行:如果鏈接是從網(wǎng)絡(luò)172.22.0.0發(fā)起的,那么允許從熱和原電到該網(wǎng)絡(luò)的TCP報(bào)文通過;
第2行:允許來自任意源點(diǎn),且目標(biāo)端口號是主機(jī)172.22.16.83的端口25的TCP報(bào)文通過;
第3行:允許來自網(wǎng)絡(luò)10.0.0.0,去向網(wǎng)絡(luò)172.22.114.0/24且目標(biāo)端口為23的TCP報(bào)文通過。
通過上面的ACL,大家有沒有注意過,一個(gè)從any到172.22.15.83的25端口的連接,TCP的三次握手,第一次握手肯定是需要匹配第2行ACL,因?yàn)榇藞?bào)文的標(biāo)志位ACK置位為0,不能匹配第1行ACL。但是此會話的后面的所有數(shù)據(jù)報(bào)文都會匹配第1行了,因?yàn)榇藞?bào)文的標(biāo)志ACK已經(jīng)置位為1了。這里是否有問題,請相關(guān)牛人鑒定!
3,ACL對分片包的處理(摘自一英文技術(shù)寶典,經(jīng)我翻譯如下):
當(dāng)一IP包被分片時(shí),僅在第一個(gè)分片中包含所有三層與四層信息,而后續(xù)分片則只包含三層信息,四層信息丟失。
ACL的處理機(jī)制:
對于permit ACEs:當(dāng)?shù)谝环制黄ヅ渖虾?#xff0c;后續(xù)分片也會匹配上(不檢查四層信息);
對于deny ACEs:所有分片都要檢查三、四層信息。實(shí)際上,對于deny ACEs,當(dāng)?shù)谝环制黄ヅ渖虾蟊粊G棄,而后續(xù)分片由于無四層信息則不能匹配該deny ACEs,可能在后面檢查時(shí)允許通過,則傳到目標(biāo)地后,由于不能進(jìn)行重組而被丟棄。但這樣占用了帶寬及目標(biāo)主機(jī)的CPU。
綜合以上,根據(jù)3,是否可以判定ACL的處理機(jī)制有點(diǎn)smart,它可以根據(jù)每條ACE條目記錄某一個(gè)時(shí)段的匹配內(nèi)容,匹配內(nèi)容主要包括源和目標(biāo)IP地址,甚至端口號(tcp條目),從而不會將流量報(bào)文匹配錯(cuò)。也就是說根據(jù)2說的同一會話的后續(xù)報(bào)文不會去匹配第1行ACL,而根據(jù)ACL的記錄內(nèi)容去匹配第2行ACL。
轉(zhuǎn)載于:https://blog.51cto.com/ghostzyz/816401
總結(jié)
以上是生活随笔為你收集整理的established关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查询优化器内核剖析第四篇:从一个实例看执
- 下一篇: 晚上梦到前男友代表什么