应用层
- 应用层对应用程序的通信提供服务。应用层协议具体应定义为
- 应用进程交换的报文类型,如请求报文和响应报文
- 各种报文类型的语法,如报文中的各个字段及其详细描述
- 字段的语义,即包含在字段中信息的含义
- 进程何时发送报文,以及对报文的响应的规则
网络应用模型
客户/服务器模型
- 主要特点
- 客户是服务请求方,服务器是服务提供方
- 服务器特点
- 提供永久服务
- 服务器IP地址固定不变
- 客户端特点
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态的IP地址
- 不与其他客户端直接通信
- 常见应用
- Web
- 文件传输协议FTP
- 远程登录
- 电子邮件
P2P模型
- 主要特点
- 显著特点:对等节点之间有直接通信能力
- P2P是指在互联网中由对等节点组成的一种覆盖网络
- P2P是一种动态的逻辑网络,不是一种物理网络
- 不存在永远在线的服务器
- 每个主机既可以提供服务,也可以请求服务
- 节点间歇性接入网络,并且可能改变IP地址
- 自扩展性好,网络健壮性强
域名系统DNS
- DNS作用:把域名转换为IP地址
- DNS采用C/S模型
- DNS协议运行在UDP上,使用53端口
DNS组成部分
- 层次域名空间
- 顶级域名
- 二级域名
- 三级域名
- 多个标号组成的完整域名总共不超过255个字符
- 域名服务器
- 种类
- 根域名服务器(.)
- 顶级域名服务器
- 授权/权限域名服务器
- 一定能在授权服务器找到对应的IP号
- 本地域名服务器
- 域名服务器被设计为一种联机的分布式数据库系统,采用C/S模型
- 种类
- 域名解析过程
- 递归查询
- 本机向本地域名服务器的查询是递归查询
- 递归迭代查询
- 本地域名服务器向根域名服务器的查询是迭代查询
- 流程
- 主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询
- 本地域名服务器采用迭代查询。它向一个根域名服务器查询
- 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址
- 本地域名服务器向顶级域名其dns.com进行查询
- 顶级域名服务器dns.com告诉本地域名服务器,下一次查询的权限域名服务器的dns.baidu.com的IP地址
- 本地域名服务器向权限域名服务器dns.baidu.com进行查询
- 权限域名服务器dns.baidu.com告诉本地域名服务器所查询的主机的IP地址
- 本地域名服务器dns.xyz.com最后把查询结果告知主机m.xyz.com
- 8个步骤共要使用8个UDP用户数据报(使用UDP是为了减少开销)的报文
- 本地域名服务器经过三次迭代查询后,从权限域名服务器dns.baidu.com得到了主机www.baidu.com的IP地址
- 递归查询
- 高速缓存(DNS缓存)
- 在域名服务器中使用DNS的目的
- 为了提高DNS查询效率
- 减轻根域名服务器的负荷和减少互联网上的DNS查询报文数量
- DNS服务器将在一段时间后丢弃高速缓存中的信息
- 在域名服务器中使用DNS的目的
文件传输协议FTP
- FTP使用TCP可靠的传输服务
- FTP必须在整个会话期间保留用户的状态信息
- 服务器必须追踪用户在远程目录树上的当前位置
- FTP特点
- 提供交互式访问
- 运行客户指明文件的类型与格式,运行文件具有存取权限
- 适合在异构网络中的任意计算机之间传送文件
- FTP功能
- 提供不同种类主机系统(软硬件都可)之间的文件传输能力
- 以用户权限管理的方式提供用户对远程FTP服务器的文件管理能力
- 以匿名FTP的方式提供公用文件共享的能力,使用anonymous作为用户名
- FTP组成
- 一个主进程,负责接收新的请求
- 若干个从属进程,负责处理单个请求
- 主进程步骤
- 服务端打开21端口,使客户进程能够连接上
- 等待客户进程发出连接请求
- 启动从属进程处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
- 回到等待状态,继续接受其他客户进程发来的请求
FTP工作时用到的TCP连接
- FTP使用两个独立的连接的好处
- 使协议更加简单和容易实现
- 在传输文件的时候可以利用控制连接对文件的传输进行控制(如用户可以在文件传输过程中发生请求中止服务)
- 控制连接
- 作用
- 用于将命令从客户传给服务器并传回服务器的应答
- 端口
- 21端口
- 特点
- 控制信息都以7位ASCII格式传送
- 控制连接在整个会话期间一直保持打开
- FTP的控制信息是带外传送的
- 作用
- 数据连接
- 作用
- 用于传输文件
- 端口
- 20端口
- 特点
- PORT模式
- 主动模式
- 传送数据是服务器连接到客户端端口
- PASV模式
- 被动模式
- 传送数据是客户端连接服务器端口
- PORT模式
- 作用
电子邮件系统
- 电子邮件系统是一种异步通信方式
- 基于WWW的电子邮件
- 用户浏览器与Gmail的邮件服务器用HTTP发送或接收邮件
- 不同邮件服务器之间传送用SMTP
- 三个组成部分
- 用户代理,用户与电子邮件系统的接口,如Outlook,Foxmail
- 邮件服务器,用来发送和接收邮件
- 邮件发送协议SMTP【类似Push】和读取协议pop3【类似Pull】
- 发送接收过程
电子邮件格式
- 电子邮件 = 信封 + 内容
- 内容 = 首部【RFC822规定】 + 主体【用户自用撰写】
- 首部的关键字
- From:abc@cskaoyan.com【必须要】,由邮件系统自动填入
- To:x123@cskaoyan1.com【必须要】,abc是收件人邮箱号,后者是邮箱所在主机的域名
- Subject:xxxxxxx【可选】,是邮件的主题
- 多用途网络邮件扩充(MIME)
- 因为SMTP/pop3只能传送一定长度的ASCII码邮件,且无法传送可执行文件及其他二进制对象,所以提出MIME
- MIME继续使用SMTP的格式,增加了邮件主题的结构,定义了传送非ASCII码的编码规则
发送协议和读取协议
SMTP | POP3 | IMAP | |
---|---|---|---|
定义 | 一种提供可靠且有效的电子邮件传输协议 | 一种非常简单但功能有限的邮件读取协议 | 因特网报文存取协议 |
特点 | 使用C/S方式 使用TCP连接 端口号25 只支持传输7比特ASCII码内容 |
使用C/S方式 使用TCP连接 端口号为110 POP3协议是用明文传输密码的,不对密码加密 |
为用户提供了联机命令 创建文件夹 在不同文件夹之间移动邮件 在远程文件夹中查询邮件 IMAP服务器维护了会话用户的状态信息 允许用户代理只获取报文的某些部分 适合低带宽 |
工作过程 | 连接建立 邮件传送 链接释放 |
下载并保留 下载并删除 |
万维网
- WWW是一个分布式,联机式的信息存储空间
- 组成部分
- 统一资源定位符URL
- 标志分布在整个互联网上的万维网文档
- 超文本传送协议HTTP
- 实现WWW上的各种连接的协议
- 超文本标记语言HTML
- 使不同风格的文档在互联网上的主机显示
- 统一资源定位符URL
- URL的形式
- <协议>://<主机>:<端口>/<路径>
HTTP协议
- 定义了浏览器向服务器请求web页面的方式,以及服务器向浏览器传送页面的方式
- HTTP特点
- HTTP使用面向连接的TCP作为传输层协议,保证了数据的可靠传输
- HTTP协议本身是无连接的
- HTTP协议是无状态的
- 不需要保存客户的状态信息,可以减少服务器的CPU及内存的消耗
Cookie
- Cookie是网站为了辨别用户身份,进行会话跟踪而存储在客户端上的数据
- Cookie的组成
- 在HTTP响应报文中的一个cookie首部行
- 在HTTP请求报文中的一个cookie首部行
- 在用户端系统中保留一个cookie文件,由用户的浏览器进行管理
- 位于web站点的一个后端数据库
HTTP操作过程
- 浏览器分析链接指向页面的URL
- 浏览器向DNS请求解析网址的IP地址
- 域名系统DNS解析出IP地址
- 浏览器与该服务器建立TPC链接【默认端口80】
- 浏览器发送HTTP请求
- 服务器通过HTTP响应把文件发送给浏览器
- 释放TCP连接
- 浏览器解释文件,把web页面显示给用户
持久连接和非持久连接
- 非持久连接
- 传输时间
- 文档传输时间 + 两倍的往返时间RTT
- connection状态
- 标志为close,说明是非持久连接
- 传输时间
- 持久连接
- 传输时间
- 共经历1个RTT延迟
- connection状态
- 标志为keep-alive,说明是持久连接
- HTTP/1.1的默认方式是持久连接
- 传输时间
HTTP的报文结构
- 两类HTTP报文
- 请求报文
- 响应报文
- 报文的组成
- 开始行【请求报文为请求行】【响应报文为状态行】
- 首部行
- 实体主体
- 请求报文采用的方法
- GET【请求】
- HEAD【读取URL表示的信息的首部,无response】
- POST【上传信息】
- CONNECT【代理服务器】
- 实例