应用层协议

本文详细介绍了应用层协议,包括域名系统DNS、文件传输协议FTP、简单邮件传送协议SMTP、超文本传输协议HTTP、简单网络管理协议SNMP及远程登录协议Telnet的功能与工作原理,并对比了Samba、FTP和NFS之间的差异。

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

应用层协议

应用层协议(application layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。

分类

(1)域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。

(2)文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。

FTP是一种文件传输协议,它支持两种模式:一种方式叫做 Standard (也就是 Active,主动模式),一种是 Passive (也就是 PASV,被动模式)。 Standard 模式是 FTP 的客户端发送 PORT 命令到 FTP 服务器。Passive 模式是 FTP 的客户端发送 PASV 命令到 FTP 服务器。两种方式中数据和控制链路都是分开传输的,惟一的区别在于主动模式由服务器端发起数据链路的链接请求,而被动模式由客户端发起数据链路的链接请求。

FTP 通信过程中它的控制链路和数据链路不是在同一个端口进行通信的,而是在两个不同的 端口独立进行通信。首先由客户端向服务器发起控制链接的请求,当和服务器建立控制链接成功之后,在主动模式下客户端将会发一个端口号给服务器,告诉当前这次传输服务器所使用的数据传输端口,服务器收到这个信息后就向客户端发起数据链接请求,成功后进行当前这次的数据传输。在当前传输完成之后,该数据链路就被拆除了,如果客户端进行一次新的传输,则向服务器发送一个新的端口号,重新建立链接。在整个过程中,控制链路的链接一直都存在,直到 FTP 的整个通信过程结束,而数据链路每一次传输就需要建立一次新的链接。而被动模式过程和上述通信过程差不多,只是由客户端发起数据链路的建立请求。

在 FTP 交互的过程中,客户端通过命令字来告诉服务器相关的信息,常用的有访问控制命令 USER,PASS,CWD,QUIT 等八种;传输参数命令 PORT,PASV,TYPE, STRU,MODE 五种;FTP 服务命令 RETR,STOR,LIST,ABOR 等二十种。 服务器则通过一些状态码告诉客户端当前服务器的反馈状态。一般 2xx 表示当前的操作成功,3xx 表示权限问题,4xx 表示文件问题,5xx 表示服务器问题。

(3)简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能

SMTP是一种提供可靠且有效电子邮件传输的协议。SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,SMTP 服务器在默认端口 25 上监听客户请求,主要用于传输系统之间的邮件信息。

SMTP 交互过程

比较简单,首先客户端向服务器的 SMTP 服务端口发起请求,通过三次握手建立链接。然后服务器返回 220 的状态码告诉客户端当前已经准备好服务,客户端收到该状态码后向服务器发出 HELO 或者 EHLO 的命令告诉服务器该客户端需要的服务类型,其中 HELO 是默认的 SMTP 服务,EHLO 要求除了默认的服务之 外还要支持扩展服务。当服务器告诉客户端它所支持的服务之后,双方用命令字和状态码进行交互。

(4)超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。

是一个属于应用层的面向对象的协议,它是基于 TCP(Transfer Control Protocol, 传输控制协议)的可靠传输,采用的是客户端/服务器的工作模式。在 HTTP 通信过程中,首先由客户端向服务器发起建立链接的请求,通过 TCP三次握手来完成,然后客户端向服务器发出请求,告诉服务器想得到的信息。服务器通过响应返回客户端需要的信息。最后通过 TCP 四次握手关闭链接,从而完成一次基本的通信过程。

(5)简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。

(6)远程登录协议(Telnet):用于实现远程登录功能。

 

Samba、FTP、NFS比较

共同点是都可以在网络中共享文件信息。区别如下:
Samba主要用于局域网中Windows和Linux系统之间的文件共享
FTP主要用于Internet上文件的上传和下载
NFS主要用于局域网中Linux系统之间的文件共享

Visual Studio Code 是由微软开发的一款免费、开源、跨平台的现代化轻量级代码编辑器,自发布以来迅速成为全球开发者最受欢迎的工具之一。它结合了编辑器的轻便性和集成开发环境(IDE)的强大功能,支持多种编程语言和开发场景,核心特点: 1. 跨平台支持 可在 Windows、macOS 和 Linux 上运行,保持一致的用户体验。 2. 轻量级与高性能 启动速度快,占用资源少,适合处理大型项目或低配置设备。 3. 智能代码补全 内置 IntelliSense(智能感知),提供代码提示、参数信息、快速修复等功能,支持 JavaScript、TypeScript、Python、C++ 等主流语言。 4. 内置终端 直接在编辑器内打开集成终端(支持 PowerShell、CMD、Bash 等),方便执行命令行操作。 5. 调试工具 内置调试器,支持断点、变量监视、调用堆栈查看等,无需离开编辑器即可调试代码。 6. Git 集成 直接通过侧边栏管理 Git 仓库,支持提交、分支切换、冲突解决等操作。 7. 丰富的扩展生态系统 通过 Extensions Marketplace 可安装数千款插件,扩展功能包括: 语言支持:如 Java、Go、Rust 等。 主题与图标:自定义界面风格。 工具集成:如 Docker、Kubernetes、数据库连接等。 效率工具:如 REST Client、Live Server 等。 8. 自定义与主题 支持修改键盘快捷键、界面主题、文件图标等,打造个性化开发环境。 9. 多光标编辑 按住 Alt(Windows/Linux)或 Option(macOS)点击可添加多个光标,同时编辑多处代码。 10. 远程开发支持 通过 Remote - SSH、Remote - Containers 等扩展,可直接连接远程服务器或开发容器,实现无缝协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值