タグ付けされた質問 「tcp」

伝送制御プロトコル(TCP)は、コネクション型のデータストリームサービスに保証された順序どおりの配信を提供するトランスポート層プロトコルです。

8
Webサーバーはいくつのソケット接続を処理できますか?
共有、仮想、または専用のホスティングを取得する場合、サーバー/マシンが一度に64,000のTCP接続しか処理できない場所を読んだとしましょう。これは本当ですか?帯域幅に関係なく、どのタイプのホスティングでもいくつ処理できますか?HTTPはTCPで動作すると想定しています。 これは、64,000ユーザーしかWebサイトに接続できないことを意味しますか?さらにサービスを提供したい場合は、Webファームに移動する必要がありますか?


5
Linux:タイムアウトのあるソケットからの読み取りまたは受信がありますか?
タイムアウト付きのソケットからデータを読み取るにはどうすればよいですか?私は知っています、select、pselect、poll、timeoutフィールドがありますが、それらを使用すると、tcp renoスタックの「tcp fast-path」が無効になります。 私が持っている唯一のアイデアは、ループでrecv(fd、...、MSG_DONTWAIT)を使用することです
105 c  linux  sockets  tcp 


14
HTTPはUDPを使用しますか?
これはばかげた質問かもしれません: HTTPはユーザーデータグラムプロトコルを使用しますか? 例えば: HTTPを使用してMP3またはビデオをストリーミングしている場合、内部で転送にUDPを使用していますか?
103 http  tcp  udp 

13
ビデオストリームのTCPとUDP
ネットワークプログラミングの試験から家に帰ってきたところ、「ビデオをストリーミングする場合は、TCPまたはUDPを使用しますか?保存されているビデオとライブビデオストリームの両方について説明してください」という質問がありました。。この質問に対して、彼らは単に保存されたビデオのTCPとライブビデオのUDPの短い答えを期待していましたが、私は帰宅時にこれについて考えました、そしてライブビデオのストリーミングにUDPを使用するほうが良いのでしょうか?つまり、帯域幅があり、サッカーの試合やコンサートをストリーミングしているとしたら、本当にUDPを使用する必要がありますか? このコンサートまたはTCPを使用して何かをストリーミングしているときに、パケットを失い始め(あなたと送信者の間のネットワークで何か問題が発生しました)、1分間はパケットを受信しません。ビデオストリームが一時停止し、1分後にパケットが再び通過し始めます(IPが新しいルートを見つけました)。その後、TCPは失われた分を再送信し、ライブストリームを送信し続けます。前提として、帯域幅はストリームのビットレートより高く、pingは高すぎないので、短時間で、失われた1分がストリームのバッファーとして機能します。 、パケット損失が再び発生しても、気付かないでしょう。 さて、ビデオチャット中の遅延がひどいので、常にストリームの最後にいる必要がある、たとえばビデオ会議のように、これが良いアイデアではないいくつかのアプライアンスを考えることができますが、サッカーの試合中、またはコンサート中に、ストリームから1分遅れている場合、何が問題になりますか?さらに、すべてのデータを取得することが保証されているため、後でエラーなく受信できるように保存しておくことをお勧めします。 だから私は私の質問に連れて行きます。ライブストリーミングにTCPを使用することについて知らない欠点はありますか?それとも、帯域幅がある場合は、ネットワーク(フロー制御)に「より良い」という前提で、TCPを使用する必要がありますか?

7
TCPオプションSO_LINGER(0)はいつ必要ですか?
オプションの正式な意味は理解できたと思います。現在処理しているいくつかのレガシーコードでは、オプションが使用されます。顧客は、RSTについて、その側からの接続に近い側からのFINへの応答として不満を持っています。 いつ使うべきかわからないので、安全に外せるかわかりません。 オプションが必要になる時期の例を教えていただけますか?

