初心者質問:誰が正確にACK、トランスポート層またはアプリを送信しますか?パーティクルカウンターを持つCOMサーバーを使用して、アプリケーションにデータを送信します。時々私は失われたデータを持っています。 Wiresharkプロトコルをチェックすると、パケットはCOMサーバーから送信されたが、受信者からのACKは失敗したことがわかります。私のプログラムにはエラーがあり、データを適切に編集できないため、ACKが欠落していると思います。私の同僚は、インターフェイス(ソケット)は単にデータを取得せず、ACKを返すことができないと言います。誰が正しい?TCP/IP ACK送信者:トランスポート層またはアプリですか?
0
A
答えて
2
TCPはトランスポート層プロトコルです。 ACKはTCPの一部です。したがって、ACKはトランスポート層の一部であり、そこに送信されます。
トランスポート層(つまり、ユーザー空間のTCP実装)を含むアプリがあるかもしれません。その場合、ACKはアプリケーションによって送信されますが、アプリケーション層ではなくトランスポート層に送信されます。しかし、ほとんどの場合、TCPはカーネルに実装されているため、アプリの外にあります。これらのレイヤーの詳細については、OSI or TCP/IP modelを参照してください。
私の同僚は、インターフェイス(ソケット)は単にデータを取得せず、ACKを返すことができないと言います。誰が正しい?
ユーザー空間TCP実装を使用していないと仮定すると、OSカーネルは、これらのデータがアプリケーションのソケットバッファに入れられるとすぐにデータをACKします。ソケットバッファにパケットを書き込めなかった場合、つまりアプリケーションがデータを読み取れなかったためにソケットバッファがいっぱいになった場合、パケットをACKしません。この場合、ピアはもはやデータを送信しないようにウィンドウを縮小します。
関連する問題
- 1. データリンク層とトランスポート層
- 2. インターネット層またはトランスポート層でチェックサムが実行されましたか?
- 3. ICMPはトランスポート層プロトコルですか?
- 4. winsock、RST、ACKまたはRSTパケットを送信する方法
- 5. トランスポート層は、データグラムパケットから送信元IPアドレスをどのように取得しますか?
- 6. どちらがssh、送信者または受信者のサーバーですか?
- 7. etcdノードがハートビートを送信するときの基礎となるトランスポート層プロトコルは何ですか
- 8. WebRTC:トランスポート層で動作するSFUはありますか?
- 9. ZabbixにTCPIPソケット経由でデータを送信する
- 10. トランスポート層はどこで動作しますか?
- 11. なぜ "(UIButton *)送信者"で、 "UIButton *送信者"ではないのですか?
- 12. クライアントはサーバに遅延FIN ACK(〜500ms)を送信します
- 13. Appleの「管理者」アカウントは、Apple Storeにアプリを送信できますか?
- 14. in - (IBAction)アクションの(id)送信者とは何ですか?(id)送信者。
- 15. トランスポート層セキュリティ(TLS)の例?
- 16. WCFトランスポート層のセキュリティ問題
- 17. GoogleCast-SDK v3を使用してiOS送信者から受信者アプリにJSONを送信
- 18. サーバはSYN + ACKを送信しません
- 19. chrome.tabs.sendMessageは、送信者
- 20. 私のSocket.io Expressアプリが「送信者」のクライアントに送信するのはなぜですか?
- 21. Websocketクライアントがハンドシェークの直後に[FIN、ACK]を送信します
- 22. サービス層またはコントローラ層で電子メールを送信する必要がありますか?
- 23. Outlook自動転送は、転送者ではなく元の送信者に返信を設定します
- 24. Cakephp 1.3電子メールコンポーネントは、 "送信元"または "送信者"を使用して送信しません! (ubuntu 10.04!)
- 25. キャスト送信者アプリのさまざまなコンテンツをミニコントロールでクリックする方法
- 26. ブロードキャスト送信者と受信者のペア
- 27. ACKパケットが失われた場合、SYNパケットは同じシーケンス番号で再送信されますか?
- 28. アップルのメールの「送信元」または送信者のアドレスを取得
- 29. Recv TCPパケットストリームでACKパケットを送信しない
- 30. Cでpcapからネットワーク層とトランスポート層プロトコルを取得するにはどうすればよいですか?
TCPリファレンスモデルを参照してください。 OSIモデルは存在しません。現実の世界の何かを参照するのではなく、参照モデルが時間的に先行するTCPはもちろんのことです。 – EJP