ネットワークプログラミング相談室 Port3

このエントリーをはてなブックマークに追加
じゃあ。
SSLで送信されてるなら、それを受信して解析しないと。
それに、その後再びエンコードしてHTTPサーバにリクエスト。
SSL crypto HTTPあたりでググってみれ。
>>947
CONNECTでコネクションが確立したら、あとは
クライアントが送信してきた内容をそのままサーバに垂れ流す。
サーバが送ってきた内容も同様にそのままクライアントに転送。
どっちがいつ送ってくるかは分からないからいつ送ってきても
いいように待つ。
ようするにsocksと同じで汎用のポートフォワーディングの
手段として使えるからちゃんとアクセス制限しないと
セキュリティホールになる。

>>952
SSL Proxyは通信内容に一切関知しない。
Proxyが暗号化を解除できたらSSLの意味がないだろ。
954947:02/10/09 15:26
>>951

すんません。
もう少し詳しくと言うかなんか参考文献あったら教えてください。
955947:02/10/09 15:28
>>953

あぁ、やっぱいつ送ってきても良いように待つのですか。
一般的なやり方ってどんなのがあるんでしょうか?
スレッドを使うとか?
956デフォルトの名無しさん:02/10/09 16:30
だからー >>951 が言ってるとおりselect等で待つ。
ソケットの使い方はUNIXネットワークプログラミングVol.1でも読めや。
>>926 TCP_NODELAY を使いつつ、send() 側も recv() 側も、バッファ(第 3 引数)を 1 byte にすりゃいいだろ。 いまさらだけど。
>>926
TCP_NODELAY を使いつつ、send() 側も recv() 側も、バッファ(第 3 引数)を
1 byte にすりゃいいだろ。

いまさらだけど。
959デフォルトの名無しさん:02/10/09 17:29
>>956

Javaで、selectするにはどうすれば良いんでしょうか。

スレッドとTCPのソケット通信について…

TCP/IPがマルチスレッドで動いてくれるとでも思っているヤツはバカ!
>>960 OS によっては、ちゃんとカーネル内でパラレルに動作するようになってます けど、バカですか?
947はJavaで作ってるの?
963デフォルトの名無しさん:02/10/10 02:11
>>947にはJavaなんて一言も書いてなかったな。
まあそれはともかくJavaのJDK 1.3まではスレッド使うしかない。
JDK 1.4ならnio使え。
964デフォルトの名無しさん:02/10/10 06:04
SSL Proxyを通してアクセス制限を回避して任意のホストに
接続できるという話
http://www.kb.cert.org/vuls/id/150227
SSL Proxyを作る人は同じ轍を踏まないように。
おい >>960>>961 に応えろよ。 カーネルのソースも読めねー厨房。
WindowsのTCP/IPドライバのソースを
屏風から追い出してくれたら答えます
そういえば、winsock って、WSAAsyncSelect()を使うと、勝手にスレッドを作るね。
タスクマネージャで確認した程度だから、間違ってるかもしれないけれど。
968デフォルトの名無しさん:02/10/10 15:52
>>963

いや、Javaではないんですが、selectが無い場合はどうやるのかと思って質問しました。

実際は、C#でやっています。
C#では、Selectというメソッドはあるのですが、いまいち使い方が分かりません。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemnetsocketssocketclassselecttopic.asp

要は、ポートフォワーディングをすれば良いんだとは思いますが
どうやって実装すればいいのかに悩んでいたり。
>>968

> ポートフォワーディングすれば

間違えた。

> ポートフォワーディングみたいなこと

に訂正。
ポートフォワーディングって言うよりはトンネリングって言う方が正しいのかな。
そろそろ新スレ建てようかと思うけど、こんな感じでいい?

主にソケットに関しての質疑応答スレです。

Programming UNIX Socket FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html

Winsock Programmer's FAQ
http://tangentsoft.net/wskfaq/

過去スレ:
ネットワークプログラミング相談室
  http://pc.2ch.net/tech/kako/970/970344582.html
ネットワークプログラミング相談室 Port2
  http://pc.2ch.net/tech/kako/1006/10062/1006258198.html
ネットワークプログラミング相談室 Port3
  http://pc3.2ch.net/test/read.cgi/tech/1023359282/
OK。Go!
>>968
使い方が分からんってそのまんまじゃん。
もしかしてCのselectの使い方も分からない?
だったらFAQでも読め。URLはちょうどテンプレが
貼られてる。
建てますた。

ネットワークプログラミング相談室 Port4
http://pc3.2ch.net/test/read.cgi/tech/1034236536/
>>961
へぇプロトコルがマルチスレッドに対応しているのか…どこの世界の話かよかったら聞かせろ。

