TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
什么是TCP、UDP以及二者区别
TCP连接就像打电话,两者之间必须要有一条不间断的路,数据不到达对方,对方就一直等待,除非对方直接挂电话。先说的话先到,后说的话后到,是有顺序的。
UDP就像写信,发信方只管发出信件,不管对方是否收到。但是信封上必须写明地址,发信方和收信方没有通路,而是靠邮局联系。信件可能时隔很久才收到,也可能收不到,先发出的未必先到,后发出的也未必后到。
TCP是传输控制协议,提供面向连接的、可靠的字节流服务。客户端和服务端传输数据前,必须先建立TCP连接。TCP提供超时重发、丢弃重复数据、有序接收、应答确认、流量控制等保障可靠传输的功能;
UDP是用户数据报协议,是一种不可靠的、简单的面向数据报的传输层协议。它只负责把应用程序传给IP层的数据报发送出去,而不保证数据报到达。因为不建立连接,所以传输速率很快。
IP层根据端口区分是TCP报文还是UDP报文。
UDP适用场景:
- 面向数据报方式;
- 传输数据大多为短消息;
- 拥有大量client;
- 对数据安全性无特殊要求;
- 网络负担重,且对响应速度要求高;
如何使用UDP实现可靠传输
要使用UDP构建可靠的面向连接的数据传输,就要在应用层自己手动实现一些保障可靠传输的机制,来实现类似于TCP超时重传(定时器)、有序接收(添加包序号)、应答确认(ACK应答机制)、滑动窗口流量控制(滑动窗口机制)等。目前已有的UDP可靠传输机制有UDT、RTP、RUDP等协议。
标签:
网络协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了