如果仅使用TCP层的应答机制,能否实现“有且仅有一次”的消息传输功能

不可以,这个问题tcpip卷一里详细讨论过。ack只能表示对方的ip栈受到了数据,并不能表示应用层处理了消息。有点类似红蓝军问题,并且对方收到了应用层的ack,也不能保证对方应用层在处理前不崩溃。其次怎么通知对方 我收到了你的应用层ack 又是一个新的红蓝军问题。从原理看这是一个鸡和蛋的问题,从实际看发一个应用层ack才好了,如果超时就再发一次。
■网友
数据包传送不能丢失…这不是tcp协议能做到的吧…不只是tcp, 物理层以上的协议们都好委屈
■网友
需求挺奇怪的,tcp 重传数据应用又不知道。用TCP又不让重传,tcp太委屈了。
■网友
这个是不是可以解决ddos呢?广播数据,仅一次握手?


    推荐阅读