计算机网络笔记(6)
第6章 应用层
应用层协议特点:
- 每个应用层协议都是为了解决某一类应用问题(协调位于不同主机的多个应用进程之间的通信和协同工作)
- 应用层的许多协议都是基于客户服务器方式
6.1域名系统DNS
域名系统概述
使用者:应用层软件经常直接使用域名系统,而用户只间接使用域名系统
主机名字:互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS
域名服务器:域名到IP地址的解析由多个域名服务器程序完成,运行域名服务器程序的机器称为域名服务器
因特网的域名结构
采用层次树状结构的命名方法:
- 概念:任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名
- 表达:每一个域名由标号序列组成,各标号之间用点隔开(各标号代表不同级别的域名)
如:mail.cctv.com(....三级域名.二级域名.顶级域名)
域名:
- 只是一个便于人使用的逻辑概念,并不代表计算机所在的物理地点,和IP地址中的“点”无一一对应关系
- 三类顶级域名:国家顶级域名(如.cn)、通用顶级域名(如.com)、基础结构域名(反向域名.arpa)
- 中国的两类二级域名:类别域名(如.com、.edu)、行政区域名
- 因特网的域名空间:
域名服务器
区:
- 概念:一个服务器所负责管辖(有权限)的范围叫做区(区内的所有结点必须是能够连通的)
- 权限域名服务器:每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射
- 管辖范围:DNS服务器的管辖范围以区为单位,区的范围只能小于等于域的范围
- 区的划分:
域名服务器:
- 结构:也是层次树状结构
- 四种类型:根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器
根域名服务器:最高层次的域名服务器,最重要的域名服务器
所有根域名服务器都知道所有顶级域名服务器的域名和IP地址
若本地域名服务器无法解析某个域名,首先会求助于根域名服务器
根域名服务器并不直接把域名转为IP地址,而是告诉本地域名服务器下一步该找的顶级域名服务器的IP地址
因特网有13个根域名服务器,分别用a到m命名,每个服务器都对应世界范围内分布的多个服务器机器
顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名
给出DNS查询请求的最终结果,或给出下一步该找的域名服务器的IP地址
权限域名服务器:负责一个区的域名服务器
给出DNS查询请求的最终结果,或给出下一步该找的权限服务器的IP地址
本地域名服务器(默认域名服务器):负责接收主机发出的DNS查询请求
不属于域名服务器层次结构,但对系统非常重要
ISP、大学、大学里的系都可以有一个本地域名服务器 - 提高可靠性:DNS域名服务器都把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其它的是辅助域名服务器
域名的解析过程:
- 递归查询:主机向本地域名服务器的查询一般采用递归查询
若本地域名服务器不知道主机所要查询的域名的IP地址,本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步的查询 - 迭代查询:本地域名服务器向根域名服务器的查询一般采用迭代查询
根域名服务器要么给出最终IP地址,要么给出下一步要查询的域名服务器的IP地址
名字的高速缓存:
- 概念:每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录
- 作用:提高DNS查询效率、减轻根域名服务器的负荷
- 定时清除:内置计时器,处理超过合理时间的项
6.2文件传送协议
FTP概述
- 概念:FTP是文件传送协议
- 特点:提供交互式访问、屏蔽了各计算机系统的细节(适合于在异构网络中任意计算机之间传送文件)
FTP的基本工作原理
*网络环境下复制文件具有复杂性
FTP特点:
- 主要功能:减少或消除在不同操作系统下处理文件的不兼容性
- 使用TCP可靠的运输服务(FTP本身只提供文件传送的一些基本服务)
- 使用客户服务器方式
FTP使用的客户服务器方式:
- 一个FTP服务器可同时为多个客户进程提供服务
- FTP的服务器进程由两大部分组成:一个主进程(负责接收新请求)、多个从属进程(负责处理单个请求)
- 两个连接:控制连接、数据连接是FTP客户端和服务器之间建立的两个并行的TCP连接
控制连接:负责传输传送控制请求
数据连接:负责传输文件
- 两个端口号:熟知端口(21)、熟知端口(20)
熟知端口(21):负责建立控制连接(在FTP服务器上,由客户进程寻找并连接)
熟知端口(20):负责建立数据传输连接(在FTP服务器上,与客户进程进行数据传输)
使用两个端口的好处:数据连接和控制连接不会发生混乱
*简单文件传送协议TFTP
特点:
- 小且易于实现
- 使用客户服务器方式和使用UDP数据报
- 只支持文件传输而不支持交互(传输PDU文件块,每块不超过512字节)
- 工作方式类似于停止等待协议
6.3远程终端协议TELNET
- 概念:简单的远程终端协议
- 作用:用户用TELNET就可以在其所在地通过TCP连接注册到远地的另一个主机上
- 特点:采用客户服务器方式(本地运行TELNET客户进程、远地主机运行TELNET服务器进程)
- NVT格式:传输时均转为NVT格式,在客户或服务器上再转为本地系统所需的格式
6.4万维网WWW
互联网概述
概念:万维网是一个大规模的、联机式的信息储藏所
链接:使用链接可以从互联网上的一个站点访问另一个站点
超媒体与超文本:
- 超文本:一个超文本由多个信息源链接成,仅包含文本信息
- 超媒体:在超文本基础上还包括其他表示方式的信息
万维网是分布式超媒体系统,是超文本系统的扩充(超文本是万维网的基础)
万维网的工作方式:客户服务器方式(C/S)
- 客户程序:用户计算机上的浏览器(所以也有B/S的说法)
- 服务器程序:由万维网文档所驻留的计算机运行,该机器也称为万维网服务器
- 页面:客户程序主窗口上显示出的万维网文档
四个问题的解决:
- URL:使用统一资源定位符URL来标志万维网上的各种文档(每个文档在因特网内的URL唯一)
- HTTP:在客户程序和服务器程序的交互间使用超文本传送协议HTTP
HTTP是应用层协议,使用TCP链接进行可靠传送 - HTML:使用超文本标记语言HTML,在设计网页时可用超链链接到因特网上任何一个万维网页面,且能显示出这些页面
- 搜索引擎:方便用户在互联网上搜索信息
统一资源定位符URL
概念:URL是对因特网上可得资源的位置和访问方法的一种简洁表示(相当于文件名在网络范围内的扩展)
URL的一般形式:<协议>://<主机>:<端口>/<路径>
- 由以冒号隔开的两大部分组成,对大小写不敏感
- 协议:包括ftp(文件传送协议)、http(超文本传送协议)
- 主机:存放资源的主机在因特网中的域名
- 端口、路径:有时可省略
使用HTTP的URL:http//<主机>:<端口>/<路径>
- http:使用HTTP协议
- 主机:主机的域名
- 端口:默认端口号是80(即缺省就表示是80端口)
- 路径:若缺省,则该URL表示到因特网上的某主页(即缺省就表示是index.htm)
超文本传送协议HTTP
概念:HTTP是面向事务的应用层协议,是万维网上能够可靠地交换文件的重要基础
万维网的工作过程:
特点:
- 面向事务的客户服务器协议
- 1.0协议是无状态的
- 协议本身是无连接的(但使用了TCP的可靠传输)
请求一个万维网文档所需的时间:文档的传输时间+2倍RTT
(TCP建立连接的三报文握手中的第三个报文就是客户对万维网文档的请求报文)
代理服务器:
- 概念:代表浏览器发出HTTP请求(又称为万维网高速缓存)
- 原理:把最近的请求和相应暂存在本地磁盘中,若有新请求相同时就把暂存的响应发回去,而不用再按URL访问
HTTP的报文结构:
- 两类报文:请求报文、响应报文
- 结构:
开始行:用于区分请求报文(请求行)还是响应报文(状态行)
首部行:用于说明浏览器、服务器或报文主体的一些信息
Cookie:
- 概念:
Coolie表示在HTTP服务器和客户之间传递的状态信息
使用Cookie的网站服务器为用户产生唯一的识别码,通过识别码跟踪用户的活动
万维网的文档
超文本标记语言HTML:
- HTML:一种制作万维网页面的标准语言(不是应用层的协议)
- HTML文档:可用任何文本编辑器创建的ASCII码文件
- 标签:HTML中的一些用于排版的命令
- 后缀:HTML文档仅当以.html或.htm为后缀时,浏览器才解释文档中的各种标签
动态万维网文档:
- 静态文档:在文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变
- 动态文档:文档的内容在浏览器访问万维网服务器时才由应用程序动态创建
(差别:服务器一端对文档内容的生成方法不同)
实现动态文档要对万维网服务器的功能进行扩充:
- 增加另一个应用程序:用来处理浏览器发来的数据,并创建动态文档
- 增加一个机制:将浏览器发来的数据传给应用程序,服务器解释应用程序的输出并返回HTML文档
通用网关接口CGI:一种标准,定义了动态文档的创建等
- 通用:其定义的规则对任何语言通用
- 网关:CGI程序作用像网关
- 接口:已定义好的变量和调用等可供其他CGI程序使用
CGI程序(CGI脚本):
- 脚本:一个程序被另一个程序(而不是计算机的处理机)解释或执行
- 速度:脚本运行比一般的编译程序慢
活动万维网文档:活动文档技术把所有的工作都转移给浏览器端
(浏览器请求活动文档时,服务器就返回一段程序副本在浏览器端运行)
java创建活动文档:
- java语言:用于创建和运行活动文档的技术(java技术是活动文档技术的一部分)
- 小应用程序:描活动文档程序
浏览器的结构:
万维网的信息检索系统
全文检索搜索和分类目录搜索
- 搜索引擎:万维网中用来进行搜索的程序
- 全文检索搜索引擎:在查询时只要输入关键词,就从已经建立的索引数据库上进行查询
- 分类目录搜索引擎:将网站按关键字和其他描述信息输入到分类目录的数据库中,供网上用户查询
- 垂直搜索引擎:针对某一特定领域、特定人群或某一特定需求提供搜索服务
6.5电子邮件
概述
电子邮件的最主要的组成构件:
电子邮件:
- 组成:电子邮件由信封、内容两部分组成
- 格式:TCP/IP体系的电子邮件系统的规定格式:用户名@邮件服务器的域名
(@读at,表示“在”的意思)
*简单邮件传送协议SMTP
基于万维网的电子邮件
客户到服务器使用HTTP协议,服务器间使用SMTP协议
6.6动态主机配置协议DHCP
协议软件:
- 参数化:协议软件参数化使其通用和便于移植
- 协议配置:即参数赋值,协议软件运行前必须给每个参数赋值
需配置的项目:IP地址、子网掩码、默认路由器的IP地址、域名服务器的IP地址
项目存储位置:一个配置文件中,由计算机在引导过程中读取
DHCP:
- 机制:提供了即插即用连网机制
- C/S:使用客户服务器方式
主机向DHCP服务器广播发送发现报文,DHCP服务器发回提供报文给主机,主机根据提供报文配置IP地址 - 租用期:DHCP服务器分配的IP地址是临时的,DHCP客户只能在一段有限时间内使用
- DHCP中继代理:配置了DHCP服务器的IP地址信息,负责转发主机的发现报文和DHCP服务器的提供报文
6.7简单网络管理协议SNMP
网络管理的基本概念
网络管理(网管):包括对硬、软件人力等资源的控制协调,以满足网络服务的一些需求
网络管理一般模型:
- 管理站:整个网络管理系统的核心,内有管理员操作控制
- 管理程序:运行时成为管理进程,管理站或管理程序都可称为管理者(管理器)
- 被管设备:包括主机、路由器等,也成为了网络元素或网元
- 代理程序:被管设备中运行的程序,以便和管理站的管理程序进行通信
简单网络管理协议SNMP:
- 概念:管理程序和代理程序间通信的规则
- C/S:管理程序运行SNMP客户程序,代理程序运行SNMP服务器程序
- UDP:SNMP报文使用UDP传送
- 委托代理:若网元使用非SNMP的网管协议,SNMP可使用委托代理对被管对象进行管理
- 网络管理基本原理:管理对象要给该对象添加一些软件或硬件,但这种“添加”对原有对象的影响必须尽量小
- 有效性:SNMP使用探询维持网络资源的实时监视,采用陷阱机制报告特殊事件,是有效的
- *报文格式:
请求ID:4字节,由管理进程设置,用于管理进程识别代理进程发出的响应报文
差错状态:代表了SNMP报文的状态(正常或各种出错状态)
差错索引:指明有差错的变量在变量列表中的偏移
变量绑定:指明一个或多个变量的名和对应的值
6.8应用进程跨越网络的通信
系统调用和应用编程接口
系统调用:大多数操作系统使用系统调用机制在应用程序和操作系统之间传递控制权
应用编程接口API:属于系统调用接口,是控制权转换的接口(应用进程与操作系统间控制权的转换)
套接字:实现了TCP/IP有关API细节的应用编程接口API
套接字作用:
- 系统为所需应用进程创建套接字,以便分配系统资源
- 套接字描述符:应用进程进行网络通信所需资源的总和,应用进程所进行的网络操作都必须使用该号码
*
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律