TCP和UDP之间的区别
作者:
Laura McKinney
创建日期:
2 四月 2021
更新日期:
5 可能 2024
内容
协议TCP和UDP是两个TCP / IP传输层协议。传输控制协议(TCP)和用户数据报协议(UDP)之间存在相似点和不同点。区别之一是TCP是一种面向连接的协议,因为它在传输数据之前在计算机之间建立了端到端的连接。另一方面,UDP是无连接协议,因为它在获取数据之前不会确定连接。 TCP / IP模型的传输层中存在的TCP和UDP协议。
当我们考虑在IP上运行的第3层协议时,这些协议是无连接的,未经确认的且不可靠的。因此,不可能提供保证的数据传送。这就出现了对TCP和UDP协议的需求,该协议有助于自动管理并处理拥塞控制和流控制之类的问题。
但是,设计人员还考虑将这些功能直接构建到IP中,就像以前只有一个协议TCP时一样,但是所有这些功能都是以时间和带宽为代价的。更好的解决方案是在传输层定义两个协议,并让网络层(IP)负责互连网上的基本数据移动。
因此,开发了TCP和UDP协议,其中TCP旨在提供一组丰富的服务或需要这些功能的应用程序,使用这些功能将需要一定的开销。虽然UDP的主要目的是提供某种第4层功能,但是以一种简单,易于使用和快速的方式。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | TCP协议 | UDP协议 |
---|---|---|
含义 | TCP在传输数据之前在计算机之间建立连接 | UDP将数据直接发送到目标计算机,而无需检查系统是否已准备好接收 |
扩展到 | 传输控制协议 | 用户数据报协议 |
连接类型 | 面向连接 | 连接少 |
速度 | 慢 | 快速 |
可靠性 | 高度可靠 | 不可靠 |
标头大小 | 20字节 | 8字节 |
致谢 | 它接受数据确认,并具有根据用户请求进行重传的功能。 | 它既不接受确认,也不重新传输丢失的数据。 |
协议连接设置 | 面向连接,必须在传输之前建立连接 | 无连接,无需设置即可发送数据 |
应用程序的数据接口 | 基于流 | 基于 |
重传 | 管理所有数据的传送 | 不执行 |
提供的功能可管理数据流 | 使用滑动窗口协议的流量控制 | 没有 |
开销 | 低但大于UDP | 非常低 |
数据量适用性 | 中小数据量 | 少量到大量数据 |
实施结束 | 可靠传输数据至关重要的应用程序。 | 数据传输速度至关重要的应用程序。 |
应用程序和协议 | FTP,Telnet,SMTP,IMAP等。 | DNS,BOOTP,DHCP,TFTP等。 |
TCP的定义
TCP或 传输控制协议 是一种面向连接的协议,可以在TCP / IP模型的传输层中找到。开始通信之前,它将在源计算机和目标计算机之间建立连接。
TCP使用三向握手,流,错误和拥塞控制,因此具有很高的可靠性。确保从源计算机发送的数据被目标计算机正确接收。如果万一接收到的数据格式不正确,则TCP重新传输该数据。在TCP中,使用滑动窗口系统处理传输,该系统有助于检测已确认的传输并自动重新传输。TCP执行的功能
- 寻址/多路复用 –高层应用程序进程是通过使用TCP端口确定的。该层主要在基础网络层协议的帮助下多路复用从各个进程接收的数据和数据。
- 建立,管理和终止连接 –设备遵循以下步骤来建立数据可以通过其传输的连接。建立连接后,需要进行管理,最后,在完成TCP连接之后,将其终止。
- 处理和包装数据 –此功能提供了一种机制,使数据可以从更高层发送到TCP,然后再打包到该数据中,再到目标TCP软件。驻留在接收端的软件将数据打包,然后将其提供给目标计算机上的应用程序。
- 传输资料 –在此步骤中,按照分层原则将打包的数据传输到其他设备上的TCP进程。
- 提供可靠性和传输质量服务 –它涉及允许应用程序将协议视为传输数据的可靠介质的服务和功能。
- 提供流量控制和拥塞避免功能 –此功能控制两个设备之间的数据流并处理拥塞。
以下协议使用TCP传输数据:
- HTTP(超传输协议),
- HTTPs(安全超传输协议),
- FTP(文件传输协议),
- SMTP(简单邮件传输协议)等
UDP的定义
UDP或 用户数据报协议 是在TCP / IP模型的传输层中找到的无连接协议。它既不建立连接,也不检查目标计算机是否准备好接收。它只是直接的数据。 UDP用于更快地传输数据。它的可靠性较差,因此用于传输数据,例如音频和视频文件。
UDP既不能保证数据的传输,也不能重新传输丢失的数据包。它只是一个包装协议,可帮助应用程序访问IP。
UDP执行的功能
UDP的主要任务是从高层协议中获取数据并将其放置在UDP中,然后将其移至IP进行传输。它遵循一些特定的步骤来传输数据,如下所示。
- 高层数据传输 –在此步骤中,应用程序将a发送到UDP软件。
- UDP封装 –它包括将封装到“数据”字段中。将添加UDP的标头以及源端口字段和目标端口字段。它还计算校验和值。
- 转移到IP –最后,UDP传输到IP进行传输。
以下协议使用UDP传输数据:
- BOOTP(引导协议),
- DHCP(动态主机配置协议),
- DNS(域名服务器),
- TFTP(临时文件传输协议)等
- TCP是面向连接的,而UDP是无连接的协议。
- TCP接受已发送信息的确认,因此对于传输有用数据非常可靠。另外,请重新分配丢失的数据包(如有)。而对于UDP,如果数据包丢失,它将不会请求重传,并且目标计算机会收到损坏的数据。因此,UDP是不可靠的协议。
- 与TCP相比,TCP的速度较慢,这是因为TCP在传输数据之前建立了连接,并确保数据包的正确传递。另一方面,UDP不确认是否接收到发送的数据。
- UDP的标头大小为8个字节,而TCP的标头大小则为两倍以上。此后,TCP头大小为20个字节,TCP头包含选项,填充,校验和,标志,数据偏移,确认号,序列号,源端口和目标端口等。
- TCP和UDP都可以检查错误,但是只有TCP可以纠正错误,因为它既具有拥塞又具有流控制。
结论
TCP和UDP都有其优点和缺点。 UDP更快,更简单,更有效,因此通常用于音频,视频文件。另一方面,TCP健壮,可靠,并保证以相同顺序传送数据包。
因此,我们得出结论,TCP和UDP对于数据传输都是必不可少的。