6.1 网络应用模型
1. CS 模型
1.总是打开的叫服务器
2.工作流程
- 服务器监听接收
- 客户机发出服务请求,等待接收结果
- 服务器接收请求,分析请求,返回结果
3.特点
- 服务器不需要直到客户机的地址
- 客户机之间不直接通信
- 服务器可以设置权限
- 服务器性能好坏决定了系统的性能
- 在建立连接后,服务器也可以主动发送一些信息给客户端
- 客户机是面向用户的(因为接收的是用户的指令),服务端是面向服务的
2.P2P 模型
计算机之间对等
6.2 域名系统(DNS)
1.作用
把主机名转换为 IP 地址
2.参数
- CS 模型
- UDP
- 53 号端口
note:
- 关于 DNS 的分区
![_QAC1D`LL52SO09I%K%4RB.png
【注】子父域名:例,pay.alibaba.com 和 alibaba.com 就是子父域名的关系
3.分部
- 层次域名空间
- 层次树状结构命名法
- 标号的注意点
- 标号英文无大小写之分
- 只能使用 - 特殊字符
- 每个标号不能超过 63 个字符,总长度不能超过 255 个字符
- 最低级别的域名在左边
- 顶级域名
- 国家顶级域名
- 通用顶级域名
- 域名服务器
- 本质:分布式数据库系统
- 根域名服务器
- 最高层次
- 保存所有顶级域名服务器的 IP 地址
- 特点
- 当本地域名服务器无法解析,就求助于根域名服务器,之后告知下一步应该到哪个顶级域名服务器去查找
- 全球有 13 个根域名服务器集群
- 特点
- 顶级域名服务器:管理所有二级域名
- 授权域名服务器(权限域名服务器)
- 每台主机必须在授权域名服务器登记
- 权限域名服务器总能将管辖的主机名转换成 IP 地址
- 权限域名服务器下可以管理,二级,三级,四级域名
- 权限域名服务器管理一个区的全部域名
- 本地域名服务器
- 当用户发出 DNS 请求时,首先发送给本地域名服务器
- Windows 中配置的 DNS 就是本地域名服务器 IP 地址
- 这里的本地要么是指电脑直连的运营商的 IP 地址。要么是路由器内置的 DNS 转发器
- 特点
- 服务器管辖的范围称为区
- 域名到 IP 地址的解析过程是在域名服务器上完成的
- 区中所有结点相连,并设置权限服务器
- 每个服务器连接到其他的域名服务器
- 没有一台域名服务器又全部的 IP 映射
- 解析器
- 本质:域名转 IP (正向解析)或者 IP 转域名(反向解析)
- 过程:本地主机构造 DNS 请求报文,通过 UDP 数据报发送给本地域名服务器
- 递归查询(几乎不用)
- 递归迭代查询
PS:
- 查询结果保留在高速缓存中,其中高速缓存在本地域名服务器和主机都有。举个例子,如果本地域名服务器有顶级域名的信息,那就不用去根域名查找了。
- 四个域名服务器的名称:权顶根本
- 域名与IP的对应关系
- 子域名和父域名
拓展
1.域名系统中本地域名服务器,根域名服务器,顶级域名服务器以及权限域名服务器的区别
本地域名服务器离用户最近,不过几个路由器的距离,当主机发送DNS查询请求时,首先查询本地域名服务器,若被查询地址是本地 ISP 时,则立即转换,否则交给根域名服务器。
根域名服务器:最高层次的域名服务器,管理了顶级域名服务器的域名和 IP。
顶级域名服务器:管理二级域名服务器的域名和 IP
权限域名服务器:负责一个区的域名服务器,当权限域名服务器无法解析时,会给出其他权限域名服务器的地址给主机
2.域名服务器中高速缓存的作用
存放最近查找的域名
6.3 文件传输协议(FTP)
1.工作原理
1.作用
在异构网络中传输文件
2.功能
- 提供不同种类主机系统之间传输文件的能力
- 以用户权限的方式提供对远程 FTP 服务器的管理能力
- 匿名 FTP 的方式提供文件共享的能力,且以 anonymous 作为用户名
3.参数
- CS 模型
- TCP 连接
- 21 端口:控制端口
- 20 端口:数据端口
💡 数据端口是控制端口 -1,有时候不使用默认的端口而是用自定义的端口是要满足这个条件
4.进程
- 主进程:接收新的请求
- 从属进程:负责处理单个请求
5.工作步骤
- 打开 21 端口,允许客户机进行连接
- 等待客户机发送链接请求
- 从属进程处理客户端的请求,主进程与从属进程并发执行
- 回到等待状态,继续接收其他客户端请求
6.特点
服务器必须追踪客户在远程目录的位置
2.控制连接与数据连接
1.控制连接(21)
- 传输控制信息
- 格式:7 位 ASCLL码
- 控制连接在整个会话期间打开
2.数据连接(20)
- 作用:客户端和服务器端的数据传输进程
- 传送完毕后关闭数据传送连接
PS:
- 需要指明文件的格式与类型
- 21 控制连接,20 数据连接,都是服务器连接
- FTP 的两个端口都是基于 TCP 连接
6.4 电子邮件
1.电子邮件系统的组成结构
1.组成构件
- 用户代理
- 功能:撰写,,显示和邮件处理
- 运行在 PC 机上的程序
- 邮件服务器
- CS 工作模式
- 同时充当 C/S
- 电子邮件协议
- 发送:SMTP
- 接收:POP3
note:
- 整个过程中,只有接收用户代理拉取邮件是使用 POP3 协议的。
- SMTP 采用的是 TCP 连接,因为发送邮件不用在意速度,但要确定发送邮件的准确性
2.电子邮件格式与 MIME
1.信封
2.内容
- 首部
- 用户填写首部,系统自动提取信息到信封上
- 组成:关键字:值
- To:(必须):n 个收件人的电子邮件地址;收件人邮箱名@邮箱所在主机名
- Subject:(可选)
- 主体:自由撰写
3.MIME(Multipurpose Internet Mail Extensions)
- 多用途网际邮件扩充:定义非 ASCLL 码的编码规则
3. SMTP 与 POP3
1.SMTP
- 重要参数
- 25
- CS 模式
- TCP 连接
- 通信过程
- 不使用中间服务器
- RCPT 的作用:确认接收方是否已经做好了接收准备
- SMTP的三个阶段
- 连接建立:发送方把邮件放入邮件服务器进行缓存,SMTP 客户对邮件定时扫描,发现有新邮件就通过 25 端口与接收方邮件服务器建立 TCP 连接
- 邮件传送:邮件传送从 mail 命令开始,mail 后面跟的是发件人地址。接着跟多个 RCPT 命令,用于确认接收方已经做好接受准备;接着通过 DATE 命令开始发送
- 连接释放:SMTP 发送 QUIT 命令进行释放
2.POP 3
- 重要参数
- 110
- CS 模式
- TCP 连接
- 两种工作方式
- 下载并保留
- 下载并删除
- 特点
- 接收方的用户代理上运行客户端
- 接收方服务器上运行服务器程序
- POP3只有在输入用户鉴别(用户名和密码)后才能进行读取操作
- 基于 ASCLL 码
- 一个账号只能有一个接收目录
PS
- 在基于万维网的电子邮件中,用户浏览器(也就是我们说的用户代理)和邮件服务器的发送和接收使用的是 HTTP 协议,在邮件服务器之间才是使用 SMTP
- POP 3 不加密的
4. IMAP 协议【非408】
IMAP(Internet Message Access Protocol),和 POP3 一样,IMAP 也是一个邮件读取协议,都是客户服务器工作方式。
IMAP 的工作流程
- 用户先在 PC 上运行 IMAP 的客户端,然后同 IMAP 的服务器建立 TCP 连接,这样就可以操纵服务器上的自己的邮件,所以 IMAP 也是一个联机协议
- 当用户打开某个邮件的时候,这个邮件才传入用户自己的计算机中
IMAP 的优势
- 在不同计算机上随时阅读自己的邮件(比如大家现在使用的万维网邮件系统,其更深层的机制就是基于 IMAP 的)
- 允许收件人只阅读邮件的一部分。比如,邮件中包含了视频,但用户正在使用流量访问,此时用户可以查看邮件文字部分,而不观看视频
IMAP 的缺点
- 如果用户没有将邮件复制到自己 PC 上,则邮件一直存放在 IMAP 服务器上
5. 基于万维网的电子邮件
比如大家熟知网易邮箱,QQ邮箱,Gmail等,都是万维网电子邮件,也就是客户端不再是一个单独的邮件程序,而就是浏览器(浏览器的一个功能),特别的是,其中用户代理和邮件服务器之间的协议发生了改变,参见下图。
6.5 万维网
1. WWW 的概念与组成结构
1.作用
资料空间
2.标准构成
- 统一资源定位符(URL)
- 形式
- <协议>://<主机>:<端口>/<路径>
- 主机:表示域名
- 端口和路径有时可以省略
- 形式
- 超文本传输协议(HTTP)
- 超文本标记语言(HTML)
3.参数
- C/S 模式
- 浏览器是万维网的客户程序
note:
- 关系:在互联网上有很多资源(常见的资源,如各种文档,比如百度文库,各种网页),这些资源通过 HTTP 协议(类比交通法规)传送,分享给其他用户,这些用户的地址用(URL)表示。
2. 超文本传输协议(HTTP)
1.作用
- 怎样向万维网服务器请求和服务器怎样发送文档
- 定义规定的格式和规则
2.分类
- 请求报文
- 响应报文
- 对请求响应报文的总结。
3.参数
- TCP 协议:但是不需要先建立 HTTP 连接
4. HTTP 的操作过程
5.特点
- 无状态
- HTTP 本身不会记得你,每一次都是全新的连接
- 但我们看到实际我们上网是有“记忆的”,这是通过 Cookie+数据库(现在还有一些新的技术)记忆,不过 HTTP 协议本身是没有这些功能的
- HTTP 采用 TCP 协议,但不需要先建立 HTTP 连接,而是建立 TCP 连接
- 持久与非持久
- 非持久
- 每一个请求的对象都要建立一个单独的 TCP 连接。并不为其他的对象持续下来。
- 只传输了一个请求报文和一个响应报文
- 万维网文档请求时间 = 文档传输时间 + 2*RTT(一个用于 TCP 连接,一个用于请求和接收文档)
- 持久(HTTP1.1才开始支持)
- 持续在该链路上进行 HTTP 请求与响应
- 分类
- 非流水线:接收上一个响应后才能发出下一个请求。每个响应有 1 个 RTT 延迟
- 流水线:连续发送。一共 1 个 RTT 延迟
- 非持久
PS:
- 既可以支持非持续连接,也可以使用持续连接(1.1 版本)
- 非持续连接每次独立建立一个连接
- 无连接:不必先建立连接就可以直接发送数据,如,QQ 聊天。适配器对发送的数据帧不进行编号,也不要求回传确认帧
6.报文结构
- ASCLL 码
- 报文类型
- 请求报文
- 方法
- get:请求一个对象,实体体为空
- head:类似 get,但不返回请求对象,用于测试
- post:提交表单,需要填写实体体,内容即为输入值
- connect:用于代理服务器
- 其他更多方法
- 方法
- 响应报文
- 请求报文
close:表示非持续;keep-live:表示持续
有 cookie 表示曾今访问过
PS:
- Connection:close,不希望使用持续连接
- 无状态和无连接
- HTTP 1.1 默认使用流水线的持久连接
- 经过路由器 IP 分组中会发生变化的字段
- 【可能】如果是私有地址,则要通过 NAT 转化为全球地址
- 【可能】总长度,标志,片偏移
- 【必然】TTL 减一
【注】http 请求响应所有字段:请求,响,RFC 中文文档
7. 代理服务器(万维网高速缓存)【非408考纲内容】
所谓代理,就是代替你去做一些事情。在一个最简单的C/S模型中,客户端请求服务器,我们假设这个服务器就是源服务器,即你真正要请求数据信息的服务器。但是试想一下,如果有一个服务器,同时有几万人同时请求,而服务器的数据传输能力或者说承载能力往往无法达到这样的要求(这就好像多人运动是非常耗费体力的)。
所以我们就想能不能进行“分流”呢,比如有些人可能打开一个网页,马上关掉,马上又打开,实际上在这个短短几秒的时间呢,服务器本身的数据可能并没有发生变化,而却增加了访问的负担,于是,我们设置一台代理服务器,当我们第一次访问源服务器时,源服务器将数据同时回传给代理服务器,当我们在很短的时间内访问相同的网页时,实际上我们可以直接从代理服务器中取得这些数据,而不必麻烦源服务器了。
代理服务器还可以作为防火墙使用。当我们用代理服务器去获取源服务器的资源的时候,此时源服务器看到的 IP 地址是代理服务器的,如果有黑客入侵你的计算机,结果他只能看到代理服务器的 IP 地址,而非你的真实 IP 地址。当然代理服务器的其他安全功能这里不再展开。
8. cookie
因为 HTTP 是无状态了的,所以很多网站为了方便(比如无须重复登陆),引入了 cookie,比如淘宝等,你不需要在关闭网页后,在很短的时间内打开又登录。
Cookie 的作用是记录服务器和用户之间传递的状态信息。特别的,Cookie 并不是可执行程序,所以不会传播计算机病毒,更不会获取用户硬盘的信息。但是 Cookie 会记录用户传递的信息,这就导致了用户信息泄露的风险,虽然各个大型网站都宣称自己保护用户隐私,但是 …
Cookie 的工作流程
- 某人浏览一个使用 Cookie 的网站
服务器产生一个识别码【黑色图片就是响应报文中设置 Cookie 的内容】
浏览器收到报文后进行记录
- 当再次访问这个网站的时候,就会在 HTTP 请求报文中添加这些 Cookie 作为识别标志
3. 信息检索系统
1. 全文检索与分类目录检索
全文检索:一种纯技术的检索工具,它通过搜索软件到互联网上的各种网站收集信息,找到一个网站后,由可以从这个网站再链接到另一个网站,像蜘蛛爬行一样。然后按照一定的规则建立一个很大的在线数据库供用户查询,比如现在流行的爬虫。
分类目录检索: 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符号网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。因此,分类目录搜索也叫做分类网站搜索。
本章小结
- 熟知端口号 = 应用层协议在服务器端默认端口号
- 名字的高速缓存:域名服务器维护一个高速缓存,存放最近用过的名字
- 互联网,因特网和万维网的区别
- 常见端口和对应协议
FTP | 21:控制信息;20:数据 |
---|---|
SMTP | 25 |
DNS | 53 |
HTTP | 80 |
POP3 | 110 |