2017-03-29 9 views
0

2台のマシンAとBを想像してください。Aは、ネットワーク障害があってもBがパケットPを受信したことを確認したいのですが、どのように達成できますか?ネットワーク上のデータ伝送をどのように保証するのですか?

シナリオ1:
1)AはB.
にネットワークを介してPを送信 問題:ネットワークは、ステップ1で障害が発生した場合、BはPを受信しないであろうし、Aがそれについて知ることができません。確認応答と

シナリオ2:
1)A) 2 B.
にネットワークを介してPを送信BがP.
通報を受信した場合、ACKを返送する。「ネットワークがステップ2で障害が発生した場合、ウォンAはACKを受信するので、AはBがPを受信したかどうかを確実に知ることができない。

ACKのACKを取得すると、問題が1ステップ進んでいきます。

答えて

1

これは長年にわたって研究されてきた大きな問題です。データが配信されるか、送信者が配信が失敗した可能性があることを(最終的に)知るかを保証するTCPプロトコルについて読む。

ここで読むことができます:https://en.wikipedia.org/wiki/Transmission_Control_Protocol ウェブ上のTCPについてもっと多くの有益なページがあります。

または、TCPを使用して、すでに実行されている作業を利用できます。

+0

私はそのページを実際に読んだことがありますが、TCPプロトコルがそのような保証をどのようにするかは明確ではありません。 – bananasplit

+0

最終的には、受信機からのACKを待っているタイムアウトまで沸きます。 [総単純化] –

関連する問題