TCP和UDP各自特点,两者的区别?

什么是有连接,什么是无连接?

  • 有连接
    • 假如A和B需要进行一个电话通信
    • 在进行通话前A或B需要先拨号建立连接,连接建立成功之后才能进行通信
    • 通信结束之后要把电话挂断,即结束连接
  • 无连接
    • A和B在通信时并不需要建立连接,只要在想发送数据时可以直接将数据发送出去

UDP协议的特点

UDP(User Datagram Protocol:用户数据报协议)

UDP协议位于IP数据报里面,结构分为两部分:UDP首部和UDP的数据报,数据报是应用层传输过来的完整数据,UDP协议不

会对数据进行任何处理,会直接把数据封装到UDP的报文里面去。

  • 1)UDP是无连接的传输层协议;
  • 2)UDP使用尽最大努力交付,不保证可靠交付;
    • 即不能保证数据在网络中是否丢失
  • 3)UDP是面向报文传输的,对应用层传输过来的数据不会进行任何处理(不合并,不拆分,保留原报文的边界);
  • 4)UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;
    • 适用于一些实时场景,如直播、视频会议等;
  • 5)UDP支持一对一,一对多,多对多的交互通信;
  • 6)UDP的首部开销很小,总共只有8个字节;

TCP协议的特点

TCP(Transmission Control Protocol:传输控制协议)

TCP协议位于IP数据报里面,分为TCP首部和TCP数据报的数据两部分。

  • 1)TCP是面向连接的传输层协议。也就是说,在双方传输数据之前,必须先建立起连接,传输完数据后要结束连接;
    • 如三次握手就是建立连接的过程,四次挥手就是结束连接;
    • 比如两个人打电话,通话前需要拨号建立连接,通话结束后要挂机释放连接;
  • 2)每一条TCP连接只能有两个端点,即点对点通信(一对一);
  • 3)TCP提供可靠的传输服务;通过TCP连接传送的数据,无差错、不丢失、不重复、按序到达;
  • 4)TCP提供全双工的通信;
    • TCP允许通信双方的应用进程在任何时候都可以发送数据;因为TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
    • 简单来说,两个计算机在连接的时候,都可以同时地通过连接发送数据或接收数据
  • 5)TCP是面向字节流的协议;
    • 虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP不把它看成一块数据,而是把这些数据仅仅看成是一连串无结构的字节流。

TCP和UDP区别

TCPUDP
传输可靠性可靠性传输不可靠
是否面向连接面向连接无连接
是否保证数据有序保证数据有序不保证数据有序
传输速度
传输形式字节流数据报文段
资源开销
首部字节长度20字节8字节
是否有流量控制和拥塞控制没有

TCP是面向连接的协议,在两台机器进行通信时,必须先建立连接,通信结束之后要释放连接。TCP要通过三次握手建立连接,通过四次挥手释放连接;因为TCP提供可靠的传输服务,在数据传递时,TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,确保数据能完整地按时到达接收端。接收端收到数据之后会向发送端发送一个ACK响应,告诉发送端我已经收到数据。

UDP在传输数据之前不需要建立连接,接收端收到数据之后也不需要向发送端进行响应,所以UDP是不可靠的。但是TCP也因为提供这些可靠服务而增大的网络的开销,传输的速度相比UDP来说较慢。

TCP和UDP各自适用的场景

  • 当要求通信数据可靠时,选择TCP协议;
    • 例如文件传输,邮件传输,金融交易,可靠通信,消息队列等;
  • 当要求传输速度,不要求数据可靠时,选择UDP;
    • 适合多媒体信息分发的场景,如直播,视频,语音,实时信息(股票走势)等;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值