一直研究lighttpd源碼,順便看下網(wǎng)絡(luò)編程,不說太多,開始吧
?
第一步 設(shè)置wireshark過濾規(guī)則
tcp.port eq 81 ,然后開始捕捉
第二步 ?http://183.61.16.168:81/ 打開瀏覽器訪問這個(gè)地址
第三步,分析數(shù)據(jù)
?
2636 17.482576000 183.27.235.172 183.61.16.168 TCP 74 4197 > hosts2-ns [SYN] Seq=0 Win=8192 Len=0 MSS=1440 WS=4 SACK_PERM=1
2638 17.498859000 183.61.16.168 183.27.235.172 TCP 74 hosts2-ns > 4197 [SYN, ACK] Seq=0 Ack=1 Win=14600 Len=0 MSS=1460 SACK_PERM=1 WS=512
2639 17.498994000 183.27.235.172 183.61.16.168 TCP 62 4197 > hosts2-ns [ACK] Seq=1 Ack=1 Win=66240 Len=0
?
以上就是tcp三次握手,
2696 18.028389000 183.27.235.172 183.61.16.168 TCP 463 4197 > hosts2-ns [PSH, ACK] Seq=1 Ack=1 Win=66240 Len=401
這條就是發(fā)送http請(qǐng)求包了
長(zhǎng)度為401
2698 18.051721000 183.61.16.168 183.27.235.172 TCP 62 hosts2-ns > 4197 [ACK] Seq=1 Ack=402 Win=15872 Len=0
這個(gè)就是服務(wù)器響應(yīng)給瀏覽器的數(shù)據(jù),服務(wù)器說收到了請(qǐng)求,然后把a(bǔ)ck加上401等于402返回給客戶端,如果不返回,瀏覽器會(huì)重發(fā)給服務(wù)器
2699 18.052968000 183.61.16.168 183.27.235.172 TCP 289 hosts2-ns > 4197 [PSH, ACK] Seq=1 Ack=402 Win=15872 Len=227
到這條,服務(wù)器返回首頁(yè)給瀏覽器,長(zhǎng)度為227 這里可以發(fā)現(xiàn)只有有數(shù)據(jù),Len肯定是大于0的
2721 18.234494000 183.27.235.172 183.61.16.168 TCP 403 4197 > hosts2-ns [PSH, ACK] Seq=402 Ack=228 Win=66012 Len=341
瀏覽器偷偷的發(fā)起第二個(gè)請(qǐng)求,get /favicon.ico 這個(gè)請(qǐng)求,
2722 18.259705000 183.61.16.168 183.27.235.172 TCP 541 hosts2-ns > 4197 [PSH, ACK] Seq=228 Ack=743 Win=16896 Len=479
服務(wù)器說沒有這個(gè)文件,然后返回給客戶端
?
2728 18.514549000 183.61.16.168 183.27.235.172 TCP 541 [TCP Retransmission] hosts2-ns > 4197 [PSH, ACK] Seq=228 Ack=743 Win=16896 Len=479
又重發(fā)了一次
?
2729 18.514663000 183.27.235.172 183.61.16.168 TCP 74 4197 > hosts2-ns [ACK] Seq=743 Ack=707 Win=65532 Len=0 SLE=228 SRE=707
瀏覽器說收到了,給服務(wù)器一個(gè)回答
3180 23.263527000 183.61.16.168 183.27.235.172 TCP 62 hosts2-ns > 4197 [FIN, ACK] Seq=707 Ack=743 Win=16896 Len=0
服務(wù)器主動(dòng)關(guān)閉連接,發(fā)送一個(gè)fin
3181 23.263637000 183.27.235.172 183.61.16.168 TCP 62 4197 > hosts2-ns [ACK] Seq=743 Ack=708 Win=65532 Len=0
瀏覽器說收到了
3587 27.508143000 183.27.235.172 183.61.16.168 TCP 62 4197 > hosts2-ns [FIN, ACK] Seq=743 Ack=708 Win=65532 Len=0
然后瀏覽器發(fā)送一個(gè)fin
3590 27.523692000 183.61.16.168 183.27.235.172 TCP 62 hosts2-ns > 4197 [ACK] Seq=708 Ack=744 Win=16896 Len=0
然后服務(wù)端說收到了
?
其實(shí)有個(gè)問題就是 seq和ack有點(diǎn)混亂,一時(shí)加這個(gè),一時(shí)加那個(gè)
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
