UDP与TCP

TCP是一种面向连接、可靠的传输层协议,确保数据的完整性和顺序,但消耗更多系统资源。UDP则是无连接的,提供快速但不可靠的数据传输,适合实时应用和低延迟需求。TCP通过三次握手建立连接,四次挥手断开连接,确保双方通信的可靠性。UDP则不保证数据到达,适合广播和对延迟敏感的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP: 一种面向连接的, 可靠的基于字节流的传输层协议

特点: 点对点通信, 可靠性高, 但是占用系统资源多, 效率低

UDP: 一种无连接的传输层协议, 面向事务的简单不可靠信息传递服务

特点: 传输不可靠, 可能丢失, 但是可以广播发送, 且开销小

在这里插入图片描述

TCP的发送端在将报文发送给接收端时, 接收端需要发送确认包给发送端, 如果发送端没有接收到确认包, 或者接收端根本就没有接收到报文, 则发送端会超时重发一个新的报文给接收端

虽然UDP开销小, 但使用UDP并不是为了提高吞吐量, 而是为了解决延迟问题, 同时短连接可以降低嵌入式终端的能耗, 对于服务器也可以减少资源的使用

TCP三次握手, 四次挥手

三次握手: client请求建立连接发送一个报文, 标志位SYN=1, 代表建立连接, 同时生成随机序列号seq(32位序列号)

server发送一个确认消息包, 标志位SYN=1, 生成一个seq, 同时标志位ACK=1, 代表确认建立连接, 同时序列号ack=seq+1(client生成的seq), 此时client已经可以没有问题, 发送的信息server可以收到, 也可以收到server发过来的信息, 但server还不知道client是否可以接收到自己发送的信息

于是需要第三次握手, 此时client发送一个报文ACK=1, 序列号ack=seq+1(server生成的seq)

在这里插入图片描述

四次挥手: client断开连接, 发送一个报文, 标志物FIN=1, 代表断开连接, 发送seq(根据之前发送的报文慢慢增长)

server收到后, 也发送一个报文, ACK=1, ack=seq+1, 确认断开连接, 此时client已经断开连接, 但是server可能还未准备好断开连接可能需要client等一会才会断开

当server准备好断开连接, 也需要重复上述两次挥手
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值