【48812】2024-04-21
日期:2024-06-27 09:47:48   来源:常见问题

  TCP(Transmission Control Protocol,传输操控协议)和UDP(User Data Protocol ,用户数据报协议)都归于TCP/IP协议簇。TCP/IP协议集包含了超文本传输协议(HTTP)、文本传输协议(FTP)、长途登录协议(Telnet)、internet协议(IP)、internet操控信息协议(IMCP)等,而今日要讲的传输操控协议(TCP)和用户数据报协议(UDP)正是运行在协议簇的传输层。

  TCP是面向衔接的协议,在收发数据前有必要和对方树立牢靠的衔接,树立衔接的3次握手、断开衔接的4次挥手,为数据传输打下牢靠根底;UDP是一个面向无衔接的协议,数据传输前,源端和终端不树立衔接,发送端尽可能快的将数据扔到网络上,接纳端从音讯行列中读取音讯段。

  TCP供给较为牢靠交给的服务,传输进程中选用许多办法确保在衔接上供给较为牢靠的传输服务,如编号与承认、流量操控、计时器等,确保数据无差错,不丢掉,不重复且按序抵达;UDP运用尽可能最大尽力交给,但不确保牢靠交给。

  TCP报文首部有20个字节,额定开支大;UDP报文首部只要8个字节,标题短,开支小。

  TCP协议面向字节省,将使用层报文当作一串无结构的字节省,分解为多个TCP报文段传输后,在意图站重新装配;UDP协议面向报文,不拆分使用层报文,只保存报文鸿沟,一次发送一个报文,接纳方去除报文首部后,原封不动将报文交给上层使用。

  TCP拥塞操控、流量操控、重传机制、滑动窗口等机制确保传输质量;UDP没有。

  TCP只能点对点全双工通讯;UDP支撑1对1、一对多、多对一和多对多的交互通讯。

  从上面TCP、UDP编程进程可以精确的看出,UDP 服务器端不需要调用监听(listen)和接纳(accept)客户端衔接,而客户端也不需要衔接服务器端(connect)。UDP协议中,任何一方树立socket后,都可以用sendto发送数据、用recvfrom接纳数据,不用关怀对方是不是真的存在,是否发送了数据。

  为了完成TCP网络通讯的牢靠性,添加校验和、序号标识、滑动窗口、承认应对、拥塞操控等杂乱的机制,树立了繁琐的握手进程,添加了TCP对系统资源的耗费;TCP的重传机制、次序操控机制等对数据传输有必定延时影响,降低了传输功率。TCP合适对传输功率要求低,但精确率要求高的使用场景,比方万维网(HTTP)、文件传输(FTP)、电子邮件(SMTP)等。

  UDP是无衔接的,不牢靠传输,尽最大尽力交给数据,协议简略、资源要求少、传输速度快、实时性高的特色,适用于对传输功率要求高,但精确率要求低的使用场景,比方域名转化(DNS)、长途文件服务器(NFS)等。