HTML文書にGIFをたくさん埋め込んでみた - Firefoxの場合 [ColdFire V2]
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種類、用意しました。
表示できたかな?
ブラウザで表示させましたが、後手の「歩」と先手の「銀」が表示されませんでした。 しかも、ここまで表示するのに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"に反応した順に表にしてみました。
ポート | ファイル | コネクション |
---|---|---|
1147 | HTML | #2 - #66 |
1151 | Ke1.gif | #8 - #26 |
1153 | Kn1.gif | #14 - #35 |
1158 | Fu0.gif | #32 - #58 |
1160 | Ry0.gif | #40 - #65 |
1163 | Gn0.gif | #68 - #77 |
1161 | Fu1.gif | #78 - |
1156 | Gk1.gif | #80 - |
1154 | Gn1.gif | #79 - |
図も描いてみました。 緑色の部分が実際にデータを送受信した部分です。 ブラウザの再送間隔が長いために全体の通信時間が長くなってしまったものと思われます。
この表から、httpサーバが同時に張ることができるのは、最大三つのコネクションらしいことがわかります。 また、最後の三つのコネクションについては、コネクションが確実に終了していません。 どのGIFファイルもデータそのものは送られてきているのですが、コネクションの終了が確実ではないために破損したイメージとして表示されるものと思われます。
次回はIEでの通信をパケット・モニタにかけます。
参考文献
Interface (インターフェース) 2008年 09月号 [雑誌]
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2008/07/25
- メディア: 雑誌
コメント 0