15
TCP接続を開いたままにするためにハートビートが必要ですか?
TCP / IPを介して通信する2つのコンポーネントがあります。コンポーネントAはサーバー/リスナーとして機能し、コンポーネントBはクライアントです。2つはできるだけ早く通信する必要があります。接続は常に1つしかありません(ただし、この質問は別です)。私の会社の上級開発者は、接続を確実に開いたままにするために、2つのコンポーネント間でアプリケーションレベルのハートビートを使用する必要があると述べています。 TCP / IPでも接続は開いたままであると思っていましたが、これらのアプリケーション間でハートビートを行うのはかなり標準的な方法であると多くのブログ/サイトを読んだことがあります。 コンポーネントAがコンポーネントBをハートビートする理由の一部を知っているので、コンポーネントBとの通信問題(リンクがダウンしているか、コンポーネントBが実行されていない)がある場合にサポートに通知できます。他の理由でハートビートが必要ですか?たとえば、「パイプの中に」何かを頻繁に開いておくためにそれを確実にするために? 現在、コンポーネントAはコンポーネントBを20秒ごとにハートビートし、120秒以内にコンポーネントBから何も受信されない場合は接続を閉じます。次に、リンクが切断された場合にコンポーネントBが定期的に再接続を試行すると想定して、接続のリスニングを再開します。これは正常に動作します。 私の質問を繰り返します:TCP / IP接続を維持するためにハートビートは必要ですか?
94 sockets  tcp 

13
信頼できるUDPが必要な場合、何を使用しますか?
TCP接続が遅すぎる可能性があり、UDP「接続」が信頼性が高すぎる可能性がある状況がある場合、何を使用しますか?さまざまな標準の信頼できるUDPプロトコルが世の中にありますが、それらについてどのような経験がありますか? 返信ごとに1つのプロトコルについて話し合い、使用しているプロトコルについて他の誰かがすでに言及している場合は、それらを投票し、必要に応じてコメントを使用して詳しく説明することを検討してください。 ここでさまざまなオプションに興味があります。TCPはスケールの一端にあり、UDPはもう一方の端にあります。さまざまな信頼できるUDPオプションが利用可能であり、それぞれがTCPのいくつかの要素をUDPにもたらします。 多くの場合、TCPが正しい選択ですが、代替案のリストを用意しておくと、その結論に到達するのに役立ちます。UDPに基づいて構築されたEnetやRUDPなどには、さまざまな長所と短所があります。それらを使用したことはありますか、あなたの経験は何ですか? 疑いを避けるために、これ以上の情報はありません。これは架空の質問であり、決定を下す必要がある人が利用できるさまざまなオプションと代替案を詳述した回答のリストを引き出したいと思います。

