美文网首页
传输层:UDP

传输层:UDP

作者: 胖达_4b7e | 来源:发表于2019-02-11 13:53 被阅读0次

在 IP 头(网络层)里面有个 8 位协议,存放数据里面到底是 TCP 还是 UDP
UDP在传输层, 拿到网络层交的数据, 上交给应用层

TCP 和 UDP 有哪些区别?

TCP 是面向连接的,UDP 是面向无连接的。
什么叫面向连接,什么叫无连接呢?在互通之前,面向连接的协议会先建立连接(TCP会三次握手)。

所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的 状态 , 是一个有状态服务

通过 TCP 连接传输的数据,

  • 无差错、不丢失、不重复、并且按序到达。 IP 包是没有任何可靠性保证的,但是 TCP 号称能做到那个连接维护的程序做的事情。
  • TCP 是面向字节的, 是 TCP 自己的状态维护做的事情。
  • TCP 有拥塞控制的(窗口)。它意识到包丢弃了或者网络的环境不好了,就会根据情况调整自己的行为,看看是不是发快了,要不要发慢点。

UDP 继承了 IP 包的特性,其他什么都不做
有什么要定制的 , 交给应用层
相信网络通路默认就是很容易送达的,不容易被丢弃的。

特点

    1. 适合广播
      不维护连接状态虽然有端口号,但是监听在这个地方,谁都可以传给他数据,他也可以传给任何人数据,甚至可以同时传给多个人数据。
    1. 头很小 (8字节 ,额外开销小)
    1. 很快
      不用建立连接,不对应用层的报文数据进行拆分, 提交到应用层的数据也不用合并再提交
      只受这些限制 :应用生成数据速度,计算机能力,传输带宽
  • 4.占用内存小
    不用维护连接的状态, 因此 嵌入式系统适合
    服务器接待的TCP连接很有限, UDP 由于是没有连接的,在异步 IO 机制引入之前,常常是应对海量客户端连接的策略。

UDP 使用场景

第一,需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用

DHCP(动态主机配置协议) 就是基于 UDP 协议的。一般的获取 IP 地址都是内网请求,而且一次获取不到 IP 又没事,过一会儿还有机会。

第二,广播
UDP 的不面向连接的功能,可以使得可以承载广播或者多播的协议。
DHCP 就是广播

第三,需要处理速度快,时延低
如视频 ,游戏 需要实时性
采用自定义的可靠 UDP 协议

常见使用UDP

  1. QUIC
    原来访问网页和手机 APP 都是基于 HTTP 协议的。
    HTTP 协议是基于 TCP 的,建立连接都需要多次交互,对于时延比较大的目前主流的移动互联网来讲,建立一次连接需要的时间会比较长,然而既然是移动中,TCP 可能还会断了重连,也是很耗时的。
    目前的 HTTP 1.1,虽然多个数据通道共享一个TCP连接的情况,但是 TCP 的严格顺序策略使得哪怕共享通道,前一个不来,后一个和前一个即便没关系,也要等着,时延也会加大。http2可以一个域名全部数据都在一个TCP连接并发

QUIC(全称Quick UDP Internet Connections,快速 UDP 互联网连接)是 Google 提出的一种基于 UDP 改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验。
QUIC 在应用层上,会自己实现快速连接建立、减少重传时延,自适应拥塞控制

  1. 流媒体

  2. 实时游戏
    维护 TCP 连接需要在内核维护一些数据结构,因而一台机器能够支撑的 TCP 连接数目是有限的, UDP 由于是没有连接的,在异步 IO 机制引入之前,常常是应对海量客户端连接的策略。
    玩家并不关心过期的数据,对实时要求较为严格的情况下,采用自定义的可靠 UDP 协议,自定义重传策略

  3. 物联网
    物联网领域终端资源少,很可能只是个内存非常小的嵌入式系统,而维护 TCP 协议代价太大;
    另一方面,物联网对实时性要求也很高,Google 旗下的 Nest 建立 Thread Group,推出了物联网通信协议 Thread,就是基于UDP 协议的。

  4. 移动通信领域
    在 4G 网络里,移动流量上网的数据面对的协议 GTP-U 是基于 UDP 的。因为移动网络协议比较复杂,而 GTP 协议本身就包含复杂的手机上线下线的通信协议。

相关文章

  • 传输层:UDP

    在 IP 头(网络层)里面有个 8 位协议,存放数据里面到底是 TCP 还是 UDPUDP在传输层, 拿到网络层交...

  • 传输层

    传输层的功能:传输层寻址和端口;无连接服务和面向连接服务 UDP协议:UDP数据报,UDP校验 TCP段:TCP连...

  • iOS面试:网络通信概念

    TCP与UDP TCP和UDP都是传输层的协议: TCP是传输控制层协议,是面向连接、可靠的,点对点的;UDP是用...

  • TCP/IP 网络模型,对应协议举例

    应用层 HTTP,FTP传输层 TCP,UDP网络层 ...

  • TCP/UDP传输

    TCP/UDP传输的数据 UDP对应用层传输的数据不做合并拆分,只是简单的加上首部后传输给网络层(不管报文有多长)...

  • 网络-传输层

    传输层协议 TCP(Transmission Control Protocol),传输控制协议 UDP(User ...

  • Unity高级-Socket

    传输层协议 TCP协议 和 UDP协议 属于传输层协议 TCP(Transmission Control Prot...

  • 2020-03-25【网络基础知识】

    HTTPS 建立连接流程 TCP&UDP 传输层协议TCP 传输控制协议UDP 用户数据报协议 一、UDP 1.特...

  • 传输层tcp/udp

    tcp tcp有相当多的控制,包括次序丢包重发等等。 确认应答(ack):发送方的数据到达接收方后,为了让发送方知...

  • 传输层之UDP

    UDP报文结构 UDP协议特点 1、不保证分组肯定到达目的地,不保证分组顺序,不保证分组内容不出错,即三不管。...

网友评论

      本文标题:传输层:UDP

      本文链接:https://www.haomeiwen.com/subject/lkhqeqtx.html