初学者です。
自分の中でも混乱してるので, 質問が支離滅裂かと思いますがよろしくお願いいたします。
知りたいこと
ソケット通信(Java)において, ACKはどうやって送るのか(送られてるのか?)わかりません。
単純にJavaのソケット通信においてコネクション確立後のACKの動き?を教えてください。
疑問点(混乱中)
ACKは, ASCIIコード表によると"0x06"らしいですが, ネットで調べても明示的に0x06を送信しているサンプルが見当たりません。
ひしだまさんのTCPメモによると, so.connect, so.accept や so.close はメソッド内でSYN,ACK,FINを自動でやり取りしてるように思えます。
ですが, 送信した後の確認(ACK応答)はいつ帰ってくるのでしょうか?
実際, Socketクラスには受信確認のメソッドがないようです。
現在は3通り考えられる可能性を思いついています。
仮にクライアントとサーバでの送受信だとして
0. クライアントが送信したパケットに対しての確認応答(ACK)は、サーバー側が送信する際にSocketのメソッド(.send())が自動でくっつけてくれる
0. クライアントが送信したパケットに対しての確認応答(ACK)は、サーバー側が送信する際にコード上でデータに0x06を明示的にくっつける
0. クライアントが送信したパケットに対しての確認応答(ACK)は、コネクションがestablishの状態だと, 定期的に自動で返されてる.
と、見ていただいてわかる通り迷走しております。
ご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/21 08:49
2019/11/21 08:58
2019/11/21 09:27