SSブログ

HTML文書にGIFをたくさん埋め込んでみた - Firefoxの場合 [ColdFire V2]このエントリーを含むはてなブックマーク#

1990557

httpサーバの能力を探るため、前回はGIFファイルを二つ埋め込んだHTML文書を表示しました。 今日は、もっともっと沢山のGIFファイルを埋め込んでみます。

HTML文書は、これだ

HTML文書として用意したのは、これです。 表の中にGIFファイルを配置します。

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" />
<title>ShowGea</title>
<style>
table.board {text-align:center;}
table.board td {width:32px;height:40px;background:#FF0;}
</style>
</head><body>
<h1 style="text-align:center;">ShowGea</h1>
<form action="ShowGeaAction.htm" style="text-align:center;">
<table cellpadding="10" style="margin:0 auto;">
<td>
<table border="1" cellpadding="2" cellspacing="1" class="board">
<tr><th colspan="13"/></tr>
<tr>
<th rowspan="11"/>
<th>9</th><th>8</th><th>7</th><th>6</th>
<th>5</th><th>4</th><th>3</th><th>2</th><th>1</th>
<th rowspan="11"/><th/><th rowspan="11"/>
</tr>
<tr><th colspan="9"/><th/></tr>
<tr>
<td/><td/><td/><td/><td/><td/>
<td><img src="Ry0.gif"/></td>
<td><img src="Ke1.gif"/></td>
<td/>
<th>一</th></tr>
<tr>
<td/><td/><td/><td/><td/>
<td><img src="Kn1.gif"/></td>
<td><img src="Kn1.gif"/></td>
<td/><td/>
<th>二</th></tr>
<tr>
<td/><td/><td/><td/><td/>
<td><img src="Gn1.gif"/></td>
<td><img src="Gk1.gif"/></td>
<td><img src="Fu1.gif"/></td>
<td/>
<th>三</th></tr>
<tr>
<td/><td/><td/><td/><td/>
<td><img src="Fu1.gif"/></td>
<td><img src="Fu1.gif"/></td>
<td/><td/>
<th>四</th></tr>
<tr>
<td/><td/><td/><td/><td/><td/><td/>
<td><img src="Fu0.gif"/></td>
<td/>
<th>五</th></tr>
<tr>
<td/><td/><td/><td/><td/><td/><td/><td/><td/>
<th>六</th></tr>
<tr>
<td/><td/><td/><td/><td/><td/><td/><td/><td/>
<th>七</th></tr>
<tr>
<td/><td/><td/><td/><td/><td/><td/><td/><td/>
<th>八</th></tr>
<tr>
<td/><td/><td/><td/><td/><td/><td/><td/><td/>
<th>九</th></tr>
<tr><th colspan="13"/></tr>
</table>
</td>
<td valign="bottom">
<img src="Gn0.gif"/>
</td>
</form>
</body></html>

GIFファイルは、これだ

GIFファイルは、8種類、用意しました。

Fu0.gif Fu1.gif Gk1.gif Gn0.gif Gn1.gif Kn1.gif Ry0.gif

表示できたかな?

WS000165.png

ブラウザで表示させましたが、後手の「歩」と先手の「銀」が表示されませんでした。 しかも、ここまで表示するのに60秒以上の時間を要しています。

表示されない画像は、その時々により変わります。 何度か試しましたが、全部の画像が表示されることはありませんでした。

パケット・モニタで通信状況を観測する

それでは、どんな通信が飛んでいるのかをパケット・モニタで確認します。 今回は、大量のパケットが飛んでいたので、ポート番号ごとにまとめました。

#1	0.000000	192.168.1.2	192.168.1.10
	TCP	1147 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#2	0.000363	192.168.1.10	192.168.1.2
	TCP	80 > 1147 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#3	0.000442	192.168.1.2	192.168.1.10
	TCP	1147 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#4	0.009277	192.168.1.2	192.168.1.10
	HTTP	GET /ShowGeaTemplate.htm HTTP/1.1 
	TCP	1147 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=445
#5	0.010282	192.168.1.10	192.168.1.2
	TCP	80 > 1147 [ACK] Seq=1 Ack=446 Win=1454 Len=0
#6	0.014162	192.168.1.10	192.168.1.2
	TCP	[TCP segment of a reassembled PDU]
	TCP	80 > 1147 [PSH, ACK] Seq=1 Ack=446 Win=1454 Len=1408
#46	0.127027	192.168.1.2	192.168.1.10
	TCP	1147 > 80 [ACK] Seq=446 Ack=1409 Win=16616 Len=0
#47	0.128351	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (text/html)
	TCP	80 > 1147 [PSH, ACK] Seq=1409 Ack=446 Win=1454 Len=388
#54	0.328246	192.168.1.2	192.168.1.10
	TCP	1147 > 80 [ACK] Seq=446 Ack=1797 Win=16228 Len=0
#55	0.328687	192.168.1.10	192.168.1.2
	TCP	80 > 1147 [FIN, ACK] Seq=1797 Ack=446 Win=1454 Len=0
#56	0.328789	192.168.1.2	192.168.1.10
	TCP	1147 > 80 [ACK] Seq=446 Ack=1798 Win=16228 Len=0
#64	2.066340	192.168.1.2	192.168.1.10
	TCP	1147 > 80 [FIN, ACK] Seq=446 Ack=1798 Win=16228 Len=0
#66	2.066761	192.168.1.10	192.168.1.2
	TCP	80 > 1147 [ACK] Seq=1798 Ack=447 Win=1454 Len=0

最初は、HTML文書の要求と受け取りです。 HTML文書が長かったので、#6と#47の二つのパケットに分割されたようです。

#7	0.046040	192.168.1.2	192.168.1.10
	TCP	1151 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#8	0.046430	192.168.1.10	192.168.1.2
	TCP	80 > 1151 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#9	0.046498	192.168.1.2	192.168.1.10
	TCP	1151 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#10	0.048723	192.168.1.2	192.168.1.10
	HTTP	GET /Ke1.gif HTTP/1.1 
	TCP	1151 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#11	0.049733	192.168.1.10	192.168.1.2
	TCP	80 > 1151 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#16	0.051729	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1151 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=645
#21	0.057742	192.168.1.2	192.168.1.10
	HTTP	GET /Fu1.gif HTTP/1.1 
	TCP	1151 > 80 [PSH, ACK] Seq=454 Ack=646 Win=16616 Len=453
#22	0.058786	192.168.1.10	192.168.1.2
	TCP	80 > 1151 [ACK] Seq=646 Ack=907 Win=1454 Len=0
#23	0.058922	192.168.1.10	192.168.1.2
	TCP	80 > 1151 [FIN, ACK] Seq=646 Ack=907 Win=1454 Len=0
#24	0.058981	192.168.1.2	192.168.1.10
	TCP	1151 > 80 [ACK] Seq=907 Ack=647 Win=16616 Len=0
#25	0.060721	192.168.1.2	192.168.1.10
	TCP	1151 > 80 [FIN, ACK] Seq=907 Ack=647 Win=16616 Len=0
#26	0.061056	192.168.1.10	192.168.1.2
	TCP	80 > 1151 [ACK] Seq=647 Ack=908 Win=1454 Len=0

HTML文書の一つ目のパケットが届いた頃、二つ目のコネクションとして、#7で最初のGIFファイル Ke1.gif の要求が始まります。 #15でGIFファイルが届きますが、ブラウザは同じポートで別のGIFファイル Fu1.gif を要求しようとします。 この要求は、ColdFireによる#23のコネクション切断要求で拒否されます。

#12	0.050124	192.168.1.2	192.168.1.10
	TCP	1153 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#14	0.050717	192.168.1.10	192.168.1.2
	TCP	80 > 1153 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#15	0.050804	192.168.1.2	192.168.1.10
	TCP	1153 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#17	0.052502	192.168.1.2	192.168.1.10
	HTTP	GET /Kn1.gif HTTP/1.1 
	TCP	1153 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#18	0.053565	192.168.1.10	192.168.1.2
	TCP	80 > 1153 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#20	0.055524	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1153 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=648
#27	0.062373	192.168.1.2	192.168.1.10
	HTTP	GET /Fu1.gif HTTP/1.1 
	TCP	1153 > 80 [PSH, ACK] Seq=454 Ack=649 Win=16616 Len=453
#29	0.063429	192.168.1.10	192.168.1.2
	TCP	80 > 1153 [ACK] Seq=649 Ack=907 Win=1454 Len=0
#30	0.063528	192.168.1.10	192.168.1.2
	TCP	80 > 1153 [FIN, ACK] Seq=649 Ack=907 Win=1454 Len=0
#31	0.063586	192.168.1.2	192.168.1.10
	TCP	1153 > 80 [ACK] Seq=907 Ack=650 Win=16616 Len=0
#34	0.064338	192.168.1.2	192.168.1.10
	TCP	1153 > 80 [FIN, ACK] Seq=907 Ack=650 Win=16616 Len=0
#35	0.064678	192.168.1.10	192.168.1.2
	TCP	80 > 1153 [ACK] Seq=650 Ack=908 Win=1454 Len=0

Ke1.gif の要求とほぼ同時に三つ目のコネクションで Kn1.gif の要求が始まります。 ブラウザは、このポートでも連続して Fu1.gif を要求しようとしますが、ColdFireに拒否されます。

#13	0.050700	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#79	3.044079	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#101	8.979695	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#102	8.980156	192.168.1.10	192.168.1.2
	TCP	80 > 1154 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#103	8.980279	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#104	8.988016	192.168.1.2	192.168.1.10
	HTTP	GET /Gn1.gif HTTP/1.1 
	TCP	1154 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#105	8.989119	192.168.1.10	192.168.1.2
	TCP	80 > 1154 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#106	8.990853	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1154 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=662
#107	9.180864	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [ACK] Seq=454 Ack=663 Win=16616 Len=0
#108	9.181377	192.168.1.10	192.168.1.2
	TCP	80 > 1154 [FIN, ACK] Seq=663 Ack=454 Win=1454 Len=0
#109	9.181489	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [ACK] Seq=454 Ack=664 Win=16616 Len=0
#110	17.664269	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [FIN, ACK] Seq=454 Ack=664 Win=16616 Len=0
#114	20.044274	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [FIN, ACK] Seq=454 Ack=664 Win=16616 Len=0
#117	24.872450	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [FIN, ACK] Seq=454 Ack=664 Win=16616 Len=0
#120	34.428232	192.168.1.2	192.168.1.10
	TCP	1154 > 80 [FIN, ACK] Seq=454 Ack=664 Win=16616 Len=0

さらに、ブラウザは、#13で四つ目のコネクションを張ろうとしますが、ColdFireに取り合ってくれません。 #79で再送、#101で再々送して、やっとコネクションを張ることが出来ました。 このポートでは、 Gn1.gif を受け取ります。 ブラウザは、コネクションの終了を宣言しますが、ColdFireが最後の"ACK"を返してくれないので、"FIN"を繰り返し送信します。

#19	0.054023	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#80	3.044117	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#83	3.044657	192.168.1.10	192.168.1.2
	TCP	80 > 1156 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#84	3.044715	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#85	3.052257	192.168.1.2	192.168.1.10
	HTTP	GET /Gk1.gif HTTP/1.1 
	TCP	1156 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#86	3.053334	192.168.1.10	192.168.1.2
	TCP	80 > 1156 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#87	3.055214	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1156 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=669
#92	3.245282	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [ACK] Seq=454 Ack=670 Win=16616 Len=0
#95	5.045620	192.168.1.10	192.168.1.2
	HTTP	[TCP Retransmission] HTTP/1.1 200 OK  (GIF89a)
	TCP	[TCP Retransmission] 80 > 1156 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=669
#96	5.045686	192.168.1.2	192.168.1.10
	TCP	[TCP Dup ACK 92#1] 1156 > 80 [ACK] Seq=454 Ack=670 Win=16616 Len=0
#99	5.046065	192.168.1.10	192.168.1.2
	TCP	80 > 1156 [FIN, ACK] Seq=670 Ack=454 Win=1454 Len=0
#100	5.046117	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [ACK] Seq=454 Ack=671 Win=16616 Len=0
#112	17.664570	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [FIN, ACK] Seq=454 Ack=671 Win=16616 Len=0
#115	20.044305	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [FIN, ACK] Seq=454 Ack=671 Win=16616 Len=0
#118	24.872481	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [FIN, ACK] Seq=454 Ack=671 Win=16616 Len=0
#121	34.428264	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [FIN, ACK] Seq=454 Ack=671 Win=16616 Len=0
#125	53.640459	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [FIN, ACK] Seq=454 Ack=671 Win=16616 Len=0
#128	92.064599	192.168.1.2	192.168.1.10
	TCP	1156 > 80 [FIN, ACK] Seq=454 Ack=671 Win=16616 Len=0

ブラウザは、#19で五つ目のコネクションを張ろうとしますが、これもなかなか取り合ってもらえません。 ブラウザが#85で Gn1.gif を要求し、ColdFireは、#87でGIFファイルを送ります。 これに対してブラウザが送った#92の"ACK"をどうやらColdFireが取り損ねたらしく、#95でGIFファイルが再送されています。 ここでも、ブラウザは、コネクションの終了を宣言しますが、ColdFireが最後の"ACK"を返してくれないので、"FIN"を繰り返し送信しています。

#28	0.062749	192.168.1.2	192.168.1.10
	TCP	1158 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#32	0.063679	192.168.1.10	192.168.1.2
	TCP	80 > 1158 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#33	0.063743	192.168.1.2	192.168.1.10
	TCP	1158 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#36	0.067982	192.168.1.2	192.168.1.10
	HTTP	GET /Fu0.gif HTTP/1.1 
	TCP	1158 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#37	0.069018	192.168.1.10	192.168.1.2
	TCP	80 > 1158 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#38	0.070685	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1158 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=608
#48	0.133867	192.168.1.2	192.168.1.10
	HTTP	GET /Gn0.gif HTTP/1.1 
	TCP	1158 > 80 [PSH, ACK] Seq=454 Ack=609 Win=16616 Len=453
#49	0.134905	192.168.1.10	192.168.1.2
	TCP	80 > 1158 [ACK] Seq=609 Ack=907 Win=1454 Len=0
#50	0.135040	192.168.1.10	192.168.1.2
	TCP	80 > 1158 [FIN, ACK] Seq=609 Ack=907 Win=1454 Len=0
#51	0.135101	192.168.1.2	192.168.1.10
	TCP	1158 > 80 [ACK] Seq=907 Ack=610 Win=16616 Len=0
#53	0.136891	192.168.1.2	192.168.1.10
	TCP	1158 > 80 [FIN, ACK] Seq=907 Ack=610 Win=16616 Len=0
#57	2.039185	192.168.1.2	192.168.1.10
	TCP	1158 > 80 [FIN, ACK] Seq=907 Ack=610 Win=16616 Len=0
#58	2.039637	192.168.1.10	192.168.1.2
	TCP	80 > 1158 [ACK] Seq=610 Ack=908 Win=1454 Len=0

六つ目のコネクションは、二つ目のコネクションが#26で終了した頃に要求が始まります。 このため、すぐにコネクションが張られます。 このコネクションでもブラウザから#48で連続した要求が届きますが、ColdFireは、コネクションを終了してしまいます。

#39	0.071854	192.168.1.2	192.168.1.10
	TCP	1160 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#40	0.072268	192.168.1.10	192.168.1.2
	TCP	80 > 1160 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#41	0.072336	192.168.1.2	192.168.1.10
	TCP	1160 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#43	0.080597	192.168.1.2	192.168.1.10
	HTTP	GET /Ry0.gif HTTP/1.1 
	TCP	1160 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#44	0.081715	192.168.1.10	192.168.1.2
	TCP	80 > 1160 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#45	0.083605	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1160 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=692
#52	0.136722	192.168.1.2	192.168.1.10
	HTTP	GET /Gn0.gif HTTP/1.1 
	TCP	1160 > 80 [PSH, ACK] Seq=454 Ack=693 Win=16616 Len=453
#59	2.064560	192.168.1.10	192.168.1.2
	HTTP	[TCP Retransmission] HTTP/1.1 200 OK  (GIF89a)
	TCP	[TCP Retransmission] 80 > 1160 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=692
#60	2.064641	192.168.1.2	192.168.1.10
	TCP	[TCP Dup ACK 52#1] 1160 > 80 [ACK] Seq=907 Ack=693 Win=16616 Len=0
#61	2.065105	192.168.1.10	192.168.1.2
	TCP	80 > 1160 [FIN, ACK] Seq=693 Ack=454 Win=1454 Len=0
#62	2.065201	192.168.1.2	192.168.1.10
	TCP	1160 > 80 [ACK] Seq=907 Ack=694 Win=16616 Len=0
#63	2.066272	192.168.1.2	192.168.1.10
	TCP	1160 > 80 [FIN, ACK] Seq=907 Ack=694 Win=16616 Len=0
#65	2.066600	192.168.1.10	192.168.1.2
	TCP	80 > 1160 [ACK] Seq=694 Ack=908 Win=1454 Len=0

七つ目のコネクションは、三つ目のコネクションが#35で終了した頃に要求が始まります。 このため、すぐにコネクションが張られます。 このコネクションでもブラウザから#52で連続した要求が届きますが、ColdFireは、この要求自体を受け取り損ねたらしく、#59でGIFファイルを再送します。 その後、ブラウザからは#60でGIFファイルの要求ではなく受信確認だけが届き、コネクション終了のシーケンスに移ります。

#42	0.074501	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#78	3.044077	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#81	3.044532	192.168.1.10	192.168.1.2
	TCP	80 > 1161 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#82	3.044643	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#88	3.059866	192.168.1.2	192.168.1.10
	HTTP	GET /Fu1.gif HTTP/1.1 
	TCP	1161 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#89	3.060889	192.168.1.10	192.168.1.2
	TCP	80 > 1161 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#90	3.062576	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1161 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=607
#91	3.245280	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [ACK] Seq=454 Ack=608 Win=16616 Len=0
#93	5.044902	192.168.1.10	192.168.1.2
	HTTP	[TCP Retransmission] HTTP/1.1 200 OK  (GIF89a)
	TCP	[TCP Retransmission] 80 > 1161 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=607
#94	5.044997	192.168.1.2	192.168.1.10
	TCP	[TCP Dup ACK 91#1] 1161 > 80 [ACK] Seq=454 Ack=608 Win=16616 Len=0
#97	5.045957	192.168.1.10	192.168.1.2
	TCP	80 > 1161 [FIN, ACK] Seq=608 Ack=454 Win=1454 Len=0
#98	5.046053	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [ACK] Seq=454 Ack=609 Win=16616 Len=0
#111	17.664388	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [FIN, ACK] Seq=454 Ack=609 Win=16616 Len=0
#113	20.043312	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [FIN, ACK] Seq=454 Ack=609 Win=16616 Len=0
#116	24.871494	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [FIN, ACK] Seq=454 Ack=609 Win=16616 Len=0
#119	34.427265	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [FIN, ACK] Seq=454 Ack=609 Win=16616 Len=0
#122	53.639394	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [FIN, ACK] Seq=454 Ack=609 Win=16616 Len=0
#126	92.063594	192.168.1.2	192.168.1.10
	TCP	1161 > 80 [FIN, ACK] Seq=454 Ack=609 Win=16616 Len=0

八つ目のコネクションは、しばらく取り合ってもらえません。 コネクションが張られるのは、3秒後です。 このコネクションでも、ColdFireが"ACK"を取り損ねていて、GIFファイルを再送しています。 その後は、ブラウザが切断宣言を繰り返し送信します。

#67	2.075707	192.168.1.2	192.168.1.10
	TCP	1163 > 80 [SYN] Seq=0 Win=16384 Len=0 MSS=1460
#68	2.076085	192.168.1.10	192.168.1.2
	TCP	80 > 1163 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#69	2.076149	192.168.1.2	192.168.1.10
	TCP	1163 > 80 [ACK] Seq=1 Ack=1 Win=16616 Len=0
#70	2.083182	192.168.1.2	192.168.1.10
	HTTP	GET /Gn0.gif HTTP/1.1 
	TCP	1163 > 80 [PSH, ACK] Seq=1 Ack=1 Win=16616 Len=453
#71	2.084216	192.168.1.10	192.168.1.2
	TCP	80 > 1163 [ACK] Seq=1 Ack=454 Win=1454 Len=0
#72	2.086017	192.168.1.10	192.168.1.2
	HTTP	HTTP/1.1 200 OK  (GIF89a)
	TCP	80 > 1163 [PSH, ACK] Seq=1 Ack=454 Win=1454 Len=673
#73	2.239398	192.168.1.2	192.168.1.10
	TCP	1163 > 80 [ACK] Seq=454 Ack=674 Win=16616 Len=0
#74	2.239879	192.168.1.10	192.168.1.2
	TCP	80 > 1163 [FIN, ACK] Seq=674 Ack=454 Win=1454 Len=0
#75	2.239981	192.168.1.2	192.168.1.10
	TCP	1163 > 80 [ACK] Seq=454 Ack=675 Win=16616 Len=0
#76	2.662937	192.168.1.2	192.168.1.10
	TCP	1163 > 80 [FIN, ACK] Seq=454 Ack=675 Win=16616 Len=0
#77	2.663310	192.168.1.10	192.168.1.2
	TCP	80 > 1163 [ACK] Seq=675 Ack=455 Win=1454 Len=0

九つ目の最後のコネクションは、他のコネクションが終了した頃に始まったため、すんなりと通信が行われます。

通信のまとめ

それぞれのコネクションをColdFireがブラウザの"SYN"に反応した順に表にしてみました。

ポートファイルコネクション
1147HTML#2 - #66
1151Ke1.gif#8 - #26
1153Kn1.gif#14 - #35
1158Fu0.gif#32 - #58
1160Ry0.gif#40 - #65
1163Gn0.gif#68 - #77
1161Fu1.gif#78 -
1156Gk1.gif#80 -
1154Gn1.gif#79 -

packets1.png

図も描いてみました。 緑色の部分が実際にデータを送受信した部分です。 ブラウザの再送間隔が長いために全体の通信時間が長くなってしまったものと思われます。

この表から、httpサーバが同時に張ることができるのは、最大三つのコネクションらしいことがわかります。 また、最後の三つのコネクションについては、コネクションが確実に終了していません。 どのGIFファイルもデータそのものは送られてきているのですが、コネクションの終了が確実ではないために破損したイメージとして表示されるものと思われます。

次回はIEでの通信をパケット・モニタにかけます。

参考文献

Interface (インターフェース) 2008年 09月号 [雑誌]

Interface (インターフェース) 2008年 09月号 [雑誌]

  • 作者:
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/07/25
  • メディア: 雑誌

nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。