TCP握手需要ACK消息。但是,我讀過一些文章,解釋了實際數據傳輸時ACK消息的另一個外觀;發送方需要等待來自接收方的ACK消息指示要發送的後續字節。那是對的嗎?有人可以解釋我們爲什麼稱它爲ACK消息嗎?瞭解TCP握手後ACK消息的作用
0
A
回答
-1
TCP是無連接網絡IP上的面向連接的協議。因此,爲了有一個連接的概念,每一端都必須確認從另一端收到的數據。這是通過ACK消息(或確認消息)來實現的。爲了TCP正常工作,每個傳輸的字節都需要被確認(只有這樣它才能成爲面向連接的協議)。但是,請注意,這並不意味着每個發送的數據包都需要使用確認消息進行回覆。需要的是'最終'發送的所有數據都被確認。回覆每個發送的數據包將嚴重影響吞吐量,因此發件人通常可以繼續發送消息,以確保某些數據量不被確認。這被稱爲TCP窗口。除了這個簡單的解釋和TCP的大部分複雜性之外,還有更多的內容來自 - 試圖保持一個窗口的吞吐量(以字節/秒爲最大)。網上可能有很多資源。爲了更好地理解IP網絡和TCP,我強烈建議閱讀「TCP/IP Illustrated - Volume 1」。
相關問題
- 1. 握手後的TCP數據包
- 2. TCP握手延遲
- 3. TCP握手過程
- 4. TCP三次握手
- 5. Ack-Push之後的TCP Ack-Fin
- 6. Windows TCP握手問題
- 7. TCP三次握手問題
- 8. TCP三次握手失敗
- 9. TCP握手沒有檢索
- 10. 使用SOCK_RAW套接字的TCP握手
- 11. 用PHP的fsockopen()中斷TCP握手?
- 12. Google雲消息傳遞,註冊握手
- 13. TCP網絡 - 手動編程SYN,SYN ACK,ACK?
- 14. 啓用UART串行端口通信的ACK/NAK握手
- 15. 是否可以在TCP三次握手中獲取SYN/ACK數據包的TCP序列號?
- 16. 瞭解Ruby消息
- 17. 瞭解NSZombie消息
- 18. accept()方法和tcp/ip握手
- 19. 欺騙TCP服務器握手失敗
- 20. tcp:在哪裏實施3way握手
- 21. AsynchronousSocketChannel.write確保TCP ACK?
- 22. TCP消息1006
- 23. Websocket握手不起作用
- 24. 在TCP後同等地位3_way握手TCP客戶端和服務器
- 25. TLS握手「證書」消息中的多個證書
- 26. 異常SSLException:HelloRequest其次是一個意外的握手消息
- 27. TCP - 發送消息,然後斷開
- 28. Nack當前消息和Ack當前消息(rabbitmq,java)之前的所有消息
- 29. Java應用程序中的TCP握手很慢
- 30. 的WebSocket打開握手被取消
是的,這是正確的。 ACK用於確認。 – EJP
TCP保證傳遞消息,因此ACK與UDP相反。 – Marco
@Marco TCP擁有字節,而不是消息,它保證字節完整地傳遞,並且按順序,並且一次或根本不傳輸。天堂或地球上的任何力量都無法保證交付。 – EJP