TCP協議的學習(五)TCP中RST標誌及其攻擊

2021-07-11 05:13:39 字數 1597 閱讀 7591

在tcp協議中有6個標誌位

rst表示請求重新建立連線,帶有rst標誌的報文,稱為復位報文段。tcp處理程式會在異常時刻傳送rst包

tcp中出現rst的幾種場景:

1.在連線建立時

埠未開啟

向乙個不存在的埠傳送資料,目的埠沒有被程序正在監聽,而客戶端來connect。對於udp,當乙個資料報到達目的埠時,該埠沒在使用,它將產生乙個icmp埠不可達的資訊

請求超時

客戶端連線伺服器時,connect系統呼叫返回失敗,而且出現了錯誤資訊,但ping沒有出現丟包現象,使用抓包工具檢視,客戶端在收到伺服器傳送的同步報文段之後,傳送了rst復位報文段

2.傳送資料

資料出現錯誤,不是按照既定序列號傳送資料時

3.連線關閉

傳送rst報文段關閉連線時,不必等待緩衝區的資料報傳送出去,而是直接丟棄,緊接著傳送rst報文段,接收端收到rst報文段也不必傳送ack回應報

在乙個已關閉的socket上收到資料

伺服器關閉或異常終止了連線,由於網路問題,客戶端沒有收到伺服器的關閉請求,這稱為tcp半開啟連線。就算重啟伺服器,也沒有連線資訊。如果客戶端向提其寫入資料,對方就會回應乙個rst報文段。

異常終止乙個連線

在資料交換完成之後,一方給另一方傳送結束報文,同時tcp提供了異常終止乙個連線的方法,就是給對方傳送乙個rst復位報文段,一旦傳送復位報文段,傳送端所有排隊等待傳送的資料都被丟棄,應用程式可使用套接字選項來傳送復位報文段

向處於listen的埠傳送資料,傳送端會收到對端傳送的rst復位報文段

異常終止乙個程式對應用程式的優點:

可以丟棄任何待傳送的資料,並傳送rst復位報文段

rst的接收方會區分另一端執行的是異常關閉還是正常關閉

rst攻擊

客戶端1和伺服器連線時,客戶端2扔來乙個偽造的tcp包,讓它們兩之間的連線斷開,這就是rst攻擊。

假如偽造包是乙個rst包,那麼客戶端1和伺服器就會強制斷開連線並丟棄緩衝區的資料。

假如偽造包是乙個syn包,表示客戶端1又要和伺服器建立連線,其實早已建立連線,這是伺服器就會回應rst給客戶端1,並強制斷開連線。

偽造tcp包

乙個tcp連線都是四元組,由源ip、源埠、目標ip、目標埠唯一確定乙個連線。伺服器,ip和埠是公開的。

客戶端1的源埠是隨機的,可以找生成source port的規律。

序列號問題是與滑動視窗對應的,如果偽造的tcp包中的序列號不在伺服器的滑動視窗內,伺服器就會主動丟棄。tcp頭部中,32位序列號,取值範圍0-4294967296除以16位視窗大小(65535),最多隻需要發65537(4294967296/65535=65537)個包就能有乙個序列號落到滑動視窗內。

防禦:

防火牆設定,防火牆帶rst位的包丟棄

五分鐘讀懂TCP 協議 TCP協議簡介

tcp 是網際網路核心協議之一,本文介紹它的基礎知識。一 tcp 協議的作用 網際網路由一整套協議構成。tcp 只是其中的一層,有著自己的分工。這裡寫描述 說明 tcp 是乙太網協議和 ip 協議的上層協議,也是應用層協議的下層協議。最底層的乙太網協議 ethernet 規定了電子訊號如何組成資料報...

TCP協議學習筆記

tcp 面向連線的可靠的傳輸層協議,基於資料流 位元組流 rfc編號。特點 超時重傳 解決亂序 20,21 ftp檔案傳輸 22 ssh,遠端登入,telnet的替代品 80 http,網路服務 443 https,安全的web ssl tls之上的http inetd internet daemo...

TCP協議細節學習

tcp協議中並不包含ip資訊,ip資訊是在第三層處理的,tcp中處理的是埠資訊 65553 8 100 1024 1024 0.005 s 在100m網路下傳輸一幀就需要5ms,也就是說這5ms其他程序傳送不了任何資料。如果是早先的 撥號,網速只有2m的情況下 65553 8 2 1024 1024...