おまえは、複数の人間がしゃべっているのを同時に聞ける天才か?
>>961,960,974
プロトコルとOS話が…は別だわな…
>>974
実装の話だよ。>>960 も「動く」って書いてる。
>>974

961はOS の TCP/IPプロトコルスタック部分が並列動作するってことを
簡略な表現で言っただけでしょ。

その程度の省略が自動補完できない時点で、知識レベルが論外って気がするが...
並列動作する実装もありうると想像はできるけど、
実際のとこどうなんだろ。

linuxとか*BSDとかの実装を見た人います?
>>978
IP→TCPのDeMultiplexingを担っているところが、
TCPプロトコルスタック部分の(接続単位から見た)並列動作を実現しているところ。

と言われただけで、かなり具体的なイメージが湧かないと、
ソースの場所示されても分からないと思う。イベント駆動型だし。

ちなみに接続単位から見た並列動作が実現できてないのが、
一昔前のいわゆるパソコン通信です。(接続の多重化が行なわれてない)
いや、実際に複数のコンテキストが"同時に"TCP/IPスタックをまわせる
ようになってるのかなあ、と。
実際は排他制御されてたりしない?
>>980
君が書いたら、大域変数バリバリでそうなるのかもしれないけど、
tcp_input.c(の関数群)は、「接続単位」に対してパラメタライズされてます。

> 実際は排他制御されてたりしない?
tcp_input.cの#ifdef CONFIG_SMP調べればすぐ分かるでしょ?
ジャイアントロックないでしょ?

そもそも多重化って意味分かりますか?
全然意味分からないならport 4の図書コーナーにGO!
>>981
どこの実装?CONFIG_SMPってことはlinuxかな。
何にせよ読んでる人がいることに驚いた...

接続単位ってことですが、送受信は分かれますか?
もし分かれるなら、
TCPの送受信で共有しているパラメータ(ブロッキングモードなど)
へのアクセスは正しく排他されますか?
>>982
> 接続単位ってことですが、送受信は分かれますか?

送受がパラに動くようコンテキストが分かれてる、って意味?
TCPは全二重だから、送受で干渉ないように作ってあるわな。
しかもイベント駆動だから、素直にハンドラ書けば並列に動く。
もちろん必要最小限の排他は行なってるわね。

> どこの実装?CONFIG_SMPってことはlinuxかな。

BSDなんかでもnetwork関係は#ifdef SMP全くないでしょ。
NET4自体が、i386がメインじゃない大昔からSMPを考慮してるからね。
(386BSD自体はSMP駄目だったけど)

つーか、読め。人に聞いたsurveyは身に付かん。
http://pc3.2ch.net/test/read.cgi/tech/1034236536/6
The Implementation (TCP/IP Illustrated, Volume 2)
http://www.amazon.co.jp/exec/obidos/ASIN/020163354X/ref=pd_sim_dp_4/249-2677107-1089124

いじょしゅうりょ 1000取り合戦どうぞ→
1000Get!!
> もちろん必要最小限の排他は行なってるわね。

そのへんは送受信で共有されてるパラメータによっては
複雑な処理になりそうですね。バグも入りそうだけど、
まあ腕の見せ所なんでしょう。

ところで本当に並列に動作していることを確認した人はいますか?
だれも「すると思う」レベルの話しかしてませんし。
難しいのかな。
986次スレ案内:02/10/12 12:34
ネットワークプログラミング相談室 Port4
http://pc3.2ch.net/test/read.cgi/tech/1034236536/l50
>>985
> ところで本当に並列に動作していることを確認した人はいますか?

あなたが説明聞いても分からないだけだよ?
本当に並列に動作しているもの。
>>987
> 本当に並列に動作しているもの。

確認方法は ?
横槍ですまんが,並列に動作していないことについての確認方法は?
|  |ノノハ
|_| 。‘人
|文|⊂)
| ̄|∧|
 ̄ ̄ ̄ ̄ ̄

|  |
|_|
|文| ノノ  サッ
| ̄|
 ̄ ̄ ̄ ̄ ̄
|  |
|_|
|文| ノノ  サッ
| ̄|
 ̄ ̄ ̄ ̄
992fang:02/10/13 06:45
993fang:02/10/13 06:49
ume
994fang:02/10/13 06:56
ume
995fang:02/10/13 06:57
ume
996fang:02/10/13 06:59
ume
997fang:02/10/13 07:00
ume
      __     
     l⊆⊇`ヽ ≡  ヤホーイ
     (´D`Lノ ≡
    m=○=mノ) ≡
    _/_/(「_ノニコ ≡
     ( (0)=(__)0) ≡(´⌒(´⌒;;
      〜oノハヽo〜 ミ _ ドスッ
       ( ^▽^) ─┴┴─┐
       /   つ.  1000 │    
      /_____|└─┬┬─┘
        ∪ ∪    ││ _ε3
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。