我在这里问了之前的问题:
tcp two sides trying to connect simultaneously
我尝试了解决方案中给出的方法,在使用 netcat 发送并使用 ethereal 嗅探数据包时,我观察到当我从一侧向另一侧发送“hello”字符串时,它是在设置了推送标志的段中发送的.
谁决定设置推送标志? 在 TCP 段中设置推送或紧急标志的规则是什么? 是否可以使用套接字 API 来实现?
最佳答案
tcp 堆栈使用 PUSH 标志来基本上说“我现在完成了”。它只是表示数据段已完全由源传输。
无法在用户空间(您的套接字 API)中指示或控制它,因为这只是执行此操作的 tcp 堆栈/实现。作为紧急标志。
(来源:Richard Stevens - Tcp/ip illustrated vol 1,第 20 章)
关于tcp - 什么时候在 tcp 段中设置推送标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264154/