网络 —— TCP和UDP区别

文章目录

  • 网络 —— TCP和UDP区别
    • UDP 简介
      • UDP 报文结构
      • UDP 特点
        • 面向非连接
        • 不维护连接状态,支持同时向多个客户端传输相同的消息
        • 数据包报头只有8个字节,额外开销小
        • 吞吐量只受限于数据生成速率、传输速率以及机器性能影响
        • 尽最大努力交付,不保证可靠交付,不需要维护复杂的链接状态表
        • 面向报文,不对应用程序提交的报文信息进行拆分或者合并
    • TCP和UDP区别
      • 面向连接 VS 无连接
      • 可靠性
      • 有序性
      • 速度
      • 量级

网络 —— TCP和UDP区别

UDP 简介

UDP 报文结构

网络 —— TCP和UDP区别_第1张图片

  • Source Port
    源端口
  • Destination Port
    目标端口
  • length
    数据包长度
  • Checksum
    奇偶校验值
  • data octets…(optional)
    用户数据

UDP 特点

UDP不像TCP那样支持错误重传、滑动窗口等精细控制。

面向非连接

非连接协议,传输数据前源端和终端没有建立连接,当发起传送时,通过抓取来自应用程序端的数据,并尽可能快的把它扔到网络上,在发送端,UDP传输的速度仅受应用程序生成数据的速度、计算机的能力、以及传输带宽的限制,接收端UDP把每个消息段放入队列中,应用程序每次从队列中读取一个消息段。

不维护连接状态,支持同时向多个客户端传输相同的消息

由于传输数据不建立连接,因此不需要维护连接状态(包括收发状态),一台服务器可同时向多个客户机传输相同的消息。

数据包报头只有8个字节,额外开销小

UDP信息报头只有8个字节,相对于TCP报头20个字节的额外开销小很多。

吞吐量只受限于数据生成速率、传输速率以及机器性能影响

吞吐量不受拥挤控制算法的调节影响,只受应用软件数据的速率、传输带宽、源端和终端主机性能的限制。

尽最大努力交付,不保证可靠交付,不需要维护复杂的链接状态表

面向报文,不对应用程序提交的报文信息进行拆分或者合并

UPD是面向报文的,发送方UDP对应用程序的报文在添加完报文头后,就向下交付给IP层,既不拆分也不合并,而是保留这些报文的边界,因此应用程序需要选择合适的报文大小。即UPD将大部分操作交由上层解决。

TCP和UDP区别

TCP和UDP是OSI运输层中的协议,TCP提供可靠传输,UDP常用于网络和细节控制交于应用层控制的传输。区别如下:

面向连接 VS 无连接

  • TCP 面向连接
    TCP有三次握手
  • UDP 无连接
    UDP适合消息的多波发布,从单个点向多个点传输信息

可靠性

  • TCP 可靠
    利用握手、确认、以及重传机制,提供了可靠性保证
  • UDP 不可靠
    可能丢失,不清楚是否有成功传输

有序性

  • TCP 有序
    利用序列号,保证了消息的顺序交付,到达可能无序,但TCP最终会排序
  • UDP 无序
    不具备有序性

速度

  • TCP 慢
    需要创建连接,保证消息的可靠性和有序性
  • UDP 快
    更适合对速度敏感的业务场景,例如:在线视频媒体、多远广播、在线游戏等

量级

  • TCP 重量级
    TCP头20个字节
  • UDP 轻量级
    UDP头8个字节

你可能感兴趣的:(网络,弗兰克与网络安全)