UDP协议以及与TCP区别

UDP和TCP协议都属于传输层协议,负责完成网络中端到端之间的通信,其中UDP协议相对比较简单,但是有些琐碎的点还是值得总结的,另外一个UDP/TCP的区别也算是一个高频考点了,因此,本文主要会总结下UDP协议的注意点,以及和TCP的区别,而TCP内容涉及太多了,会另外再开一篇博客总结的。


谈协议,我们直接先看UDP报文是怎么样的,根据图来学习理解UDP。

UDP协议以及与TCP区别

UDP协议以及与TCP区别

UDP的首部一共是8个字节,分别是源端口,目的端口,UDP长度,UDP检验和。其中源端口,目的端口标识了两个主机上的进程(如果目的端口错误则丢失报文),UDP长度通常为8字节,检验和则是用来检测UDP数据报在传输中是否有错,有错即丢失。

需要注意的是:

UDP协议以及与TCP区别


TCP和UDP的区别:

  1. UDP是面向无连接的,TCP必须要建立连接
  2. UDP是尽最大努力交付(不可靠交付), TCP有专门的可靠传输机制
  3. UDP是面向报文段,一次性交付一个报文段(如果太长只会在IP层分片),TCP是面向字节流的,TCP对于数据只看作是无结构的字节流。
  4. UDP支持一对一,一对多,多对一,多对多的通信,TCP只支持点对点通信
  5. UDP首部只有8个字节,开销小,TCP一般至少20字节
  6. UDP没有拥塞机制,网络拥塞不会使得UDP发送速率变低,当然这样可能会导致网络拥塞大家都没法接收数据,TCP则有拥塞避免算法等等