TCP协议与UDP协议的区别

一、什么是TCP和UDP协议?

TCP:

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、面向字节流的传输层通信协议。

UDP:

用户数据报协议(UDP,UDP,User Datagram Protocol)是一种无连接的 、不可靠交付的传输层通信协议。

二、为什么说TCP是可靠的?

UDP的首部格式:

TCP首部格式:

  1. 校验和:TCP将保持它首部和数据的检验和。这是一个端到端的校验和,目的是检测数据在传输过程中正确性。如果校验出错,接收方会丢弃该报文段并不确认收到该报文段。
  2. 序列号、确认应答:序列号是TCP报文段里的第一个数据的编号,为了用于TCP通过确认应答机制实现可靠的数据传输。确认应答保存在TCP首部的确认号中,发送方发送数据之后会等待接收方的确认应答,有确认应答就说明数据已成功发送到接收方,否则,数据很大可能丢失了。
  3. 连接管理:即TCP在进行请求连接和释放连接是的三次握手和四次挥手。
  4. 流量控制:接收方通过滑动窗口来控制发送发发送报文的速度。
  5. 拥塞控制:发送方对整个网络拥塞度的控制,通过慢开始、拥塞避免、快重传、快恢复四个算法来保证网络的通畅。

三、TCP的三次握手

        1.为什么是三次握手?

        在建立TCP连接过程中的前两次握手:①客户端向服务器发出建立连接的请求、② 服务器向客户端确认这个请求,足以证明客户端与服务器之间的网络是畅通的。    TCP协议的3次握手的作用是为了在建立连接时,避免重复连接,防止旧的重复连接引起连接混乱问题。另外,通过三次握手,可以得到一个确认的可靠初始化序列号seq,用于进行可靠性传输。而如果只有2次握手,则无法初始化序列号seq。综上所述,TCP协议最少需要通过3次握手建立连接。当然, TCP 连接也通过4次握手或5次握手建立连接,实现 TCP 连接的稳定性,但3次握手是最节省资源的连接方式。

        2.三次握手的过程

第一次握手:

        客户端向服务端发送一个首部为SYN=1,ACK=0的报文,请求建立连接。

第二次握手:

        服务端向客户端发送一个首部为SYN=1,ACK=1的报文,表示同意建立连接。

第三次握手:

         客户端向服务端发送一个首部为ACK=0的报文,表示收到并建立连接。

四、TCP的四次挥手

第一次挥手:

           客户端向服务端发送一个首部为FIN=1,ACK=0的报文,请求释放连接。

第二次挥手:

           服务端向客户端发送一个首部为ACK=1的报文,表示已收到。

第三次挥手:

          服务端向客户端发送一个首部为FIN=1,ACK=1的报文,表,确认释放连接。

第四次挥手:

           客户端向服务端发送一个首部为ACK=1的报文,表示确认释放连接。

五、TCP和UDP的区别

是否面向连接传输可靠性传输效率所需资源首部开销应用场景
TCP可靠20-60字节要求通信数据可靠
UDP不可靠8字节要求通行速度快
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值