基于TCP或UDP协议的应用层协议

本文对比TCP和UDP在可靠性和效率上的区别,列举基于这两种协议的应用层协议,并聚焦DNS与HTTP/3的特例。探讨了开发中如何根据需求选择合适的传输层技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP和UDP都是传输层协议,上面是应用层,下面是网络层

TCP与UDP区别:

  • TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
  • UDP(用户数据报协议)是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

基于TCP的应用层协议:

协议全称默认端口
HTTPHyperText Transfer Protocol(超文本传输协议)80
FTPFile Transfer Protocol (文件传输协议)20用于传输数据,21用于传输控制信息
SMTPSimple Mail Transfer Protocol (简单邮件传输协议)25
SSHSecure Shell22
TELNETTeletype over the Network (网络电传)23

基于UDP的应用层协议:

协议全称端口
TFTPTrivial File Transfer Protocol (简单文件传输协议)69
SNMPSimple Network Management Protocol (简单网络管理协议)通过UDP端口161接收,只有Trap信息采用UDP端口162。
NTPNetwork Time Protocol (网络时间协议)123

应用层协议与其他层协议的关系大致如下:
在这里插入图片描述

值得注意的是,上图有一个错误,DNS协议同时使用TCP和UDP协议

  • DNS区域传输的时候使用TCP协议:

    • 辅域名服务器会定时(一般3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。区域传送使用TCP而不是UDP,因为数据同步传送的数据量比一个请求应答的数据量要多得多。
    • TCP是一种可靠连接,保证了数据的准确性。
  • 域名解析时使用UDP协议:客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。理论上说,客户端也可以指定向DNS服务器查询时用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。

还有一个值得注意的是,HTTP/1.1和HTTP/2都是基于TCP协议的,但是在2022年6月6日,HTTP/3被标准化为 RFC 9114,这意味着HTTP/3协议已经进入了稳定的状态,HTTP/3 是 HTTP 超文本传输协议的第三个主要版本,而HTTP3是基于UDP协议的
在这里插入图片描述

以下是常用端口对应的传输层协议,详情可见IANA
在这里插入图片描述
在这里插入图片描述
如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人网站

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值