Ⅰ rst是什麼意思
rst是TCP首部中的6個標志比特之一,表示重置連接、復位連接。
TCP(Transmission Control Protocol傳輸控制協議)是一種面向連接的、可靠的、基於位元組流的傳輸層通信協議,由IETF的RFC 793定義。
RST表示復位,用來異常的關閉連接,在TCP的設計中它是不可或缺的。發送RST包關閉連接時,不必等緩沖區的包都發出去(不像上面的FIN包),直接就丟棄緩存區的包發送RST包。而接收端收到RST包後,也不必發送ACK包來確認。
TCP處理程序會在自己認為的異常時刻發送RST包。例如,A向B發起連接,但B之上並未監聽相應的埠,這時B操作系統上的TCP處理程序會發RST包。
又比如,AB正常建立連接了,正在通訊時,A向B發送了FIN包要求關連接,B發送ACK後,網斷了,A通過若干原因放棄了這個連接(例如進程重啟)。
網通了後,B又開始發數據包,A收到後表示壓力很大,不知道這野連接哪來的,就發了個RST包強制把連接關了,B收到後會出現connect reset by peer錯誤。
RST的攻擊原理:
A和伺服器B之間建立了TCP連接,此時C偽造了一個TCP包發給B,使B異常的斷開了與A之間的TCP連接,就是RST攻擊了。實際上從上面RST標志位的功能已經可以看出這種攻擊如何達到效果了。
假定C偽裝成A發過去的包,這個包如果是RST包的話,毫無疑問,B將會丟棄與A的緩沖區上所有數據,強制關掉連接。
如果發過去的包是SYN包,那麼,B會表示A已經發瘋了(與OS的實現有關),正常連接時又來建新連接,B主動向A發個RST包,並在自己這端強制關掉連接。