<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    TCP: SYN ACK FIN RST PSH URG

    Posted on 2010-04-14 18:43 leekiang 閱讀(775) 評(píng)論(0)  編輯  收藏 所屬分類: ftp,http,tcp,udp等
    三次握手Three-way Handshake

    一個(gè)虛擬連接的建立是通過三次握手來實(shí)現(xiàn)的

    1. (B) --> [SYN] --> (A)

    假如服務(wù)器A和客戶機(jī)B通訊. 當(dāng)A要和B通信時(shí),B首先向A發(fā)一個(gè)SYN (Synchronize) 標(biāo)記的包,告訴A請(qǐng)求建立連接.

    注意: 一個(gè) SYN包就是僅SYN標(biāo)記設(shè)為1的TCP包(參見TCP包頭Resources). 認(rèn)識(shí)到這點(diǎn)很重要,只有當(dāng)A受到B發(fā)來的SYN包,才可建立連接,除此之外別無他法。因此,如果你的防火墻丟棄所有的發(fā)往外網(wǎng)接口的SYN包,那么你將不 能讓外部任何主機(jī)主動(dòng)建立連接。

    2. (B) <-- [SYN/ACK] <--(A)

    接著,A收到后會(huì)發(fā)一個(gè)對(duì)SYN包的確認(rèn)包(SYN/ACK)回去,表示對(duì)第一個(gè)SYN包的確認(rèn),并繼續(xù)握手操作.

    注意: SYN/ACK包是僅SYN 和 ACK 標(biāo)記為1的包.

    3. (B) --> [ACK] --> (A)

    B收到SYN/ACK 包,B發(fā)一個(gè)確認(rèn)包(ACK),通知A連接已建立。至此,三次握手完成,一個(gè)TCP連接完成

    Note: ACK包就是僅ACK 標(biāo)記設(shè)為1的TCP包. 需要注意的是當(dāng)三此握手完成、連接建立以后,TCP連接的每個(gè)包都會(huì)設(shè)置ACK位

    這就是為何連接跟蹤很重要的原因了. 沒有連接跟蹤,防火墻將無法判斷收到的ACK包是否屬于一個(gè)已經(jīng)建立的連接.一般的包過濾(Ipchains)收到ACK包時(shí),會(huì)讓它通過(這絕對(duì)不是個(gè) 好主意). 而當(dāng)狀態(tài)型防火墻收到此種包時(shí),它會(huì)先在連接表中查找是否屬于哪個(gè)已建連接,否則丟棄該包

    四次握手Four-way Handshake

    四次握手用來關(guān)閉已建立的TCP連接

    1. (B) --> ACK/FIN --> (A)

    2. (B) <-- ACK <-- (A)

    3. (B) <-- ACK/FIN <-- (A)

    4. (B) --> ACK --> (A)

    注意: 由于TCP連接是雙向連接, 因此關(guān)閉連接需要在兩個(gè)方向上做。ACK/FIN 包(ACK 和FIN 標(biāo)記設(shè)為1)通常被認(rèn)為是FIN(終結(jié))包.然而, 由于連接還沒有關(guān)閉, FIN包總是打上ACK標(biāo)記. 沒有ACK標(biāo)記而僅有FIN標(biāo)記的包不是合法的包,并且通常被認(rèn)為是惡意的

    連接復(fù)位Resetting a connection

    四次握手不是關(guān)閉TCP連接的唯一方法. 有時(shí),如果主機(jī)需要盡快關(guān)閉連接(或連接超時(shí),端口或主機(jī)不可達(dá)),RST (Reset)包將被發(fā)送. 注意在,由于RST包不是TCP連接中的必須部分, 可以只發(fā)送RST包(即不帶ACK標(biāo)記). 但在正常的TCP連接中RST包可以帶ACK確認(rèn)標(biāo)記

    請(qǐng)注意RST包是可以不要收到方確認(rèn)的?

    無效的TCP標(biāo)記Invalid TCP Flags

    到目前為止,你已經(jīng)看到了 SYN, ACK, FIN, 和RST 標(biāo)記. 另外,還有PSH (Push) 和URG (Urgent)標(biāo)記.

    最常見的非法組合是SYN/FIN 包. 注意:由于 SYN包是用來初始化連接的, 它不可能和 FIN和RST標(biāo)記一起出現(xiàn). 這也是一個(gè)惡意攻擊.

    由于現(xiàn)在大多數(shù)防火墻已知 SYN/FIN 包, 別的一些組合,例如SYN/FIN/PSH, SYN/FIN/RST, SYN/FIN/RST/PSH。很明顯,當(dāng)網(wǎng)絡(luò)中出現(xiàn)這種包時(shí),很你的網(wǎng)絡(luò)肯定受到攻擊了。

    別的已知的非法包有FIN (無ACK標(biāo)記)和"NULL"包。如同早先討論的,由于ACK/FIN包的出現(xiàn)是為了關(guān)閉一個(gè)TCP連接,那么正常的FIN包總是帶有 ACK 標(biāo)記。"NULL"包就是沒有任何TCP標(biāo)記的包(URG,ACK,PSH,RST,SYN,FIN都為0)。

    到目前為止,正常的網(wǎng)絡(luò)活動(dòng)下,TCP協(xié)議棧不可能產(chǎn)生帶有上面提到的任何一種標(biāo)記組合的TCP包。當(dāng)你發(fā)現(xiàn)這些不正常的包時(shí),肯定有人對(duì)你的網(wǎng)絡(luò)不懷好意。

    來源:http://doubao.javaeye.com/blog/267207
    http://hi.baidu.com/abcserver/blog/item/aa1a347310c335148601b07c.html

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 波多野结衣免费在线观看| 四虎国产精品永免费| 性色午夜视频免费男人的天堂| 免费在线黄色网址| 国产精品亚洲а∨天堂2021 | 亚洲AV成人无码久久WWW| 成人免费午夜无码视频| 亚洲已满18点击进入在线观看| 99在线视频免费| 亚洲国色天香视频| 欧洲黑大粗无码免费| 亚洲熟妇AV一区二区三区宅男| 三年片在线观看免费观看高清电影 | 亚洲精品美女久久久久9999| 99视频免费观看| 亚洲午夜国产精品| 成全视频免费高清| 亚洲第一se情网站| 中文字幕一精品亚洲无线一区| 国产无遮挡裸体免费视频在线观看| 亚洲AV无码一区二区二三区入口 | 亚洲人成人一区二区三区| 在线看片免费人成视频福利| 亚洲综合视频在线观看| 日韩一区二区a片免费观看| 亚洲国产区男人本色| 九月婷婷亚洲综合在线| 中文字幕不卡免费视频| 亚洲码一区二区三区| 在线播放免费人成视频在线观看| 99亚洲乱人伦aⅴ精品| 国产亚洲婷婷香蕉久久精品| 蜜臀98精品国产免费观看| 日韩亚洲产在线观看| 国产成人亚洲综合| 永久免费视频网站在线观看| 国产成人不卡亚洲精品91 | 亚洲乱码在线视频| 亚洲国产精品成人| 亚洲黄色片免费看| 特黄aa级毛片免费视频播放|