0
NettyのWriteCompletionEventは、TCPプッシュacknoledgement [PSH、ACK]を保証するのか、送信されたデータパケットの[PSH]をプッシュするだけですか?NettyのWriteCompletionEventは、相手側が自分のデータを受信したことを保証するのですか、それともネットワークに送信したデータのみを保証しますか?
NettyのWriteCompletionEventは、TCPプッシュacknoledgement [PSH、ACK]を保証するのか、送信されたデータパケットの[PSH]をプッシュするだけですか?NettyのWriteCompletionEventは、相手側が自分のデータを受信したことを保証するのですか、それともネットワークに送信したデータのみを保証しますか?
TCPは、個々のsend()
に到着保証を提供していません:だけで暗黙のうちに後続のすべてが送信しclose()
仕事なので、ネッティーは確かにどちらかそれを行うことができない場合。
ウィキペディアは次のように述べています:«TCPは、あるコンピュータ上のプログラムから別のコンピュータ上の別のプログラムにバイトストリームを確実に配送します» –
したがって、NettyはTCPパートがすべてのデータをネットワークに送信したとき(Write [パケット)またはTCP部分がすべてのデータ受信(受信したすべてのパケットの受信[PSH] [ACK]パケット)の承認を受信したときに発生します。 –
@Errandir(1)これはウィキペディアではなく、RFC793からのTCPに関する私の情報を得ていますが、(2)Nettyはこれらの出来事のいずれかを知ることができません。それを伝えるソケットAPIには何もありません。それが知ることができるのは、データをTCP送信バッファに書き込んだことだけです。 – EJP