网工工作中经常会遇到很多应用协议,比如https、DNS、FTP等。知道这些协议,但是否有深究这些协议是通过TCP还是UDP传输的吗?阿祥后面会一一介绍,整理出来,希望能帮助大家了解这些协议。

在整理这些协议前,我们先来了解网络协议中TCP和UDP的区别以及它们各自的作用,方便对网络协议有更深的了解。

TCP 和 UDP 各自的作用


TCP 就像一个谨慎可靠的送货员。它确保每一个数据包都准确无误、按顺序地到达目的地。通过三次握手建立连接、数据包确认、超时重传、流量控制和拥塞控制等机制,TCP为应用程序提供了一条可靠的、有序的字节流通道。这非常适合那些对数据完整性和准确性要求高的应用,比如网页浏览(HTTP/S)、文件传输(FTP)、电子邮件(SMTP/POP3)等。

UDP 则像一个追求效率的投递手。它不建立连接,直接将数据报发送出去,不保证它们一定能到达、按序到达或不重复。这种方式开销小、延迟低、传输效率高。它非常适合那些对实时性要求高,可以容忍少量数据丢失的应用,比如在线视频/语音通话、实时游戏、域名解析(DNS)、动态主机配置(DHCP)等。

为什么TCP和UDP都需要?


既然TCP如此可靠,为什么还需要UDP呢?反过来,UDP如此高效,为什么TCP不学学呢?

这恰恰体现了计算机网络设计中的权衡思想。不同的应用场景有不同的核心需求:

追求可靠 vs. 追求实时:发送一份重要文件时,你希望一个字节都不错(TCP)。而在视频通话时,偶尔丢几帧画面远比卡顿等待重传要能接受(UDP)。

连接开销 vs. 简单快速:TCP建立和维护连接需要额外的时间和资源。对于DNS查询这种“一问一答”式的简单交互,如果每次都要握手,效率就太低了。

网络资源占用:TCP的拥塞控制机制会在网络不好时主动降低发送速率。而UDP没有这种限制,适合音视频广播等需要恒定速率发送数据的场景。

因此,TCP和UDP是互补关系,而非替代关系。它们共同满足了互联网应用多样化的需求。

常见UDP设计和传统TCP设计的可靠传输协议详解

应用协议整理


了解了TCP和UDP两种协议的原理和适用的场景,我们这下就好整理对应的应用协议了,如下表:

使用TCP传输的应用协议

作用

HTTP/HTTPS

用于浏览网页。HTTP 传输明文,HTTPS 在 HTTP 基础上通过 SSL/TLS 提供加密。

FTP

用于在客户端和服务器之间进行文件传输,包括上传和下载。

SMTP

用于发送电子邮件

POP3/IMAP

都用于从邮件服务器接收邮件。POP3 通常下载到本地并删除服务器副本,IMAP 则在服务器上管理邮件,支持多设备同步。

SSH

提供安全的加密远程登录和命令执行服务,常用于系统管理。

Telnet

提供明文远程登录服务,因不安全已较少使用,多被 SSH 取代。

TCP和UDP都可能有

作用

DNS

域名系统,将人类可读的域名(如 www.example.com)解析为机器可读的 IP 地址。多数查询使用 UDP,区域传输等使用 TCP。

使用UDP传输的应用协议

作用

DHCP

动态主机配置协议,为网络中的设备自动分配 IP 地址、子网掩码、默认网关等网络配置参数。

SNMP

简单网络管理协议,用于监控和管理网络设备(如路由器、交换机、服务器)的状态和性能。

TFTP

简单文件传输协议,提供轻量化的文件传输功能,常用于网络设备升级或无盘工作站启动等场景。

RTP/RTCP

实时传输协议 用于传输实时音视频数据(如视频会议、流媒体),其伴生协议 RTCP 负责监控传输质量。

不想错过文章内容?读完请点一下“在看图片,加个关注”,您的支持是我创作的动力

期待您的一键三连支持(点赞、在看、分享~)

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