<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)航:
     
    主站蜘蛛池模板: 免费网站看av片| 亚洲精品免费在线视频| 色婷五月综激情亚洲综合| 亚洲最大激情中文字幕| 国产在线19禁免费观看| 一级黄色免费大片| 亚洲综合伊人久久综合| 精品久久久久久久免费加勒比| 57pao一国产成永久免费| 亚洲精品国产高清在线观看| 久久综合亚洲鲁鲁五月天| 成年18网站免费视频网站| 69xx免费观看视频| 日本特黄特色AAA大片免费| 亚洲区日韩精品中文字幕| 亚洲国产主播精品极品网红 | 亚洲片一区二区三区| 日本免费中文字幕在线看| 三年片免费观看大全国语| 亚洲日本在线播放| 99ri精品国产亚洲| 四虎永久免费观看| 中文字幕免费观看| 一级毛片**不卡免费播| 久久国产精品2020免费m3u8| 国产成人免费ā片在线观看老同学 | 亚洲真人无码永久在线| 免费大黄网站在线观| a拍拍男女免费看全片| 91大神免费观看| a拍拍男女免费看全片| 中国在线观看免费高清完整版| 久久精品国产免费观看三人同眠| 91大神在线免费观看| 黄在线观看www免费看| 成年女人A毛片免费视频| 中文字幕av免费专区| 三年片在线观看免费| 亚洲一区免费观看| 黄页网站免费观看| 免费看少妇作爱视频|