TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输

什么是TCP、UDP以及二者区别

TCP连接就像打电话,两者之间必须要有一条不间断的路,数据不到达对方,对方就一直等待,除非对方直接挂电话。先说的话先到,后说的话后到,是有顺序的。
UDP就像写信,发信方只管发出信件,不管对方是否收到。但是信封上必须写明地址,发信方和收信方没有通路,而是靠邮局联系。信件可能时隔很久才收到,也可能收不到,先发出的未必先到,后发出的也未必后到。

TCP是传输控制协议,提供面向连接的、可靠的字节流服务。客户端和服务端传输数据前,必须先建立TCP连接。TCP提供超时重发、丢弃重复数据、有序接收、应答确认、流量控制等保障可靠传输的功能;
UDP是用户数据报协议,是一种不可靠的、简单的面向数据报的传输层协议。它只负责把应用程序传给IP层的数据报发送出去,而不保证数据报到达。因为不建立连接,所以传输速率很快。
IP层根据端口区分是TCP报文还是UDP报文。

UDP适用场景

  1. 面向数据报方式;
  2. 传输数据大多为短消息;
  3. 拥有大量client;
  4. 对数据安全性无特殊要求;
  5. 网络负担重,且对响应速度要求高;

如何使用UDP实现可靠传输
要使用UDP构建可靠的面向连接的数据传输,就要在应用层自己手动实现一些保障可靠传输的机制,来实现类似于TCP超时重传(定时器)、有序接收(添加包序号)、应答确认(ACK应答机制)、滑动窗口流量控制(滑动窗口机制)等。目前已有的UDP可靠传输机制有UDT、RTP、RUDP等协议。

posted @   Mindtechnist  阅读(7)  评论(0编辑  收藏  举报  
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示