由於TCP頭是一個相對較大的開銷,我們爲什麼不以ACK和SEQ共享相同字段的方式壓縮它,並且它們仍然可以通過頭中的標誌進行區分?爲什麼TCP頭包含ACK和SEQ字段?
3
A
回答
11
因爲它們不是專門使用的。下面是最重要的:連接協商,即三次握手:
Three way handshake http://upload.wikimedia.org/wikipedia/commons/c/c7/300px-Tcp-handshake.png
圖片是來自於維基共享。它展示瞭如何協商TCP連接,並顯示ACK和SEQ在同一個頭文件中一起使用以建立連接(我寫這確保答案有用,即使圖片在某一天會消失)。
0
因爲它們都可以同時出現在標題中。一個是標記正在發送的數據,另一個是發件人在下一個數據包中的期望值。有關更多信息,請參閱wikipedia。
4
由於連接是全雙工 - 一個序列數據包對等,另一個確認來自對等體的數據包。
相關問題
- 1. openvswitch在哪裏處理TCP seq和ack?
- 2. 當接收到[RST,ACK]標誌時,應爲SEQ和ACK指定什麼值?
- 3. Microchip的TCP/IP堆棧PIC18F無效包SEQ/ACK號
- 4. Wireshark,seq和ack號碼
- 5. 使用Seq No,Ack No和/或Datasize區分TCP連接
- 6. TCP數據包的MTU是否包含TCP和IPv4標頭?
- 7. 爲什麼包含標準頭文件?
- 8. JQuery DataTables和Jeditable - 字段包含html,但不應該。爲什麼?
- 9. 如何在python tcp socket中獲取IP ID,SEQ ID,ACK ID?
- 10. seq和seq有什麼區別?
- 11. 爲什麼廣播DHCP Offer和Ack?
- 12. TCP ACK在wireshark中的數據包
- 13. nginx tcp SYN包沒有收到ACK
- 14. 我有一個包含3個函數的Clojure seq。爲什麼(rest my-seq)給出「不能作爲」異常?
- 15. 爲什麼seq不好?
- 16. TCP數據包:這些額外字節的含義是什麼?
- 17. AsynchronousSocketChannel.write確保TCP ACK?
- 18. 爲什麼在TCP和IP頭中有單獨的校驗和?
- 19. Ack-Push之後的TCP Ack-Fin
- 20. Sitecore項目不包含所有字段,爲什麼?
- 21. 爲什麼Eclipse生成toString只包含非靜態字段?
- 22. 爲什麼`struct sockaddr`包含地址族字段?
- 23. 爲什麼此查詢忽略包含USA的字段?
- 24. 爲什麼Hibernate包含帶有插入的標識字段?
- 25. 爲什麼要聲明您作爲頭文件包含的類?
- 26. 爲什麼iostream包含time.h?
- 27. 爲什麼JDK包含JRE?
- 28. 爲什麼[url pathComponents]包含「/」?
- 29. 爲什麼BEGIN_COM_MAP包含DEBUG_QI_ENTRY?
- 30. Seq頭部和尾部