趣谈网络协议——UDP协议

1. TCP和UDP的区别

  • TCP是面向连接的,UDP是面向无连接的,所谓建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方的交互状态,用这样的数据结构来保证所谓的面向连接特性
  • TCP提供可靠交付,TCP传输的数据,无差错,不丢失,不重复,按顺序到达;而UDP继承了IP包的特性,不保证不丢失,不保证按顺序到达
  • TCP是面向字节流的,没头没尾;而UDP继承IP的特性,是基于数据报的,一个一个发,一个一个收
  • TCP有拥塞控制,根据网络情况自己调整发送速度;UDP就不管,应用让发就发

2. UDP包头

关键:

端口:无论应用程序用TCP还是UDP,都有监听一个端口,正是这个端口用来区分应用程序 

3. UDP的特点

  • 沟通简单
  • “轻信他人”谁都可以给它传数据,它也可以给任何人传数据,甚至同时给多个人发数据
  • 不会根据网络情况进行拥塞控制

4. UDP的三大应用场景

  • 需要资源少,网络情况较好的内网,或者对丢包不敏感的应用。比如DHCP,PXE中下载镜像用到的TFTP(内网)
  • 不需要一对一沟通建立连接,而是可以广播的应用。比如DHCP就是广播的,还有组播(IGMP包),VXLAN
  • 需要处理速度快,时延低,可以容忍少量丢包。

5. UDP应用例子

  • 网页或者APP的访问,原来通常使用的是HTTP,这是基于TCP的;QUIC是谷歌提出的一种基于UDP的改进通信协议,目的是降低时延,提供更好的用户互动体验,QUIC将建立连接,自适应拥塞控制等交给应用层
  • 流媒体协议,比如直播,现在用的比较多是RTMP,这是基于TCP的,很多直播应用基于UDP自己实现了视频传输协议
  • 实时游戏,在异步IO机制引入之前,常常是面对海量客户端连接的策略
  • LoT物联网,谷歌提出的Thread协议就是基于UDP的
  • 移动通信领域,比如4G移动网络

6. 问题总结

6.1 怎样才算一个连接?

是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方的交互状态,用这样的数据结构来保证所谓的面向连接特性(TCP更好的比喻是在码头上增加了记录人员,核查人员和督导人员,至于IP层和数据链路层,它没有任何改造。)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值