0

クライアントが一定の速度でパケットを送信しているとします。現在、サーバーが一時的にダウンした場合、2つの状況が発生する可能性があります

(TCPプロトコルを使用しています)

1)パケットはサーバーに配信されません。その結果、回線内の他のパケットはサーバーが応答するのを待つ必要があります。そして、そこから通信を行うことができます。

2)パケットは配信されず、再試行されますが、他のパッケージはこのパケットの影響を受けません。

たとえば、パケットA、B、およびCが転送されます。パケットAを送信している間、サーバーが一時的にダウンします。パケットBとCは、最初にスケジュールされた時間に送信されるか、サーバーがAを受信すると送信されます。

4

2 に答える 2

2

TCPはストリーム指向のプロトコルです。これは、単一のTCP接続でAに続いてBを送信した場合、受信者はAを確認するまでBを確認しないことを意味します。

AとBを別々のTCP接続で送信する場合、BがAの前に到着する可能性があります。

于 2010-09-19T12:18:02.117 に答える
1

「一時的に下がる」とはどういう意味ですか?私は2つの異なるシナリオを見ることができます。

シナリオ1:サーバーとクライアント間の接続が中断されました。

パケットAは途中で送信されます。残念ながら、ケーブルが曲がりくねっているため、1本のケーブルが断線し、Aが失われます。一方、TCPウィンドウアルゴリズムの正確な状態に応じて、パケットBとCが送信される場合と送信されない場合があります(ウィンドウサイズ、A / B7Cのサイズ、および送信された未確認バイトの量によって異なります)。 。それはあなたの「1」と「2」の両方が正しいかもしれないと言っていると思いますか?

Bおよび/またはCが送信された場合、再送信されるまでAのackはありません。それらが送信された場合、Aが到着すると、サーバーは順番に受信された最後のフレームの終わりまで確認応答します(つまり、tahtの場合はC)。

シナリオ2:サーバーがダウンする

これが発生すると、すべてのTCP状態が失われ、サーバーの再起動が完了した後に接続を再確立する必要があります。

于 2010-09-19T10:05:35.250 に答える