TCP vs UDP

TCPUDP
首部开销大首部开销小
可靠不可靠
面向连接无连接
面向字节流面向报文

何谓可靠?

是否具有手段以保证传输过程中,数据不会发生丢失、乱序等情况
TCP:必须经过三次握手,与对方确认连接关系。
具有:超时重传、滑动窗口、流量控制

适合的场景:
TCP:数据完整性、通信质量要求高的场景,如:下载文件、浏览网页
UDP:实时视频通讯、网络游戏

传输方式:

TCP面向字节流:
数据以:字节流的形式传递,每个TCP有一个发送缓冲区,如果字节流太长,会拆分再发送;字节流太短,会等待缓冲区中字节流到合适的时机再发送

UDP面向报文:
使用应用程序控制:应用层交给UDP多长的报文,UDP照样发送,不拆分不合并,保留报文的边界;发送一个数据包,对面就接收一个数据包。

其他协议:kcp

基于udp,通过算法实现的可靠传输协议,相比tcp主要优点是快(平均延迟降低30%-40%)

内网&外网

内网:可以直接向外网发送udp数据
外网:用nat转换向内网发送udp数据

其他——关于UDP

  1. 物联网的Coap协议基于UDP
  2. 游戏比较复杂,FPS、MOBA实时性要求较高一般采用UDP,数据校验和同步在算法上实现,除此之外也可以是TCP或者TCP+UDP
  3. udp最大单个报文长度是uint16_max
  4. 数据链路层有一个最大传输单元,任何高层协议报文都会小于这个传输单元大小,如果报文体积过大,错误信息应该逐层传递到上层协议,最好在业务逻辑层面限制udp数据包大小。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值