TCP与UDP

TCP——传输控制协议

  • TCP是面向连接的传输层协议,在使用前要建立TCP连接,在数据传输完毕后要释放连接;
  • 每一条TCP连接只能是点对点的;
  • TCP提供可靠交付的服务,保证数据无差错、不丢失、不重复且按序到达;
  • TCP提供全双工通信;
  • TCP是面向字节流的,TCP把应用层交付下来的数据看成一连串无结构的字节流,根据对方的接收窗口值和当前的拥塞窗口来决定一个报文段应该包含多少字节,因此有可能对应用层交付下来的数据进行切分;

UDP——用户数据报协议

  • UDP是无连接的,双方无需建立与释放连接;
  • UDP不保证可靠交付;
  • UDP是面向报文的,对应用层交付下来的数据,既不合并也不拆分。在发送方,UDP在数据中添加首部后就向下交付给网络层;在接收方,UDP对网络层交上来的数据,在去除首部后就原封不动地交付给应用层。
  • UDP支持一对一、一对多、多对一和多对多的交互通信;
  • UDP没有拥塞控制,比较适合实时应用;
  • UDP首部开销小,仅有8个字节;

 

误区:UDP是无连接的,如何知道它要与谁进行数据传输?

  实际上,应用与应用之间的数据传输过程可分为两个部分:

  • 主机到主机之间的数据传输:由UDP协议底层的网际协议(IP)来负责。也就是说,两台主机的通信是由网络层负责的,由双方IP地址决定谁与谁通信;
  • 主机到应用的数据传输:  UDP首部包含了源端口与目的端口,这样就定位了双方处理数据的具体进程;

  这里的“无连接”只是不用像TCP那样每次建立/释放连接。

 

  

posted @ 2022-07-13 17:50  ˙鲨鱼辣椒ゝ  阅读(58)  评论(0)    收藏  举报