1 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:09:04 ] 主にソケットに関しての質疑応答スレッドです。 Programming UNIX Socket FAQ (日本語訳) www.kt.rim.or.jp/~ksk/sock-faq/indexj.html Winsock Programmer's FAQ (日本語訳) www.kt.rim.or.jp/~ksk/wskfaq-ja/ 関連リンクは>>2-10 辺り 足りなかったら適当に付け足してね 前スレ ネットワークプログラミング相談室 Port20 pc11.2ch.net/test/read.cgi/tech/1186418855/ 関連スレ Java ネットワークプログラミング 【教えて!】 pc11.2ch.net/test/read.cgi/tech/1086238859/
784 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:12:49 ] 微妙にスレ違いかもしれませんが、 global IP を持っていて逆引きもできる host が /etc/hosts に FQDN なしで登録されていると、 gethostbyaddr や getaddrinfo で調べたときに、 /etc/hosts が優先されて FQDN が不明なことがあります。 こういう場合に DNS に直に引きにいけば良いと思うのですが、 そのあたりを簡単にやるほうほうはありますが?
785 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:20:01 ] echo > /etc/hosts
786 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:16:51 ] : > 785 permission denied: 785
787 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:14:35 ] >>784 /etc/nsswitch.conf の hosts: files dns を hosts: dns files にしてみたり /etc/host.conf の order hosts,bind を order bind,hosts にしてみたりとか でも逆にしない方が幸せかも
788 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 02:37:52 ] >>787 設定を変えれば DNS 優先になりそうですが、 システムの設定を変えられないユーザーもいるので、プログラム側で対処したいなと。
789 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 09:19:28 ] OSに頼れないなら自分でDNSクライアント部分を書くしかない希ガス
790 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:13:52 ] 逆にOSの設定で動作変えたいときにこんな強引なことされてると腹立つよな
791 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:48:33 ] >>788 となると res_query(3) とか自分でDNSのリゾルバ呼ぶことになるかな
792 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 19:14:59 ] なにか手抜きな方法がないかと思ったのですが、やはりそれですかねえ。 ちと頑張ってごりごりやってみます。
793 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:57:23 ] RTPプロトコルを勉強のために 実装してみたいのですがサンプルになりそうなものって ありますか?
794 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:03:29 ] 勉強のためならサンプルなんか見ずにやれやw
795 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:53:37 ] この辺から適当に探してみれば? ttp://www.voip-info.org/wiki-Open+Source+VOIP+Software
796 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:34:08 ] UDPのパケットのシーケンス制御って どうしたいいのでしょうか
797 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:53:44 ] 自分でシーケンス番号振って並べ替えりゃ良いだろ そんくらいも思いつかないようじゃやめとけ
798 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:16:56 ] >>797 まぁそうなんだけどさ 効率よく並べ替える方法が思いつかん ちょっと知恵くださいよ年末だし優しくしてくださいよ
799 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:21:11 ] うぜえよ低脳
800 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:25:07 ] 配列インデックスにすりゃO(1)でそ 並べ替える、って意味わからん
801 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:36:11 ] >>798 教えてやったんだから俺にお年玉くれ
802 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 10:16:59 ] >>798 FIFO でも実装したらどうだ。 それか、漢らしく「シーケンスが狂ったパケットは捨てる」とか。
803 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:15:50 ] 「XX番まで到着したよ」と通知して送りなおしてもらうんですね わかります
804 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:18:55 ] TCPでおk
805 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:36:23 ] いまどきFTPを実装するの面倒だし、HTTPでいいかなって・・・ HTTP/UDPのライブラリとかない?(できればjava)
806 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:40:32 ] 普通にTCPじゃいかんの?
807 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 14:51:57 ] ヘンタイですねわかります
808 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 15:05:31 ] TCPでいいんだけど、LANとか閉鎖ネットで使ったりとかでTCPの信頼性に依存する必要はないときとか。 動画ファイルとか巨大データ・ファイル・サーバからの転送とか個人で使用とか想定してみて。 HTTPとTCPとIPはレイヤーが違うから差し替えるだけ(プラガブルみたいなの)で出来そうじゃないか? 動画ストリーム用みたいな独自プロトコルを策定するのも分かるけど、そういう閉鎖ネットではプロトコルの機能に関心はなくてデータの入出力とストリームの確保だけできればいいから、結局HTTPでいいよ。
809 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 15:26:20 ] HENTAIにはTSUNAMI tsunami-udp.sourceforge.net/
810 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 16:06:46 ] FTPじゃんか。TFTPで暗号機能がプラガブルとかだとみんなハッピーなんだけど、 HTTPやFTPがある層の一つ上にセキュリティ層(アプリ層)を作って、FTP/UDP/SSLとかにすればいいかなって感じはする。 HTTPSとかはHTTP専用に実装してるけど、やっぱ今の仕様策定モデルはMVCとプラガブルでしょ。
811 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 16:32:19 ] タグ:MVC,プラガブル
812 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:32:43 ] HTTP にしといて UDP にしたい理由がわからん
813 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:40:41 ] HTTP仕様(RFC)は、アプリ(サーバ)として広く普及してるから結構いいかも
814 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 01:56:29 ] ルーター通らないんじゃなくてよ
815 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:23:08 ] HP見るとかなんでもない用途なら、自作するまでもなく普通にHTTP(のサーバ)使うだろ。 といって今はtsunamiみたいに広範囲向けのudpに興味あるわけでもないし。 やっぱudpは、p to p でかつ永遠に連続転送(強制流し込みw)かな。 HTTPは仕様上セッションが保障されてるから一度で転送して終わり。
816 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:34:54 ] UDPはいちいちconnectしなくていいという利点がある。 ルータ超えしたければ間でTCPに変換すればいいし。
817 名前:デフォルトの名無しさん [2008/12/11(木) 16:58:39 ] C言語で同じインターネット内で他のユーザーと通信するプログラムは作れないですか? writeコマンドみたいな。
818 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:00:17 ] >>817 writeでいいじゃん
819 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:00:52 ] すまん net sendと間違えた
820 名前:デフォルトの名無しさん [2008/12/11(木) 17:03:27 ] >>818 writeだといらない文字まで表示されるので嫌です。 もっと好きな文字を送る方法はないですか?
821 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 17:05:12 ] arp
822 名前:デフォルトの名無しさん [2008/12/11(木) 17:17:32 ] >>821 arpをというのを使えばできますか? 参考HPを教えてください
823 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:19:07 ] tcpにおける送受信で、 1. recv(or read) で一文字ずつ受信する方法 と、 2. recvでMSG_WAITALL を指定する方法 では、どちらがいいのでしょうか? 補足ですが、今作っているシステムでは、 パケットの先頭3バイトに後続データの長さを格納しています。 よって、1の方法でやる場合は、 まず3バイト受信できるまで、1バイトずつ読み込み、 その後、後続データ長分を受信できるまで1バイトずつ読み込むのようにやるつもりです。 (もっといい方法ありますか?)
824 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:20:56 ] net sendと同じ条件ならメールスロットに書けば
825 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 18:28:03 ] >>823 www.linux.or.jp/JM/html/LDP_man-pages/man2/recvmsg.2.html >MSG_WAITALL (Linux 2.2 以降) >このフラグは、要求した量いっぱいのデータが到着するまで、操作を停止 (block) するよう要求する。 >但し、シグナルを受信したり、(中略)した場合には、要求した量よりデータが少なくても返ることがある。 ので、MSG_WAITALLを指定したからといって安心してはいけないかと。 3. recvで必要なバイト数を指定して受信し、実際に受信したバイト数を見て 足りなければ再び recv で不足分のバイト数を指定して受信する方法 が俺のおすすめ
826 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:47:45 ] ネットワーク対戦でオセロ,ババ抜きなどできるC言語のプログラムを作りたいです。 オライリー以外で何かオススメの本とかサイトはありませんか?
827 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:14:43 ] ねこでもわかるネットワークでいいんじゃね? わかりやすいよ ただしTCPで送信データが分割されて受信される対策について 一切説明してないのが残念な一品です 分かってる人は問題ないんだけどね 俺は一回SENDすると1回のRCVで 全部受信できると勘違いしてたからチンダ 今となってはいい思い出です
828 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:34:40 ] せめてrecvって書こう
829 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:47:28 ] ねこはソケットについてあんまり書いてなかったからなあ
830 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:16:47 ] LAN経由で通信を確立させて、ピンポン方式でデーターを送って応答を返してもらおうと思うのですが、応答が許容待ち時間(10秒)に達したら、データ再送or通信切断どちらのほうが適切なのでしょうか。
831 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:22:58 ] TCP?UDP?
832 名前:830 mailto:sage [2008/12/17(水) 00:36:29 ] >>831 TCPです。 本来ならほんの一瞬でデータが応答がかえるはずなので、 どちらのほうがよいのかなと思いました。
833 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:41:13 ] おちつけ
834 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:39:08 ] 真の許容待ち時間は何秒なんだ?
835 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 07:00:27 ] TCPでデータが届いてなければ再送じゃなくてつなぐ所からやりなおしじゃね?
836 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 09:21:50 ] 再送はUDPしかありえないっすよ
837 名前:デフォルトの名無しさん [2008/12/17(水) 12:04:38 ] inetdは、標準出力関数を呼び出す毎に、パケットを送ってくれるんでしょうか? それとも、パケットに詰め込めるだけ詰め込んでから、送るんでしょうか?
838 名前:830 mailto:sage [2008/12/17(水) 22:05:07 ] >>834 ありがとうございます。 ピンポン方式なので、 そのデータがかえってこないと次が送信できないので、 10秒ぐらいかなと思い勝手に決めました。 真の許容待ち時間があるわけではありません。 >>835 836 ありがとうございました。 切断がよさそうですね。
839 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:20:19 ] ttp://www13.plala.or.jp/kmaeda/winc/winc.htm#NETGAME ここのネットワークゲームのプログラムをもっと丁寧に説明してあるような 本知りませんか?
840 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 19:29:41 ] sendでゲーム画面をサーバからクライアントに送信するには 引数をどう指定したらいいんだ
841 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:16:08 ] 送信するデータを指定
842 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:37:46 ] たいていの場合画面は送らない
843 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:54:39 ] 勘違いかもしれんが,サーバはsendで更新情報をメッセージで送って 受け取ったクライアントはその情報を元に画面を更新する 画面自体は送らないでOK?
844 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 22:32:39 ] 勘違いじゃなくてスレ違い
845 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:24:56 ] DNSサーバ扱ってるWebサイトで UDPパケットが分断されずに遅れる最大サイズが512Byteと書いてあるんですが、 これはUDPを使っている他のプログラムにも適用されることですか?
846 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:43:53 ] DNSのzoneファイルのサイズを512B以下にしろって話か
847 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:53:16 ] 1つのUDPパケットで運ぶことのできるデータ(「ペイロード(荷物)」という)の長さは、 下位層のIPパケットの長さの制約を受ける。(標準の)IPパケットでは、1回の送信で、 最大では65515bytes(65535bytesから、IPヘッダの最低サイズ20bytesを引いたもの) までのデータを送信することができる(IPヘッダ・オプションが付くと、さらに小さくなる)。 そのため、1つのUDPパケットで送信することのできる最大ペイロード・サイズは、 65515bytesからUDPヘッダのサイズ(8bytes)を減算した、65507bytesまでとなる。 このため、この「長さ」フィールドの値は、8(データが空の場合)〜65515となる。 なお、下位層でIPフラグメンテーションが行われてIPパケットが分割されて送信されても、 UDPで1度に送信することのできるサイズは影響を受けない。 IPパケットのフラグメンテーション(分割)や再構成(元に戻すこと)は、 IP層のレベルで行われるからである。ただしIPフラグメンテーションが禁止されていると (IPヘッダ中のDF bitがセットされていたり、ルータがフラグメント・パケットのルーティングを 禁止していたりする場合)、より小さなサイズのUDPパケットしか送信できなくなる。 www.atmarkit.co.jp/fwin2k/network/baswinlan013/baswinlan013_03.html www.atmarkit.co.jp/fwin2k/network/baswinlan010/baswinlan010_02.html
848 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:59:24 ] jprs.jp/tech/jp-dns-info/2003-07-10-max-number-of-dns-server.html ▼DNS サーバの最大数 DNS には、そのプロトコルの仕組み上、応答メッセージが 512byte 以内に収 まる必要があり(*1)、上位の DNS サーバに登録できる NS レコードの数には 制限があります。 (*1) TCP への fallback もありますが、ルートサーバなどの上位の DNS サー バに TCP の接続が集中すると負荷などが問題となり、UDP で問い合わせ を行う必要があります。
849 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 02:21:20 ] Windows UDP パケットサイズの最大値の既定値は 1280 バイトです。 UDP パケットのサイズを 512 バイトより大きくする場合、 UDP パケットは UDP ホスト以外のデバイス (ルーターなど) を経由して送信される必要があり、それらのデバイスの中には 512 バイトを超える UDP パケットをサポートしていないものが ある点を考慮します。すべてのデバイスおよび可能であれば そのパスの MTU に対応するように UDP パケットの最大値を設定し、 その最大値に基づいて UDP ホストを構成することをお勧めします。
850 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 05:37:51 ] >>843 そう、それであってる。スレ違いでもないし。 たとえばネトゲなんかだと、自キャラの座標を鯖が持っていて、そのキャラからの 一定座標内のキャラクタの情報(座標だったりキャラクタの種類だったり見た目に関する情報だったり)を クライアントに返却し、クライアントはそれをもとに絵を出すという感じ。 テキストデータと画像データではデータ量に相当の差ができるし、絵を送る場合は鯖の負荷も恐ろしいことになる。
851 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 05:44:27 ] いやスレ違いだろ
852 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 06:22:32 ] クラサバシステムでどういうデータをクライアントに送るべきかって相談とも取れるからここでもいいんじゃないの
853 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 09:29:01 ] 板違いじゃボケ >プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。 >ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。 >Javascript は Web 制作板、CGI は Web プログラミング板へ。 >業界談義、愚痴はプログラマ板へどうぞ。 >ゲーム関係の話題はゲーム製作板へどうぞ。 >ネタ、板とは関係の無い話題はご遠慮ください。
854 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:50:01 ] yahohho- yahhohho- no-bura yahho-
855 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 09:32:05 ] >>852 >クラサバシステムでどういうデータをクライアントに送るべきかって相談 「誰か設計からやって下さい」と同義だぞ、それは。
856 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 10:42:32 ] リアルタイム性を求められるネットワークプログラミングでは TCPを使うべきかUDPを使うべきかどっちが良いのでしょうか
857 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 10:49:00 ] どういうリアルタイムだ? 1日以内に届けばよいというリアルタイムもあるぞ(コンビニ売り上げ集計とかな) どの程度(頻度・量)の通信があるのか? 端末・経路のハードウェアはどの程度の性能か? とかいう要素で決まってくるものだとおもいなされ
858 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 10:54:21 ] >>857 1秒間に300000パケットを転送する程度です。
859 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:01:12 ] 1回の交換に必要なのが 300000パケット で 1秒周期に交換作業を行う ってことかな?
860 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:11:23 ] 通信する距離の問題ももちろんあるけど 1/10秒以内の間隔でデータやりとりするならUDP、それ以上の間隔なら両方作って都合いい方使えって感じ
861 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:14:46 ] それにしても速度が要求される通信だとテストする環境とかネックだな LANだとTCPでも速度出るし
862 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 14:39:24 ] 遅延装置を使え
863 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 15:52:07 ] 遅延装置って何ですか?
864 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 16:28:26 ] 奥歯にしこんであるスイッチを噛むんだ
865 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 16:40:23 ] それ自爆装置やw
866 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 16:41:18 ] あ、かそくそーち!のほうか
867 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 17:02:20 ] ワロタ
868 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 18:24:19 ] 悲しいアホ達でした
869 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 21:34:05 ] なんかランドセルみたいな宇宙人?を背負うと 周りの連中が遅くなるって漫画あったんだけど、 なんだっけ?周りの連中からは速くて見えない。
870 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:53:37 ] 子泣きじじいを背負えば遅くなるってのは聞いたことがある。
871 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:22:05 ] 童話のうさぎとかめにでてくるかめは宇宙船だったらしいね 時間が止まってる間に竜宮城で酒池肉林 玉手箱開けて老人になったけどあれは時間が元に戻っただけ
872 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:40:47 ] なんだその餌は 出直せ ぱくっ
873 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:35:58 ] 宇宙船で時間旅行したっていう話じゃなかったか
874 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 22:49:10 ] なんでウサギとカメの話に竜宮城が出てくるんだ?
875 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:06:16 ] てきとーなIPとポートにsendして、相手が受信しなかった場合 そのデータはどこに行きますか?
876 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:32:26 ] 消えます。 さらにICMPメッセージが帰ってくることがあります。
877 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:02:31 ] 誰が消して誰がICMPを送ってるんですか?
878 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:24:46 ] 1. ルータやホスト。(TCP/IPの前提) 2. その人。
879 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:32:52 ] 消えるってことは残って誰かの迷惑になるというわけでもないってことでしょうか?
880 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:40:26 ] 相手が受信しなかったときって具体的に何だ? recv/readしなかったときか? それはTCPが受信してバッファにとりあえず入れとく。
881 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:47:41 ] >>878 ええ?OSやIPのライブラリ(ソフト)じゃないですか?
882 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 01:19:33 ] TCPの場合だとコネクトした状態でsendを行ってrecvを行う前に切断してしまったケースとか UDPならrecvしなかった場合とかです
883 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 02:38:32 ] 1のような仕組みはあえて仕込まない限り知らないが、 2はアタック検知したユーザが誰だよてめえと思ってみるということかなぁと。 でも俺ならdigする。んで、80番にアクセスすることはあるけどnmapは滅多にしない
884 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 03:14:10 ] sendした以上、相手には届いている。
885 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 05:07:30 ] sendしただけでは自分のTCPスタックの中にとどまっているかもしれなくね?
886 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:15:46 ] バウンスしたら迷惑だろ
887 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:40:46 ] >>877 NET UNREACH 郵便局(ルータ)の中の人「なんだよこんな番地(ルーティング)存在しねーよ。宛先が存在しません、と…」 HOST UNREACH 郵便配達(エンドルータ)の中の人「このマンションにこんな部屋番号(mac address)存在しねーよ。宛先に届けられません、と…」 PORT UNREACH 家の人(ホスト)「『ひろゆき様へ』って…誰だよそんな奴(port)この家にいねーよ、と…」 PROTOCOL UNREACH ニホンゴワカリマセーン 他にもいろいろあるけどこんな感じ。
888 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:47:11 ] ローカルIP宛てのパケットを外に出しちゃったら 消えずに迷子になるから迷惑って聞いたんですけど 結局どこに行きますか?
889 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:50:47 ] 冥王星あたり
890 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:17:06 ] プライベートアドレスでなくても あて先が突然切断したりしてルートを見失った場合、 パケットは TTLがなくなるまでたらいまわしにされる? それとも最も近くにあったルータまで行ってそこで見なかったことにされる?
891 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:25:49 ] ルータやホストはいつでもパケットを捨てていい。 最大努力配送が期待されているだけ。 これがTCP/IPの基本的な原則。
892 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:52:27 ] IPパケットが(何かの力によって)勝手に消えて、ネットワークのせいでいつまで経っても自ネット・目的先へ届かないってことはあるけど、 そういう時はTCPは再送信が送信元にいくからいいけど、UDPはICMPで再送の通知がされるの?もしかしてもみ消し?
893 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:55:07 ] UDPだと、UDPパケットが消滅したとき、ルータが必ずICMPとか何か使って再送してねの再送要求を送信先に必ず送るんでしょうか? それとも、このパケットがちゃんと届いたかどうかもアプリの方が管理するんですか?
894 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:57:32 ] UDPは何も言わずに捨ててよい
895 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 21:58:34 ] UDPはアプリの方で管理
896 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:04:02 ] パケットの消失は、基本的にはルータやエンドで処理しきれず捨てられるか、寿命が尽きるかのどちらか。 sendしたパケットが相手に届いてちゃんと受けとればけば、recv使用がしなかろうが、TCPのバッファには残る。
897 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:13:26 ] 最近はファイヤーウォールももみ消すよ。 >>893 ICMPもなくなる可能性があります。 基本的に、パケットがなくしてしまってもいいから、 どんどんネットワークをつないでいくってのがInternetの設計方針。 送信保証はエンドツーエンドでやる。つまりサーバとクライアントの仕事。 なくしていいよってことを認めないと、 PC買ってきて家ですぐにつなげなくなる。 電話みたいにISPのルータでの設定が必要になってしまう。 そういうネットワークはみんな滅亡した。 自分でやるのが面倒なプログラマはTCPを使うべき。 まともな再送機構作るのはかなり難しい。
898 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:26:37 ] UDPは消える ヤバイくらい消える ローカルなネットで2台しか繋がっていないテスト環境でも消える っつーか取りこぼす
899 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:29:10 ] そりゃ送りすぎなんじゃないの?
900 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:30:39 ] でも最近では、バルクデータもUDPで送るようなソフトが出てきてるよな。 SINET等の高速回線ではそのほうがいいらしい。
901 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:33:22 ] >>900 > SINET等の高速回線ではそのほうがいいらしい。 TCP実装するくらいの実力があればね。
902 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 22:46:56 ] d.hatena.ne.jp/asin/4774136042
903 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:16:05 ] みんなクリスマスの夜だというのに饒舌だなぁ。 もういいから彼女の元に戻ってやれよ
904 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:53:05 ] >>901 imihumei
905 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 23:55:33 ] 状況によりけりだろうな。 SINETでもノードによっては遅延がでかいし。
906 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 03:47:52 ] UDPの方が意図通りに組める
907 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 05:00:00 ] 新規にブラウザのレンダリングエンジンを作りたいんですけど、 とりあえず何が難しいのか分からない
908 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 05:15:35 ] ですよねー
909 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 06:24:24 ] 彼女いないし
910 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 09:25:06 ] >>907 頼もしいな。
911 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:01:10 ] >>898 それは単に送りすぎなだけだよw 通信対戦ゲーム作る時、いろいろな環境で実験したが 時々ごっそり消える(しばらく通じなくなる)が、普段は快適。って結果だったな。 最初ネットで拾ってきたテストコードでやったらごっそり消えまくって、UDPひでえって思ったけど、 単にそのテストコードがデータ送りすぎなだけだった。
912 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:29:43 ] データ送りすぎもいいけど、それはOSやルータ側が処理しきれないで破棄するっていう問題なのか、それともUDPの仕様(の限界)なのかってことじゃないのか? 極端に言えば「処理できるのは1秒に1パケットだけだからそれ以外は破棄よ」ってこともありえる(例えば同期の問題とかで)。
913 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:33:49 ] 送りすぎってのは一回の送信で沢山送ろうとしてるだけなんでは? それならバシバシ消えると思う
914 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 20:55:05 ] ビジーループみたいなループの中で100バイトのパケットを送り続けるとかやったんでしょ? テストコードとしてはやりがちだからね。 でもこれだとポロポロ落ちるんじゃね? スリープ入れないと。