ネットワークプログラミング相談室 Port23
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/12/28(日) 21:07:24Programming UNIX Socket FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
関連リンクは>>2-10辺り
足りなかったら適当に付け足してね
前スレ
ネットワークプログラミング相談室 Port22
http://pc11.2ch.net/test/read.cgi/tech/1222603744/
関連スレ
Java ネットワークプログラミング 【教えて!】
http://pc11.2ch.net/test/read.cgi/tech/1086238859/
0002デフォルトの名無しさん
2008/12/28(日) 21:09:27Port21 ttp://pc11.2ch.net/test/read.cgi/tech/1204287577/
Port20 ttp://pc11.2ch.net/test/read.cgi/tech/1186418855/
Port19 ttp://pc10.2ch.net/test/read.cgi/tech/1159692799/
Port18 ttp://pc11.2ch.net/test/read.cgi/tech/1171029896/
Port17 ttp://pc8.2ch.net/test/read.cgi/tech/1148944560/
Port16 ttp://pc8.2ch.net/test/read.cgi/tech/1136005644/
Port15 ttp://pc8.2ch.net/test/read.cgi/tech/1128088448/
Port14 ttp://pc8.2ch.net/test/read.cgi/tech/1118469143/
Port13 ttp://pc8.2ch.net/test/read.cgi/tech/1109793931/
Port12 ttp://pc5.2ch.net/test/read.cgi/tech/1102427855/
Port11 ttp://pc5.2ch.net/test/read.cgi/tech/1096187183/
Port10 ttp://pc5.2ch.net/test/read.cgi/tech/1090385857/
Port9 ttp://pc5.2ch.net/test/read.cgi/tech/1080658835/
Port8 ttp://pc5.2ch.net/test/read.cgi/tech/1073560271/
Port7 ttp://pc5.2ch.net/test/read.cgi/tech/1063035045/ ★行方不明
Port6 ttp://pc5.2ch.net/tech/kako/1052/10521/1052106444.html
Port5 ttp://pc2.2ch.net/tech/kako/1040/10402/1040220302.html
Port4 ttp://pc3.2ch.net/tech/kako/1034/10342/1034236536.html
Port3 ttp://pc3.2ch.net/tech/kako/1023/10233/1023359282.html
Port2 ttp://pc.2ch.net/tech/kako/1006/10062/1006258198.html
Port1 ttp://pc.2ch.net/tech/kako/970/970344582.html
0003デフォルトの名無しさん
2008/12/28(日) 21:10:03UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
http://www.amazon.co.jp/exec/obidos/ASIN/4894712059/
そのソースコード
http://www.unpbook.com/src.html
詳解TCP/IP〈Vol.1〉プロトコル
http://www.amazon.co.jp/exec/obidos/ASIN/4894713209/
詳解TCP/IP〈Vol.2〉実装
http://www.amazon.co.jp/exec/obidos/ASIN/4894714957/
詳解TCP/IP〈Vol.3〉トランザクションTCP, HTTP, NNTP, UNIXドメインプロトコル
http://www.amazon.co.jp/exec/obidos/ASIN/4894716674/
TCP/IPによるネットワーク構築
〈Vol.1〉原理・プロトコル・アーキテクチャ
http://www.amazon.co.jp/exec/obidos/ASIN/432012054X/
〈Vol.3〉クライアント‐サーバプログラミングとアプリケーション
http://www.amazon.co.jp/exec/obidos/ASIN/4320028007/
Linux/POSIXソケットバージョン
http://www.amazon.co.jp/exec/obidos/ASIN/4320120841/
Windowsソケットバージョン
http://www.amazon.co.jp/exec/obidos/ASIN/4320029992/
0004デフォルトの名無しさん
2008/12/28(日) 21:10:34http://www.amazon.co.jp/exec/obidos/ASIN/4274065618/
Linuxソケットプログラミング?ネットワークプログラミングにおける実践技法
http://www.amazon.co.jp/exec/obidos/ASIN/4894714671/
Webプロトコル詳解?HTTP/1.1、Webキャッシング、トラフィック特性分析
http://www.amazon.co.jp/exec/obidos/ASIN/4894715414/
WinSock2.0プログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4797306882/
猫でもわかるネットワークプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4797323604/
IPv6ネットワークプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4756142362/
Visual Basicではじめるネットワークプログラミング超入門
http://www.amazon.co.jp/exec/obidos/ASIN/4839917523/
0005デフォルトの名無しさん
2008/12/28(日) 21:12:04★規格
RFC 日本語版リスト
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
JPNIC RFC関連リンク集
http://rfc-jp.nic.ad.jp/link/
RFC Editor
http://www.rfc-editor.org/
HTMLなRFC (セクションを直に示すのに便利)
http://www.freesoft.org/CIE/RFC/
RFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1" 日本語訳
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616
IANA Well known port numbers
http://www.iana.org/assignments/port-numbers
0006デフォルトの名無しさん
2008/12/28(日) 21:17:04C10K ヘヴィーロードサーバ
http://www.kegel.com/c10k.html
C10K ヘヴィーロードサーバ(日本語訳)
http://www.hyuki.com/yukiwiki/wiki.cgi?TheC10kProblem
MSDN
http://msdn.microsoft.com/library/en-us/dnsitehelp/html/tochelp.asp
Raw IP Networking FAQ
http://www.whitefang.com/rin/
Java で packet capture
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/
Randomness Recommendations for Security
http://www.faqs.org/rfcs/rfc1750.html
BoostSocket
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
The Code Project - Internet & Network programming
http://www.codeproject.com/internet/
ネットワークプログラミングの基礎知識 (問題ありのサイト?)
http://X68000.q-e-d.net/~68user/net/
0007デフォルトの名無しさん
2008/12/28(日) 21:20:20ethereal - http://www.ethereal.com/
Wireshark - http://www.wireshark.org/
tcpdump - http://www.tcpdump.org/
Windump - http://netgroup-serv.polito.it/netgroup/tools.html
WinPcap - http://www.winpcap.org/
pathchar - ftp://ftp.ee.lbl.gov/pathchar/
pchar - http://www.employees.org/~bmah/Software/pchar/
Packetyzer - http://www.networkchemistry.com/products/packetyzer/
libevent - http://www.monkey.org/~provos/libevent/
★プロトコル
TTCP
http://www.sean.de/Solaris/ttcp.html
http://www.kohala.com/start/ttcp.html
UDP Hole Punching
http://homepage3.nifty.com/toremoro/p2p/firewall.html
★IP, TCP実装
http://www.iti.fi/documentation/miniip.html
http://www.sics.se/~adam/uip/
http://www.codeguru.com/Cpp/I-N/network/tcpip/article.php/c5447/
http://www.geocities.jp/bruce_teller/security/garakuta.htm
0008デフォルトの名無しさん
2008/12/28(日) 21:21:38過去スレ:
Port20 http://pc11.2ch.net/test/read.cgi/tech/1086238859/
0009デフォルトの名無しさん
2008/12/28(日) 22:02:400010デフォルトの名無しさん
2008/12/28(日) 22:05:150011デフォルトの名無しさん
2008/12/28(日) 22:27:120012デフォルトの名無しさん
2008/12/28(日) 23:03:06closeの戻り値はチェックしてましたが、ちゃんと0が返ってきてました。
libevent内部で何をしてるかはまだ見れていないですが、
とりあえず共有しておきます。
0013デフォルトの名無しさん
2008/12/28(日) 23:38:050014デフォルトの名無しさん
2008/12/28(日) 23:51:18WSAEventSelectやWSAAsyncSelectもね
0015デフォルトの名無しさん
2008/12/29(月) 00:25:34重複I/Oはepoll/kqueueとは違うでしょ。
aio_*あたりでしょ。
0016デフォルトの名無しさん
2008/12/29(月) 04:34:240017デフォルトの名無しさん
2008/12/31(水) 13:27:030019デフォルトの名無しさん
2009/01/01(木) 18:45:20複数の処理スレッドが入力を受け付け(accept)、処理を実行し、1つの管理スレッドが
スレッド数の管理や処理に関する統計処理等を行っています。
(処理数が処理スレッド数を上回った場合は、管理スレッドが処理スレッドを増やすなどを行う)
ここで質問なのですが、管理スレッドを定期的に実行させるにはどのような方法がよいでしょうか?
スレッドのpriorityも関係しそうですが、管理スレッドのpriorityをあげるのは、
なんかおかしいかなと思ってます。(実際にpriorityが高いのは処理スレッド)
また、もっと適した別のスレッドがあればそれを教えて頂ければと思います。
0020デフォルトの名無しさん
2009/01/01(木) 18:52:490021デフォルトの名無しさん
2009/01/01(木) 19:20:57こういう風にマルチスレッドをやると大抵破綻する。
スレッドプールにして一度に使うスレッドの上限を決めとかないと、
スレッドが無限に作られるようなこともできてしまう。
ここでいう管理スレッドはずーと起動しておくようなものに設計しないとだめだよ。
0022デフォルトの名無しさん
2009/01/01(木) 20:05:110023デフォルトの名無しさん
2009/01/01(木) 20:19:51過剰にリクエストが来た場合を考えてみるといい
0024デフォルトの名無しさん
2009/01/01(木) 20:32:13>> 処理スレッドを増やすなどを行う
> こういう風にマルチスレッドをやると大抵破綻する。
増やす上限決めときゃ良いだけの話しだし、管理スレッドをずーと
起動しておくかどうかなんて関係ないし。
何を言いたいのかさっぱりわからん。
0025デフォルトの名無しさん
2009/01/01(木) 20:39:22素人なの?
0026デフォルトの名無しさん
2009/01/01(木) 20:40:35アホすぎる。
いちいちスレッド作っるようなこと考えてんのかしらこの人?
0027デフォルトの名無しさん
2009/01/01(木) 20:42:020028デフォルトの名無しさん
2009/01/01(木) 20:43:54スレッドプールにして〜 というくだりをみて言ってるっぽいので、
アホなんでしょう。
0029デフォルトの名無しさん
2009/01/01(木) 20:48:35スレッドはどういう順番で動くか基本的には操作できないので、
セマフォとか駆使してやってみるのがいいんジャマイカ?
0030デフォルトの名無しさん
2009/01/01(木) 20:52:37> スレッドのpriorityも関係しそうですが、管理スレッドのpriorityをあげるのは、
> なんかおかしいかなと思ってます。(実際にpriorityが高いのは処理スレッド)
なんか勘違いしてるみたいだけど、基本的に管理スレッドの priority はあげるべき。
普通に組めば管理スレッドはたいして CPU 食わないから全体には影響しない。
>>26
> いちいちスレッド作っるようなこと考えてんのかしらこの人?
日本語不自由な人なの?
わざわざ引用してあるのに「処理スレッドを増やすなど」の上限と解釈できないのか?
て言うか、Apache とかの実装とかも知らんのか...。
0031デフォルトの名無しさん
2009/01/01(木) 20:55:34上限は予め決めておこうと思います。
apacheのpreforkのモデルと同じように、予めpoolしておいた分に達したら、上限までpoolを増やしいくようなイメージです。
(もちろん、activeなやつが減ってきたら、poolを減らしていく)
今は、条件変数を使ってやろうかと思っていますが、
他にもっとよい方法はありますでしょうか?
0032デフォルトの名無しさん
2009/01/01(木) 20:56:03処理スレッドの上限を決めなくても、
スレッドプールにすれば済む話w
そもそもスレッドプールって知ってんのかこの人?
0033デフォルトの名無しさん
2009/01/01(木) 20:57:59あんたの文面では理解できない。
0034デフォルトの名無しさん
2009/01/01(木) 20:59:36なんなんだこの話の流れは?
0035デフォルトの名無しさん
2009/01/01(木) 21:01:090036デフォルトの名無しさん
2009/01/01(木) 21:02:19だから Apache のドキュメントでも読んでこいよ。
無駄にスレッド作るとリソース食うからああいう構成にしてるんだし。
>>33
すまん、そこまで日本語に不自由しているとは想定できなかったよ。
0037デフォルトの名無しさん
2009/01/01(木) 21:04:140038デフォルトの名無しさん
2009/01/01(木) 21:05:23これはその典型です。
俺の見たところ、>>32と>>36、話かみ合ってないなw
0039デフォルトの名無しさん
2009/01/01(木) 21:09:220040デフォルトの名無しさん
2009/01/01(木) 21:10:26なぜ
「無駄にスレッド作るとリソース食うからああいう構成にしてるんだし。 」
が>>32への反論になるんだ?
どっちも同じこと言ってるだろ。
0041デフォルトの名無しさん
2009/01/01(木) 21:12:160042デフォルトの名無しさん
2009/01/01(木) 21:20:09世も末だな。
0043デフォルトの名無しさん
2009/01/01(木) 21:42:40スレの流れ見ればわかるように >>21 が切れちゃったみたいだから、
もうこのスレに期待しても無駄。
Apache がベストかどうかは別にして、それなりの実績あるしドキュ
メントもしっかりしてるからそれをまず読むことを薦める。
その上で再度質問するがよろし。
0044デフォルトの名無しさん
2009/01/01(木) 21:57:510045デフォルトの名無しさん
2009/01/01(木) 21:59:320046デフォルトの名無しさん
2009/01/01(木) 22:05:54>> 処理スレッドを増やすなどを行う
> こういう風にマルチスレッドをやると大抵破綻する。
増やす上限決めときゃ良いだけの話しだし、管理スレッドをずーと
起動しておくかどうかなんて関係ないし。
読み返してみた。
この部分おかしい。
上限決めとけばというが、>>21氏はプールして上限決めろと言ってる。
後半、管理スレッドは起動しっぱなしの方がいいと言っているが、関係無いかどうかは言及していない。
キレたのは>>25に素人と言われた>>24だろ。
どうでもいいんだがマジで。
0047デフォルトの名無しさん
2009/01/01(木) 22:08:070048デフォルトの名無しさん
2009/01/01(木) 22:20:180049デフォルトの名無しさん
2009/01/01(木) 22:21:400050デフォルトの名無しさん
2009/01/01(木) 22:23:24相変わらず、何を言いたいのかさっぱりわからん。(w
>>48
同意。
0051デフォルトの名無しさん
2009/01/01(木) 22:26:01日本語不自由ではなくて、君の技術的に問題があるんじゃないか?>>50よ。
0052デフォルトの名無しさん
2009/01/01(木) 22:28:00プールするとき、何個スレッドを作っておくかを初期値として登録するのが基本。(そうじゃない仕様もあるが)
なので、ここで上限が云々いう話に持ってくこと自体、この話を理解していないとしか言えない。
0053デフォルトの名無しさん
2009/01/01(木) 22:30:15もはやそんな話から始めなければならなくなったかwww
0054デフォルトの名無しさん
2009/01/01(木) 22:33:290055デフォルトの名無しさん
2009/01/01(木) 22:35:170056デフォルトの名無しさん
2009/01/01(木) 22:40:52最初いくつか作っておいて、それで足りなくなったらある単位ごとに継ぎ足す、
でも上限に達するとエラー、ってのが基本だろう。
0057デフォルトの名無しさん
2009/01/01(木) 22:45:19プールに戻ってくるまでwaitするだろ普通。
0058デフォルトの名無しさん
2009/01/01(木) 22:45:54そこはあえて突っ込むべきか迷ってたんだがな
0059デフォルトの名無しさん
2009/01/01(木) 22:48:02いくつか種類がある。
1、最初に上限を決めておく
>これはスレッドをあらかじめ作っておくので、
APIを読んだあとはパフォーマンスはいい。
2、上限を設定しない
>スレッドが必要になったらその都度作るが、
スレッドの役目が終了してもスレッドは消えずに残る。
次にスレッドが必要になったとき、プールにあればそれを使う。
0060デフォルトの名無しさん
2009/01/01(木) 22:49:39わざとそういう仕様にしない限りね。
0061デフォルトの名無しさん
2009/01/01(木) 22:54:14googleやyahoo等のwebサーバって、どのくらいの数のユーザスレッドもしくはプロセスが上がるんですか?
10万人が一度に接続してきたとき、10万スレッドが作られるんですか?
0062デフォルトの名無しさん
2009/01/01(木) 22:55:340063デフォルトの名無しさん
2009/01/01(木) 22:57:210064デフォルトの名無しさん
2009/01/01(木) 22:58:090065デフォルトの名無しさん
2009/01/01(木) 23:03:07世の中にはサーバ負荷分散を行うアプライアンス装置ってもんがある JK
0066デフォルトの名無しさん
2009/01/02(金) 00:14:39なぜそんな構成にするのか?
0067デフォルトの名無しさん
2009/01/02(金) 02:14:490068デフォルトの名無しさん
2009/01/05(月) 14:56:08モデムの内側にあるAとBのマシン同士を、モデムの外にあるCというマシンを
介してP2P通信させたいんです。
まず、AのPCがCのPCにUDPアクセスし、AのWAN側のIPとポートを取得。
同様にBのPCがCのPCにUDPアクセスし、BのWAN側のIPとポートを取得。
その後一分以内に(モデムのポートが開いている間に)
取得したIPとポートにAとBそれぞれからお互いにUDPでアクセスさせれば
AとBお互いがモデムの内側であったとしてもUDP通信が可能になると
思いますが違いますでしょうか?
0069デフォルトの名無しさん
2009/01/05(月) 15:35:17これが謎だ
0070デフォルトの名無しさん
2009/01/05(月) 15:46:46007168
2009/01/05(月) 15:57:52AB側のマシンで一時的にUDPポートが開きCとのP2P通信が可能になります。
ただUDPポートはモデムの設定等で開いていない限りは、早ければ1分程度で
受信不能になってしまいます。
0072デフォルトの名無しさん
2009/01/05(月) 18:47:20あんたの言う「モデム」っていうのは、いわゆるブロードバンドルータの類の
NATルータを指してるんでしょ(モデムと言うと違うものになるから、みんな混乱する)。
で、流れとしては >>68 で合っているが、NATの種類等によってうまくいかない
場合もあるから、あとは UDP Hole Punching でぐぐってくれ。
007368
2009/01/06(火) 03:15:16実はuPnPを使うことで解決してしまいました。
モデムというのはNATルータの事を指すんですね、勉強不足でした。
ありがとうございました。
0074デフォルトの名無しさん
2009/01/06(火) 07:54:35ライブラリを開発しています。
映像は、圧縮、非圧縮の2タイプ有るので、
TCPで開発しましたが、
複数接続時に、パフォーマンス問題が出ました。
そこで、UDPを使えという話になり、
試しに、サンプルを作って評価すると、
ロスパケットが多すぎるのでは?と感じています。
UDP使え派の言い分では、映像はUDPを使うのが常識ということなのですが、
UDPだと、圧縮された映像データを無事にデコード・再生するためには、
TCPと似た機構をユーザプログラムに内包することになり、
結局、パフォーマンスは改善できないと思います。
実際のところ、映像データの再生はTCPとUDPのどちらを
使うのが正解でしょうか?
私的には、プロトコルうんぬんで解決できないのでは?と感じており、
その裏づけがほしいと考えています。
0075デフォルトの名無しさん
2009/01/06(火) 09:29:04LAN内なら環境が変化しにくいという意味でUDPであれこれ調整するというのも考えられるけど
それ以外だとやりたくないなあ
0076デフォルトの名無しさん
2009/01/06(火) 11:23:53たとえば mpeg には他のフレームを参照すること無しに
画面を構築できる I-frame があるから、UDP でパケッ
ト落しても次の I-frame から普通に再生できる。
http://vsr.informatik.tu-chemnitz.de/~jan/MPEG/HTML/mpeg_tech.html
0077デフォルトの名無しさん
2009/01/06(火) 11:36:52でいいんじゃないかと
0078デフォルトの名無しさん
2009/01/06(火) 11:42:19> モデムというのはNATルータの事を指すんですね、勉強不足でした。
> ありがとうございました。
NATはNetwork Address Translateの頭字語
ルータはRouter
モデムはModulator-Demodulatorの略
ものの名前は意味とつなげて覚えなきゃダメ
0079デフォルトの名無しさん
2009/01/06(火) 19:35:35> 複数接続時に、パフォーマンス問題が出ました。
> そこで、UDPを使えという話になり、
ここ論理が飛躍しすぎ(というかたぶん大きく間違ってる)。
まずはこっちの根拠をはっきりさせるべきだな。
TCP/UDP の選択基準は >>77 の言う通り、「落ちても困らないのならUDP、困るのならTCP」
「映像はUDPが常識」な理由は、たいていの映像データは >>76の言うように
リアルタイム性を優先させるために「落ちても困らない」ように作ってあるから。
あんたの必要な映像データがどんなのか分からんが、もし「落ちたら困る」ものなら、
> TCPと似た機構をユーザプログラムに内包することになり、
> 結局、パフォーマンスは改善できないと思います。
これは全く正しい。
そのUDP派が上記の理由を踏まえずに言ってるのだとしたらそいつらの方が悪いので、
あんたはもっと強固に主張して良い。
0080デフォルトの名無しさん
2009/01/06(火) 19:48:12> 試しに、サンプルを作って評価すると、
> ロスパケットが多すぎるのでは?と感じています。
これはOKなの? 普通のLAN内の実験環境くらいならそうそう落ちないでしょ。
何か別の問題でパケットロスが多発してるってことはない?
だとしたらパフォーマンスが出ない原因はTCPを使ったことそのものではなくて
パケットロスによる再送の多発のためってこともあるかもしれんし。
0081デフォルトの名無しさん
2009/01/07(水) 16:52:49このサイトでは、
main関数でwinsock2の初期化後ソケットの作成を試みて、
返り値がINVALID_SOCKETの場合returnで終了していますが、
その場合WSACleanupを処理しないことになりますがこれでいいのでしょうか?
// ソケットの作成
sock0= socket(AF_INET,SOCK_STREAM,0);
if (sock0 == INVALID_SOCKET){
printf("socket : %d\n", WSAGetLastError());
getch();
return -1;
}
0082デフォルトの名無しさん
2009/01/07(水) 17:39:41WSACleanup()を呼ばなければならない。
main()で「return -1」とか、センスの悪そうなプログラムだね。
0083デフォルトの名無しさん
2009/01/07(水) 17:55:43malloc論争みたいなもんか。
0085デフォルトの名無しさん
2009/01/07(水) 18:16:57Windowsならたぶん実害はないっぽ。
0086デフォルトの名無しさん
2009/01/07(水) 19:06:17WSACleanup() はプログラム終了時に一度だけ呼べば良
いので(というか処理を継続するなら呼んではいけない
ので)、ソケット作成失敗とかそういう細々したエラー
では呼ばない方が良いと思う。
俺はアプリケーションデストラクタで呼ぶようにしてる。
0087デフォルトの名無しさん
2009/01/07(水) 19:11:20もとのコードを良く読みましょう。
main()からreturnしているのです。
0088デフォルトの名無しさん
2009/01/07(水) 19:29:360089デフォルトの名無しさん
2009/01/07(水) 19:58:55なんかまずい事あるかな。
0090デフォルトの名無しさん
2009/01/07(水) 20:04:030091デフォルトの名無しさん
2009/01/07(水) 22:26:14> WSACleanup() はプログラム終了時に一度だけ呼べば良
> い
嘘書いてた(嘘って事でもないけど)。複数回
WSAStartup() を呼んだ場合は、同じ回数 WSACleanup()
を呼ぶ必要があるみたいだ(普通そんなことしないと思
うけどね)。
それからプログラムが通信処理継続中に WSACleanup()
がエラーを返すことがあるって書いてあるんだけど、こ
れは自前でソケットを管理して終了時に shutdown() し
て回った方がいいと思う。
0092デフォルトの名無しさん
2009/01/07(水) 23:27:17Win32だと、OSや他のプロセスに影響が出ることはまずないでしょ。
でも、malloc後のfreeは「しなければいけない」とは書いてないが
WSACleanupは「(Startupと同じ回数)しなければいけない」と書いてあるわけで
それに従わないのはナンセンスとしか言いようが無いわな。
>91
>普通そんなことしない
ライブラリの開発者が自身で呼ぶというのはあるよ。
ドキュメントに「このライブラリを使う前に必ずWSAStartupを呼べ」
と書いておくより良い、という判断で。
0093デフォルトの名無しさん
2009/01/08(木) 15:12:07ぐだぐだ言わずに書いとけや、とも思うしね。それで困ることなんてないでしょ。
malloc/free は一プロセス内で何百・何千回も使われることも珍しくないし、
する必要がないものも全部freeしろ、ってのは確かにナンセンスな場合もあるわけなので、
malloc/freeと同一の議論はできないと思う。
0094デフォルトの名無しさん
2009/01/08(木) 17:48:290095デフォルトの名無しさん
2009/01/08(木) 17:58:50どうせプロセスが終了したらページごと剥がされるだけなのに
ヒープをちまちま弄くって、そのためにページフォルトを
わざわざひき起こしたりするのは馬鹿げている
まあ、C++のような言語では、好む、好まざるに関わらず
デストラクタによって無駄な後片付けが走ってしまうだろうがな
0096デフォルトの名無しさん
2009/01/08(木) 18:36:36全部freeする行儀の良いスタイルを身につけておくのが無難だと思うがなあ
# C++ではちゃんとdeleteしないとデストラクタが走らないので問題になるかもしれないし
本当にちゃんと解放処理をしっかり書ける上で
意図的にfreeをサボってるならまあ別にいいけれども
009796
2009/01/08(木) 18:37:100098デフォルトの名無しさん
2009/01/08(木) 23:45:10>http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
ここを読んでWinsockについて勉強しているのですが Winsock における
オーバーラップI/Oとは、どうゆう概念(仕組み?)でしょうか?
セッション毎にスレッドを作らなくても、数千〜数万のコネクションを効率的に
処理できると説明にあるのですが、どうゆう仕組みでそれが実現されているのか
いまいちイメージができないです・・・
0099デフォルトの名無しさん
2009/01/09(金) 01:59:17自己解決しました。(Winsock IOCPでGoogle検索したら
欲しい情報がいっぱい見つかりました)
0100デフォルトの名無しさん
2009/01/09(金) 09:54:07boostスレはともかくとして
0101デフォルトの名無しさん
2009/01/09(金) 19:19:070102デフォルトの名無しさん
2009/01/09(金) 22:23:40このスレの住人的にはコレどうですか?
0103デフォルトの名無しさん
2009/01/10(土) 04:06:09ハードで作ったほうが面白いのでは
0104デフォルトの名無しさん
2009/01/10(土) 07:38:48このスレの住人的にはコレどうですか?
0105デフォルトの名無しさん
2009/01/10(土) 08:32:38隣の芝生は赤かったってことでは
0106デフォルトの名無しさん
2009/01/11(日) 20:10:550107デフォルトの名無しさん
2009/01/11(日) 20:40:47そうでない単純なものなら自分でサクッと作れる(たぶん)し。
0108デフォルトの名無しさん
2009/01/11(日) 20:51:16非同期な操作ができないとsocketには向かない。
そういうクラスが欲しいならboost::asioとか調べてみるべし
0109デフォルトの名無しさん
2009/01/11(日) 20:51:280110デフォルトの名無しさん
2009/01/11(日) 20:53:38近い将来32コア位が普通になるらしいので、むしろ非同期のほうが
ソケットに向かなくなるのかななどと思いまして。
0111デフォルトの名無しさん
2009/01/11(日) 21:01:580112デフォルトの名無しさん
2009/01/11(日) 21:06:031スレッド1コネクションでも問題は無いけどね。ネットワークプログラミングの難しさはエラー処理にある。
0113デフォルトの名無しさん
2009/01/11(日) 21:17:33可能だよ。現実にコネクションを標準入出力にリダイレクトするソフトがある。
0114デフォルトの名無しさん
2009/01/11(日) 21:25:09非同期対応にしてるけど結果的にうまくいっていない感じでしたね。
0115デフォルトの名無しさん
2009/01/11(日) 21:28:19それってどういうこと?
非同期モデルは採用したが、それに見合うパフォーマンスが出ていないという話なのか
iostreamベースのラッパーとの相性が悪いという話なのか
0116デフォルトの名無しさん
2009/01/11(日) 21:29:02stdioのFILEとして扱うのはそれなりには使われてるってば。
0117デフォルトの名無しさん
2009/01/11(日) 21:29:55それはブロッキングでやってfdopen()して
タイムアウトはalarm()でって古式ゆかしき方法だよな
0118デフォルトの名無しさん
2009/01/11(日) 21:50:21重複IOを活かす為の苦心が感じ取れるが、複雑化してしまった感じ。
0119デフォルトの名無しさん
2009/01/11(日) 21:51:19ああ、早い話が綺麗じゃないってことか
0120デフォルトの名無しさん
2009/01/13(火) 18:39:57Accept後にThread作ってそこで受信応答を行うという、
ごく一般的な方法なのですが、
現状では、階層の一番深いところで受信した
データの解釈と応答データの作成が必要になってしまい、
ライブラリとして意味がなくなってしまいます。
ライブラリには送受信だけさせ、
受信データの解釈と応答バッファの作成は
もっと上の階層で行いたいのですが、
一般的にはどういう方法で行うのでしょうか?
0121デフォルトの名無しさん
2009/01/13(火) 19:40:06階層の深いところって何の階層だ?
ライブラリとして意味がなくなるのが自明みたいに書いてるが、
他人にはさっぱり
0122デフォルトの名無しさん
2009/01/13(火) 19:51:240123デフォルトの名無しさん
2009/01/13(火) 23:35:09こういうのを一般化する時の問題はデータの区切りの判定です。
どこがデータの区切りで、どこまでデータを読んでから上層に渡せばいいかは
プロトコル依存だからです。 パケットのヘッダに長さが埋め込まれている場合、
CR/LFでメッセージの区切りが指定されている場合等、ひどい場合は階層構造の
データを深くパージングしないと切れ目が分からないなどと言う物も。
>>122
が言う様に普通はコールバックを上層が用意し、データの区切りの判断を
これらのコールバックを呼んで判断するという方法です。 区切りの方法によって
どういうコールバックのインターフェースを用意すればいいかは自分で考えましょう。
0124デフォルトの名無しさん
2009/01/14(水) 00:32:59クラスって書いてんじゃん
0125デフォルトの名無しさん
2009/01/14(水) 00:51:22もしかしてプログラミング初心者?
例えばイベントハンドラで何か動作をさせる、という時に
イベント制御ルーチンにイベントハンドラを登録して
そのイベントハンドラに制御を移すことを「コールバック動作」と言うんだよ。
0126デフォルトの名無しさん
2009/01/14(水) 01:09:20class EventLister {
virtual int OnAccept() = 0;
virtual int OnReveive() = 0;
...
};
class Server {
EventListerner& handler;
AsyncServer(EventListerner& handler) : handler(handler) {}
void receiveexec() { // select後に呼び出される
handler.OnReceived();
}
};
のような造りがコールバック動作でしょ。
これで、EventListenerを継承して自分のやりたいことをやるものを作り
コンストラクタに渡すようにすれば、
必要なときにServerからコールバックされるように出来るでしょ。
0127デフォルトの名無しさん
2009/01/14(水) 01:17:130128デフォルトの名無しさん
2009/01/14(水) 02:57:49SOCK_STREAMじゃなくてSOCK_RAWを使ってるってこと?
0129デフォルトの名無しさん
2009/01/14(水) 09:07:000130123
2009/01/14(水) 09:41:10あ、ごめん、 そうだね。 じゃ、C++的には長さ、区切り判定をするメソッドを
virtualで定義し、実装をサブクラスで行うのがいいですね。
>>128
TCP(SOCK_STREAM)という前提で私は話してました。 receiveで受け取ったデータはtcpの
データグラムと一致している保証もないし、データグラムが上位階層の送信単位と一致する
保証もないので切り分けは上位階層の知識が必要になります。 >>120さんはそこらへんの
必要性は分かっているという印象は受けました。
0131デフォルトの名無しさん
2009/01/14(水) 10:03:27え、それをコールバックって言っちゃうの?
0132120
2009/01/14(水) 10:12:36>>126を参考にしたいと思います。
0133120
2009/01/14(水) 10:23:30もりです。デリミタが来たら受信を終了しコールバックで解釈、応答バッファを作成しも戻ってきたところで、sendさせます。
0134デフォルトの名無しさん
2009/01/14(水) 10:27:04http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6)#.E5.AE.9F.E8.A3.85
0135デフォルトの名無しさん
2009/01/14(水) 13:45:300136デフォルトの名無しさん
2009/01/14(水) 16:52:06msgbox "変数aの値は" & a & " , 変数bの値は" & b
この文を先頭から2つ目の&までとその後の部分に分け、正しく2行で記述しなさい。
また、変数a,bの値がそれぞれ10,20である場合に、実行したときに表示される
メッセージボックスの中の記述内容を書きなさい。
解答。
msgbox"変数aの値は" & a &
msgbox"変数bの値は" &b
変数aの値は 10
変数bの値は 20
0137デフォルトの名無しさん
2009/01/14(水) 16:55:560138デフォルトの名無しさん
2009/01/14(水) 21:15:590139デフォルトの名無しさん
2009/01/15(木) 10:24:38自分のPCにソフトをインストールしない
ということでしょうか?
つまり自分のPCにエクセルが入ってなくてもネットワーク経由でエクセルがつかえる
のように。
しかし、エクセルの入ってないPCと入っているPCをLANでつないでもエクセルは操作できませんでした。
ところが、詰将棋ソフトはPCに入ってなくてもLAN経由でできました。
これはどういうことなんでしょうか?
0140デフォルトの名無しさん
2009/01/15(木) 11:42:25?
0141デフォルトの名無しさん
2009/01/15(木) 11:44:48?
0142デフォルトの名無しさん
2009/01/15(木) 12:45:19>ネットワークプログラミングの究極の目的は
>自分のPCにソフトをインストールしない
>ということでしょうか?
>つまり自分のPCにエクセルが入ってなくてもネットワーク経由でエクセルがつかえる
>のように。
それはただのクラウドコンピューティングの一環。
ネットワークプログラムそのものに目的はないんじゃないか。
目的を達成する手段の一つとしてネットワークプログラミングがあるだけで。
>しかし、エクセルの入ってないPCと入っているPCをLANでつないでもエクセルは操作できませんでした。
>ところが、詰将棋ソフトはPCに入ってなくてもLAN経由でできました。
>これはどういうことなんでしょうか?
知るか。
ソフトの仕様による。
どうしても操作したけりゃRealVNCでも突っ込んどく?
チェケラッチョ
ttp://www.vector.co.jp/soft/win95/net/se324464.html
0143デフォルトの名無しさん
2009/01/15(木) 22:00:55サンプルソースください。
ボイスチャットみたいなものを作ってみたいのです。
UDPで音声データを送信〜受信的なところまでは分かるのですが、
受信したものをどうやって再生するんだよ!という状態です。
1回ファイルに書き込んでそれを再生というのも冗長な気もしますし、
だからと言ってPlaySoundでもメモリ上から〜というのも
エンドレスで受信されるデータにどう対応して良いか分かりません。
ググっても、『音声や動画のようなものにはUDP!』というところまでしか出てきません。
ヒントでも参考URLでも良いのでお願い致します。
0144デフォルトの名無しさん
2009/01/15(木) 22:11:360145デフォルトの名無しさん
2009/01/15(木) 22:47:31ありがとうございます!
母国語以外を無意識に避けていて気付きませんでした!
私のような愚か者がいるから日本の国力が低下するのですね!
これからは他のことでも進んで他国語からも情報を得る努力をします!
1人でも国力底上げしてやるぜYEAH!!!!
0146デフォルトの名無しさん
2009/01/16(金) 13:24:150147デフォルトの名無しさん
2009/01/16(金) 19:14:35DirectShowとか使うと思う。というか、受信した
データをどうするかはスレ違いか。
0148デフォルトの名無しさん
2009/01/16(金) 23:05:49>>102 javaだけどね。
0149デフォルトの名無しさん
2009/01/16(金) 23:14:560150デフォルトの名無しさん
2009/01/17(土) 13:05:27WindowsのVC++でネットワークのアプリを作成しているのですが、通信速度を制限して通信する方法ってありますか?
例えば最大でも30kbpsまでしか速度を出さないように送受信するにはどうすればよいでしょうか?
0151デフォルトの名無しさん
2009/01/17(土) 13:12:151秒毎に4kバイトずつsendを呼べばいいんじゃね?
0152デフォルトの名無しさん
2009/01/17(土) 13:14:182. 例えば最大でも30kbpsまでしか速度を出さないように送受信する
3. そんなの作らずにあるもの使えばいいじゃん
0153デフォルトの名無しさん
2009/01/17(土) 13:35:520154デフォルトの名無しさん
2009/01/18(日) 01:24:29�d
0155デフォルトの名無しさん
2009/01/20(火) 15:38:380156デフォルトの名無しさん
2009/01/21(水) 01:28:32サーバーで送受信部分をPHPとかで作ってる人って居ないの?
0157デフォルトの名無しさん
2009/01/21(水) 10:25:560158デフォルトの名無しさん
2009/01/21(水) 11:23:26まあphpは板違いだな
0159デフォルトの名無しさん
2009/01/21(水) 19:54:19あきらかに64kb以上のデータを取得しているのにどうしてなんだ!
0160デフォルトの名無しさん
2009/01/21(水) 21:56:160161デフォルトの名無しさん
2009/01/21(水) 22:04:020162デフォルトの名無しさん
2009/01/21(水) 22:28:43「デーーーーーーーータ」
↓
データを分割
「データ」、「データ」、「データ」
↓
IP付けて送信
IP head+TCP Head+「データ」 , IP he〜〜〜
それと、
IP head+TCP Head+「データ」から「デーーーーーーーータ」に
再構築するソース教えてくれ
0163デフォルトの名無しさん
2009/01/21(水) 22:55:22↓
データを分割
「デーーー」 、「ーー」、「ーーータ」
↓
IP付けて送信
IP head+TCP Head+「データ」 , IP he〜〜〜
↓
受信
「ーーータ」、「ーー」、「デーーー」
0164デフォルトの名無しさん
2009/01/21(水) 23:04:550165デフォルトの名無しさん
2009/01/21(水) 23:16:05IPヘッダみてもFlagが分割不可になっているのはなぜ?
パケットの取得方法は、PacketFilterExtensionPtr関数。
0166デフォルトの名無しさん
2009/01/22(木) 00:19:29たとえば、不特定多数が使用するクライアント・サーバ型のソフト(MMO等)を作るとして、
データのやり取りはUDPで行うとします。
不正なデータを送られたり、受信したデータから不正な処理をされないためには
データを暗号化して通信する必要がありますが、そのキーを何処に隠すとよいと思いますか?
クライアント側で暗号化したデータをサーバで復号する、またその逆の場合、
クライアントはサーバと通信する為に、鍵を持っている必要がありますが
コード上やリソース上に持たせてしまうと、バイナリエディタなどからバレてしまう可能性があります。
ここで、脅威の対象を仮に
・28歳 男性 独身
・趣味はネトゲ(botツール常習者)
・プログラミングの知識は大学で習った程度、逆アセンブルなどは出来ない
・バイナリエディタなどでパラメータを触った経験はあり
とします。この人にクラックされない仕組みを作りたいです。
色々考えましたが堂々巡りです。
案1)通信確立用のキーをクライアントのコード上、またはリソース上に持たせ、
通信確立はそのキーで行う。その後はサーバで新たなキーを発行する。
→そもそも通信確立用のキーがクラックされれば全く意味が無い
案2)時刻をパラメータに定期的にキーを生成する。
→クライアント・サーバで完全に時刻を同期する必要あり。実現不可能
案3)暗号化部分をdll化し、さらにそのdllを暗号化し、コード上で復号して呼び出す。
dllを暗号化したキーはリソース化し、リンク
→トレースされたら意味なし
よいアイデアお待ちしてます。
0167デフォルトの名無しさん
2009/01/22(木) 00:26:500168デフォルトの名無しさん
2009/01/22(木) 00:30:47普通に非対称鍵暗号使えばいいんじゃ
0169デフォルトの名無しさん
2009/01/22(木) 00:32:480170166
2009/01/22(木) 00:40:06『コード上に載っている鍵をバイナリエディタなどで不正に読み出し、
正規とは別のデータを暗号化し、サーバからみたら「正常な」データを送りつける』のが
BOTツールだと思うので、対象鍵であれ非対象鍵であれ、
暗号化に使う鍵がばれてしまう事自体が問題だと思うんですが。
というか、世に出回っているネットワークプログラムは、どういう対策をとっているのだろうか・・
0171デフォルトの名無しさん
2009/01/22(木) 00:40:23通信確立用のキーがクラックされることを考えるなら、
復号直後のデータを抜かれるクラックも想定が必要ということ?
いずれにしても通信経路上の他人に隠すならともかく、
PCの所有者にその想定で隠すのは無理と思う
0172166
2009/01/22(木) 00:44:55幾ら対策してもMMOにBOTツールやアカウントハックが無くならないのはやはり仕方がないのでしょうか。
どれだけ厳重な金庫にお金を隠しても、金庫の鍵がそこにあれば泥棒は簡単に取っていけますからね。
0173デフォルトの名無しさん
2009/01/22(木) 00:50:250174デフォルトの名無しさん
2009/01/22(木) 03:48:20正規なクライアントだけが持っている情報は一切全く無い、と仮定
するけど、正規なクライアントだけ通信できるようにしたい、ってのは
原理的に不可能だと思う。
ただ、MMO なら、ユーザごとにアカウントとパスワードで接続してるので
それを秘密キーにすれば、正規クライアントかどうか判定はできるんじゃないかな
現実的には案1で十分だと思う。クライアントソフトのクラックは別途対策する
(nProtectとか)ことが多いかと
0175デフォルトの名無しさん
2009/01/22(木) 11:13:02昔P2Pで適当なループ作って署名付けて二回回すってのを考えたけど
結論覚えてないや(w
0176175
2009/01/22(木) 11:14:400177デフォルトの名無しさん
2009/01/22(木) 11:25:02どうしても防ぎたければB-CASカードみたいな対タンパ性のあるハードウェアを
使うとか。
0178デフォルトの名無しさん
2009/01/22(木) 19:16:30ここで答え出てるだろ。
クライアントでランダムな非対称鍵作って
暗号化用の鍵を相手に渡す。
0179デフォルトの名無しさん
2009/01/22(木) 21:43:51暗号化を施すのも正直どうかと思うけどな
0180デフォルトの名無しさん
2009/01/22(木) 22:00:400181デフォルトの名無しさん
2009/01/22(木) 23:33:12強度を高めようとしたら結構負荷がかかるぞ
そもそも暗号と高速化は相反する物だし
0182デフォルトの名無しさん
2009/01/23(金) 10:01:21LANでギガビットイーサ+SSHだとネットの性能に暗号処理がおいつかない。
性能が必要ならストリーム暗号かね。
0183デフォルトの名無しさん
2009/01/23(金) 11:36:090184デフォルトの名無しさん
2009/01/23(金) 17:20:280185デフォルトの名無しさん
2009/01/24(土) 17:20:09受信データにシーケンシャルなインデックスを入れて
受信時にソートするとする。
その場合、処理してしまったデータより前のデータが飛んできた時の処理って
仕様によるとは思うんだけど、どうするのがいいかな?
やっぱ捨てるの?
0186デフォルトの名無しさん
2009/01/24(土) 18:34:500187デフォルトの名無しさん
2009/01/25(日) 10:42:570188デフォルトの名無しさん
2009/01/25(日) 13:31:10でもせっかく届いたデータを捨てるのも勿体無い気がする・・・
設計自体を変えるしかなさそうだな。
色々試してみるお、ありがと。
0189デフォルトの名無しさん
2009/01/25(日) 13:38:410190デフォルトの名無しさん
2009/01/25(日) 13:50:270191デフォルトの名無しさん
2009/01/25(日) 14:46:450192デフォルトの名無しさん
2009/01/25(日) 22:02:47UDPの方がプログラマ寄りの考え方だぞ
0193デフォルトの名無しさん
2009/01/25(日) 22:24:030194デフォルトの名無しさん
2009/01/25(日) 22:27:120195デフォルトの名無しさん
2009/01/25(日) 22:51:09言いたかったのではないかとエスパーしてみる。
0196デフォルトの名無しさん
2009/01/25(日) 23:08:060197デフォルトの名無しさん
2009/01/25(日) 23:30:120198デフォルトの名無しさん
2009/01/26(月) 08:55:020199デフォルトの名無しさん
2009/01/26(月) 11:31:29tracerouteコマンドのように下の層を直接使うアプリもあるし。
0200デフォルトの名無しさん
2009/01/26(月) 20:28:26Windowsではwinsockが主流なのでしょうか?
長らく更新されていないようですけど、それだけ完成度が高いということですか?
0201デフォルトの名無しさん
2009/01/26(月) 21:30:450202デフォルトの名無しさん
2009/01/26(月) 21:38:430203デフォルトの名無しさん
2009/01/26(月) 22:09:07最近は見たことない。Winsockで十分だからね。
0204デフォルトの名無しさん
2009/01/26(月) 22:30:39取っ掛かりは簡単そうだし、少しやってみようと思います
0205デフォルトの名無しさん
2009/01/26(月) 22:34:01詳しくはmanpageを読んでくれ。
0206デフォルトの名無しさん
2009/01/27(火) 03:58:490207デフォルトの名無しさん
2009/01/27(火) 09:08:04UDPを投げてICMPの戻りを使うタイプのものと
ICMPを投げてICMPの戻りを使うものがある
この理解であってる?
0208デフォルトの名無しさん
2009/01/27(火) 14:05:03Linuxには-Iオプションとかもあるな。
0209デフォルトの名無しさん
2009/01/29(木) 23:21:46TCPやUDPなどにはヘッダの構造が定義されていますが、
ポートからヘッダの構造に従ったパケットを送信しさえすれば
後はヘッダに定義したあて先にパケットが届くということでいいのでしょうか?
つまり、大雑把にいうとヘッダ構造にしたがってパケットを送信できれば
一応イーサネットの通信はできるという認識はあっているでしょうか。
(品質やエラー処理などは考慮しないとして)
0210デフォルトの名無しさん
2009/01/29(木) 23:45:010211デフォルトの名無しさん
2009/01/29(木) 23:47:250212デフォルトの名無しさん
2009/01/29(木) 23:49:15書き方が悪かったです。
ここでのポートは、組込み開発のボード上にある
物理的なLANポートのことです。
0213デフォルトの名無しさん
2009/01/30(金) 00:01:21恐らくネットワークの下層の存在を知らないんじゃないかな?
TCP, UDP, IPまでは物理的な通信ハードウェアとは隔離されたレベルの
通信規格。
その下層にあるデータリンク層がLANの場合ならIPアドレスから
イーサネットのアドレスへの変換、イーサネットヘッダーの追加、
イーサネットチェックサムの計算等をやってくれている。
ここの規格はネットワーク技術によって異なる。 他に
身近なものではwifiとかDSLで使われるPPPoEとか。
で、さらにその下の物理層が具体的な電気信号への変換を行う。
0214デフォルトの名無しさん
2009/01/30(金) 00:11:50ファーム支援が何もない状態って事だよね?
ARPをちゃんと理解しないと、
イーサネット上でIPパケットを出すことは難しいよ。
ルーティングの知識もいる。
> その下層にあるデータリンク層がLANの場合なら
ルータの裏蓋程度の中途半端な知識で語るのやめれ
0215デフォルトの名無しさん
2009/01/30(金) 00:12:12そういうことですか・・・少し理解が進みました。
ありがとうございます。
昨日からあるボードのイーサネットのソース解析を
行っているのですが、まったく知識がない状態で
解析しているので何が何だかわかっていないのです。
確かにソース上で、MACアドレスの取得(ARP?)を行ったり、
イーサネットヘッダの追加やチェックサムの計算を行っていました。
要はその部分がデータリンク層の実装ということですね。
ということは、データリンク層までを実装して
そのパケットをLANポートから送信してあげれば
イーサネット通信ができるということでいいでしょうか。
・・・もうソースを見ても何が何だかという感じです。
多少取っ掛かりはみえてきましたが。
0216デフォルトの名無しさん
2009/01/30(金) 00:16:08そのファームの移植・・・という作業なのです。
(CPUが異なるボードへの移植です)
私はペーペーなので勉強も踏まえてという位置づけなのですが、
できるところまでやってみろという感じで
何とかやり遂げないとまずい状態にいます。
ちょっと憂鬱です。
0217デフォルトの名無しさん
2009/01/30(金) 00:20:120218デフォルトの名無しさん
2009/01/30(金) 00:36:20WireShark とかインストールして、ネットワーク上のパケット
見れば理解が少しはすすもかも。
どうせ、デバッグ段階でお世話になるだろうし。
0219デフォルトの名無しさん
2009/01/30(金) 00:37:350220デフォルトの名無しさん
2009/01/30(金) 01:12:00一応ルーターベンダでルータのコードいじってた。 IP, ルーティングが主専門だったが
時々データリンクもいじったし、ブートROMを新しいハードに移植もしたことある。
>>215
>ということは、データリンク層までを実装して
>そのパケットをLANポートから送信してあげれば
まだまだ。 データリンク層は下層の通信技術によって異なるが、これも
標準で定義された規格を実装しているハードウェア非依存のコード。
コンパイルすればいいだけで「移植」は必要ないはず。
移植が必要なのはその下のMAC層。 ここがイーサネットポートのチップと
実際にやりとりをする。
0221デフォルトの名無しさん
2009/01/30(金) 01:15:500222デフォルトの名無しさん
2009/01/30(金) 01:19:580223213
2009/01/30(金) 02:55:55かなり変だったね。 スマン。 単に「イーサネットのLANの場合、データリンク層は」と
言いたいのが言葉が絡まってしまった。
>>219
普通は最下層からも攻めますよね。 デバッグビルドでドライバの最下層の
ルーチンを独立に叩いてチップのレジスタを表示したり設定するデバッグコマンドを
いじりながらまずチップが叩ける様にするというのが常套手段でしょうか。
0224デフォルトの名無しさん
2009/01/30(金) 03:10:24そういうやり方もありかと
あと、TCPで使うタイマーをどうするかぐらい?
ハードに依存した部分がソースで分離されてれば楽だろうね。
209は自分のMACアドレスとかどうするつもり何だろう?
0225デフォルトの名無しさん
2009/01/30(金) 22:07:47今日はEtherealを使ってパケットのやり取りをみてみました(ARPだけですが)
確かに理解は進んで、イメージがつかめてきました。
>>219
・・・うーんそうですね。まだ解析方法自体へたくそなんだと思います。
>>220
BootROMを新しいハードに移植!
まさに今私がやらなければならない作業です。
初めての開発作業で、しかもファームの開発なので
デバッグもままなりません。やりがいはありますが・・・。
>移植が必要なのはその下のMAC層。
このキーワードが解析・移植作業のヒントになりそうです。
根元の部分のみ置き換えてやればいいんですね。
今日先輩にも同じようなことをいわれました。
>>224
いえ自分のMACアドレスというわけではなく、
ARPで宛先のMACアドレスを取得したかっただけです。
皆さん色々と助言をありがとうございます。
まだ来週からは、パケットの送受信をハードがどう行っているかの解析や
TCP/IPやらUDPやらその他もろもろの解析が続くので
苦労の日々は続きそうです。
また何かあれば相談させていただくかもしれませんが、
よろしくお願いします。
0226デフォルトの名無しさん
2009/01/30(金) 23:24:380227デフォルトの名無しさん
2009/01/31(土) 02:00:22>TCP/IPやらUDPやらその他もろもろの解析が続くので
そういうのは文献見りゃ分かるんだから解析とは言わない
0228779
2009/01/31(土) 12:40:14クライアントの接続を切ったとたんに、サーバーが異常終了して
しまいます。原因がわかりませんか?
http://uproda11.2ch-library.com/src/11154199.zip.shtml
お願いします。
0229デフォルトの名無しさん
2009/01/31(土) 12:54:42ソケット関係は入出力を含めてエラー処理が甘すぎ
0230デフォルトの名無しさん
2009/01/31(土) 13:13:070231デフォルトの名無しさん
2009/02/01(日) 13:00:01何のせいですか?
0232デフォルトの名無しさん
2009/02/01(日) 13:12:27例外を処理していないのが原因だったようです。
ありがとうございました。
0233デフォルトの名無しさん
2009/02/01(日) 13:19:050234デフォルトの名無しさん
2009/02/01(日) 16:26:44Backdoor....ヒィーーーーッ、ガクガクブルブル
0235デフォルトの名無しさん
2009/02/01(日) 17:23:23落として実行しちゃったけどBackdoor仕掛けられちゃったか・・・
(
0236デフォルトの名無しさん
2009/02/01(日) 21:40:150237デフォルトの名無しさん
2009/02/01(日) 21:51:01怪しいと思ったので
放置してたんだけど
やっぱそうなん?
0238デフォルトの名無しさん
2009/02/01(日) 21:52:39落したけど実効はしてない
0239デフォルトの名無しさん
2009/02/01(日) 22:20:37どこかのアドレスにsendtoすると
selectでreadfdsが反応しちゃうんだけど
そゆもの?
なんで自分が受信可能になるの?
0240デフォルトの名無しさん
2009/02/01(日) 22:21:470241デフォルトの名無しさん
2009/02/01(日) 22:48:30そのソケットをbindしてselectにセットしています。
さらにそのソケットでsendtoしてるんだけど、
それがまずいってことですか?
0242239
2009/02/01(日) 23:25:56申し訳ないです、忘れて下さい(´・ω・`)
0243デフォルトの名無しさん
2009/02/01(日) 23:58:270244デフォルトの名無しさん
2009/02/02(月) 00:11:280245デフォルトの名無しさん
2009/02/02(月) 02:12:56バックドアってどうしたら発見できるの?
0246デフォルトの名無しさん
2009/02/02(月) 03:04:460247デフォルトの名無しさん
2009/02/02(月) 06:21:16それだけでbackdoorと言っても差し支えない
0248デフォルトの名無しさん
2009/02/03(火) 01:11:56ワラタ
0249デフォルトの名無しさん
2009/02/03(火) 23:29:30できれば、他のプロセス(arpコマンドなど)は起動せず、
標準的な(apt-getせずにubuntuで使える)関数で簡単に数行で記述出来ると望ましいです。
0250デフォルトの名無しさん
2009/02/03(火) 23:34:480251デフォルトの名無しさん
2009/02/03(火) 23:53:070252デフォルトの名無しさん
2009/02/04(水) 00:34:10一行
0253デフォルトの名無しさん
2009/02/04(水) 00:50:26ttp://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/arpupdate.htm
0254デフォルトの名無しさん
2009/02/04(水) 12:40:11arpのソースをリンクすればいいんじゃないか?
0255デフォルトの名無しさん
2009/02/04(水) 13:27:29ライセンス関連であまり悩みたくないので他のプログラムのソースを取り込むのは避けたいです。
できればarp()やget_remote_mac()のようなAPIがあれば嬉しいのですが。
0256デフォルトの名無しさん
2009/02/04(水) 13:29:23ありがとうございます。参考にします。
0257デフォルトの名無しさん
2009/02/04(水) 13:30:26他のプロセスを起動したくないからです。
0258デフォルトの名無しさん
2009/02/04(水) 13:40:190259デフォルトの名無しさん
2009/02/04(水) 16:18:33つ http://www.netlib.org/
0260デフォルトの名無しさん
2009/02/04(水) 16:20:51あ、逆だった。 こっちだ orz
http://www.packetfactory.net/libnet/
0261デフォルトの名無しさん
2009/02/04(水) 21:38:43Linux前提なら /proc/net/arp 読めばいいんじゃね?
arpコマンドだってこれ読んでるだけだよ。
キャッシュにないときの処理は後自分で考えるんだぞ。
0262デフォルトの名無しさん
2009/02/04(水) 21:49:06ていうかpingも自分で実装?
0263デフォルトの名無しさん
2009/02/04(水) 23:54:13ありがとうございます。
やっぱり標準装備のライブラリじゃできないですかね。。
導入するならこれかlibpcapかな。
0264デフォルトの名無しさん
2009/02/04(水) 23:55:38いや、接続しようとするだけで問題なし。
出来なくてもARPは行われるから。
0265デフォルトの名無しさん
2009/02/04(水) 23:56:02ありがとうございます。
確かにそれはいいアイディアですね。
テキスト処理が若干面倒ですが。
0266デフォルトの名無しさん
2009/02/04(水) 23:57:50御存じのこととは思いますが、pingとarpキャッシュは直接関係ありませんよ。
pingがアドレス解決するのでその副作用でarpキャッシュが更新されるだけです。
0267デフォルトの名無しさん
2009/02/05(木) 17:34:42確かにそれはいいアイディアですね。
自分でARP投げるのも出来ませんかね。
0268デフォルトの名無しさん
2009/02/05(木) 18:11:460269デフォルトの名無しさん
2009/02/05(木) 21:37:230270デフォルトの名無しさん
2009/02/05(木) 22:45:25ttp://www.secdev.org/projects/scapy/demo.html
0271デフォルトの名無しさん
2009/02/05(木) 22:45:39こっちが聴きたい。「あなたは実装できないのですか?」
0272デフォルトの名無しさん
2009/02/05(木) 22:47:140273デフォルトの名無しさん
2009/02/05(木) 22:49:29Cでは出来るけど >>249 の言うような
>できれば、他のプロセス(arpコマンドなど)は起動せず、
>標準的な(apt-getせずにubuntuで使える)関数で簡単に数行で記述出来ると望ましいです。
「標準的な関数で簡単に数行で」って言われると
自分の関数リンクするのもアウトだろうから
arp -a 以外に思いつかない
0274デフォルトの名無しさん
2009/02/05(木) 22:55:44http://heather.cs.ucdavis.edu/~matloff/Python/PyNet.pdf
http://www.amazon.co.jp/Foundations-Python-Network-Programming/dp/1590593715
http://d.hatena.ne.jp/rintaromasuda/20060521/1148167342
http://www.onlamp.com/pub/a/python/2006/08/10/untwisting-python-network-programming.html
http://simonwillison.net/2004/Feb/18/advanced/
0275デフォルトの名無しさん
2009/02/05(木) 23:27:45import sys
import string
import struct
from socket import *
proto = 0x55aa
s = socket(AF_PACKET, SOCK_RAW, proto)
s.bind(('eth1', proto))
ifName, ifProto, pktType, hwType, hwAddr = s.getsockname()
srcAddr = hwAddr
dstAddr = '\x01\x02\x03\x04\x05\x06'
ethData = 'here is some data for an ethernet packet'
txFrame = struct.pack('!6s6sh', dstAddr, srcAddr, proto) + ethData
print 'Tx[%d]: ' % len(ethData) + string.join(['%02x' % ord(b) for b in ethData], ' ')
s.send(txFrame)
rxFrame = s.recv(2048)
dstAddr, srcAddr, proto = struct.unpack('!6s6sh', rxFrame[:14])
ethData = rxFrame[14:]
print 'Rx[%d]: ' % len(ethData) + string.join(['%02x' % ord(b) for b in ethData], ' ')
s.close()
0276デフォルトの名無しさん
2009/02/05(木) 23:31:13ありがとうございました
0277249 ◆ZHAPRHY6Ag
2009/02/06(金) 00:13:24ちなみに私の書き込みは下記のレスです。
>>249 >>255-257 >>263 >>265-266
0278249 ◆ZHAPRHY6Ag
2009/02/06(金) 00:27:48それと、あくまでも同一LAN内のMACアドレスが分かっているリモートホストのIPアドレスが知りたいのであって
明示的にARPリクエストを送りたいわけではありません。したいのはあくまでもIPアドレスを取得することです。
RAWソケットを開いたりする必要こと無く、標準関数あるいは標準機能と数行の記述でIPアドレスを取得できることが希望です。
標準関数を希望するのは、OSに標準的に付属する以外にソフトウェアを取得するのは、権利の関係が面倒なので避けたいからです。
例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。
0279デフォルトの名無しさん
2009/02/06(金) 00:35:160280デフォルトの名無しさん
2009/02/06(金) 00:38:57IPアドレスが分かっているLAN内の他のホストのMACアドレスを知る
>>278
MACアドレスが分かっているリモートホストのIPアドレスが知りたい
謎ですなあ。
0281デフォルトの名無しさん
2009/02/06(金) 01:41:03じゃなくて
int get_ip_address(struct mac_addr *mac)
だよなぁ
謎
0282249 ◆ZHAPRHY6Ag
2009/02/06(金) 01:57:16○例えば、標準関数でint get_ip_address(struct arpreq *req) のような関数があると理想的です。
0283249 ◆ZHAPRHY6Ag
2009/02/06(金) 02:00:25ああちがいました。
求めたいのはMACアドレスです。
ですので、
○例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。
0284249 ◆ZHAPRHY6Ag
2009/02/06(金) 02:02:28大切なことを言い忘れていましたが、CかC++で実装したいと考えています。
それと、あくまでも同一LAN内のIPアドレスが分かっているリモートホストのMACアドレスが知りたいのであって
明示的にARPリクエストを送りたいわけではありません。したいのはあくまでもMACアドレスを取得することです。
RAWソケットを開いたりする必要こと無く、標準関数あるいは標準機能と数行の記述でMACアドレスを取得できることが希望です。
標準関数を希望するのは、OSに標準的に付属する以外にソフトウェアを取得するのは、権利の関係が面倒なので避けたいからです。
例えば、標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です。
0285デフォルトの名無しさん
2009/02/06(金) 02:03:01> 標準関数でint get_mac_address(struct arpreq *req) のような関数があると理想的です
今までの流れでそんなのは無いというのが分からんのか? 今までのレスで十分その
関数を自分で書くだけの情報はあるはずだぞ。
0286249 ◆ZHAPRHY6Ag
2009/02/06(金) 02:12:48ちなみに、macアドレスを取得する関数はRAWソケットで既に作りました。
マルチプラットフォームでの移植性を考えるとlibpcapを使った方がよさそうでしたけど、移植することもないのでこちらにしました。
標準関数で同機能があればそちらで作り直したかったのですが仕方ありませんね。
0287デフォルトの名無しさん
2009/02/06(金) 03:21:05ここでマルチしてんのか
0288デフォルトの名無しさん
2009/02/06(金) 08:20:080289デフォルトの名無しさん
2009/02/06(金) 08:44:00指摘されているにも関わらず同じ間違いを繰り返してしまうキミは
プログラミングを止めた方がいい。経験上。
0290デフォルトの名無しさん
2009/02/06(金) 09:15:510291デフォルトの名無しさん
2009/02/06(金) 09:17:480292デフォルトの名無しさん
2009/02/06(金) 10:29:010293デフォルトの名無しさん
2009/02/06(金) 10:32:300294デフォルトの名無しさん
2009/02/06(金) 11:11:280295デフォルトの名無しさん
2009/02/06(金) 11:33:570296デフォルトの名無しさん
2009/02/06(金) 13:21:010297デフォルトの名無しさん
2009/02/06(金) 15:16:430298デフォルトの名無しさん
2009/02/06(金) 15:22:32ここにいる奴に書かせるつもりだなw
0299デフォルトの名無しさん
2009/02/06(金) 16:19:250300デフォルトの名無しさん
2009/02/06(金) 16:30:03っておい!
0301デフォルトの名無しさん
2009/02/06(金) 21:08:500302デフォルトの名無しさん
2009/02/06(金) 21:18:490303デフォルトの名無しさん
2009/02/06(金) 22:22:510304デフォルトの名無しさん
2009/02/07(土) 01:18:210305デフォルトの名無しさん
2009/02/07(土) 01:34:59ありがとうございました
0306デフォルトの名無しさん
2009/02/07(土) 03:05:560307デフォルトの名無しさん
2009/02/07(土) 03:13:400308デフォルトの名無しさん
2009/02/07(土) 12:17:31自身のローカルIPにbindしてプロミスキャスモードに設定するとパケットキャプチャができますが、特定のIPとのパケット通信のみをキャプチャするにはどうすればいいんでしょうか?
全部とって選別よりも、それ以外取得できないようにしたほうが軽いと思うんです
試しにその特定のIPにbindしてプロミスキャスモードに設定しようとしたらエラーが出ました
0309デフォルトの名無しさん
2009/02/07(土) 12:41:32対応していないなら、そういうドライバを作る。
0310デフォルトの名無しさん
2009/02/07(土) 14:18:21なんでアホはあるもの全部使わなきゃ気がすまねーの?
0311デフォルトの名無しさん
2009/02/07(土) 14:23:110312デフォルトの名無しさん
2009/02/07(土) 14:44:47このスレって俺を含めてド素人しかいない予感w
0313デフォルトの名無しさん
2009/02/07(土) 15:22:250314デフォルトの名無しさん
2009/02/07(土) 15:22:28ttp://www.tef-room.net/tool/PromiScan.html
ttp://www.space-peace.com/ethereal/check/ethereal_check_4.htm
0315デフォルトの名無しさん
2009/02/07(土) 19:10:190316デフォルトの名無しさん
2009/02/07(土) 19:11:12接続元アドレスが自動で設定されると思うんだけど
複数IPアドレスがあった場合どうなるの?
0317デフォルトの名無しさん
2009/02/07(土) 19:33:020318デフォルトの名無しさん
2009/02/07(土) 19:57:20ありがとうございました
0319デフォルトの名無しさん
2009/02/07(土) 20:10:45bindしないでconnectした時のアドレス割り当てが
どういったルールになってるのかなって。
0320デフォルトの名無しさん
2009/02/07(土) 20:35:400321デフォルトの名無しさん
2009/02/07(土) 21:24:44ちゃんとプライマリとか見てくれるのか
ありがとー
0322デフォルトの名無しさん
2009/02/08(日) 06:32:350323デフォルトの名無しさん
2009/02/08(日) 07:49:430324デフォルトの名無しさん
2009/02/08(日) 09:44:130325デフォルトの名無しさん
2009/02/08(日) 22:47:120326デフォルトの名無しさん
2009/02/09(月) 01:07:46即座にthread_Aで止まってるepoll_waitは反映してくれない?
というか、epoll_fdに対しての非同期操作は自分で排他処理しないとダメ?
0327デフォルトの名無しさん
2009/02/10(火) 10:50:58まともなOSならそんなことしない。
インターフェイスへの複数アドレス付与を、付け焼刃で実装したOSならあるかもしれんけど。
>>321
そのホストのルーティングテーブルを参照して、接続先アドレスに到達可能な最小コストのルートを選択して、
接続元とするアドレスが決められる。
インターフェイスAに、10.0.0.1/24と、192.168.0.1/24が振られてて10.0.0.1がプライマリだったとしても、
192.168.0.2に接続するときには、192.168.0.1がsourceとして使われる。
0328デフォルトの名無しさん
2009/02/10(火) 11:25:55同じセグメントのIPが複数振られてたらどっちが使われる?
0329デフォルトの名無しさん
2009/02/10(火) 11:26:06通常使っている言語とどのような共通点があるか?
またどのような相違点があるか?
という問題を誰か教えてくれませんか?
0330デフォルトの名無しさん
2009/02/10(火) 11:40:40ウィキペれ。
0331デフォルトの名無しさん
2009/02/10(火) 11:43:370332デフォルトの名無しさん
2009/02/10(火) 11:45:36>>327に書いてあるでしょ。
0333デフォルトの名無しさん
2009/02/10(火) 13:56:50同じインタフェースに 192.168.0.1/24 と 192.168.0.2/24 が振られているときに
192.168.0.254 に接続したらどうなるか、って話でしょ。>>327には書いてないと思うが。
Linuxの場合、ソースをチラ見しただけだがプライマリを使うようになってる
っぽいな。明確な仕様なのかはよく知らないけど。
0334デフォルトの名無しさん
2009/02/10(火) 22:47:46UDPソケットでrecvした時に複数のパケットがくっついて読み込まれる事ってありえますか?
0335デフォルトの名無しさん
2009/02/10(火) 22:53:520336デフォルトの名無しさん
2009/02/10(火) 23:00:45ありがとうございました
0337デフォルトの名無しさん
2009/02/10(火) 23:01:280338デフォルトの名無しさん
2009/02/10(火) 23:18:030339デフォルトの名無しさん
2009/02/10(火) 23:27:580340デフォルトの名無しさん
2009/02/10(火) 23:32:090341デフォルトの名無しさん
2009/02/10(火) 23:36:140342デフォルトの名無しさん
2009/02/11(水) 00:01:120343デフォルトの名無しさん
2009/02/11(水) 00:08:080344デフォルトの名無しさん
2009/02/11(水) 00:08:560345デフォルトの名無しさん
2009/02/11(水) 00:12:190346デフォルトの名無しさん
2009/02/11(水) 00:17:010347デフォルトの名無しさん
2009/02/11(水) 00:21:59>>334は「recv」と書いており、これはOSのAPIと理解できる。
UDPのRFCでは、OSのAPIの事は、
User Interface
--------------
A user interface should allow
the creation of new receive ports,
receive operations on the receive ports that return the data octets
and an indication of source port and source address,
and an operation that allows a datagram to be sent, specifying the
data, source and destination ports and addresses to be sent.
しか規定しておらず、複数のパケットを一つにまとめてrecvするOSがあってもよい。
ただし実際そういうAPIを持つOSはいまだかつて見たことがないが。
以上のことはRFCを読んだことがある人間には常識なので、
>>344は読んだことがないのだろう。
上に書いたような意味において、>>334への返答は「あり得ません。」
この返答で正しい。
0348デフォルトの名無しさん
2009/02/11(水) 00:22:18recvのDescriptionから
>For message-based sockets, such as SOCK_DGRAM and SOCK_SEQPACKET,
>the entire message shall be read in a single operation.
0349デフォルトの名無しさん
2009/02/11(水) 00:27:18パケットを纏めてしまうと、すくなくとも、POSIXは満たさなくなる。
>shall
>For an implementation that conforms to IEEE Std 1003.1-2001,
>describes a feature or behavior that is mandatory.
>An application can rely on the existence of the feature or behavior.
0350デフォルトの名無しさん
2009/02/11(水) 00:27:190351デフォルトの名無しさん
2009/02/11(水) 01:29:430352デフォルトの名無しさん
2009/02/11(水) 03:41:460353デフォルトの名無しさん
2009/02/11(水) 03:42:37まずなにからすればいいんでしょうか?
ダイアログにWebBrowserコントロールを張り付ければいいんですか?
0354デフォルトの名無しさん
2009/02/11(水) 03:43:12みなさん ではないんでしょうか?
0355デフォルトの名無しさん
2009/02/11(水) 10:16:31スレ違い。
0356デフォルトの名無しさん
2009/02/11(水) 10:38:13力抜けよ
0357デフォルトの名無しさん
2009/02/11(水) 11:20:270358デフォルトの名無しさん
2009/02/11(水) 17:23:260359デフォルトの名無しさん
2009/02/11(水) 21:00:32>始めてみようかと思うんですが。
何をだ!?と思った次の瞬間、
>まずなにからすればいいんでしょうか?
いや知らんがなー!と突っ込まずにはいられない。
0360デフォルトの名無しさん
2009/02/12(木) 01:38:360361デフォルトの名無しさん
2009/02/12(木) 09:32:53Rubyで書いた、ウェブページとそこのリンク先を取り込むスクリプトを
動かしていたら途中でconnect refusedになって以後つながりません。
"www.linux.org"だったんですけど、他では問題ありません。
図書館でやっても途中で切れました。
某図書館では"www.linux.org"につながらなくなっているかもしれませんゴメンナサイ。
いったいどうゆうことなんでしょうか。
なにが気に入らなかったんでしょうか。
まる二日たちますが、接続拒否は解除されるんでしょうか。
0362デフォルトの名無しさん
2009/02/12(木) 10:45:59一度に多接続すると制限されることはあるね。
どれくらいの期間制限されるかはサイトのポリシーだから一概には言えないね。
0363デフォルトの名無しさん
2009/02/12(木) 13:50:330364デフォルトの名無しさん
2009/02/12(木) 14:25:130365デフォルトの名無しさん
2009/02/12(木) 15:22:030366デフォルトの名無しさん
2009/02/12(木) 15:26:120367デフォルトの名無しさん
2009/02/12(木) 19:14:35通報しました
0368デフォルトの名無しさん
2009/02/12(木) 20:17:070369デフォルトの名無しさん
2009/02/12(木) 20:20:41取得したIPアドレスを利用して「ping」をうちたいのですが
どうしたらpingをうつプログラム書けますか?
手順を教えてください(ex 関数などを)
0370デフォルトの名無しさん
2009/02/12(木) 20:29:120371デフォルトの名無しさん
2009/02/12(木) 20:50:310372デフォルトの名無しさん
2009/02/12(木) 22:04:370373デフォルトの名無しさん
2009/02/12(木) 22:20:590374デフォルトの名無しさん
2009/02/12(木) 22:57:050375デフォルトの名無しさん
2009/02/12(木) 23:26:29ルータ越しにサーバーとクライアントのプログラムを走らせるとして、
サーバーをSourcePort10000で立ち上げる。
クライアントをSourcePort5000、DestinationPort10000でサーバーに接続する。
この場合、サーバー側のポート10000を空けないと接続できないんだけど、
クライアント側はポートを空けなくても送受信できちゃいます。
なんでなの?(´・ω・`)
0376デフォルトの名無しさん
2009/02/12(木) 23:29:400377デフォルトの名無しさん
2009/02/12(木) 23:33:44> サーバーをSourcePort10000で立ち上げる。
SourcePort→AcceptPort
0378デフォルトの名無しさん
2009/02/12(木) 23:37:00クライアントは受信もできちゃうんだけど
そゆものなの?(´・ω・`)
>>377
AcceptPortだったか
ありがとうございます。
0379デフォルトの名無しさん
2009/02/12(木) 23:57:36そゆものでしょ
0380デフォルトの名無しさん
2009/02/13(金) 01:01:06そんなのいやだぁぁぁ
ちゃんと理解したいぃぃぃ
なんでポート開いてないのに受信できるの!
( ゚д゚)<誰かぁぁぁぁ
0381デフォルトの名無しさん
2009/02/13(金) 01:18:21ファイアーウォールは外向きのパケットが通るとその発信元ポート、アドレス、
及び通信先ポート、アドレスの4組の情報を「セッション」として覚える。
パケットが帰って来るとそのセッションに当てはめ、一致するセッションがあれば
通してあげる。
0382デフォルトの名無しさん
2009/02/13(金) 01:32:240383デフォルトの名無しさん
2009/02/13(金) 01:39:11おー、そうなのですか
だからサーバーはポート開けないとダメなのかー
理解できますた。
分かりやすい解説ありがとうございましたヽ(´ー`)ノ
>>382
SPIググってみました。
Stateful Packet Inspection
これか、これなのか!
勉強になりますたヽ(´ー`)ノ
0384デフォルトの名無しさん
2009/02/13(金) 15:31:170385デフォルトの名無しさん
2009/02/13(金) 20:54:370386デフォルトの名無しさん
2009/02/13(金) 20:57:160387デフォルトの名無しさん
2009/02/13(金) 21:38:500388デフォルトの名無しさん
2009/02/14(土) 10:16:090389デフォルトの名無しさん
2009/02/14(土) 10:28:440390デフォルトの名無しさん
2009/02/14(土) 23:35:59なにか心当たりがある方いらっしゃいますか?
0391デフォルトの名無しさん
2009/02/14(土) 23:38:14リモートのホストに聞いてください。
0392デフォルトの名無しさん
2009/02/14(土) 23:41:180393デフォルトの名無しさん
2009/02/15(日) 00:50:10リモートのホストもこちらの制御下なのですが。。
0394デフォルトの名無しさん
2009/02/15(日) 00:50:390395デフォルトの名無しさん
2009/02/15(日) 00:50:590396デフォルトの名無しさん
2009/02/15(日) 01:21:34リモートのホストに聞いてください。
0397デフォルトの名無しさん
2009/02/15(日) 01:23:55ちがう。
リモートのホストが>>393の制御下にあるというから、
どうやって制御しているのかを聞いている。
0398デフォルトの名無しさん
2009/02/15(日) 10:39:33クライアントでrecvするとECONNRESETが返ってきます。
サーバ側でアクティブ・クローズしてるのですが、これが原因なんですかね?
処理の流れとしては、以下のような感じになっています。
client server
accept
connect
send
recv
send
recv close (クライアントのrecvとサーバのcloseとのタイミングが問題?)
close
よく考えると、サーバ側でsendしても実際は送られてない可能性が高いので、
その後すぐcloseしてしまうのは、問題な気もしますが、
高負荷でないとこの方法でうまく行きます。
(うまく行ってる場合は、たまたまsendがすぐにデータを転送していたということでしょうか?)
サーバ側では、sendしたあと、peerがcloseしたのを確認した後にcloseするのが
いいのでしょうか?
(recvで0が返ってくるまでcloseしないとか)
どなたかご教授ください
0399デフォルトの名無しさん
2009/02/15(日) 11:00:24> (recvで0が返ってくるまでcloseしないとか)
& shutdown
0400デフォルトの名無しさん
2009/02/15(日) 11:00:38最後サーバからなにsendしてるのかしらんけど
双方のパケットの内容はモニターしてチェックしたの?
してないんだったらまずはそっからじゃね?
0401デフォルトの名無しさん
2009/02/15(日) 11:00:44http://www.kt.rim.or.jp/~ksk/wskfaq-ja/newbie.html#howclose
0402デフォルトの名無しさん
2009/02/15(日) 11:45:12ありがとうございます。
1. データ送信を完了する。
2. shutdown()をhowパラメータを 1 に設定して呼び出す。
3. recv()が 0 を返却するまでループする。
4. closesocket()を呼び出す。
1の「送信を完了する」というのは、実際に送信が完了したかの確認ではなく、
send(write)を呼んでstatusがOKかを確認するということでいいんですかね?
とりあえず、試してみます。
0403デフォルトの名無しさん
2009/02/15(日) 11:57:05recv側はちゃんとFINの立ったTCPセグメントを食ってやるって事。
それでどちら側もちゃんとshutdownできる。
何も難しいことはやってない。
0404デフォルトの名無しさん
2009/02/16(月) 19:23:21int ret = recv(socket , buf , 128 , 0 );//whileループは使わない。
ret == -1はあるきがするのですが(ブロッキングなど)
ret == 0はあるのでしょうか?
ブロッキングソケットの場合はrecvでとまっているので ret == 0で切断などであるとは思うのですが。
0405デフォルトの名無しさん
2009/02/17(火) 02:39:110406デフォルトの名無しさん
2009/02/17(火) 10:35:44サーバー管理している皆様
セキュリティは、ほどほどにお願いします。
0407デフォルトの名無しさん
2009/02/17(火) 10:38:020408デフォルトの名無しさん
2009/02/17(火) 12:21:38おまえの母ちゃんよりマシ。
0409デフォルトの名無しさん
2009/02/17(火) 12:39:25まるでサーバー管理者側が悪いかのような口のきき方すれば
罵声を浴びるに決まってるだろ
人のことをとやかく言う前にまず自分のスキルを上げろって話さ
0410デフォルトの名無しさん
2009/02/17(火) 14:13:00あっそ
0411デフォルトの名無しさん
2009/02/17(火) 14:58:21うん
そういうこと
0412デフォルトの名無しさん
2009/02/17(火) 15:01:410413デフォルトの名無しさん
2009/02/17(火) 18:00:16わたしは、どのみちシロウトです。
0414デフォルトの名無しさん
2009/02/17(火) 18:38:28>>406は、ただ最後にちょっと気の利いたことを書いておこうと
思っただけです。
気に障ったらすみません。
でもネットには、けんかを買いたい人が待ち構えてるんだね。
>>408には、笑った。
0415デフォルトの名無しさん
2009/02/17(火) 19:40:550416デフォルトの名無しさん
2009/02/17(火) 20:31:150417デフォルトの名無しさん
2009/02/17(火) 20:58:070418デフォルトの名無しさん
2009/02/17(火) 22:49:16acceptで取得したソケットにはSourceAddressとPortが設定されています。
これはサーバーのAcceptAddressとPortです。
さらにacceptで取得したソケットにも同じアドレスがbindされています。
通常、複数のソケットに同じアドレスをbindする事はできないと思うのですが
なんでacceptはできるの?
プログラムで同じように複数のソケットに同じアドレスを
bindすることは可能なのですか?
正直使いたくてうらやましいです(´・ω・`)
0419デフォルトの名無しさん
2009/02/17(火) 23:01:400420デフォルトの名無しさん
2009/02/17(火) 23:02:21> 複数のソケットに同じアドレスをbind
されてはいないだろ。
> acceptで取得したソケット
はacceptしてるソケットとは別なんだから。
# TCPの接続は<srcIP, srcPort, dstIP, dstPort>の四つ組みで識別される。
0421デフォルトの名無しさん
2009/02/17(火) 23:12:26すいません、何が同時じゃないんですか?(´・ω・`)
>>420
acceptで取得したソケットをbindしようとするとEINVALが返ってくるんだけど、
これはbindされてるって事じゃないんですか?(´・ω・`)
0422デフォルトの名無しさん
2009/02/17(火) 23:15:06腹が立つ
0423デフォルトの名無しさん
2009/02/17(火) 23:17:58んん?
0424デフォルトの名無しさん
2009/02/17(火) 23:29:31すいません、マジメに質問してるので顔文字はやめます。
>>423
試しにやってみただけなんですけどEINVALが返ってきました。
bindされていると思った理由は
取得したソケットからgetsocknameでアドレスが取れるので
bindされてるのかなと思いました。
0425デフォルトの名無しさん
2009/02/17(火) 23:33:360426デフォルトの名無しさん
2009/02/17(火) 23:47:22顔文字の有無で内容が変わって見えるような馬鹿なんかに初めから回答を期待しない方がいい。
0427デフォルトの名無しさん
2009/02/17(火) 23:54:31TCP の 3way handshake を調べて、各 phase で何が渡されるか考えるのが吉
0428デフォルトの名無しさん
2009/02/17(火) 23:55:520429デフォルトの名無しさん
2009/02/17(火) 23:56:25「おまいら」などと言ってる時点で無視だよ
0430デフォルトの名無しさん
2009/02/18(水) 00:05:28そのbindされたアドレスが他のソケットとかぶってるってことなんだけど
これはシステム上、srcAddressとPortがかぶるソケットがあっても
問題ないと自分は解釈したんだけど
accept以外にプログラムで同じことできないかなと思いました。
>>426
2chで顔文字怒られたのは初めてでした。
不快に思う人も居るって事で。
>>427
どうもです。
3way hand shake調べなおしてみます。
>>428
srcPortはリスナーのポートだと思います。
>>429
ごめんなさい。
0431デフォルトの名無しさん
2009/02/18(水) 00:31:36(´・ω・`)ちっちぇえな
0432デフォルトの名無しさん
2009/02/18(水) 01:00:53APIで出来るのは、
接続してないソケットにsockaddrをbindすることだけです。
accept以外には、UDP等で使います。
0433デフォルトの名無しさん
2009/02/18(水) 01:20:57煽るなよぅ
>>432
システム上できるけどAPIが提供されていないので出来ない
という解釈でいいんでしょうか。
あると便利なんだけどなあ・・・
0434デフォルトの名無しさん
2009/02/18(水) 01:28:410435デフォルトの名無しさん
2009/02/18(水) 02:01:14便利じゃないのか・・・
勉強してきます・・・
0436デフォルトの名無しさん
2009/02/18(水) 07:05:48(クライアント:connect成功、サーバ:accept成功)
<sIP,dIP,sPort,dPort>の4つ組は決定するわけで、
そのあとで、「やっぱりポート変えたいんだけど」とか
TCP的にもありえないよね。
0437デフォルトの名無しさん
2009/02/18(水) 09:07:23Acceptしているソケットは、接続のターゲットになっているわけだから、
同じsockaddrを持つソケットが複数存在しては、
接続要求をどこでこなせばいいか、kernelに分からない。
UDPソケットへの配送についても同様。
複数のソケットに同じsockaddrをbindする必要がない。
だから出来ない。してはいけないことだから出来ない。
0438デフォルトの名無しさん
2009/02/18(水) 22:12:34確かにコネクションが完了した後に変更はありえないですね。
でも、それはbindのEINVAL(もうアドレスが設定してある)みたいにすれば
問題ない気もするんですけど、どうでしょう。
>>437
んー、確かに危険だとは思うのですが。
例えばソケットを2つ作って違う場所にconnectするとして
現状同じsrcAddrとPortをbindすることはできませんよね。
これができると使用するPortが少なくてすむかなと思いました。
少ないと何かいい事あるかどうかはアレですが・・・
0439デフォルトの名無しさん
2009/02/18(水) 22:15:00FTP
0440デフォルトの名無しさん
2009/02/18(水) 22:20:16「危険」なんて関係ない。
意味のないことだからできない。
無意味なAPIを提供する意味はない。
0441デフォルトの名無しさん
2009/02/18(水) 22:21:20FTPはデータとコントロールが別接続。
データ接続は複数もって並列にやり取りできる仕様。
0442デフォルトの名無しさん
2009/02/18(水) 22:33:39少しOSの身になって考えてみよう
> 例えばソケットを2つ作って違う場所にconnectするとして
> 現状同じsrcAddrとPortをbindすることはできませんよね。
外部から入ってきたデータを、 同じsrcAddrとPortを持ってるコネクションのうち、
どっちのコネクションに配送すればいいかを、どうやって決めたらいいんだ?
0443デフォルトの名無しさん
2009/02/18(水) 22:40:17新たにポート番号を付加して、配送先を一意に決められるようにしたのに、
30年近くたって>>418が突然、複数のソケットに付けられないのは不便じゃない?とw
郵便番号も複数の離れた土地に割り当てられたら便利かもね(棒読み)
0444デフォルトの名無しさん
2009/02/18(水) 22:59:12<form action="sso-redirect" method="post" name="loginForm"> と書いてあるとき
、postメソッドで投げる先は https://sec-sso.click-sec.com/loginweb/sso-redirect
で間違いないのでしょうか。 よろしくおねがいします。
0445デフォルトの名無しさん
2009/02/18(水) 23:00:30https://sec-sso.click-sec.com/loginweb/で表示されたhtmlに
<form action="sso-redirect" method="post" name="loginForm"> と書いてあるとき
、postメソッドで投げる先は https://sec-sso.click-sec.com/loginweb/sso-redirect
で間違いないのでしょうか。 よろしくおねがいします。
0446デフォルトの名無しさん
2009/02/18(水) 23:07:48やっぱりこれが一番の問題なんだろうな。
意味がないと理解できていないんですorz
>>.442
TCPだとacceptで取得したソケットはこれをやっていて
理由は>>420さんが書いてるように4組で識別しているからだと理解しています。
>>443
確かに、みんなこれでやってるのに疑問に思うのが問題ですよね・・・
何かの理解が足りていないと思われるorz
なんか長くなってしまったので、ここまでにしたいと思います。
色々勉強になりますた。
答えてくれた方々ありがとー♪
0447デフォルトの名無しさん
2009/02/18(水) 23:11:17正しい場合が多いが、そうでない場合もある。<base>
0448デフォルトの名無しさん
2009/02/18(水) 23:13:550449デフォルトの名無しさん
2009/02/18(水) 23:15:580450デフォルトの名無しさん
2009/02/18(水) 23:16:360451デフォルトの名無しさん
2009/02/18(水) 23:17:23うまいこと考えたもんだな。特に非対称の接続の時。
0452デフォルトの名無しさん
2009/02/18(水) 23:17:27よろしいです。
0453デフォルトの名無しさん
2009/02/18(水) 23:21:0110Mバイトと容量が大きいので、インターネット上をそのまま一つの10Mバイトのデータ送信する事ができない。
TCP/IPではこのデータをどのように分割して処理し、分割したデータのそれぞれが間違いなく送信の相手に届くように保証しているかIPとTCPの送信側、受信側それぞれの役割別に具体的に説明しなさい。
とあるのですが、まったくわかりません;
0454デフォルトの名無しさん
2009/02/18(水) 23:21:40> 確かに、みんなこれでやってるのに疑問に思うのが問題ですよね・・・
つか、疑問に思った君は偉いと思うよ、マジで…
0455デフォルトの名無しさん
2009/02/18(水) 23:22:30わからないのは、君のせいではなく、その文章を書いた人間がバカだからです。
「日本語でおk」と言ってやりなさい。
0456デフォルトの名無しさん
2009/02/18(水) 23:23:10ΣΣΣ
単位がもらえなくな・・・ry
0457デフォルトの名無しさん
2009/02/18(水) 23:23:580458デフォルトの名無しさん
2009/02/18(水) 23:24:240459デフォルトの名無しさん
2009/02/18(水) 23:25:540460デフォルトの名無しさん
2009/02/18(水) 23:27:32拝見させていただきます。
0461デフォルトの名無しさん
2009/02/18(水) 23:28:580462デフォルトの名無しさん
2009/02/18(水) 23:32:56バカな問題を好意的に解釈すると、
「分割」はIP、「間違いなく送信の相手に届くように保証」はTCPが行っている。
説明は下記を参照。
@IT:連載 基礎から学ぶWindowsネットワーク 第10回 IPパケットの構造とIPフラグメンテーション 2.IPフラグメンテーション
http://www.atmarkit.co.jp/fwin2k/network/baswinlan010/baswinlan010_03.html
@IT:連載 基礎から学ぶWindowsネットワーク 第14回 信頼性のある通信を実現するTCPプロトコル(その1)
http://www.atmarkit.co.jp/fwin2k/network/baswinlan014/baswinlan014_01.html
0463デフォルトの名無しさん
2009/02/18(水) 23:33:57神様ありがとう。
0464デフォルトの名無しさん
2009/02/18(水) 23:38:110465デフォルトの名無しさん
2009/02/18(水) 23:47:140466デフォルトの名無しさん
2009/02/18(水) 23:48:11馬鹿な出題者が、解答者たちが、
TCPを真面目に勉強していることに大いに甘んじ、
出鱈目な言葉使いで、質問を出してる。
ところが、>>448はTCPの事はまるで勉強してないので
チンプンカンプンである。
これは馬鹿同士の衝突現象といえよう。
古典的なシェアードバスのEthernetコリジョンと同じである。
0467デフォルトの名無しさん
2009/02/18(水) 23:49:27> 「分割」はIP
ちょww
0468デフォルトの名無しさん
2009/02/19(木) 00:19:190469デフォルトの名無しさん
2009/02/19(木) 00:33:150470デフォルトの名無しさん
2009/02/19(木) 10:58:320471デフォルトの名無しさん
2009/02/19(木) 15:03:190472デフォルトの名無しさん
2009/02/19(木) 15:12:23この手の書き込みをする奴の精神構造が理解できない
0473デフォルトの名無しさん
2009/02/19(木) 15:52:500474デフォルトの名無しさん
2009/02/19(木) 16:02:330475デフォルトの名無しさん
2009/02/19(木) 16:26:27優先順位が高い、という解釈であってますか?
0476デフォルトの名無しさん
2009/02/19(木) 17:45:43[in] Specifies whether the returned interface table
should be sorted in ascending order by interface index.
~~~~~~~~~~~~~~~~~
昇順ですな。
0477デフォルトの名無しさん
2009/02/19(木) 17:51:25今までユーザーに選択させてたよ
0478デフォルトの名無しさん
2009/02/19(木) 19:18:45TCPって、connection成立時にMSSが判るから、
IPのDFビットを立てたりするんだよね。
0479デフォルトの名無しさん
2009/02/19(木) 22:18:59ログインしたあと何回かやりとりするような仕様だと毎回recvfromでもらったアドレスからユーザー判別するのが
すごい無駄な気がするんだけどいい方法ないかな?
0480デフォルトの名無しさん
2009/02/19(木) 22:47:45友達に聞いたんだけど
高校受験の時の面接で試験官が
突然ゴレンジャーの話をし始めたらしい
人生が懸かった試験だけに
どう対応して良いか分からなかったそうだけど
まともに相手をした受験生が落とされたらしい
0481デフォルトの名無しさん
2009/02/19(木) 23:11:410482デフォルトの名無しさん
2009/02/20(金) 00:09:29そういう時はconnectするんだよ。
0483デフォルトの名無しさん
2009/02/20(金) 00:57:49試したけどうまくいかなかったんだよなー
ちゃんとやればできるのか
もう一回チャレンジしてみる
0484デフォルトの名無しさん
2009/02/20(金) 04:46:12流しのクライアントが偶然たどりついたのか、どうすれば判別できますか?
0485デフォルトの名無しさん
2009/02/20(金) 06:13:150486デフォルトの名無しさん
2009/02/20(金) 08:42:16っcrypto
0487デフォルトの名無しさん
2009/02/21(土) 03:23:570488デフォルトの名無しさん
2009/02/21(土) 16:30:190489デフォルトの名無しさん
2009/02/21(土) 17:30:21がっこうなんて人生が懸かるような所じゃないよ
0490デフォルトの名無しさん
2009/02/21(土) 17:55:13だれが上手いこと書けと
0491デフォルトの名無しさん
2009/02/22(日) 12:37:130492デフォルトの名無しさん
2009/02/22(日) 13:07:48>489がもう叩いてる
0493デフォルトの名無しさん
2009/02/22(日) 23:17:590494デフォルトの名無しさん
2009/03/03(火) 00:09:49できるとしたら、どうすればいいの?
0495デフォルトの名無しさん
2009/03/03(火) 08:18:50> ソケットインターフェースで(例えばrecvを使って)、たくさん流れてくるTCPのヘッダだけ読んで
Rawソケットでできる。
> ペイロードを読み捨てる(recvしない)ってことできる?
自分(ユーザー空間)で捨てるのが嫌だということなら、
カーネル内でプロトコルスタック書く必要がある。
0496494
2009/03/03(火) 10:30:27つまり出来ないのね。ありがとう。
0497デフォルトの名無しさん
2009/03/03(火) 16:27:51どうしても socket じゃないとまずいのか?
BPF とか pcap ライブラリ使ってフィルタするんじゃだめなのか?
0498デフォルトの名無しさん
2009/03/03(火) 21:23:29まずくはないが、今はsocketインターフェースでの可能性を知りたい。
0499デフォルトの名無しさん
2009/03/03(火) 21:47:520500デフォルトの名無しさん
2009/03/03(火) 22:58:000501デフォルトの名無しさん
2009/03/04(水) 22:32:320502デフォルトの名無しさん
2009/03/04(水) 23:11:20読まないとヘッダかペイロードか判断できないし。
0503デフォルトの名無しさん
2009/03/04(水) 23:18:08捨てるだけでなく返事をせんと次のが来ないぞ。
0504デフォルトの名無しさん
2009/03/04(水) 23:24:220506デフォルトの名無しさん
2009/03/05(木) 08:37:450507デフォルトの名無しさん
2009/03/06(金) 00:44:540508デフォルトの名無しさん
2009/03/08(日) 21:59:11wininet.libをリンク(プロジェクトに参加させている)
LNK2001: 外部シンボル "__imp__InternetOpenA@20" は未解決です。
lpinet->hInternet = InternetOpen("myftp01",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
0 );
とすると
LNK2001: 外部シンボル "__imp__InternetOpenA@20" は未解決です。
がでてしまいます。原因がわかりません。どなたかご教授願います。
wininet.libをプロジェクトに参加させているだけでは「リンク」されないのでしょうか?
0509デフォルトの名無しさん
2009/03/08(日) 22:01:44処理系のリンカの使い方を読め
0510デフォルトの名無しさん
2009/03/09(月) 01:37:41プロミスキャスモードとは、自分に流れてくる、本来廃棄される別のアドレス宛のデータも拾うということですよね?
そのひろったデータは再度自分が送信しないと本来受け取るはずだったあて先には届かないのでしょうか?
0511デフォルトの名無しさん
2009/03/09(月) 01:40:220512デフォルトの名無しさん
2009/03/09(月) 01:40:440513デフォルトの名無しさん
2009/03/09(月) 02:26:50A-B間の通話を盗聴してもAもBも気づかないのと同じ
0514デフォルトの名無しさん
2009/03/09(月) 13:20:27ごたまぜモード?
入り交じりモード?
無差別モード?
乱交モード?
ふしだらモード?
どの意味なんでしょうか?
0515デフォルトの名無しさん
2009/03/09(月) 13:27:01たまたま自分とこに来たやつ全部拾って見てる。
ルーターやスイッチングハブの先は必要ない場合こないけど。
0516デフォルトの名無しさん
2009/03/09(月) 15:17:130517デフォルトの名無しさん
2009/03/09(月) 15:46:040518デフォルトの名無しさん
2009/03/09(月) 21:51:20だからプロミスキャス*モード*でぐぐれっての
ttp://www.google.co.jp/search?q=%E3%83%97%E3%83%AD%E3%83%9F%E3%82%B9%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%A2%E3%83%BC%E3%83%89&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_ja___JP225
0519デフォルトの名無しさん
2009/03/09(月) 23:15:28分かりました。 けど「プロミスキャス」ってどういう意味なのか理解したいと
思って。 日本語無いんですか?
0520デフォルトの名無しさん
2009/03/09(月) 23:54:35誰とでも寝る(性的な意味で)
0521デフォルトの名無しさん
2009/03/10(火) 00:00:36どんなおちんちんでも受け入れるモードなんですね。
0522デフォルトの名無しさん
2009/03/10(火) 00:13:23ある単語が他言語の単語と一対一対応する事はほとんど「ない」
0523デフォルトの名無しさん
2009/03/10(火) 00:51:52無差別モード
0524デフォルトの名無しさん
2009/03/12(木) 12:23:19Exe側で呼び出していれば、Dll側は呼ばなくてもいいと思っていたんですが。
0525デフォルトの名無しさん
2009/03/12(木) 17:44:030526デフォルトの名無しさん
2009/03/18(水) 19:29:06windows環境では、というか。VCではできないのでしょうか
同じTCP/IPプロトコルなのに・・・・
0527デフォルトの名無しさん
2009/03/18(水) 20:21:06rawソケットが使えますよ。
0528デフォルトの名無しさん
2009/03/18(水) 20:48:03もちろんlinuxでip変更するのに、rawソケットを変更するんですが
windowsの場合、rawソケットは、変更できないのでは?
0529デフォルトの名無しさん
2009/03/18(水) 20:51:35ipを変更した、TCP データをrawソケット経由では送信できないっていう、意味合いです。
0530デフォルトの名無しさん
2009/03/18(水) 21:01:54struct ip_header = malloc(...);
ip_header.ip_adress = <an_address>;
ip_header.....
....
send(... <a ip_header includes an_addressr> ...)
...
ip_header.ip_addres = <another_address>;
...
send(... <a ip_header includes another_address> ...)
みたいなことをしたい場合, おそらく OS の実装による
0531デフォルトの名無しさん
2009/03/18(水) 21:14:01大体そういったところです、任意のTCPデータのicpmをwindowsで生成する方法です
誤解してほしくないのは、syn floodやディニアルを行うのが目的ではなく
サーバーがそれらのアタックを受けているので、シュミレーションが目的です
すでに、syn floodやdosはlinuxで実装しているのですが、windowsのほうがてっとり早いので聞いて見ました
ちなみにWindows XP SP2です
0532デフォルトの名無しさん
2009/03/18(水) 21:16:51訂正前
サーバーがそれらのアタックを受けているので、シュミレーションが目的です
訂正後
管理するサーバーがそれらのアタックを受けているので、自サーバーに向けてのシュミレーションが目的です
0533デフォルトの名無しさん
2009/03/18(水) 21:20:35すまん、くだらんつっこみだった
0534デフォルトの名無しさん
2009/03/18(水) 21:32:34http://support.microsoft.com/kb/897656/ja なんだが。
> windowsのほうがてっとり早いので
このくらいの理由ならLinuxで書け。
クラックツール用のネットワークドライバがあるが正直お勧めしない。
0535デフォルトの名無しさん
2009/03/18(水) 21:35:34なぜお薦めしないの?
0536デフォルトの名無しさん
2009/03/18(水) 21:41:130537デフォルトの名無しさん
2009/03/18(水) 21:43:51> windowsのほうがてっとり早いので
の理由です
linuxの環境が、runlevel3のcuiなので、vimでゴリゴリ書いて、デバッグするのに疲れるんだよね
せめてIDEがEclipseが使えれば、楽なのですが、Visual studioが慣れているし
デバッグもしやすいしからなんだけどね。
0538デフォルトの名無しさん
2009/03/18(水) 21:46:240539デフォルトの名無しさん
2009/03/18(水) 21:50:57startxすればいいんじゃね?
0540デフォルトの名無しさん
2009/03/18(水) 21:55:26>>539
そもそも、xがインストールされていなし、そのlinuxのPCもssh経由で、リモートログインしているから無理です
>クラックツール用のネットワークドライバがあるが正直お勧めしない。
その理由を教えてほしいのですが
0541デフォルトの名無しさん
2009/03/18(水) 22:17:100542デフォルトの名無しさん
2009/03/18(水) 22:29:29> 任意のTCPデータのicpmをwindowsで生成する方法です
icpm kwsk
0543デフォルトの名無しさん
2009/03/18(水) 22:32:56「cygwin」あたりを突っ込んでだな
$ start x
$ ssh -Yf <server> emacs
って、やれば幸せになれないか?
0544デフォルトの名無しさん
2009/03/19(木) 00:50:31大したコード量じゃないんだから、vimでやれという気もするけど。
0545デフォルトの名無しさん
2009/03/19(木) 00:59:53Linuxでのやり方なんて知ってるし、リモートアクセスなんてド素人でも知ってるんだからわざわざ言うな。読んでる方が恥ずかしくなる。
お前らの知識の限界が、そこらへんなのは分かるが、レベルの低い見当違いの回答はウザいだけなんだよ。
0546デフォルトの名無しさん
2009/03/19(木) 01:02:080547デフォルトの名無しさん
2009/03/19(木) 01:03:530548デフォルトの名無しさん
2009/03/19(木) 01:05:030549デフォルトの名無しさん
2009/03/19(木) 01:10:280550デフォルトの名無しさん
2009/03/19(木) 01:11:530551デフォルトの名無しさん
2009/03/19(木) 01:13:300552デフォルトの名無しさん
2009/03/19(木) 01:17:110553デフォルトの名無しさん
2009/03/19(木) 01:18:530554デフォルトの名無しさん
2009/03/19(木) 01:21:350555デフォルトの名無しさん
2009/03/19(木) 01:24:200556デフォルトの名無しさん
2009/03/19(木) 01:44:10今俺似たようなの仕事で来てて「書いた方が早い」ってのにOSS使えってんでブチキレ状態。
0557デフォルトの名無しさん
2009/03/19(木) 01:51:430558デフォルトの名無しさん
2009/03/19(木) 02:05:010559デフォルトの名無しさん
2009/03/19(木) 02:16:090560デフォルトの名無しさん
2009/03/19(木) 02:22:190561デフォルトの名無しさん
2009/03/19(木) 02:25:440562デフォルトの名無しさん
2009/03/19(木) 02:31:040563デフォルトの名無しさん
2009/03/19(木) 02:58:420564デフォルトの名無しさん
2009/03/19(木) 10:41:030565デフォルトの名無しさん
2009/03/19(木) 13:40:460566デフォルトの名無しさん
2009/03/19(木) 20:48:45実験用のPCにLinuxか何か入れてやったほうが絶対速いし簡単。
0567デフォルトの名無しさん
2009/03/19(木) 21:25:180568デフォルトの名無しさん
2009/03/19(木) 22:02:450569デフォルトの名無しさん
2009/03/19(木) 22:54:30意味不明
0570デフォルトの名無しさん
2009/03/19(木) 23:40:07お前が馬鹿なだけ
0571デフォルトの名無しさん
2009/03/20(金) 00:00:29http://www.wakasato.org/learn/nepc/course2/chapter04/section05.html
> TCPセグメントはTCPヘッダとTCPデータから構成されている。
TCPデータはどんな馬鹿でも任意の物がつくれるよなあ。
icpmってなんだ? ICMPの事か? それをTCPデータに突っ込むのか?
意味不明だなあ。
0572デフォルトの名無しさん
2009/03/20(金) 00:12:09データ部にTCPパケットが入ってるICMPパケット
ってことじゃね?
0573デフォルトの名無しさん
2009/03/20(金) 00:41:510574デフォルトの名無しさん
2009/03/20(金) 05:06:21を回避したいっつー話なのか?
0575デフォルトの名無しさん
2009/03/20(金) 09:04:45例えば↓このような情報から。
>>531
> シュミレーションが
0576デフォルトの名無しさん
2009/03/20(金) 10:17:230577デフォルトの名無しさん
2009/03/25(水) 12:35:440578デフォルトの名無しさん
2009/03/27(金) 10:34:430579デフォルトの名無しさん
2009/03/27(金) 13:05:550580デフォルトの名無しさん
2009/03/27(金) 19:41:350581デフォルトの名無しさん
2009/03/27(金) 23:14:410582デフォルトの名無しさん
2009/03/28(土) 11:49:350583デフォルトの名無しさん
2009/04/04(土) 13:43:440584デフォルトの名無しさん
2009/04/06(月) 11:23:320585デフォルトの名無しさん
2009/04/10(金) 11:44:22去年くらいから、いろんなMMO型ネットゲーム系のブログで、Windowsの
TcpAckFrequency を1にすることで、ゲーム鯖とのレスポンスが向上して
ゲーム上有利になるテクニックが広まっているのですが、これってゲーム
鯖の負荷が高まるだけでなく、ネットワーク全体に有害ってことはないでし
ょうか?
後、Windowsソケットってのは、確認待ちのAckがある場合、送信できない
って事はないですよね?
0586デフォルトの名無しさん
2009/04/10(金) 12:33:06<<
3.20 - 遅延 ACK アルゴリズムとは何ですか?
TCPを単純に実装すると、受信したパケットに対して ACK パケットはすぐに返されます。
(ACK は TCP が保証している信頼性を提供するためのものです。)
現在のスタックでは、ACK は少しの時間(概して最大 200ms 程度)遅らせるようになっています。
これには三つの理由があります。
a) 「お馬鹿なウィンドウ症候群」(silly window syndrome)を避ける。;
b) ACK を返そうとしたときに返送するデータフレームの用意ができていれば、
ACK をその返送フレームに相乗りさせることができる。;
c) 遅らせた期間内にいくつかフレームが届いたら、その分の ACK を一回で返すことができる。
プロトコルスタックは、最大2フレーム分のデータまで遅らせることが許されています。
<<
1にすると即座にかえすので、a), b), c)の問題が発生するって認識ですよね・・具体的にどういう問題が発生するのかな・・
0587デフォルトの名無しさん
2009/04/10(金) 22:46:40> 1にすると即座にかえすので、a), b), c)の問題が発生するって認識ですよね・・具体的にどういう問題が発生するのかな・・
通過するネットワークの性質によって異なるけど、おおむね帯域を圧迫する
方向に動くと思うよ
ex)
ethernet の場合
インターフレームギャップなるものがあって、この時間を確保するため
に帯域が圧迫される
ATM などの固定長セルを使っている場合
埋められていないセルが飛び交う頻度が増大するので帯域が圧迫される
0588デフォルトの名無しさん
2009/04/11(土) 09:29:48帯域を圧迫するから自粛するように呼びかけてみます。
まあ、なっとくできる説明ができるか自信がないですが。。。
0589デフォルトの名無しさん
2009/04/11(土) 13:05:560590デフォルトの名無しさん
2009/04/11(土) 13:14:38下手したら呼びかけた人間が逆恨みされるぞ。
本当に拙いのならゲーム制作サイドに働きかけるべきではないかと。
0591デフォルトの名無しさん
2009/04/11(土) 20:54:10応答の速いクライアントばかりサービスされて、低速度クライアントが
その速度差以上にサービスされなくなってしまう。
クライアント環境の混在を考慮していれば、応答が多少はやかろうが
おそかろうが平等に扱うよう作るべき
でも、たいてい、そうなってないんだろうなあ
0592デフォルトの名無しさん
2009/04/11(土) 21:02:250593デフォルトの名無しさん
2009/04/12(日) 19:02:20素人の感想乙
0594デフォルトの名無しさん
2009/04/12(日) 21:19:14これに相当するオプションはLinux/Unixで考慮されたことはないのかな?
LAN上でデバイスの制御している時にこの遅れが問題になることがある。
http://oss.sgi.com/archives/netdev/2001-08/msg00127.html
こんなパッチが提案されていたのを見つけたがスルーされてるw
0595デフォルトの名無しさん
2009/04/12(日) 22:42:580596デフォルトの名無しさん
2009/04/13(月) 00:55:21TCP_QUICKACKは微妙だな。 良く使い方が解らん。
一回しか使えないオプションとなっている。 セットしても一回使われたらリセット
されてしまう。 けど、接続された初期状態のソケットでは常に最初はセットされるとか。
0597585
2009/04/14(火) 14:10:05いう報告がありました。
たいがいのネットゲームの仕様的に各プレイヤーが大体200ms単位で通信していたのが
ACKが早く返る為、特定のプレイヤーのみ応答が速くなっていたのではないかと推測されます。
でも、インターネット上でそんな即時性がもとめられるゲームはどうなんでしょうね?
RFC1122日本語訳
http://www2s.biglobe.ne.jp/~hig/tcpip/HostReq_Comm.html
--------------------------------------------------------
4.2.3.2 いつ ACK セグメントを送信するか
TCP データセグメントのストリームを受信しているホストは、
受信するデータセグメントにつき、1 つ以下の ACL (肯定応答) セグメントを送信することによって、
インターネットとホストの両方の効率を増すことができる。これは "遅延 ACK" [TCP:5] として知られている。
TCP は遅延 ACK を実装すべきである (SHOULD) が、ACK を過度に遅らせるべきではない。
遅延は 0.5 秒以下でなければならず (MUST)、フルサイズのセグメントの場合は、
少なくとも毎秒セグメントに対して ACK が存在すべきである (SHOULD)。
----------------------------------------------------------
RFCによるとACKを遅らすのはSHOULDになっているので即時でも問題ではないのかもしれません。
でも、明らかに有害だと思う。
ゲーム制作サイドには一応メールしましたが・・回答ありません。
0598デフォルトの名無しさん
2009/04/14(火) 23:54:39SHOULD に逆らうのなら相当慎重になる必要がある。
http://www.asahi-net.or.jp/~sd5a-ucd/rfc-j/rfc-2119j.html
0599デフォルトの名無しさん
2009/04/18(土) 03:14:07// select/epoll等で、読み込み可能になった場合、
// スレッドAで実行される
void Read()
{
// データを受信し、プロトコルパースしたのがmsg
// 実際はバッファリングしてたり、パースに失敗したら云々やってる。
Message msg = Message.Parse( Sock.Read() );
ThreadPool.Push( pair<msg, this> ); // パースしたmsgをスレッドプールで処理する。
}
// こっちがスレッドプール側で動くルーチン
void Task()
{
pair<Message, Handler*> item = Pop();
Message msg = item.first;
Handler *handler = item.second;
//メッセージを色々やってレスポンスを生成
Response res = ...;
handler.Send( res );
}
こんな実装なんだけど、Read()とTask()は完全に非同期で呼ばれる。
だから、Task()側で、レスポンス生成して、いざSendするじぇ。ってなったときに、
もうソケットは有効じゃないかもしれないし、Handlerのインスタンスがdeleteされてるかもしれない。
ってクソ設計になっちゃったんだけど、一般的にはどういう風にすればいいのかな
プロトコルのパースを別スレッドでやって、そのレスポンスをどうすればスマートに送り返せるか
偉い人の意見をおしえてください
0600デフォルトの名無しさん
2009/04/18(土) 05:27:060601デフォルトの名無しさん
2009/04/18(土) 07:06:09> もうソケットは有効じゃないかもしれないし、
> Handlerのインスタンスがdeleteされてるかもしれない。
普通、ソケットや Handler なんていちいち生成・削除しないと思うが...。
そういうことが必要なら、パース側で生成して、レスポンスを返す側で削除
すればいいだけだと思う。
条件によって生成・削除が入り乱れるようなケースなら、生成・削除を制御
するマネージャ作ってマネージャを介して生成・削除するようにするのがい
いと思う。
>>600
どうみても C++ だろうし、そもそも言語関係ないだろ。
0602デフォルトの名無しさん
2009/04/18(土) 11:17:130603デフォルトの名無しさん
2009/04/18(土) 11:26:570604デフォルトの名無しさん
2009/04/18(土) 14:25:23送るという処理と送るためのメカニズムが分離可能になっていると
そういう点で悩むことがありそうだけど、そういう時は両方をセットで
管理する第三のクラスを作って、そいつが生成・解放の管理責任と
リクエスト処理の受付インタフェースを持つようにすればいい。
0605599
2009/04/19(日) 18:13:57やっぱりマネージャを作るのがいいですかね
そもそも設計がまずいんですかねー
今作ってるのはサーバーで、
言語はC++、linux上でうごくもん書いてます。
0606デフォルトの名無しさん
2009/05/05(火) 14:10:210607デフォルトの名無しさん
2009/05/05(火) 18:33:490608デフォルトの名無しさん
2009/05/06(水) 19:07:170609デフォルトの名無しさん
2009/05/10(日) 03:06:110610デフォルトの名無しさん
2009/05/10(日) 11:10:470611デフォルトの名無しさん
2009/05/10(日) 16:01:15同じマシン内(host=localhsot)ではで正しく通信を確認できましたが、
他のPCからはつながりません。
(ルータなどはいってない単純な閉じたネットワークです)
こういう場合はなにから確認すればよいでしょうか。
# pingとおって、sshでログインして作業しているのでネットワーク自体はOKです。
# netstat -an は、tcp 0 0 0.0.0.0:9876 0.0.0.0:* LISTEN と、指定したポートでListen
# しているみたいです。
# tcpwrapperどうなってるかわからないけど/etc/hosts.allow はALL:ALLと記述してみました。
0612デフォルトの名無しさん
2009/05/10(日) 16:08:18snoopしてみれば
0613デフォルトの名無しさん
2009/05/10(日) 17:28:550614デフォルトの名無しさん
2009/05/10(日) 18:11:44繋がらないといってるからこけるところないだろ・・・。
0615デフォルトの名無しさん
2009/05/10(日) 18:21:52pingは通ってるからネットワークの問題ではないんだし。
どこかでこけるからつながらないんじゃないの?
0616デフォルトの名無しさん
2009/05/10(日) 18:27:420617デフォルトの名無しさん
2009/05/10(日) 18:28:25その手だろ。
0618デフォルトの名無しさん
2009/05/10(日) 18:43:550619デフォルトの名無しさん
2009/05/10(日) 19:12:500620デフォルトの名無しさん
2009/05/11(月) 10:15:44/ \
/ ─ ─\
/ (●) (●) \
| (__人__) | それは盲点だったお
/ ∩ノ ⊃ /
( \ / _ノ | |
|.\ “ /__| |
| . \ /___ /
0621デフォルトの名無しさん
2009/05/11(月) 12:53:54別のスレッドでselectを呼び出すと失敗するんですが、何か使い方が間違ってるんでしょうか。
それとも別の原因なんですかね。
0622デフォルトの名無しさん
2009/05/11(月) 17:59:580623デフォルトの名無しさん
2009/05/12(火) 14:02:59引数エラーとかそういうの以外で
0624デフォルトの名無しさん
2009/05/12(火) 14:13:22いずれにせよerrno調べればなんかわかるんじゃね?
0625デフォルトの名無しさん
2009/05/12(火) 14:15:20いろいろあるような。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/accept.2.html#lbAG
0626デフォルトの名無しさん
2009/05/12(火) 22:41:490627デフォルトの名無しさん
2009/05/13(水) 12:36:250628デフォルトの名無しさん
2009/05/13(水) 13:35:25エラーでないはずがない。
0629デフォルトの名無しさん
2009/05/13(水) 13:37:300630デフォルトの名無しさん
2009/05/13(水) 13:44:510631デフォルトの名無しさん
2009/05/13(水) 16:56:170632デフォルトの名無しさん
2009/05/13(水) 17:03:200633デフォルトの名無しさん
2009/05/16(土) 06:55:03URLからソース取得するだけならCAsyncMonikerFileで問題ないですか?CAsyncSocketでもできるんでしょうか?Winsock2のほうが簡単ですか?
0634デフォルトの名無しさん
2009/05/16(土) 06:56:080635デフォルトの名無しさん
2009/05/18(月) 10:13:35sockaddr構造体って、アドレス種別によって大きさが変わるらしいけど
それってIPv4かIPv6のどちらかわからないときはどうするの?
0636デフォルトの名無しさん
2009/05/18(月) 10:27:27ソケット開く時点でv4/v6の指定するので、acceptの時点でどちらで待ってるのかは知ってるはずだけど。
もし知らないなら、サイズの大きいほうを指定しておけばよい。
0637デフォルトの名無しさん
2009/05/18(月) 10:45:11ありがとうございます。
ソケット開く時点でv4/v6の指定をしない(AF_UNSPEC)ので
どっちかわかんねーんだよどちらなのかわからないんです。
0638デフォルトの名無しさん
2009/05/18(月) 11:20:560639デフォルトの名無しさん
2009/05/18(月) 11:26:38echo reqeust出して、echo reply受信する。
0640デフォルトの名無しさん
2009/05/18(月) 11:45:520641デフォルトの名無しさん
2009/05/18(月) 12:30:29参照するならRFC
http://www.faqs.org/rfcs/rfc792.html
0642デフォルトの名無しさん
2009/05/18(月) 14:21:19君が貶めるLinuxコミュニティーがRFCを制定しているのだがね。
0643デフォルトの名無しさん
2009/05/18(月) 14:34:34そのうちIETFディストリとかできるのか。
すげーな。
0644デフォルトの名無しさん
2009/05/18(月) 14:46:56バカボンの主人公がバカボンのパパみたいなもんだろ。
0645デフォルトの名無しさん
2009/05/18(月) 14:47:23> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
> LinuxコミュニティーがRFCを制定している
0646デフォルトの名無しさん
2009/05/18(月) 14:52:16サンプル実装で Unix 系の OS が多いのは事実だが IETF と Unix は無関係
CISCO の IOS が Unix で動いてるわけじゃないし、その他のメーカのネット
ワーク機器にしたって Unix で動いているものの方が少ない.
0647デフォルトの名無しさん
2009/05/18(月) 14:52:56そんな事どうでもいいんだよ。
0648デフォルトの名無しさん
2009/05/18(月) 14:55:36その通り。
今ではほぼすべてがLinuxで出来ている。
0649デフォルトの名無しさん
2009/05/18(月) 15:24:390650デフォルトの名無しさん
2009/05/18(月) 15:31:090651デフォルトの名無しさん
2009/05/18(月) 15:36:39The Internet Engineering Task Force (IETF) is a large open source
community of network designers, operators, any Linux vendors,
and researchers concerned with the evolution of the Internet
architecture and the smooth operation of the Internet.
0652デフォルトの名無しさん
2009/05/18(月) 15:56:16http://www.ietf.org/overview.html
The Internet Engineering Task Force (IETF) is a large open international community of
network designers, operators, vendors, and researchers concerned with the evolution of
the Internet architecture and the smooth operation of the Internet. It is open to any
interested individual. The IETF Mission Statement is documented in RFC 3935.
0653デフォルトの名無しさん
2009/05/18(月) 16:27:320654デフォルトの名無しさん
2009/05/18(月) 16:28:34もったいぶった専門用語使っても
しゃべればしゃべるほど何にも知らない素人だと宣伝してるようなもんだ
もう黙れ
0655デフォルトの名無しさん
2009/05/18(月) 17:22:49> LinuxコミュニティーがRFCを制定している
ソース出せないだろ。引っ込んでろ。
0656デフォルトの名無しさん
2009/05/18(月) 19:07:140657デフォルトの名無しさん
2009/05/18(月) 19:14:000658デフォルトの名無しさん
2009/05/18(月) 21:48:450659デフォルトの名無しさん
2009/05/21(木) 04:25:27TCPにてキー入力情報のみをお互いやり取りし、受信完了まで待つことで
同期を取るタイプの少人数対戦ゲームを作っています。
受信待ちに時間がかかりFPSが思うように出ないため、Kailleraなどの
ゲーム/ツールによく見られるようなキーバッファを持たせようと思うのですが、
バッファをどのように利用しているのかがよくわかりません。
1.一定フレーム毎にキー情報をまとめて受信する。
(一回の受信量は増えるが、密度が減り安定する)
2.毎フレームキー情報を受信するが、処理し始めるは数フレーム後。
(逐一届いたものからキューに溜める。事前に貯金しておくイメージ?)
どちらの方法が妥当でしょうか。あるいは外に方法はありますか?
とりあえず1の方法で実装してみたのですが、LAN内だと問題ないものの
ネット越しに通信を行うと毎回1〜5分後に急にFPSが下がってしまい……
(自分のコーディングミスとは思いますが)
0660デフォルトの名無しさん
2009/05/21(木) 11:32:160661デフォルトの名無しさん
2009/05/21(木) 14:02:33アプリレベルでの調整なんて屋上屋でしかないな。
もしかしてキー情報の受信をブロッキングでやってるって話か?
関数から制御が戻るまでメインのループが停止する?
だとしたらフレームレート下がるの当たり前だ。
サブスレッドで送受信するなり非同期APIつかうなりに書き換えた方がいい。
>ネット越しに通信を行うと毎回1〜5分後に急にFPSが下がってしまい……
>(自分のコーディングミスとは思いますが)
この挙動見る限りそれ以前のバグって気がするが
0662デフォルトの名無しさん
2009/05/21(木) 14:14:48> 同期を取るタイプ
この設計が悪いという気がするが、
ネットワークプログラミング的に注意する点は、TCPだとソケットに書き込んだ
時点ですぐにパケットが出るとは限らないってことくらいだな。
0663デフォルトの名無しさん
2009/05/21(木) 14:30:41送信データが最小になるようなプロトコルの改善も必要。
0664デフォルトの名無しさん
2009/05/22(金) 01:31:44同期を取るならサーバ側が持ってる情報を各クライアントに投げれば良いんだし
双六とかカードゲームとか
延滞が発生しても問題ないタイプならTCPで良いだろうけど
0665デフォルトの名無しさん
2009/05/22(金) 10:57:200666デフォルトの名無しさん
2009/05/22(金) 11:54:16具体的にはニュースサイトの特定の単語を含む記事をまとめられるようにしたいわけです。
無作為に大量に保存をしておいてそこから検索をかける形にするか、
枠に入力した単語に関するものだけを集めていくのかはまだ決めていませんが。
0667デフォルトの名無しさん
2009/05/22(金) 11:56:34Windows?
0668デフォルトの名無しさん
2009/05/22(金) 11:58:48wgetで取得 -> 検索によるフィルタリング -> HTMLを整形
かな。
0669デフォルトの名無しさん
2009/05/22(金) 12:12:06site:microsoft.com keyword
でいいじゃん
ム板的にはHTTPで落としてhtml解析して
更にリンク先に飛ぶというのを再帰的に繰り返していく
安易に大量のデータさらいまくると怒られるかもしれないぞ
0670デフォルトの名無しさん
2009/05/22(金) 12:31:03>668 ありがとう。それでやってみます。
>669 そういう手もありますね。なるほど。負荷に気をつけてやります。
0671デフォルトの名無しさん
2009/05/22(金) 12:34:430672デフォルトの名無しさん
2009/05/23(土) 00:24:56特にウェブデザイナが作ってる様なサイトは(ry
制御用の即応性と、大量のデータの転送時の速度の両方が欲しい時は、
FTPみたいに、バッファリング無しのストリームと、バッファリングありのストリームの2本張って使い分けるのが順当かな?
繋ぎ直して1本でがんばって使い分けてるとか、1本を繋ぎっぱで兼用してるとかおまいらどうしてる?
0673デフォルトの名無しさん
2009/05/23(土) 09:39:580674デフォルトの名無しさん
2009/05/23(土) 11:13:06> FTPみたいに、バッファリング無しのストリームと、バッファリングありのストリームの2本張って使い分けるのが順当かな?
> 繋ぎ直して1本でがんばって使い分けてるとか、1本を繋ぎっぱで兼用してるとかおまいらどうしてる?
HTTPで何か違うもの通してるの?
0675デフォルトの名無しさん
2009/05/23(土) 11:27:14致命的に読解力が無いな。ちゃんと設定しているのに無視したら起こるだろ。
0676デフォルトの名無しさん
2009/05/24(日) 09:02:28相手の気持ちがわからないやつだな。モテないぞ。
0677デフォルトの名無しさん
2009/05/24(日) 09:36:28みたいな。
そういや「ブラウザを速くする」みたいな触れ込みで
IE のセッション数の上限設定を書き換えるだけの
迷惑なツールがあったな。
0678デフォルトの名無しさん
2009/05/24(日) 23:20:260679デフォルトの名無しさん
2009/05/27(水) 10:24:040680デフォルトの名無しさん
2009/05/27(水) 11:33:530681デフォルトの名無しさん
2009/05/28(木) 00:14:130682デフォルトの名無しさん
2009/05/29(金) 18:05:020683デフォルトの名無しさん
2009/05/29(金) 23:04:370684デフォルトの名無しさん
2009/06/01(月) 22:53:15どんなパケットも受信できるようになるわけじゃないよね?
特定のIPへのパケットは受け付けないのが条件か
0685デフォルトの名無しさん
2009/06/01(月) 23:49:000686デフォルトの名無しさん
2009/06/02(火) 00:48:28ブロードキャストで投げたら拾えるんだが、
他で拾えないのでいうと、ARPとかひろえないぞ。
つか、ブロードキャスト以外無理
0687デフォルトの名無しさん
2009/06/02(火) 01:25:36ARPはIPじゃないぞ。
0688デフォルトの名無しさん
2009/06/02(火) 02:39:18IPヘッダがないということ?
rawならIPヘッダなくても拾えるのでは
UDPで送って適当なアドレスでおくってやっても受信しなかったけどなんでだろ
0689デフォルトの名無しさん
2009/06/02(火) 03:20:38当たり前だ。
ヒント:
ARP
L2スイッチ
0690デフォルトの名無しさん
2009/06/02(火) 03:22:03ちなみにプラットフォームは何だ? rawはシステム依存性が高いから
システム指定しないと会話にならんぞ。 例えばLinuxのRAWはIPしか
拾えない。
0691デフォルトの名無しさん
2009/06/02(火) 19:10:42RAWを使うと何でも拾える
しかし、ARPは拾えない。何故ならIPヘッダがないから。
IPヘッダあるやつなら何でも拾えるということ?けれどrawは何でも拾える?
すみません、もう少しヒントを。
>>690
とある開発環境のライブラリを使用しています。
linuxと他のライブラリの開発環境だと、それぞれrecvするときに差がでるということですよね。
linuxのrawはIPヘッダを含むフォーマットじゃないと拾えないということですよね
IPを直接、例えば200.10.3.200のように指定して送っても拾えるということでしょうか?
0692デフォルトの名無しさん
2009/06/03(水) 03:45:09nicのドライバレベルのrawなら何でも拾える。
SW(L2)やL3のレベルで自分のポートに送ってくれないのは無理だけど。
0693デフォルトの名無しさん
2009/06/03(水) 03:55:300694デフォルトの名無しさん
2009/06/03(水) 08:08:260695デフォルトの名無しさん
2009/06/03(水) 11:06:28届いていないパケットは受信出来ない。当たり前だ。
0696デフォルトの名無しさん
2009/06/03(水) 19:38:13rawじゃIPしか駄目。IP以外はpcap使うべし。
0697デフォルトの名無しさん
2009/06/03(水) 22:25:40bind処理はINADDR_ANYで全IPから受信、ポートは指定せず何でもOK
サーバー側が受信待ちしてる状態。サーバーのIPは設定しておらず。
そこに、クライアント側が、255.255.255.255でポートは例えば5000で送るとサーバーは受信する
けれど、100.255.255.255、100.10.255.255、100.10.25.255 だと受信されない。
クライアントのIPが100.10.25.30 だとして。
けれど、サーバー側がrawでソケットつくると
255.255.255.255はもちろん、100.255.255.255、100.10.25.255でも受信される。
100.10.255.255 これはなぜか受信されない。
rawでつくたっときはbindはしてない。
0698デフォルトの名無しさん
2009/06/03(水) 23:39:340699デフォルトの名無しさん
2009/06/03(水) 23:40:340700デフォルトの名無しさん
2009/06/03(水) 23:45:02つttp://www.mm-labo.com/computer/tcpip/ipaddress/broadcast.html
0701デフォルトの名無しさん
2009/06/03(水) 23:49:03ここがもんだいじゃね?
0702デフォルトの名無しさん
2009/06/04(木) 06:11:53プログラム以前の問題。
0703デフォルトの名無しさん
2009/06/04(木) 08:05:47設定してないのにrawでは、100.10.25.255でも受信されたのですが
サーバーも100.10.25 に属すると勝手に認識されたのでしょうか?
0704デフォルトの名無しさん
2009/06/04(木) 12:57:09クライアントから出て行ってない可能性
0705デフォルトの名無しさん
2009/06/04(木) 13:13:54L2でブロードキャストされたからサーバとやらまで届いた。
簡単に言うと、L2の知識が皆無なキミにはRAWソケットはまだ早いという事だ。
0706デフォルトの名無しさん
2009/06/04(木) 13:55:53速度的には厳しいけど
つまりOSが介在しない環境でというか
0707デフォルトの名無しさん
2009/06/04(木) 14:03:19無線周りのデバドラとか書いてても、L3以上はあやふやな人もいるし。
0708デフォルトの名無しさん
2009/06/04(木) 18:23:44サーバを検出するという処理があります。
その仕組みをご存知の方はないでしょうか?
サーバのポートは固定ではないので、直接見つけることはできないと思いますが良く分か
りません。サーバリストを保持するサーバが別に存在して、ゲームサーバを起動したとき
にそこに情報が登録されるとかあるのでしょうか?
0709デフォルトの名無しさん
2009/06/04(木) 18:29:18普通はそんな感じになってるだろうね
0710デフォルトの名無しさん
2009/06/05(金) 00:04:30どうやればでていくのでしょうか?
0711デフォルトの名無しさん
2009/06/05(金) 00:09:12クライアント側がUDPでおくるときに、宛先IPをブロードキャストにしておくっているけれど
L2レベルでブロードキャストの設定なんてしていないとおもうのですが
いずれのソケットも4パターンが説明できないような
0712デフォルトの名無しさん
2009/06/05(金) 00:22:44どれをブロードキャストアドレスと認識するのかはOSによって異なる。
どういうパケットが届いているのか、L2ヘッダーまで表示してtcpdumpや
wiresharkで観察してみると良い。
0713デフォルトの名無しさん
2009/06/05(金) 00:33:29客からの問い合わせだったら「リモートログインさせてもらっていいですか?」って聞くところだ。
0714デフォルトの名無しさん
2009/06/05(金) 02:08:27いいからIPの勉強してこい。プログラミングは、まだ早い。
高額のスイッチだとミラーポートみたいなのがあって、全パケット流してくれるのでそういうので見てないと分からないかもな。
鯖と蔵のケーブル直結か、スイッチじゃないハブで繋がないとなあ。
オートマだからマニュアルの操作が理解出来ない様な物だし。
0715デフォルトの名無しさん
2009/06/05(金) 08:06:50bindしなければいいってことでしょうか?
0716デフォルトの名無しさん
2009/06/05(金) 09:24:18connectしなけりゃどのアドレスからでも受信する。もちろんUDPだから運が悪けりゃ受信できない。
0717デフォルトの名無しさん
2009/06/06(土) 02:24:050718デフォルトの名無しさん
2009/06/06(土) 12:43:14同一セグメント内を想定。
0719デフォルトの名無しさん
2009/06/06(土) 13:49:18運が良くて届く場合を例外処理にしているプログラムは見たことが無いが、
>>717はそれが普通なのだろう。 火星探査機とか?
0720デフォルトの名無しさん
2009/06/06(土) 22:42:130721デフォルトの名無しさん
2009/06/06(土) 23:40:420722デフォルトの名無しさん
2009/06/07(日) 23:57:15サーバと各クライアント間でTCPのコネクションを張ってずっと維持しながら処理を続けます。
サーバからクライアントを区別するのに、クライアントのIPアドレスとポート番号の組を使っていたのですが、
TCPコネクションが切れた後も再接続して処理を続けたいと思っています。
この場合、クライアント側にID番号などの(クライアントを識別できる)情報を持たせないと
できないでしょうか?
0723デフォルトの名無しさん
2009/06/08(月) 00:09:37そのとおりだが、再接続を許さない方向で考えた方がシンプルかつ強靭。
0724デフォルトの名無しさん
2009/06/08(月) 01:43:57それは仕様によると思うがなぁ。>>722がそういう要件があるということは
必要なわけで、常にシンプルがベストな選択肢というわけではない。
0725デフォルトの名無しさん
2009/06/08(月) 08:45:550726デフォルトの名無しさん
2009/06/08(月) 10:04:480727デフォルトの名無しさん
2009/06/08(月) 10:09:00なんかのMLと勘違いしてる白髪さんですか?
0728デフォルトの名無しさん
2009/06/08(月) 10:22:340729デフォルトの名無しさん
2009/06/08(月) 11:51:090730デフォルトの名無しさん
2009/06/08(月) 12:03:14それは、女が好きなオカマと、モーホーな兄貴と、どっちが女に近いかという問題に似ている。
0731デフォルトの名無しさん
2009/06/08(月) 13:05:170732デフォルトの名無しさん
2009/06/08(月) 15:03:07JIS 的に非常に正しいわけで。
0733デフォルトの名無しさん
2009/06/08(月) 18:37:290734デフォルトの名無しさん
2009/06/08(月) 19:20:150735デフォルトの名無しさん
2009/06/08(月) 20:01:060736デフォルトの名無しさん
2009/06/09(火) 04:20:37http://pc11.2ch.net/test/read.cgi/gamedev/1238520070/692
692 :名前は開発中のものです。:2009/06/09(火) 00:57:34 ID:2fI/sHFo
何言ってんだ。プログラマにまともな精神持った奴がいた試しなんてねえよ。
第一プログラマと精神科なんてほとんどセットなのに今更それを語るとか情弱以下だろ。
0737デフォルトの名無しさん
2009/06/09(火) 08:18:36例えば、0.0.0.1みたいなアドレスでも受信できるようにするには
0738デフォルトの名無しさん
2009/06/09(火) 09:50:350739デフォルトの名無しさん
2009/06/09(火) 10:24:13ふつうにbindすればできる。
0740デフォルトの名無しさん
2009/06/09(火) 23:06:44すみません、普通のやり方おしえてもらえないでしょうか?
特定のIPなら一般的なやり方だとはおもうのですが、全IPってのはいったい
0741デフォルトの名無しさん
2009/06/09(火) 23:13:090742デフォルトの名無しさん
2009/06/09(火) 23:45:240743デフォルトの名無しさん
2009/06/10(水) 01:22:17TCPなのかUDPなのか知らないが、
逆に、どうbindしたら特定のアドレスからしか接続できないようになるのか教えてほしい。
0744デフォルトの名無しさん
2009/06/10(水) 01:31:33ietf行ってstd*.txt読め
それでも足らなきゃ*BSDとかLinuxのkernel読め
0745デフォルトの名無しさん
2009/06/10(水) 08:04:32bindする側がIPアドレスもってない場合
0746デフォルトの名無しさん
2009/06/10(水) 09:43:08送ることはできない。ブロードキャストなら普通にINADDR_ANYにbindすれば拾える。
基本を知らずにRAWソケットとか使いたがる初心者が、最近増加してるのは何故?
0747デフォルトの名無しさん
2009/06/10(水) 09:55:59> 基本を知らずにRAWソケットとか使いたがる初心者が、最近増加してるのは何故?
お手軽な処理系とかライブラリが増えて、ネットワークプログラムする人口が
増えているのに、基本から勉強する人口の増加率は従来通り、もしすると減少
している。
お手軽処理系とか使っている人間は、自分が使ったことのあるソフトの
機能を知ってるから「基本? なにそれ? めんどくせーW」とかいいながら
「だけど、こんなこともしてみたい」ってな、感じなのでは?
0748デフォルトの名無しさん
2009/06/10(水) 11:24:28できない場合、サーバ側にPOSTでCGI経由でディレクトリを作らせてファイルをPUTするとかが一般的でしょうか?
0749デフォルトの名無しさん
2009/06/10(水) 11:36:29わかる方法ってありますでしょうか?
0750デフォルトの名無しさん
2009/06/10(水) 11:54:300751デフォルトの名無しさん
2009/06/10(水) 11:57:17そんなことはどうでもいいのです。
0752デフォルトの名無しさん
2009/06/10(水) 12:14:29そんなのねーよ。
と、スパッと回答した方がいい。
0753デフォルトの名無しさん
2009/06/10(水) 12:41:230754デフォルトの名無しさん
2009/06/10(水) 12:45:54なくはない。
0755デフォルトの名無しさん
2009/06/10(水) 12:46:230756デフォルトの名無しさん
2009/06/10(水) 12:49:40固定IPには転送して、固定IPには転送しない
という条件ではないはず。
0757デフォルトの名無しさん
2009/06/10(水) 13:09:56そんなルールは無い。
0758デフォルトの名無しさん
2009/06/10(水) 13:33:28WebDAVが使えるなら MKCOL
0759デフォルトの名無しさん
2009/06/10(水) 13:59:41あれ?そうでしたっけ?
それならまあいいやw
0760デフォルトの名無しさん
2009/06/10(水) 14:39:49ありがとう!
こんなのあったんだ。
0761デフォルトの名無しさん
2009/06/10(水) 17:51:47乱暴な言い方をすれば名前とIPの関係でフィルタリングされているだけでアドレスが固定か動的割り当てかによる区別じゃない
0762デフォルトの名無しさん
2009/06/10(水) 18:11:04今簡単なhttpクライアントを作っているのですが
コンパイルはちゃんとできるのですが
必ずタイムアウトして接続できません。
何か解決策はないでしょうか?
よろしくお願いします。
0763デフォルトの名無しさん
2009/06/10(水) 18:43:590764デフォルトの名無しさん
2009/06/10(水) 19:30:17まぁポート指定でhtonsしてないってとこじゃね?
0765デフォルトの名無しさん
2009/06/10(水) 23:20:56それはつまり、bindしなくても拾えるということでしょうか?
固定IPをもっていないアドレスに対してはブロードキャストしかおくれない
よって、bindしなくてもブロードキャストしかうけつけないので
bindする必要はないということでしょうか?
0766デフォルトの名無しさん
2009/06/11(木) 00:07:460767デフォルトの名無しさん
2009/06/11(木) 00:18:59どっからそんないい加減な知識を仕入れてるんだ?
0768デフォルトの名無しさん
2009/06/11(木) 00:25:41このスレからです。でもどこがおかしいのでしょうか?
0769デフォルトの名無しさん
2009/06/11(木) 00:55:050770デフォルトの名無しさん
2009/06/11(木) 01:23:44俺はそんな事教えてない。
でも「IP」を2回使ったのでお前には二度と教えない。
0771デフォルトの名無しさん
2009/06/11(木) 08:06:30でもないようを見る限りそうです
0772デフォルトの名無しさん
2009/06/11(木) 09:03:38http://codezine.jp/article/detail/125
0773デフォルトの名無しさん
2009/06/11(木) 22:33:42IPアドレスが正しいxxx.xxx.xxx.xxxに適合しているのかに
利用して問題ないでしょうか?
0774デフォルトの名無しさん
2009/06/11(木) 23:03:52それはつまり、bindしなくても拾えるということでしょうか?
固定IPをもっていないアドレスに対してはブロードキャストしかおくれない
よって、bindしなくてもブロードキャストしかうけつけないので
bindする必要はないということでしょうか?
0775デフォルトの名無しさん
2009/06/12(金) 00:28:040776デフォルトの名無しさん
2009/06/12(金) 00:32:430777デフォルトの名無しさん
2009/06/12(金) 00:36:580778デフォルトの名無しさん
2009/06/12(金) 08:08:00まったく同時に二つがrecvするのでしょうか?
そのとき、処理時間は遅くなるのでしょうか?1つで受信するときとくらべて
0779デフォルトの名無しさん
2009/06/12(金) 08:08:27世界中の端末と通信するために255.255.255.255で通信し始めそうwww
0780デフォルトの名無しさん
2009/06/12(金) 08:23:530781デフォルトの名無しさん
2009/06/12(金) 23:17:040782デフォルトの名無しさん
2009/06/13(土) 05:35:46何かパケット届いたら知らせてもらったほうが楽。
0783デフォルトの名無しさん
2009/06/13(土) 08:24:33受信待ちと送信も同時におこなえるんだよね
0784デフォルトの名無しさん
2009/06/13(土) 12:09:290785デフォルトの名無しさん
2009/06/13(土) 12:14:10受信待ちになってる状態でCPUに負荷かかるOSはダメだろ。
0786デフォルトの名無しさん
2009/06/13(土) 12:46:37割り込みルーチンから表に通知する仕組みをどう作るかで悩んでのう…
0787デフォルトの名無しさん
2009/06/13(土) 13:29:34プロセスなりスレッドなりタスクなりを起こすだけやん
0788デフォルトの名無しさん
2009/06/13(土) 13:40:19スレチだけど、そのキューがまさに別スレッド関連処理中で排他状態にあったら?
0789デフォルトの名無しさん
2009/06/13(土) 13:41:480790デフォルトの名無しさん
2009/06/13(土) 13:51:260791デフォルトの名無しさん
2009/06/13(土) 14:04:510792デフォルトの名無しさん
2009/06/13(土) 14:23:21特に問題ない。
送信(または受信)できなければ、送信(または受信)可能になるまで待たされるだけ。
0793デフォルトの名無しさん
2009/06/13(土) 20:39:49それは何かのきまりでそうなってるとか?
送信優先させたい場合はどうするのだろう
0794デフォルトの名無しさん
2009/06/13(土) 20:43:49while{
recv
send
}
なるものがあったとしたら、完全に受信が終わってから、送信にうつる
そして完全に送信がおわってからまた受信する
これを別々のタスクで動作させるとなると
受信は受信で待ち受けている
送信は送信で受信がおわったら送信タスクにうつるようにする
しかし、受信が連続できて受信してる際に送信させようとなると
送信は受信が終わるのまってから、送信する
しかし、送信を優先させたい場合、受信してる最中に待たせるわけにもいかないよな
0795デフォルトの名無しさん
2009/06/13(土) 20:50:14受信無しに送信したい時どうすんだよ
0796デフォルトの名無しさん
2009/06/14(日) 00:15:15OSがあったらできるか なかったらできない
0797デフォルトの名無しさん
2009/06/14(日) 12:06:57送受信が同時に行われるかどうかは知らんけど
ところでrecv!=受信 send!=送信だよね
基本的なことだけど・・・
0798デフォルトの名無しさん
2009/06/14(日) 13:58:12普通はハンドシェークするプロトコルにするから、受信が無いと送信は出来ない。
0799デフォルトの名無しさん
2009/06/14(日) 23:24:04> 普通はハンドシェークするプロトコルにするから、受信が無いと送信は出来ない。
送受信は独立にするだろJK^2
受信はメタな意味でイベントに属して、送信は処理に属
する、全く別の概念。
それと 3-way ハンドシェイクをもう一辺勉強し直せ。
TCP は双方同時送信から始まっても一本のコネクション
になるように設計されてる。
0800デフォルトの名無しさん
2009/06/15(月) 00:56:050801デフォルトの名無しさん
2009/06/15(月) 01:03:43するからといって、プログラムをその通りに(〜を受
信/〜を送信/〜を受信…)書くのは頭悪すぎだろ。
0802デフォルトの名無しさん
2009/06/15(月) 05:27:36おまいのプログラム見にくいって良く言われるだろうwww
0803デフォルトの名無しさん
2009/06/15(月) 06:42:08http://ja.wikipedia.org/wiki/%E6%9C%89%E9%99%90%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3
http://en.wikipedia.org/wiki/Event_driven_finite_state_machine
まぁ俺なら switch じゃなくてテーブル引きにするがな。
デザパタ的に言えばコマンドパターンとかもこれだろ。
0804デフォルトの名無しさん
2009/06/15(月) 07:50:54手順で想定した通りの入力があるとは限らないわけで。
状態遷移を使った実装にしないと、すぐに破綻しないか?
0805デフォルトの名無しさん
2009/06/15(月) 08:21:48受信→送信 ならできるが
受信1→受信2→送信1 になってしまうこともありうるのでは
0806デフォルトの名無しさん
2009/06/15(月) 08:28:37そもそも
> 受信が無いと送信は出来ない。
こんな条件があったら通信できないじゃないか。
0807デフォルトの名無しさん
2009/06/15(月) 08:39:400808デフォルトの名無しさん
2009/06/15(月) 08:45:48> 送受信独立させても、受信中には送信送信処理できないだろ
そう言われても、どのレベルでの話なのか分からないな。
物理層の話なのか、ソケットAPIレベルの話なのか、アプリケーションレベルの話なのか
はっきりさせてほしい。
0809デフォルトの名無しさん
2009/06/15(月) 23:37:50受信→送信、受信→送信という流れであるはずが
受信→受信→送信 というタイミングになってしまった場合はどうなるんだ
受信して、送信にうつろうとするが、うつろうとしてる最中に次のデータを受信している最中になってしまうとか
その場合、いったん受信のほうに処理がうつるわけですよね
0810デフォルトの名無しさん
2009/06/15(月) 23:52:11どんなタイミングでデータを受信してもきちんと動くようにすればいい。
というか、そうすべき。
0811デフォルトの名無しさん
2009/06/15(月) 23:53:14シングルスレッドの同期通信しか考えられない人?
0812デフォルトの名無しさん
2009/06/16(火) 00:06:14シングルじゃなければ、同一のソケット宛でも別扱いになるのか
0813デフォルトの名無しさん
2009/06/16(火) 00:11:45つselect
0814デフォルトの名無しさん
2009/06/16(火) 03:29:09SMTPでHELO来る前にMAIL FROM来たら、504でreject返してぶち切っていいだろ。
鯖側は基本受信待ち。話しかけられるまで沈黙を守るべき。
0815デフォルトの名無しさん
2009/06/16(火) 07:42:580816デフォルトの名無しさん
2009/06/16(火) 08:09:16詳しくお願いします
0817デフォルトの名無しさん
2009/06/16(火) 09:43:210818デフォルトの名無しさん
2009/06/16(火) 09:48:12プロトコルの設計と、プログラムの設計がごっちゃになってるような気がする。
0819デフォルトの名無しさん
2009/06/16(火) 13:31:17HTTPのパイプライニングって知らない?
0820デフォルトの名無しさん
2009/06/16(火) 21:18:59レスがごっちゃなのか判らんw
0821デフォルトの名無しさん
2009/06/16(火) 22:06:34select使える環境なら、大抵スレッド使えるだろ。
組み込みOSとか、携帯アプリとかの特殊な環境なら
環境の説明がないと有意義なレスはつかないと思うよ。
0822デフォルトの名無しさん
2009/06/16(火) 22:22:18スレッドを別々にするなら、どのタイミングで送信スレッドにうつるようにすればいいの?
受信は受信で処理
送信は送信で処理 それぞれ独立するとして
0823デフォルトの名無しさん
2009/06/16(火) 22:26:580824デフォルトの名無しさん
2009/06/16(火) 22:45:24受信完了→送信→受信待ち って流れ?
受信完了→受信待ち→受信完了→送信 って風にはならないの?
超高速で受信がきたとして
0825デフォルトの名無しさん
2009/06/16(火) 23:22:17そこで切り替わるかもしれないし、しないかもしれないし誰にもわからない
マルチCPU(コア)環境なら本当に同時に動くかもしれない
0826デフォルトの名無しさん
2009/06/16(火) 23:43:42スレッド使ったネットワークプログラムのソースくらいその辺に転がってるから
まずはそれ読んで感覚を掴んだ方がいい。
あと、UNIXネットワークプログラミングでも、スレッド使った例があったはず。
0827デフォルトの名無しさん
2009/06/17(水) 00:00:12受信したものに対して応答を返す場合には、受信スレッドで応答を送信する形式が多いんじゃないかな。
0828デフォルトの名無しさん
2009/06/17(水) 00:04:56TCPは全二重通信だということを理解してくれ。
つまり送信と受信は同時にできるのだ。
0829デフォルトの名無しさん
2009/06/17(水) 02:04:06相手の状況なんて確認せずに送りつけてるだけじゃ、あっさり捨てられて無駄なパケット送る事に成るだけ。
0830デフォルトの名無しさん
2009/06/17(水) 07:58:58アホは消えろ
0831デフォルトの名無しさん
2009/06/17(水) 09:22:20キミ、周回遅れ。引っ込んでなよ。
0832デフォルトの名無しさん
2009/06/17(水) 11:35:00ソケットに届いたデータは取り出されるかソケットが閉じられるまで残っとるはずだから、
ゆっくらスイッチングすれば良いんじや ないの。
0833デフォルトの名無しさん
2009/06/17(水) 23:45:41すみません。UDPの話です。
受信と送信が独立してるならこの場合どうなるんだろう
0834デフォルトの名無しさん
2009/06/18(木) 00:02:27送信はwhileしてても待ち受けてるわけじゃないからな
0835デフォルトの名無しさん
2009/06/18(木) 00:41:30独立してるんなら、独立に送信して受信するだけだろ。
何が疑問なのかさっぱり伝わってこない。
0836デフォルトの名無しさん
2009/06/18(木) 00:51:33できるかどうかはアプリケーション側の責任
0837デフォルトの名無しさん
2009/06/18(木) 02:29:40UDPも全二重
0838デフォルトの名無しさん
2009/06/18(木) 11:45:210839デフォルトの名無しさん
2009/06/18(木) 11:48:440840デフォルトの名無しさん
2009/06/18(木) 11:50:450841デフォルトの名無しさん
2009/06/18(木) 11:51:120842デフォルトの名無しさん
2009/06/18(木) 12:42:360843デフォルトの名無しさん
2009/06/18(木) 13:14:09バケツくらいの大きさの糸電話なら普通に話しながら聞ける。
0844デフォルトの名無しさん
2009/06/18(木) 15:55:09>デバイス的には全二重だろ。
相手の声に対して逆位相の波形流したら
相殺すると思うんだが。
0845デフォルトの名無しさん
2009/06/18(木) 15:56:26アッーーーーー!
IE6までって、ブラウザ2つ立ち上げるとそれぞれ別セッションになったけど、
IE8って同じセッションになっちゃう???
IE6では2つのブラウザで同時操作しても遷移チェックOKだったけど、
IE8だと遷移エラーになる・・・。
困った。
IE6と同じ振る舞いにできないものか。
0846デフォルトの名無しさん
2009/06/18(木) 16:08:390847デフォルトの名無しさん
2009/06/18(木) 16:09:05無線LANは半二重だろ。
0848デフォルトの名無しさん
2009/06/18(木) 16:29:05>>デバイス的には全二重だろ。
>相手の声に対して逆位相の波形流したら
>相殺する
なるほど、と思ったが更に押し進めて逆位相をオフセット
として信号を重畳すれば全二重になるな。面白い。
0849デフォルトの名無しさん
2009/06/18(木) 17:01:39波がぶつかった通信経路中の一点でのみ相殺するだけだろ
0850デフォルトの名無しさん
2009/06/18(木) 17:41:440851デフォルトの名無しさん
2009/06/18(木) 18:07:08> 逆位相をオフセットとして信号を重畳
逆だな。つまり自分自身が送出した信号を(時間遅延を
考慮して)入力から引くんだ。確かエコーキャンセラの
仕組みがそうだ。
0852デフォルトの名無しさん
2009/06/18(木) 23:01:080853デフォルトの名無しさん
2009/06/18(木) 23:07:310854デフォルトの名無しさん
2009/06/18(木) 23:26:430855デフォルトの名無しさん
2009/06/18(木) 23:38:51なんだこの組み合わせw
0856デフォルトの名無しさん
2009/06/18(木) 23:42:57縦波。 糸を角に引っ掛けて方向を変えても音が伝わるって実験やったな。
0857デフォルトの名無しさん
2009/06/18(木) 23:57:35ぶっちゃけると、あるじっそうではりんぐばっふぁになってます
あとは、わかるよな
0858デフォルトの名無しさん
2009/06/19(金) 00:53:54最初に受信処理が正しい。
0859デフォルトの名無しさん
2009/06/19(金) 01:01:47お前が言っているのは「画面出力前にキー入力すべき」っ
ていうのと一緒で全然一般的じゃない。
0860デフォルトの名無しさん
2009/06/19(金) 06:02:270861デフォルトの名無しさん
2009/06/19(金) 08:26:030862デフォルトの名無しさん
2009/06/19(金) 08:58:370863デフォルトの名無しさん
2009/06/19(金) 10:50:52もう少しヒントを
0864デフォルトの名無しさん
2009/06/19(金) 11:37:57バッファは有限なのだから、その容量を超えるデータを詰め込めるわけ無いだろ。
0865デフォルトの名無しさん
2009/06/19(金) 12:56:13上書きされるけど
0866デフォルトの名無しさん
2009/06/19(金) 13:10:40リングバッファじゃなくても古いの廃棄すればいくらでも詰め込めるわけだが。
そういう話じゃないのがわからないのか?
そもそも、TCPだと上書きじゃ無くて入らなければ破棄だぞ。
UDPだって大抵はそういう実装だ。
0867デフォルトの名無しさん
2009/06/19(金) 13:40:22リングとは逝っても長方形状のメモリ素子を循環利用してるに過ぎないが。
0868デフォルトの名無しさん
2009/06/19(金) 13:46:57何を言っているのかよく解らんが
リニアなメモリ空間の一部を使用しているという意味なら
態々言うまでもない。
>>866
>TCPだと上書きじゃ無くて入らなければ破棄だぞ。
送信元に「受け取ったよー!」つっといて
内部で破壊しちゃったら詐欺だよなあ。
0869デフォルトの名無しさん
2009/06/19(金) 13:56:42トポロジー的にはリング。
0870デフォルトの名無しさん
2009/06/19(金) 15:45:58>そもそも、TCPだと上書きじゃ無くて入らなければ破棄だぞ。
入らなかったらwindowを閉じる。
0871デフォルトの名無しさん
2009/06/19(金) 18:46:110872デフォルトの名無しさん
2009/06/19(金) 19:09:550873デフォルトの名無しさん
2009/06/19(金) 19:17:56そもそもTCPは受信window外のメッセージを処理したら駄目なんじゃね?
てゆーかRFC位読んどけよ…
0874デフォルトの名無しさん
2009/06/19(金) 20:51:28なんてことはない。
0875デフォルトの名無しさん
2009/06/19(金) 21:11:35はぁ?データがユーザアプリ層まで来ねぇって言ってんだけど。
それとも手前はライブラリが仕様通りに動かない可能性まで考慮してるっつーのか。
頭めでてー奴だな。
0876デフォルトの名無しさん
2009/06/19(金) 21:15:080877デフォルトの名無しさん
2009/06/19(金) 21:34:37こういう呼び方をするとwindowは小さくなってしまうのでしょうか?
0878デフォルトの名無しさん
2009/06/19(金) 22:03:44好きな長さで拾っておk
0879デフォルトの名無しさん
2009/06/19(金) 22:09:48データに何が入ってようと関係なく
recvで帰ってきた長さのデータを保証するだけ
0880デフォルトの名無しさん
2009/06/19(金) 22:26:45気にしないで良いみたいで安心しました。
RCVBUFの残りで変化すると想像してます。
別の質問なんですけど、epollでETを指定した場合で立ち下がりにも反応するのでしょうか?
あとEPOLLOUT+EPOLLETで常にトリガが来る様な気がするんですがそういう物でしょうか?
0881デフォルトの名無しさん
2009/06/19(金) 23:14:290882デフォルトの名無しさん
2009/06/19(金) 23:21:010883デフォルトの名無しさん
2009/06/20(土) 02:44:33> だからレイヤーをはっきりと(ry
別にライブラリの内側だってバッファがある分だけ
window切ってそれ以外無視するんだから同じ話だけどな。
0884デフォルトの名無しさん
2009/06/20(土) 08:55:14ACK無視して速度出ると多めに送ってくる相手も居れば、途中で廃棄されて全然届かないのも有るのがネットの世界。
あとは不正アクセス目的で不正パケット送ってくる香具師も居る。
0885デフォルトの名無しさん
2009/06/20(土) 09:41:05超高速:受信1→受信2→送信2 (送信1は受信2に上書きされてしまって消える)
超高速の場合を回避するようにしたいとなるとどうプログラムかけばいいのでしょうか?
ただし、通常と超高速が混在しているものとして
0886デフォルトの名無しさん
2009/06/20(土) 10:02:35> ACK無視して速度出る
どこのアホスタックだそれは。遅くなることはあっても
早くなることはないぞ。
0887デフォルトの名無しさん
2009/06/20(土) 11:11:040888デフォルトの名無しさん
2009/06/20(土) 11:12:41windowに収まらないセグメントはRSTでなければACKを返
送して、何れにせよdropすることになってる。
> If an incoming segment is not acceptable, an acknowledgment
> should be sent in reply (unless the RST bit is set, if so drop
> the segment and return):
>
> <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
>
> After sending the acknowledgment, drop the unacceptable segment
> and return.
>
> In the following it is assumed that the segment is the idealized
> segment that begins at RCV.NXT and does not exceed the window.
これは攻撃がどうのとか受信バッファがどうのというよ
りも主に過去の別セッションのセグメントを拾わない為
の措置なのでこれを守ってないスタックは送信側だろう
が受信側だろうがアホスタックと呼ばれても仕方ない。
0889デフォルトの名無しさん
2009/06/20(土) 20:20:45delayed ackならack待たないでしょ。
TCP加速機の類いは、伝送遅延を克服するために、
積極的にackを無視する。
0890デフォルトの名無しさん
2009/06/20(土) 21:45:34UDPでは無理
0891デフォルトの名無しさん
2009/06/21(日) 08:57:16いまやなんでもありだし、そういう場合を想定して実装するべき。
他所は動くのに、こちらのだけうまく動かないと言われて立場が悪くなるだけ。
0892デフォルトの名無しさん
2009/06/21(日) 12:57:26アホは書き込むな
0893デフォルトの名無しさん
2009/06/22(月) 11:47:37> delayed ackならack待たないでしょ。
遅延ACKはACK返す回数を減らして間引く話だよ。
Silly Window Syndrome でぐぐったら出てくる。
決してwindowを無視する話じゃない。
0894デフォルトの名無しさん
2009/06/22(月) 12:34:14解説本から得た知識だけで、えらそなこと書いてるのか?
0895デフォルトの名無しさん
2009/06/22(月) 13:29:04この辺の話はrfcの何番を読めばいいですか?
0896デフォルトの名無しさん
2009/06/22(月) 13:43:04std6.txt == rfc768.txt UDP
std7.txt == rfc793.txt TCP
0897デフォルトの名無しさん
2009/06/22(月) 15:14:15http://tools.ietf.org/html/rfc879
> The TCP Maximum Segment Size and Related Topics
http://tools.ietf.org/html/rfc1122
> Requirements for Internet Hosts -- Communication Layers
http://tools.ietf.org/html/rfc1123
> Requirements for Internet Hosts -- Application and Support
0898デフォルトの名無しさん
2009/06/22(月) 15:29:15いると思うんだ(後発だからか?)
↓の該当部分は RFC より取っつきやすいと思う。
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/intermediate.html
> 3.16 - Nagle アルゴリズムとは何ですか?
> 3.17 - Nagle アルゴリズムをオフにすべきなのはどんなときでしょう?
> 3.18 - TCP の移動ウィンドウとは何ですか?
> 3.19 - お馬鹿なウィンドウ症候群(silly window syndrome)とは何ですか?
> 3.20 - 遅延 ACK アルゴリズムとは何ですか?
0899デフォルトの名無しさん
2009/06/22(月) 16:49:11winsock に特化した内容が、あたかも汎用性があるみたいな書き方で
書かれてることがあるから、別のプラットフォームに行ったときに
痛い目見たりするけどな…
0900デフォルトの名無しさん
2009/06/22(月) 19:58:390901デフォルトの名無しさん
2009/06/22(月) 20:12:190902デフォルトの名無しさん
2009/06/23(火) 04:42:17このpingのソースなんですけどrecvしたパケットの
IPヘッダのチェックサムもICMPヘッダのチェックサムも計算してないですけど
壊れてる可能性は無いのでしょうか?
0903デフォルトの名無しさん
2009/06/23(火) 05:11:33普通, check sum 間違ってたらProtocol Stack側が廃棄処分するので
ユーザの手元まで届かない
0904デフォルトの名無しさん
2009/06/23(火) 22:19:370905デフォルトの名無しさん
2009/06/23(火) 23:24:330906デフォルトの名無しさん
2009/06/24(水) 00:10:460907デフォルトの名無しさん
2009/06/24(水) 01:33:19何が大丈夫なのですか?
0908デフォルトの名無しさん
2009/06/24(水) 02:07:580909デフォルトの名無しさん
2009/06/24(水) 02:24:26普通に送受信とはなんですか?
0910デフォルトの名無しさん
2009/06/24(水) 10:25:120911デフォルトの名無しさん
2009/06/24(水) 12:10:23困っているのはサンプルプログラムが見つからないこと
0912デフォルトの名無しさん
2009/06/24(水) 12:17:530913デフォルトの名無しさん
2009/06/24(水) 13:29:31あなたは勘違いしています。
0914デフォルトの名無しさん
2009/06/24(水) 13:47:46それら全部をひっくるめて「NAT越え」と表現するような奴だから
自分が何をしたいのかすら解ってないかも知れない。
0915デフォルトの名無しさん
2009/06/24(水) 13:53:31解らずともソースコードを追って学ぶ姿勢なのが私です
0916デフォルトの名無しさん
2009/06/24(水) 13:59:27http://www.codeproject.com/KB/IP/PortForward.aspx?fid=275054&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26
0917デフォルトの名無しさん
2009/06/24(水) 14:05:170918デフォルトの名無しさん
2009/06/24(水) 15:20:57それはググればわかりますよ。
0919デフォルトの名無しさん
2009/06/24(水) 17:43:10どうやってやるのか、ってソースコードを見ればわかります。
0920デフォルトの名無しさん
2009/06/24(水) 19:44:09なあ…面白いか?
0921デフォルトの名無しさん
2009/06/24(水) 19:46:34あなた面白いですね
0922デフォルトの名無しさん
2009/06/25(木) 06:20:30rfcが完全に守られてる訳でもないし。ネットワーク的に革新的な装置のほとんどはrfcにない特殊な通信でパフォーマンス稼いでたりする。
rfcも後追いで、先進的な仕様を盛り込まずに実績重視な所も有るからね。実績出るまではrfcに反映されない闇規格黙認の悪循環。
0923デフォルトの名無しさん
2009/06/25(木) 09:08:39blogでやれ。
0924デフォルトの名無しさん
2009/06/25(木) 14:24:42ネットワークプログラミング雑談
http://pc12.2ch.net/test/read.cgi/tech/1235800707/
0925デフォルトの名無しさん
2009/06/28(日) 17:18:5964キロバイトほどのデータを定期的にEthernetのLAN内のマシン一台にリアルタイムに送信するプログラムを書いているのですが、
発信から到着までどうしても1秒ほどのラグが出てしまうのです。
遅延を100ミリ秒以下に抑えたいのですが(遅延をなるべく小さくしたい)、
こういう場合によく使われるテクニックを教えていただけないでしょうか。
また、遅延が起こる原因として考えられそうなことも教えていただければ幸いです。
0926デフォルトの名無しさん
2009/06/28(日) 17:20:25UDPで投げるようにしてみるとか。
0927デフォルトの名無しさん
2009/06/28(日) 18:56:53全部のノードをリアルタイムOSに変更して、スパコンに使われる様な高帯域/低遅延ネットワークのハードを導入するしか。
普通のスイッチングハブなんて経由したら普通に遅延するよ。
http://pc12.2ch.net/test/read.cgi/tech/1102483474/
OpenMPプログラミング
http://pc11.2ch.net/test/read.cgi/os/969972176/
出たよーQNX Realtime Platform!!
http://pc11.2ch.net/test/read.cgi/os/1006784236/
分散OS
http://pc11.2ch.net/test/read.cgi/hard/1245859735/
【スパコン】スーパーコンピュータ関連情報2【HPC】
0928デフォルトの名無しさん
2009/06/28(日) 19:28:58これは異常。100msは楽勝でクリアできなければおかしい。
ボトルネックになってるところがあるはず。名前解決とか。
0929デフォルトの名無しさん
2009/06/28(日) 19:35:20発信側の処理が遅いのか、受信側の処理が遅いのかを特定すべし。
0930デフォルトの名無しさん
2009/06/28(日) 20:01:130931デフォルトの名無しさん
2009/06/28(日) 20:29:460932デフォルトの名無しさん
2009/06/28(日) 23:09:040933デフォルトの名無しさん
2009/06/29(月) 00:58:27>>926の言うようにTCPなら、
> 3.16 - Nagle アルゴリズムとは何ですか?
を読め。
0934デフォルトの名無しさん
2009/07/01(水) 22:52:37tcpは環境の都合で使えません
0935デフォルトの名無しさん
2009/07/01(水) 22:56:36IP over UDP とか、TCP over UDP で検索すると何件かかかるみたいだけど、
お望みの解決に近づけるものがあるかどうかはわからない。
0936デフォルトの名無しさん
2009/07/01(水) 23:02:38tcpが駄目ならudpはもっと無理だと(ry
0937デフォルトの名無しさん
2009/07/01(水) 23:38:070938デフォルトの名無しさん
2009/07/01(水) 23:45:29まあぶっちゃけ特定ポート垂れ流しレベルでいいんで・・
0939デフォルトの名無しさん
2009/07/01(水) 23:50:31UDPは到達性の保証がないわけで、
垂れ流しじゃTCP相当のものは実現できない。
0940デフォルトの名無しさん
2009/07/02(木) 00:45:39udpは使えるがtcpは使えないってどういう環境の都合?
0941デフォルトの名無しさん
2009/07/02(木) 00:50:19ちょっとくらい取りこぼしてもいいんなら、単純な垂れ流しで十分。
0942デフォルトの名無しさん
2009/07/02(木) 01:37:32全部取りこぼしてもいいなら単純な垂れ流しで十分だが。w
0943デフォルトの名無しさん
2009/07/02(木) 02:55:47それが無いと保証があればちょっとはラクなんだが
0944デフォルトの名無しさん
2009/07/02(木) 03:05:000945デフォルトの名無しさん
2009/07/02(木) 03:07:130946デフォルトの名無しさん
2009/07/02(木) 06:24:150947デフォルトの名無しさん
2009/07/02(木) 06:29:33再送求めて、DoSアタック騒ぎに成るのがヲチ。
何のために?
プロトコル番号を、tcp(6)じゃなくてudp(17)にすればほぼ同じでしょ。
問題はそんな変な事してもまともに使えないってこと。
0948デフォルトの名無しさん
2009/07/02(木) 06:34:57同じ階層にoverってどういうことw
0949デフォルトの名無しさん
2009/07/02(木) 08:09:13TCPのペイロードに、UDPヘッダつきのデータ流すんだろ。
0950デフォルトの名無しさん
2009/07/02(木) 08:54:36ほかにもSSHoverHTTPとか言いたいことは分かるけど気分悪いよね。
0951デフォルトの名無しさん
2009/07/02(木) 10:42:10以前、IP over UDP over SSH over socksで穴開けていたことがあるが、結構使えた。
0952デフォルトの名無しさん
2009/07/02(木) 12:10:39あれこれ出てくるんじゃないか。
0953デフォルトの名無しさん
2009/07/02(木) 12:15:570954デフォルトの名無しさん
2009/07/02(木) 14:01:53IPが振られるまで使えないことが今更問題だとわかった
やっぱシリアルのがいいか・・・
0955デフォルトの名無しさん
2009/07/02(木) 14:44:200956デフォルトの名無しさん
2009/07/02(木) 15:00:220957デフォルトの名無しさん
2009/07/03(金) 00:53:04そんな程度のことで気分悪くなるなよ
0958デフォルトの名無しさん
2009/07/03(金) 00:53:520959デフォルトの名無しさん
2009/07/03(金) 01:10:270960デフォルトの名無しさん
2009/07/03(金) 04:41:010961デフォルトの名無しさん
2009/07/03(金) 08:51:030962デフォルトの名無しさん
2009/07/03(金) 16:31:26UDP は hole punching とかあるじゃん。その上で TCP 通す。
でも確かに IP 通した方が便利だね。デバイスドライバにして
OS から NIC I/F みたいに見えるのがいいと思う。
>>949
逆だ逆。
0963デフォルトの名無しさん
2009/07/03(金) 17:35:00添削お願いします。
■A→Bへの転送
Aは基本的にBの反応(ACK)を伺いながら通し番号付きデータを
一方的に送りつける。BのACKを待たず一度に送りつける量は、
Bの許容範囲内(ウィンドウ)にする。
もしBから何かの番号のACKが届けば、その番号までのデータは
届いたと判断し、ウィンドウをずらして転送を続行する。
受け取り通知のない番号以降のデータはタイムアウトを取り、
それが過ぎたら通知済の番号直後からデータを再送する。
Bは、Aの送信を受け続けながら、届いた番号データをまとめ、
連続する部分までの番号付きのACKを、ある間隔ごとに返す。
その間隔はAのタイムアウト以内である事。
また、ウィンドウ範囲を満たしていれば速やかにACKを返す事。
もしも番号が連続しないことを検出したら連続する時点の
ACKを返し、Bの再送まで待つ。
(つづく)
0964デフォルトの名無しさん
2009/07/03(金) 17:36:26A B
|----->| 01
|----->| 02
|----->| 03
|----->| 04
|----->| 05
|<-----| 02 02まで届いたと返事
| | A、ウィンドウ += 2
|----->| 06
|----->| 07
|----->| 08
|----->| 09
|----->| 10 Bのウィンドウ範囲(10-2=8)なので待機
| | Bが反応なし(03がタイムアウト)
|----->| 03 再送
|----->| 04
|----->| 05
|<-----| 05 05まで届いたと返事
|----->| 06
|----->| 07
|--> X | 08 パケットロス
|<-----| 07 07まで届いたと返事
|----->| 09
|----->| 10
| | Bが反応なし(08がタイムアウト)
|----->| 08 08から再送
|----->| 09
|----->| 10
|<-----| 10 10まで届いたと返事
(おわり)
0965デフォルトの名無しさん
2009/07/03(金) 17:48:54>もしも番号が連続しないことを検出したら連続する時点の
>ACKを返し、Bの再送まで待つ。
これ不要でした。
あと、ウィンドウサイズは双方でデフォルト値を決めておいて、
ACK返送時に一緒に送って変更するとかかな。
0966デフォルトの名無しさん
2009/07/03(金) 18:25:410967デフォルトの名無しさん
2009/07/03(金) 18:44:110968デフォルトの名無しさん
2009/07/04(土) 00:27:45大抵自前でやろうとすると結局 TCP に帰着するか、TCP
が注意深く避けている問題に気付かないかのどっちかだ。
TCP はポッと出てきた訳じゃなくて、何年もの実験と研
究を元にしていることを忘れちゃ駄目だ。もちろんそれ
を越えるものを考えられるなら話は別だけど。
0969デフォルトの名無しさん
2009/07/04(土) 00:34:40お前よりは良く制御するわ。
0970デフォルトの名無しさん
2009/07/04(土) 01:12:16状況を限定すれば余計な処理が省略できる。
0971デフォルトの名無しさん
2009/07/04(土) 01:28:570972デフォルトの名無しさん
2009/07/04(土) 01:37:490973デフォルトの名無しさん
2009/07/04(土) 01:55:22当然↓位の考察は出来てるんだよな?
http://www.imasy.or.jp/~yotti/rfc2001j.txt
Stevens が亡くなってもうすぐ十年か…。
0974デフォルトの名無しさん
2009/07/04(土) 02:01:26いいからRFC読めよアホ
0975デフォルトの名無しさん
2009/07/04(土) 02:39:48スレッドとかなしで。
0976デフォルトの名無しさん
2009/07/04(土) 02:58:12アホはしねよ
0977デフォルトの名無しさん
2009/07/04(土) 17:42:42逆に何か処理してる間に、ACK返って来たら取りこぼすだろwww
ACK帰ってくるのは待つしか無い。
0978デフォルトの名無しさん
2009/07/04(土) 17:51:260979デフォルトの名無しさん
2009/07/04(土) 20:00:55>>977
ACK蓄えるぐらいのバッファはあるので問題なしでした。
0980デフォルトの名無しさん
2009/07/05(日) 08:48:54>>978
いいからお前らアホはRFC読んでから出直してこいって。
馬鹿丸出しだぞ?
0981デフォルトの名無しさん
2009/07/05(日) 10:12:140982デフォルトの名無しさん
2009/07/05(日) 10:47:35STD 7, RFC 793, September 1981.
28年前の基礎技術すらろくに理解できてないのに
それについて語ろうとする奴って何なんだ?
0983デフォルトの名無しさん
2009/07/05(日) 11:18:44>TCP で制御できなくて UDP だと制御できるものって何?
ネットワークの混雑を無視して、競合するTCPセッションのリソースを強引に奪うプログラムとか。ロスさせることを前提として20%ぐらいのFECかけて送信するみたいなの。
0984デフォルトの名無しさん
2009/07/05(日) 11:22:020985デフォルトの名無しさん
2009/07/05(日) 11:34:29> 28年前の基礎技術すらろくに理解できてないのに
> それについて語ろうとする奴って何なんだ?
「データシート(規格書でも、ソースでも、…、可)読めや、ゴルァ!!!」
「難しくて分かりません、取りあえず動かす方法教えてください」
ってのが、最近の流行りらしいからなぁ………
0986デフォルトの名無しさん
2009/07/05(日) 11:41:26昔と今では決まり事の数が違いすぎるだろ・・・
人間が変わったわけじゃない、環境が変わったんだ。
0987デフォルトの名無しさん
2009/07/05(日) 12:13:42それもそうなんだが、それ以前に
読もうとする意志のかけらも見当たらない奴が増えてる
現実もあったりするわけだが…
0988デフォルトの名無しさん
2009/07/05(日) 12:31:49まぁ、プログラミング自体に夢が見られない時代だからな・・
0989デフォルトの名無しさん
2009/07/05(日) 12:36:420990デフォルトの名無しさん
2009/07/05(日) 14:24:22勉強する時間がないので正解だけ教えてください的なのは多いね。
応用効かなくてウマく動かなくて困りそうだが。
0991デフォルトの名無しさん
2009/07/05(日) 14:27:020992デフォルトの名無しさん
2009/07/05(日) 14:52:04決して顧客から感謝されたり
歓迎されることなくプログラマを終わるかもしれない
きっと非難とか叱咤ばかりの一生かもしれない
御苦労だと思う
しかし
プログラマが顧客から歓迎されちやほやされる事態とは
外資から攻撃されて企業存亡の時とかデスマーチ派遣の時とか
顧客が困窮し混乱に直面している時だけなのだ
言葉を換えれば
君達が日陰者である時のほうが
顧客は幸せなのだ
どうか、耐えてもらいたい
0993デフォルトの名無しさん
2009/07/05(日) 14:57:47衣食住無料、しかも給料は高額。
それに比べてプログラマは・・・
鬱で自殺するプログラマより訓練で死ぬ自衛隊の方が遙かに少ない。
0994デフォルトの名無しさん
2009/07/05(日) 15:09:47そう思うなら自衛隊入れば?
0995デフォルトの名無しさん
2009/07/05(日) 15:37:150996デフォルトの名無しさん
2009/07/05(日) 15:46:11それは全員志願ですよ。
0997デフォルトの名無しさん
2009/07/05(日) 15:48:03だったらさっさと自衛隊に入れよクズ
>>996
自殺者なんてみんな志願だろw
自殺は甘え。
0998デフォルトの名無しさん
2009/07/05(日) 15:49:190999デフォルトの名無しさん
2009/07/06(月) 14:20:211000小倉優子 ◆YUKOH0W58Q
2009/07/06(月) 14:21:0210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。