首页 > 科技 > 正文

一文读懂TCP、UDP协议区别和应用场景 TCP和UDP的区别 TCP和UDP的编程步骤 TCP和UDP的使用场景

日期:2019-12-04 07:14:56   来源:互联网   编辑:小TT   阅读人数:979
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇。TCP/IP协议集包括了超

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

一文读懂TCP、UDP协议区别和应用场景 TCP和UDP的区别 TCP和UDP的编程步骤 TCP和UDP的使用场景(图1)

OSI协议模型、TCP/IP协议模型

TCP和UDP的区别

连接性

TCP是面向连接的协议,在收发数据前必须和对方建立可靠的连接,建立连接的3次握手、断开连接的4次挥手,为数据传输打下可靠基础;UDP是一个面向无连接的协议,数据传输前,源端和终端不建立连接,发送端尽可能快的将数据扔到网络上,接收端从队列中读取段。

可靠性

TCP提供可靠交付的服务,传输过程中采用许多方法保证在连接上提供可靠的传输服务,如编号与确认、流量控制、计时器等,确保数据无差错,不丢失,不重复且按序到达;UDP使用尽可能最大努力交付,但不保证可靠交付。

报文首部

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

一文读懂TCP、UDP协议区别和应用场景 TCP和UDP的区别 TCP和UDP的编程步骤 TCP和UDP的使用场景(图2)

UDP报文结构

一文读懂TCP、UDP协议区别和应用场景 TCP和UDP的区别 TCP和UDP的编程步骤 TCP和UDP的使用场景(图3)

TCP报文结构

报文传输

TCP协议面向字节流,将应用层报文看成一串无结构的字节流,分解为多个TCP报文段传输后,在目的站重新装配;UDP协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文,接收方去除报文首部后,原封不动将报文交给上层应用。

吞吐量控制

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

双工性

TCP只能点对点全双工通信;UDP支持一对一、一对多、多对一和多堆垛的交互通信。

TCP和UDP的编程步骤

一文读懂TCP、UDP协议区别和应用场景 TCP和UDP的区别 TCP和UDP的编程步骤 TCP和UDP的使用场景(图4)

TCP编程步骤

一文读懂TCP、UDP协议区别和应用场景 TCP和UDP的区别 TCP和UDP的编程步骤 TCP和UDP的使用场景(图5)

UDP编程步骤

从上面TCP、UDP编程步骤可以看出,UDP 端不需要调用监听(listen)和接收(accept)客户端连接,而客户端也不需要连接端(connect)UDP协议中,任何一方建立socket后,都可以用sendto发送数据、用recvfrom接收数据,不必关心对方是否存在,是否发送了数据。

TCP和UDP的使用场景

为了实现TCP网络通信的可靠性,增加校验和、序号标识、滑动窗口、确认应答、拥塞控制等复杂的机制,建立了繁琐的握手过程,增加了TCP对资源的消耗;TCP的重传机制、顺序控制机制等对数据传输有一定延时影响,降低了传输效率。TCP适合对传输效率要求低,但准确率要求高的应用场景,比如万维网HTTP文件传输FTP电子等。

UDP是无连接的,不可靠传输,尽最大努力交付数据,协议简单、资源要求少、传输速度快、实时性高的特点,适用于对传输效率要求高,但准确率要求低的应用场景,比如域名转换(DNS)远程文件(NFS)等。

本文相关词条概念解析:

报文

报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文的认证方式有传统加密方式的认证、使用密钥的报文认证码方式、使用单向散列函数的认证和数字签名认证方式。报文也是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据。完全与系统定义,或自定义的数据结构同义。

  • 网友评论
返回顶部