先用sniffer打開trace,檢視相關資料包,如下圖:
<a href="http://blog.51cto.com/attachment/201205/145255378.png" target="_blank"></a>
前兩個為DNS查詢及響應,用戶端擷取到伺服器IP,進行了TCP三向交握(第3-5個資料包)。第6個包為http get,通過sniffer解碼如下圖:
<a href="http://blog.51cto.com/attachment/201205/145317448.png" target="_blank"></a>
第7個包為TCP的确認,第8、9個包的出現屬于亂序(判定原因後面會解釋)。
第10個包,為伺服器端的響應,如下圖:
<a href="http://blog.51cto.com/attachment/201205/145343994.png" target="_blank"></a>
注意上面黃色标出的3個字段。
響應的狀态碼為301,并進行了此代碼的含義:永久移除,即此域名已經不存在了。
Connection字段與get包此字段進行對比:
Connection: Keep-Alive,Connection: close,這也是http1.1與1.0的一個主要差別,1.1支援在一個TCP會話中進行多次應用請求,而1.0預設隻支援1個。
第12、14為用戶端對重定向域名的解析
<a href="http://blog.51cto.com/attachment/201205/145359925.png" target="_blank"></a>
接下來用戶端又進行了新的TCP連接配接,并發起對新域名的get請求,如下圖第19個包:
<a href="http://blog.51cto.com/attachment/201205/145416994.png" target="_blank"></a>
接下來伺服器進行了成功的響應,http 200,如下圖:
<a href="http://blog.51cto.com/attachment/201205/145434111.png" target="_blank"></a>
另外需要指出的是,sniffer給出了針對這個響應結果,後續資料的傳送序列,這個序列可以幫助分析人員很直覺的定位丢包,及分析重傳情況。這個序列也是sniffer獨有,其他分析産品沒有提供的,如下圖:
<a href="http://blog.51cto.com/attachment/201205/145452320.png" target="_blank"></a>
後續資料共分為21個包進行傳輸,黃色部分标出了這些資料包在整個trace檔案中的位置。
這樣在後續的每個資料包中都會展現其在整個會話中的位置,如下圖:
<a href="http://blog.51cto.com/attachment/201205/145506840.png" target="_blank"></a>
另由于IP網絡是盡力轉發,并不能保證在傳輸過程中各個資料包的到達順序。是以會出現一些先發出的資料而後到的情況,如下圖:
<a href="http://blog.51cto.com/attachment/201205/145539462.png" target="_blank"></a>
2012.5.14
<a href="http://down.51cto.com/data/2360569" target="_blank">附件:http://down.51cto.com/data/2360569</a>
本文轉自 此号無效1 51CTO部落格,原文連結:http://blog.51cto.com/test2016/862930