TCP的意义是什么?

admin 2026-09-18 06:42:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文探讨TCP协议的核心价值,通过与UDP加应用层ACK方案的对比,阐明TCP内部自动实现超时重传与保序机制,虽仍需应用层ACK确认数据到达,但已大幅简化开发者工作。文章还深入分析重传超时时间的设计挑战,包括固定超时与基于实时RTT动态计算的权衡,指出冗余重传对带宽、CPU和内存的负担。 综合评分: 75 文章分类: 网络安全,安全意识


TCP的意义是什么?

原创

车小胖谈网络 车小胖谈网络

车小胖谈网络

2026年9月16日 16:01 上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

在向socket写的时候,write函数返回成功只能代表数据已拷贝到发送缓冲区,调用方没办法感知到数据到达对端协议栈里。如果想要确保数据对端能收到,还需应用层回个ack。

那为什么我不直接用udp发送和回ack呢?我理解tcp只是暗地里帮我自动超时重试几次以及多次调用的保序,只能说是相对可靠,还得依赖应用层ack去确认。

说的非常对,TCP的那几万行代码干的确实就是题主所描述的内容。

完全可以使用UDP发送packet,对packet进行使用ID进行编号。

接收方的user app对收到的packet ID进行ACK。

发送方立马就知道该ID的packet已经被user app成功接收。

新的挑战来了。。。

每一个Tx的packet,需要缓存,直到被ACK才能释放。准备如何缓存每一个Tx Packet?

如果发出的packet迟迟没有ACK,什么时候重传?使用固定不变的Re-transmit timeout来重传?还是基于实时测量的RTT计算动态得到的Re-transmit timeout来重传? 网络的real time RTT是时刻在变化的,如果Re-transmit timeout < Real Time RTT,意味着ACK可能已经在返程的路上,已经启动packet的重传。换句话说,该packet并没有丢,可是依然被重传了。这个冗余重传的packet对Tx side,Rx side,Internet都是负担,都是减分项(bandwidth、CPU、Memory)。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:车小胖谈网络 车小胖谈网络 车小胖谈网络《TCP的意义是什么?》

TCP的意义是什么? 网络安全文章

TCP的意义是什么?

文章总结: 本文探讨TCP协议的核心价值,通过与UDP加应用层ACK方案的对比,阐明TCP内部自动实现超时重传与保序机制,虽仍需应用层ACK确认数据到达,但已大
评论:0   参与:  0