UDP协议

后端面试灵魂之问:
TCP 和 UDP 有哪些区别?

  • TCP是面向连接的,UDP是面向无连接的。
  • 什么是面向连接? 在互通之前,面向连接的协议会先建立连接。所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态用这样的数据结构来保证所谓的面向连接性。
  • UDP继承了IP包的特性,不保证不丢失,不保证按顺序到达。
  • TCP是流式套接字,之所以变成流,这也是TCP自己状态维护做的事情。
  • TCP是可以有拥塞控制的,UDP是没有的
  • TCP是一个有状态的服务,UDP是一个没有状态的服务

MAC层定义了本地局域网的传输行为,IP层定义了整个网络端到端的传输行为。二层叫帧,三层叫包,四层叫段。

发送UDP包的时候,发现MAC地址匹配,于是就取下来,将剩下的包传给IP层代码把IP头取下来,发现IP匹配。怎么知道一个包是TCP的还是UDP的?IP头部里面有一个8位协议,这里会存放到底是TCP还是UDP。无论是TCP还是UDP传输数据,都要监听一个端口,TCP和UDP里面都有端口号,根据端口号,将数据交给相应的应用程序。
UDP的包头:
在这里插入图片描述UDP的三大特点:

  • 机制简单
  • 不会建立数据连接,通过端口号可以和任何人通信
  • 不会根据网络的状况,自动调节收发

UDP的三大使用场景:

  • 需要资源少,在网络情况比较好的内网或者对于丢包不敏感的应用。应用举例:
    DHCP协议就是基于UDP协议的,一般的获取IP地址都是内网请求,而且一次获取不到IP又没事,过一会还有机会。PXE可以在启动的时候自动安装OS,操作系统镜像的下载使用的TFTP,这个也是基于UDP协议的
  • 不需要一对一沟通,建立连接,而是可以广播的应用。应用举例:DHCP就是一种广播的形式,就是基于UDP协议的。
  • 需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,一直发

应用到UDP的一些协议;

  • QUIC(全称Quick UDP Internet Connections,快速 UDP 互联网连接)
  • 很多直播应用,都基于 UDP 实现了自己的视频传输协议。
  • 游戏对实时要求较为严格的情况下,采用自定义的可靠 UDP 协议,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响
  • 物联网通信协议 Thread,就是基于 UDP 协议的
  • 移动流量上网的数据面对的协议 GTP-U 是基于 UDP 的

总结:

  • 如果将 TCP 比作成熟的社会人,UDP 则是头脑简单的小朋友。TCP 复杂,UDP 简单;TCP 维护连接,UDP 谁都相信;TCP
    会坚持知进退;UDP 愣头青一个,勇往直前;
  • UDP 虽然简单,但它有简单的用法。它可以用在环境简单、需要多播、应用层自己控制传输的地方。例如 DHCP、VXLAN、QUIC 等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值