TCP和UDP的区别(面试必问)

一---导读缓存

  UDP和TCP做为运输层的两大协议,你们能够把它两形象的比喻成为进程提供服务的管家,UDP是不靠谱的一个管家,而TCP是靠谱的管家。spa

二---UDP和TCP的不一样点3d

A:通讯即时性的不一样视频

  使用UDP通讯协议的双方随时能够进行通讯,而使用TCP协议的双方,必需要通过三次握手以后才能进行通讯,而且在通讯完成后要经历四次挥手断开链接。对象

 

B:面向(或者说操做的)对象不一样blog

UDP是面向应用报文的:进程

    使用UDP协议的发送方,收到来自应用进程的报文后,加上UDP首部(源端口,目的端口,长度,检验和),UDP接收收到报文后,拆除首部,而后将数据部分交给相应的进程(根据首部的目的端口号)。路由

TCP是面向字节流的(这是实现可靠传输,流量控制,拥塞控制的基础):基础

      使用TCP协议的发送方,把应用进程发下来的报文看作字节流,而后对其一个个编号装到发送缓存中,根据发送规则,提取必定的字节,将其打包成TCP报文段进行发送(想象一下寄快递过程)。接收方接收到报文段,而后取出其中的数据载荷部分(把打包的盒子拆开),存到接收缓存中。一部分交付给应用进程打包

 

 

C:通讯的双方数量不一样

  UDP支持单播,多播,广播(一对一,一对多,一对全的通讯)。
  TCP之间仅支持单播(一对一)。

 

 

D:对数据的责任感不一样

IP协议向上(运输层)提供的是无链接,不可靠的传输服务。
若传输层使用UDP协议,那向上提供的也是无链接,不可靠的传输服务,发送方发送的UDP数据报,若接收方根据数据报首部中的校验和字段的值,检查出误码,但仅仅丢弃该数据报,其它什么也不作(不负责任),若通过路由器的时候数据报丢失,UDP接收方也是什么都不作,仅仅是丢弃改数据报。(IP电话,视频会议)

若用TCP协议,通讯双方不会出现误码,丢失,乱序,重复等状况(文件传输)

 

 

E:首部对比

 

UDP的首部仅仅包含源端口,目的端口,长度,检验和,每一个占2个字节,首部也就是8个字节。

而TCP由于提供的是可靠的,面向链接的,具备流量控制和拥塞控制,因而TCP的首部要复杂的多,以下图所示。

相关文章
相关标签/搜索