TCP与UDP区别总结

     
      UDP与TCP都是运输层的两个协议,UDP(User Datagram Protocol)用户数据报议,TCP(Transmission Control Protocol)传输控制协议。TCP传送的数据单位协议是TCP报文段(segment),UDP传送的数据单位协议是UDP报文或用户数据报。
     UDP在传送数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式;TCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
   UDP(用户数据报协议):
   UDP只在IP的数据服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。UDP提供不可靠的交付,其是无连接的,发送数据之前不需要建立连接;UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制;UDP是面向报文的,很适合多媒体通信的要求;UDP支持一对一、一对多、多对一和多对多的交互通信;UDP的首部开销小,只有8个字节。 面向报文的UDP,对于应用层交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
  TCP(传输控制协议):
   TCP是面向连接的运输层协议,每一条TCP连接只能是两个端点(endpoint)每一条TCP连接只能是点对点的(一对一),TCP提供可靠交付的服务,提供全双工通信,面向字节流。
    TCP连接是一条虚连接而不是一条真正的物理连接;TCP对应用进程一次把多长的报文发送到TCP的缓存中是不关心的;TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(前面说过,UDP发送的报文长度是应用进程给出的);TCP可把太长的数据块划分短一些再传送,TCP也可等待积累有足够多的字节后再构成报文段发送出去。

猜你喜欢

转载自kekemiaomiao.iteye.com/blog/1167335