[Suzaku:00473] Re: suzaku uClinux apacheの質問 ( 追加質問)
kyosuke yoshizu
email@hidden
2006年 3月 13日 (月) 16:49:57 JST
yoshizuです
何回も同じことを実施すると何10回かに1回は成功します
成功と失敗のパケットのやり取りを記述すると以下になります
失敗時は朱雀からの”HTTP1.0/200 OK”というデータの送信直後に
POSTデータの受信がぶつかるようなパケットトレースとなっています
vfork()の影響でしょうか?
--------------------------------------
成功時
Windows CE 朱雀
SYN →
← SYN ACK
ACK →
ここでTCPコネクション確立
POST →
← ACK
POST DATA →
POST DATA →
← ACK
ACK →
← DATA(HTTP1.0/200 OK)
--------------------------------------
失敗時
Windows CE 朱雀
SYN →
← SYN ACK
ACK →
ここでTCPコネクション確立
POST →
← ACK
← DATA(HTTP1.0/200 OK)
POST DATA → 送信処理と受信処理がぶつか
る?
POST DATA →
← ACK
--------------------------------------
kyosuke yoshizu wrote:
> yoshizuです
>
> 他に調査手段がみつかりませんので
> 試してみたいと思います
>
> 下記について具体的な修正内容を教えてください
>
> 以上よろしくお願い致します
>
> >thttpdで作業していると思うのですが、uClinuxの場合問題が一つあります。
> >
> >uClinuxでは fork()ではなく vfork()を使うのですが、vfork()の場合、子が終
> 了
> >するまで親は動けません。大きなデータをPOSTで処理する場合、これが
> >問題になります。
>
> >thttpdの libhttpd.cの中で pipe()処理している個所を一時ファイルにしてあ
> げる>と
> >大きなデータでも処理できるようになります。
>
> >でも、XPのIEでは問題無いのであれば、関係無いかな?
> >--
> > yashi
suzaku メーリングリストの案内