需求:
找一款工具可以對TCP 80端口 收集 訪問延遲和丟包率
找到的工具:
1、Hping : http://www.hping.org/
需要了解的知識:
TCP的flags:
fin syn rst push ack urg xmas ymas
TCP的三次握手:
1 client -- syn -> server
2 client <- syn+ack -- server
3 client -- ack -> server
TCP的四次揮手:
1 client -- fin -> server
2 client <- ack -- server
3 client <- fin -- server
4 client -- ack -> server
知識參考:
1、https://en.wikipedia.org/wiki/Transmission_Control_Protocol
2、http://www.ruanyifeng.com/blog/2017/06/tcp-protocol.html
對比:
Hping數據包:
client -- syn -> server
client <- syn+ack -- server
client -- rst -> server
Paping數據包:
client -- syn -> server
client <- syn+ack -- server
client -- ack -> server
client -- fin\ack -> server
client <- fin\ack -- server
client -- ack -> server
結論:
1、Hping 的tcp模式下不會建立真正的socket連接,client收到syn+ack后,內核會回復RST
2、Paping會完成三次握手和四次揮手,它的四次揮手只用了三次包,分別有兩次fin\ack
第一次中的fin\ack代表client已收到發送的數據包,並希望關閉會話。
第二次中的fin\ack代表服務器沒有更多的數據發送,這時會合並四次揮手中的2和3步驟
3、Paping可以滿足需求
PS: 四次揮手中,不管是三包還是四包,一方發送fin表示半關閉,雙發都發出了fin,並且收到了fin的ack,表示關閉,
參考:
https://ktflash.gitbooks.io/ceh_v9/32_ceh_scanning_methodology_-_check_for_open_ports.html
http://www.radarhack.com/dir/papers/hping2_v1.5.pdf
http://www.hping.org/manpage.html