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

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

TCP与UDP区别:

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

基于TCP的应用层协议:

协议 全称 默认端口
HTTP HyperText Transfer Protocol(超文本传输协议) 80
FTP File Transfer Protocol (文件传输协议) 20用于传输数据,21用于传输控制信息
SMTP Simple Mail Transfer Protocol (简单邮件传输协议) 25
SSH Secure Shell 22
TELNET Teletype over the Network (网络电传) 23

基于UDP的应用层协议:

协议 全称 端口
TFTP Trivial File Transfer Protocol (简单文件传输协议) 69
SNMP Simple Network Management Protocol (简单网络管理协议) 通过UDP端口161接收,只有Trap信息采用UDP端口162。
NTP Network 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
在这里插入图片描述
在这里插入图片描述
如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人网站

猜你喜欢

转载自blog.csdn.net/tongkongyu/article/details/125225565