应用层
一、应用层的基本概念
1.应用层的基本概述
应用层对应用程序的通信提供服务。在应用层的协议需要规定:
1.应用进程交换的报文类型,请求还是响应?
2.各种报文类型的语法,如报文中的各个字段及其详细描述。
3.字段的语义,即包含在字段中的信息的含义。
4.进程何时、如何发送报文,以及对报文进行响应的规则。
在这些协议的基础上,应用层需要实现以下功能:
1.文件传输、访问和管理
2.电子邮件
3.虚拟终端(通常用于服务器管理、远程登录等场景,能够方便地远程控制计算机而无需物理接入)
4.查询服务和远程作业登录
2.网络应用模型
应用层最常用的网络应用模型分别为客户/服务器(Client/Server)模型以及P2P(Peer-to-Peer)模型。
(1)客户/服务器模型
服务器是提供计算服务的设备。
1.永久提供服务
2.具有永久性的访问地址/域名
客户机是请求计算服务的主机。
1.与服务器通信,使用服务器提供的服务
2.间歇性接入网络
3.可能使用动态IP地址
4.不与其他客户机直接通信(主机发送的数据需要通过服务器再转发给另外一台主机)
使用客户/服务器的相关应用:Web,文件传输FTP,远程登录,电子邮件
(2)P2P模型
1.在P2P模型中不存在永远在线的服务器,只有主机,每个主机既可以提供服务,也可以请求服务(相当于每台主机既是客户机也是服务器)。
2.任意端系统/节点之间可以直接通讯。
3.节点间歇性接入网络。
4.节点可能改变IP地址。
5.可扩展性好:P2P系统具有自管理的特点,节点之间可以动态地加入或离开网络,系统可以自适应地调整网络拓扑结构和资源分配。这种自管理性使得系统在规模扩大时更容易维护和管理。
6.网络健壮性强: P2P系统没有单点故障,节点之间可以直接通信和共享资源,不依赖于中心服务器(节点之间是对等的关系)。即使某些节点离线或发生故障,其他节点仍然可以继续工作,保持系统的可用性和正常运行。
使用P2P模型的相关应用:文件共享、区块链、内容分发网络、即时通讯和视频流媒体等。
二、应用层的核心功能
- 提供用户接口和服务 - 应用层直接面向用户,提供各种网络应用服务,如电子邮件、文件传输、网页浏览等
- 实现端到端的通信 - 在通信两端的应用程序之间建立逻辑连接,确保数据能够按照预期格式正确传输和接收
- 数据格式转换和表示 - 处理不同系统之间的数据格式转换,确保数据能被正确解释
- 会话管理 - 建立、维护和终止应用程序之间的会话连接
- 提供应用协议 - 实现各种应用层协议,如HTTP(网页)、SMTP/POP3/IMAP(电子邮件)、FTP(文件传输)、DNS(域名解析)等
- 数据加密和安全 - 在应用层实现数据加密、身份验证等安全功能
- 错误控制和恢复 - 在应用级别检测和处理错误,确保应用程序能够从错误中恢复
- 资源共享和访问控制 - 管理网络资源的共享和访问权限
应用层是OSI七层模型或TCP/IP四层模型中最高的一层,它使网络对用户透明,让用户能够方便地使用网络服务而不必关心底层的实现细节。
三、应用层主要协议
1. 超文本传输协议(HTTP/HTTPS)
HTTP(超文本传输协议)是Web应用的基础,运行在TCP之上,默认端口80。采用请求-响应模型,客户端发请求、服务器返回响应。
- HTTP/1.1:引入持久连接、管道机制、主机头字段,提升传输效率。
- HTTPS:HTTP的安全版本,通过SSL/TLS加密(默认端口443),提供数据加密、服务器身份验证、消息完整性保护。
- HTTP/2:引入多路复用、服务器推送等优化,减少延迟。
- HTTP/3:基于QUIC协议,进一步提升性能(如0-RTT连接建立)。
2. WebSocket
提供客户端与服务器间持久性双向通信通道,适合实时场景(如聊天、协同编辑)。
- 基于TCP,默认端口80(
ws://)或443(wss://,加密版)。 - 通过HTTP协议升级握手建立连接(从HTTP切换到WebSocket)。
- 连接建立后支持全双工通信(服务器可主动推数据给客户端),且帧结构开销低,适合频繁小数据传输。
3. 电子邮件协议(SMTP、POP3、IMAP)
- SMTP(简单邮件传输协议):负责邮件发送,运行在TCP端口25。例如,用户向邮箱服务器发邮件时,通过SMTP推送邮件。
- POP3(邮局协议版本3):用于从服务器下载邮件到本地,默认端口110。下载后服务器通常删除邮件(可配置保留),适合单设备收信。
- IMAP(互联网消息访问协议):更灵活的邮件管理协议,默认端口143。支持在服务器端直接管理邮件(建文件夹、标记已读),多设备同步状态更方便。
4. 文件传输协议(FTP)
用于客户端与服务器间文件传输,运行在TCP上,控制端口21、数据端口20(主动模式)或随机端口(被动模式)。
- 主动模式:服务器主动发起数据连接到客户端端口。
- 被动模式:客户端主动发起数据连接到服务器随机端口(规避防火墙限制)。 示例:开发者用FTP向网站服务器上传网页文件。
5. 域名系统(DNS)
负责域名→IP地址的解析(如将www.example.com转为192.0.2.1),是互联网“寻址”核心。
- 运行在UDP(默认端口53,小请求)或TCP(大响应,如区域传输)上。
- 支持递归查询(本地DNS服务器帮用户查)和迭代查询(服务器间逐级查询)。
发送方主机如果要发送数据给特定主机就需要知道这一主机的IP地址,同理如果某人要访问一个网站,也需要通过IP地址进行访问,但是IP地址较为复杂,通过IP地址寻找网站很困难,所以出现了”域名”。
若用户想打开一个网页,并向计算机输入域名,计算机会看不懂这个域名,所以会发往域名服务器,域名服务器会向计算机返回IP地址,计算机收到IP地址后,会根据这个地址向HTTP服务器发送HTTP连接请求,HTTP确认连接,这时候作为用户才算真正打开了网页。
域名:
- 域名中的字符只能是A-z、0-9、及”-”。
- 每个点分割开的字符称为一个标号,每个标号不能超过63个字符,但是为了记忆方便最好不要超过12个字符。
- 域名标号的级别高低是自左向右由低到高,最高级的标号被称为顶级域名,其次为二级域名
- 除了顶级域名,二级域名,三级域名……之外,还有一个根域名,根域名的表示其实是com后的一个“.”,即www.cskaoyan.com.
- 顶级域名包括三种类型:
国家顶级域名:cn,us,uk
通用顶级域名:com(企业域名),net(提供互联网服务机构),org(非营利性组织),gov(政府),int(国际组织),aero(航空),museum(博物馆),travel(路由) 基础结构域名/反向域名:arpa(反向解析,从IP地址到域名)
- 二级域名包括两种类型:
类别域名:ac(科研机构),com(企业),edu(教育机构),gov(政府机构),mil(中国国防机构),net(提供互联网服务机构,org(非盈利性组织)
行政区域名:用于我国各省、自治区、直辖市 bj(北京),js(江苏)
自己注册的域名:cctv,cskaoyan
注:二级域名与顶级域名有部分相同,但是我们可以用国家顶级域名加以区分,例如com.cn,就是中国的某企业。
- 在二级域名下可以注册三级域名,例如pku.edu.cn中的pku就是北大申请的三级域名。
www.pku.edu.cn中的www就是第四级域名,常见的四级域名还有:
mail(提供邮件有关的服务器对应的域名) ftp(提供文件传输功能的服务器对应的域名)
每个域名对应一个IP地址,DNS服务器将用户输入的域名映射到相应的IP地址,使得用户可以通过域名来访问特定的网络资源,而无需记住复杂的IP地址。
DNS服务器有多种类型:
根域名服务器<根域名服务器是最高层次的域名服务器>根域名服务器是最高层次的域名服务器>,也是最重要的域名服务器,它知道每一个顶级域名服务器以及其对应的IP地址。
-
假设某台主机要访问一个网站(www.cskaoyan.com),那么这个主机会发给本地域名服务器一个DNS查询请求,试图寻找这个域名对应的IP地址,但是由于这个主机是第一次访问这个网站,本地域名服务器不知道域名对应IP地址,就会向根域名服务器请求帮助
-
根域名服务器知道的是顶级域名服务器以及对应的IP地址,它会根据域名www.cskaoyan.com,将com这个顶级域名服务器对应的IP地址告诉本地域名服务器(迭代),或者它会继续往下查询,从顶级域名服务器到权限域名服务器进行更加详细的查询,直到查询到这个网站对应的IP地址,再返回给本地域名服务器(递归)。这是两种查询的方法,下面会有详细地讲解。
权限域名服务器找到域名对应的IP地址后,IP地址会按照权限域名服务器--->顶级域名服务器--->根域名服务器--->本地域名服务器--->主机的路线返回给主机。
6. 远程登录协议(Telnet、SSH)
- Telnet:早期远程登录协议,运行在TCP端口23,但明文传输(密码等无加密),安全性差,已被SSH取代。
- SSH(安全外壳协议):加密的远程登录协议,运行在TCP端口22,可安全传输命令、文件(结合SCP、SFTP)。 示例:运维人员通过SSH远程管理云服务器。
7. 动态主机配置协议(DHCP)
自动为客户端分配IP地址、子网掩码、网关、DNS等网络配置,运行在UDP上(服务器端口67、客户端端口68)。
- 家庭路由器、企业内网通过DHCP实现设备“即插即用”连网。
8. 简单网络管理协议(SNMP)
用于网络设备的监控与管理(如路由器、交换机的性能、故障),运行在UDP(默认端口161)或TCP上。
- 管理员通过SNMP获取设备状态、配置参数,实现批量运维。
9. 实时通信协议(XMPP、MQTT)
- XMPP:基于XML的即时通信协议,支持聊天、在线状态(Presence)等,典型应用如早期Jabber、OpenFire服务。
- MQTT:轻量级“发布-订阅”协议,适合物联网(IoT)场景(如传感器数据上报),开销小,能在低带宽、不稳定网络下工作。
Some information may be outdated