12
I / Oを試行せずに、ピアがTCPソケットを正常に閉じたことを検出できないのはなぜですか?
最近の質問のフォローアップとして、TCPソケットの読み取り/書き込みを試みない限り、ソケットがピアによって正常に閉じられていることを検出することがJavaで不可能である理由は何ですか?これは、かどうかに関係なく1回の使用前NIOの場合であるように思わSocketまたはNIO SocketChannel。 ピアがTCP接続を適切に閉じると、接続の両側のTCPスタックはその事実を認識します。サーバー側(シャットダウンを開始する側)は状態FIN_WAIT2になり、クライアント側(シャットダウンに明示的に応答しない側)は状態になりCLOSE_WAITます。なぜそこに方法はないSocketかSocketChannelという、基礎となるTCP接続が終了したかどうかを確認するためにTCPスタックを照会することができますか?TCPスタックがそのようなステータス情報を提供しないのですか?それとも、コストのかかるカーネルの呼び出しを回避するという設計上の決定でしょうか。 この質問に対するいくつかの回答を既に投稿したユーザーの助けを借りて、問題の原因がどこにあるのかがわかります。接続を明示的に閉じない側はTCP状態になりCLOSE_WAIT、接続はシャットダウンの処理中であり、側が独自のCLOSE操作を発行するのを待ちます。私はisConnected戻っtrueてisClosed戻ってくるのは十分に公正だと思いますfalseが、なぜそんなものがないのisClosingですか? 以下は、NIO以前のソケットを使用するテストクラスです。しかし、NIOを使用しても同じ結果が得られます。 import java.net.ServerSocket; import java.net.Socket; public class MyServer { public static void main(String[] args) throws Exception { final ServerSocket ss = new ServerSocket(12345); final Socket cs = ss.accept(); System.out.println("Accepted connection"); Thread.sleep(5000); cs.close(); System.out.println("Closed connection"); ss.close(); Thread.sleep(100000); } } import java.net.Socket; public class MyClient { public static …


3
ブラウザ間(ピアツーピア)接続を確立するにはどうすればよいですか?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 ページが読み込まれると、クライアントブラウザ間の直接tcp / ip接続を可能にする、クライアント側でHTML5、CSS、およびJavaScriptを使用してWebサイトを作成するにはどうすればよいですか。 サイトでは、ユーザーの1人からの入力をできるだけ早く他のユーザーに送信する必要があるため、遅延を減らすためにこれを行う必要があります。そのため、クライアントAからサーバーにデータを送信してからクライアントBにデータを送信するのは適切ではありません。オプション。 私はこの主題に関する以前の投稿を読みましたが、私が見つけることができる利用可能な実用的な解決策/例はありませんでした。私が読んだものから、クライアント間の直接接続は、Silverlight、Java、Flashなどのプラグインを使用して行うことができます。 プラグインを必要としないソリューションはありますか?JavaScriptのみを使用したいのですが。
83 javascript  html  tcp  p2p  tcp-ip 

12
Python:バインディングソケット:「アドレスはすでに使用されています」
TCP / IPネットワークのクライアントソケットについて質問があります。私が使っているとしましょう try: comSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) except socket.error, msg: sys.stderr.write("[ERROR] %s\n" % msg[1]) sys.exit(1) try: comSocket.bind(('', 5555)) comSocket.connect() except socket.error, msg: sys.stderr.write("[ERROR] %s\n" % msg[1]) sys.exit(2) 作成されたソケットはポート5555にバインドされます。問題は、接続を終了した後です。 comSocket.shutdown(1) comSocket.close() Wiresharkを使用すると、両側からFIN、ACK、およびACKでソケットが閉じているのがわかります。ポートを再び使用することはできません。次のエラーが発生します。 [ERROR] Address already in use 次回も同じポートを使用できるように、ポートをすぐにクリアするにはどうすればよいでしょうか。 comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) setsockoptは問題を解決できないようですありがとうございます!
83 python  sockets  tcp  port 

14
サーバーソケットからのクライアントの切断を即座に検出
クライアントがサーバーから切断されたことをどのように検出できますか? 私のAcceptCallBackメソッドには次のコードがあります static Socket handler = null; public static void AcceptCallback(IAsyncResult ar) { //Accept incoming connection Socket listener = (Socket)ar.AsyncState; handler = listener.EndAccept(ar); } クライアントがhandlerソケットから切断されたことをできるだけ早く発見する方法を見つける必要があります。 私はもう試した: handler.Available; handler.Send(new byte[1], 0, SocketFlags.None); handler.Receive(new byte[1], 0, SocketFlags.None); 上記のアプローチは、サーバーに接続していてサーバーの切断を検出したい場合は機能しますが、サーバーでありクライアントの切断を検出したい場合は機能しません。 どんな助けでもありがたいです。
82 .net  c#  sockets  tcp  connection 

9
TCPのフロー制御と輻輳制御の違いは何ですか?
TCPのフロー制御と輻輳制御の違いは何ですか? この質問は2つの部分に分けることができます: フローと輻輳制御の全体的な目的は何ですか? タスクはどのように達成されますか? ウィキペディアによると、TCPフロー制御はACKメッセージで報告されたウィンドウサイズに依存しています。輻輳制御も確認メッセージに依存しています。2つの目標の違いと、それらがどのように機能するかを知りたいと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.