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

简介: 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等协议。


相关文章
|
26天前
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么
|
29天前
|
网络协议 网络性能优化
认识TCP和UDP的区别
重排机制:由于UDP数据包可能因网络原因而发生乱序,因此在应用层需要对接收到的数据包进行排序。
25 4
|
1月前
|
网络协议 网络性能优化
网络面试题:TCP和UDP的区别
网络面试题:TCP和UDP的区别
25 0
|
1月前
|
网络协议 Python
Python网络编程实现TCP和UDP连接
Python网络编程实现TCP和UDP连接
27 0
|
1月前
|
网络协议 网络性能优化 Python
python怎么实现tcp和udp连接
python怎么实现tcp和udp连接
16 0
|
1月前
|
网络协议 Linux
TCP 和 UDP 的 Socket 调用
【2月更文挑战第19天】
TCP 和 UDP 的 Socket 调用
|
1月前
|
网络协议 数据格式
|
1月前
|
网络协议
TCP 和 UDP 可以使用同一个端口吗?
【2月更文挑战第9天】
50 0
TCP 和 UDP 可以使用同一个端口吗?
|
2月前
|
网络协议 网络安全 开发者
掌握Python网络编程:从TCP到UDP
掌握Python网络编程:从TCP到UDP
|
2月前
|
网络协议
TCP和UDP和端口
TCP和UDP和端口
22 1