计算机网络应用层上的应用简单介绍,如:web应用、Email应用、DNS应用。
网络应用层内容概括
(1)网络应用体系结构
- 客户机/服务器
- P2P
- 混合结构
(2)网络应用的服务需求
- 可靠性
- 带宽
- 时延
(3)lnternet传输层服务模型
- TCP
- UDP
(4)特定网络应用及协议
- HTTP
- SMTP、POP、IMAP
- DNS
- P2P应用
(5)Socket编程
- TCP
- UDP
网络应用的基本原理
网络应用的体系结构
(1)典型的网络应用
百度、QQ、email、迅雷、支付宝、微信、百度云、淘宝、网易
(2)三大体系结构:
- 客户机/服务器结构(C/S)
- 点对点结构(P2P)
- 混合结构(Hybrid)
(3)客户机/服务器结构(C/S)
-
服务器
1.7*24小时提供服务
2.永久性访问地址/域名
3.利用大量服务器实现可扩展性
-
客户机
1.与服务器通信,使用服务器提供的服务
2.间歇性接入网络
3.可能使用动态ip地址
4.不会与其他客户机直接通信
(4)P2P结构
- 没有永远在线的服务器
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理
(5)混合结构
Napster应用
-
文件传输使用P2P结构
-
文件的搜索采用C/S结构——集中式
1.每个节点向中央服务器登记自己的内容
2.每个节点向中央服务器提交查询请求
网络应用进程通信
(1)进程
- 一段程序的执行过程
(2)同主机运行的进程间通信
- 进程间通信机制
- 操作系统提供
不同主机运行的进程间通信
- 消息交换
(4)客户机进程:发起通信的进程
服务器进程:等待通信请求的进程
(5)套接字(Socket)
-
进程间通信利用套接字发送/接收消息实现
-
类似于寄信
1.发送方将消息送到门外邮箱
2.发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外
3.接收方从门外获取消息
-
传输基础设施向进程提供API
1.传输协议的选择
2.参数的设置
(6)寻址进程
不同主机上的进程间通信,每个进程必须拥有标识符,同一主机上可能同时多个进程需要通信
-
端口号
1.为主机上每个需要通信的进程分配一个端口号
2.HTTP Server:80
3.mail Server:25
-
进程的标识符=IP地址+端口号
(7)应用层协议
-
网络应用需要遵循应用层协议
-
公开协议
1.由RFC定义
2.允许互操作
3.HTTP,SMTP等
-
私有协议
1.多数P2P文件共享应用
(8)应用层协议的内容
-
消息的类型
1.请求消息
2.响应消息
-
消息的语法/格式
1.消息中的字段
2.每个字段如何描述
-
字段的语义
1.字段中信息的含义
-
规则
1.进程何时发送/响应消息
2.进程如何发送/响应消息
网络应用需求与传输层服务
(1)网络应用对传输服务的需求
-
数据丢失/可靠性
1.某些网络能够容忍一定的数据丢失:网络电话
2.某些网络应用需求要求可靠的数据传输:文件传输、telnet
-
时间/延迟
1.有些应用只有在延迟足够低才“有效"
2.网络电话/网络游戏
-
带宽
1.某些应用只有在带宽到达最低要求才“有效”:网络视频
2.某些应用能够适应任何带宽——弹性应用:文件传输、email
(2)lnternet提供的传输服务
-
TCP服务
1.面向连接:客户机/服务器进程间需要建立连接
2.可靠的传输
3.流量控制:发送方不会发送速度过快,超过接收方的处理能力
4.拥塞控制:当网络负载过重时能够限制发送方的发送速度
5.不提供时间/延迟保障
6.不提供最小带宽保障
-
UDP服务
1.无连接
2.不可靠的数据传输
3.不提供:可靠性保障、流量控制、拥塞控制、延迟控制、带宽保障
Web应用
Web概述
1.Web的构成
- 网页
- 网页互相连接
2.网页包含多个对象
- 对象:HTML文件、JPEG图片、视频文件、动态脚本等
- 基本HTML文件:包含对其他对象引用连接
3.对象的寻址
- URL:统一资源定位器 RFC1738
- Schwme://host:port/path
HTTP协议概述
1.超文本传输协议
- HTTP
2 .C/S结构
- 客户:请求、接收、展示Web对象
- 服务器:响应客户的请求,发送对象
3.使用TCP传输服务
- 服务器在80端口等待客户的请求
- 浏览器发起到服务器的TCP连接(创建套接字Scoket)
- 服务器接收来自浏览器的TCP连接
- 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
- 关闭TCP连接
4.无状态
- 服务器不维护任何有关客户端过去所发送请求的信息
HTTP连接类型
1.非持久性连接
- 每一个TCP连接最多允许传输一个对象
- HTTP 1.0版本使用非持久性连接
(1)响应时间分析建模:
RTT:从客户端发送一个很小的数据包到服务器并返回经历的时间
Total=2RTT+文件发送时间
(2)非持久性连接的问题:
- 每个对象需要2个RTT
- 操作系统需要为每个TCP连接开销资源
2.持久性连接
- 每一个TCP连接允许传输多个对象
- HTTP 1.1默认使用持久性连接
(1)持久性连接
- 发送响应后,服务器保持TCP连接的打开
- 后续的HTTP消息可以通过这个连接发送
(2)无流水的持久性连接
- 客户端只有收到前一个响应后才发送新的请求
- 每一个被引用的对象耗时1个RTT
(3)带有流水机制的持久性连接
- HTTP 1.1的默认选项
- 客户端只要遇到一个引用对象就尽快发送请求
- 理想情况下,收到所有的引用对象只需耗时约1个RTT
HTTP消息格式
(1)方法类型
-
HTTP/1.0
1.GET
2.POST
3.HEAD
-
HTTP/1.1
1.GET,POST,HEAD
2.PUT(将消息中的文件上传到URL字段所指定的路径)
3.DELETE(删除URL字段所指的文件)
(2)HTTP协议有两类消息
1.请求消息
2.响应消息
(3)HTTP请求消息
- ASCII:人直接可读
上传输入的方法:
-
POST方法
1.网页经常需要填写表格
2.在请求消息的消息体中上传客户端的输入
-
URL方法
1.使用GET方法
2.输入信息通过request行的URL字段上传
(4)响应消息
(5)HTTP响应状态代码
1.响应消息的第一行
- 200 K
- 301 Moved Permanently
- 400 Bad Request
- 404 Not Found
- 505 HTTP Version Not Supported
Cookie技术
某网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
(1)Cookie组件
- HTTP响应消息的cookie头部行
- HTTP请求消息的cookie头部行
- 保存在客户端主机上的cookie文件,由浏览器管理
- web服务器的后台数据库
(2)Cookie访问过程
(3)Cookie的作用
- 身份认证
- 购物车
- 推荐
- web e-mail
- …
(4)缺点
- 暴露隐私
Web缓存/代理服务器技术
(1)功能:在不访问服务器的前提下满足客户端的HTTP请求。
(2)作用:
- 缩短客户请求的响应时间
- 减少机构/组织的流量
- 在打范围内实现有效的内容转发
(3)代理服务器
-
用户设定浏览器通过缓存进行web访问
-
浏览器向缓存/代理服务器发送所以的HTTP请求
1.如果请求对象在缓存中,缓存返回对象
2.否则,缓存服务器向原始服务器发送HTTP请求,获取对象,返回给客户端并保存该对象
-
缓存即当客户端,也充当服务器
-
一般由ISP架设
(4)条件性GET方法
-
目标
如果缓存有最新的版本,则不需要发送请求对象
-
缓存
1.在HTTP请求消息中声明所持有版本的日期
2.if-modifiesd-since:
-
服务器
1.如果缓存的版本是最新的,则响应消息中不包含对象
2.HTTP/1.0 304 Not Modified
Email应用
Email应用概述
(1)Email应用的构成
1.Email应用的构成组件
-
邮件客户端
-
邮件服务器
-
SMTP协议
2.邮件客户端
-
读、写Email消息
-
与服务器交互,收,发Email消息
-
Outlook,Foxmail,Thunderbird
-
web客户端
- 邮件服务器
- 邮箱:存储发给该用户的Email
- 消息队列:存储等待发送的Email
4.SMTP协议
- 邮件服务器之间传递消息所使用的协议
- 客户端:发送消息的服务器
- 服务器:接受消息的服务器
- 使用持久性连接
- 要求消息必须由7位ASCII码构成
- SMTP服务器利用CRLF.CRLF确定消息的结束。
(2)SMTP协议:RFC 2821
1.使用TCP进行email消息的可靠传输
2.端口25
3.传输过程的三个阶段
- 握手
- 消息的传输
- 关闭
4.命令/响应交互模式
- 命令:ASCII文本
- 响应:状态代码和语句
5.Email消息只能包含7位ASCII码
(3)Email应用实例
(4)SMTP交互实例
(5)SMTP与HTTP对比
- HTTP:拉式
- SMTP:推试
- 都使用命令/响应交互模式
- HTTP:每一个对象封装在独立的响应消息中
- SMTP:多个对象在由多个部分构成的消息中发送
Email消息格式与POP3协议
(1)Email消息格式
1.SMTP:email消息的传输/交换协议
2.RFC 822:文本消息格式标准
-
头部行
1.To
2.From
3.Subject
-
消息体
1.消息体本身
2.只能是ASCII字符
(2)多媒体邮件扩展
1.MIME:多媒体邮件扩展RFC 2045,2056
- 通过在邮件头部增加额外的行以声明MIME的内容类型
(3)邮件访问协议
1.邮件访问协议:从服务器获取邮件
-
POP:认证/授权(客户端<—>服务器)下载
-
IMAP:
1.更多的功能
2.更加复杂
3.能够操纵服务器上的储存的消息
-
HTTP:163,QQmail等。
(4)POP协议
1.认证过程
-
客户端命令
1.User:声明用户名
2.Pass:声明密码
-
服务器响应
1.+OK
2.-ERR
2.事务阶段
- List:列出消息数量
- Retr:用编号获取消息
- Dele:删除消息
- Quit
3.“下载并删除”模式
- 用户如果换客户端软件,无法重新读该邮件
4.“下载并保存”模式:不同客户端都可以保存消息的拷贝
5.POP3是无状态的
(5)IMAP协议
1.所以消息统一保存在一个地方:服务器
2.允许用户利用文件夹组织消息
3.IMAP支持跨会话的用户状态:
- 文件夹的名字
- 文件夹与消息ID之间的映射等
DNS应用
DNS概述
(1)DNS简述
1.lnternet上主机/路由器的识别问题
- IP地址
- 域名
2.域名解析系统DNS
-
多层命名服务器构成的分布式数据库
-
应用层协议:完成名字的解析
1.lnternet核心功能,用应用层协议实现
2.网络边界复杂
3.DNS服务
- 域名向IP地址的翻译
- 主机别名
- 邮件服务器别名
- 负载均衡:Web服务器
4.为什么不使用集中式的DNS?
- 单点失败问题
- 流量问题
- 距离问题
- 维护问题
(2)分布式层次式数据库
1.DNS根域名服务器
- 本地域名服务器无法解析域名时,访问根域名服务器
2.根域名服务器
- 如果不知道映射,访问权威域名服务器
- 获得映射
- 向本地域名服务器返回映射
3.TLD和权威域名解析服务器
-
顶级域名服务器:负责com,org,net,edu等,顶级域名和国家顶级域名,例如cn,uk,fr等
1.Network Solutions维护顶级域名服务器
2.Educause维护edu顶级域名服务器
-
权威域名服务器:组织的域名解析服务器,提供组织内部服务器的解析服务
1.组织负责维护
2.服务提供商负责维护
4.本地域名解析服务器
-
不严格属于层级体系
-
每个ISP有一个本地域名服务器
1.默认域名解析服务器
-
当主机进行DNS查询时,查询被发送到本地域名服务器
1.作为代理,将查询转发给(层级式)域名解析服务器系统
(3)DNS查询实例
如果主机A要访问服务器www.cqvie.edu.cn:
1.主机A会首先检查本机hosts文件,如果该文件中有域名与IP的对应关系,直接得到解析结果。
2.如果hosts文件中没有相关记录,则根据本机配置的DNS服务器IP地址,到本地域名服务器进行查询。
3.如果DNS服务器为域名www.baidu.com的授权域名服务器,即负责改区域下主机的域名解析,可以直接向主机A返回权威应答。
4.如果不是该区域的授权域名服务器,则查看缓存中是否有解析记录,如果有返回非权威应答。
5.如果缓存中也没有解析记录,即本DNS服务器无法解析,则查看是否设有转发域名服务器,如果有则将解析请求转发给转发服务器。
6.如果没有设置转发域名服务器,解析请求将被发送到根域名服务器。
7.由于根域名服务器已将cn区域的解析,委托给出了域的域名服务器dns.cn,因此根域名服务器只返回dns.cn对应的IP地址。
8.本地域名服务器根据返回的IP地址向dns.cn发出解析请求。
9.域名服务器dns.cn已将edu.cn区域的解析,委托给域名服务器dns.edu.cn,因此返回dns.edu.cn对应的IP地址。
10.本地域名服务器根据返回的IP地址向dns.edu.cn发出解析请求。
11.域名服务器dns.edu.cn已将cqvie.edu.cn区域的解析,委托给域名服务器dns.cqvie.edu.c,因此返回dns.cqvie.edu.cn对应的IP地址。
12.本地域名服务器根据返回的IP地址向dns.cqvie.edu.cn发出解析请求。
13.域名服务器dns.cqvie.edu.cn是cqvie.edu.cn的授权域名服务器,将查询到的www.cqvie.edu.cn和IP地址的对应关系,并向本地域名服务提供权威应答。
14.本地域名服务器将解析结果返回给主机A,并将解析记录写入自己的缓存中。
15.主机根据解析结果,向目的IP发送数据包。
(4)DNS记录缓存和更新
1.只要域名解析服务器获得域名——IP映射,即缓存这一映射
-
一段时间过后,缓存条目失效(删除)
-
本地域名服务器一般会缓存顶级域名服务器映射
1.因此根域名服务器不经常被访问
DNS记录和消息格式
(1)DNS记录
1.资源记录(RR,resource,records)
2.Type=A
- name:主机域名
- value:IP地址
3.Type=NS
- name:域(edu.cn)
- Value:该域权威域名解析服务器的主机域名
4.Tyoe=CNAME
- Name:某一真实域名的别名
- Value:真实域名
5.Type=MX
- Value是与name相对应得邮件服务器
(2)DNS协议与消息
1.DNS协议:
- 查询和回复
- 消息格式相同
2.消息头部
-
ldentification:16位查询编码,回复使用相同的编号
-
flage
1.查询回复
2.期望递归
3.递归可用
4.权威回答
cn是cqvie.edu.cn的授权域名服务器,将查询到的www.cqvie.edu.cn和IP地址的对应关系,并向本地域名服务提供权威应答。
14.本地域名服务器将解析结果返回给主机A,并将解析记录写入自己的缓存中。
15.主机根据解析结果,向目的IP发送数据包。
(4)DNS记录缓存和更新
1.只要域名解析服务器获得域名——IP映射,即缓存这一映射
-
一段时间过后,缓存条目失效(删除)
-
本地域名服务器一般会缓存顶级域名服务器映射
1.因此根域名服务器不经常被访问
DNS记录和消息格式
(1)DNS记录
[外链图片转存中…(img-8hf59j0u-1634648730208)]
1.资源记录(RR,resource,records)
2.Type=A
- name:主机域名
- value:IP地址
3.Type=NS
- name:域(edu.cn)
- Value:该域权威域名解析服务器的主机域名
4.Tyoe=CNAME
- Name:某一真实域名的别名
- Value:真实域名
5.Type=MX
- Value是与name相对应得邮件服务器
(2)DNS协议与消息
[外链图片转存中…(img-vSEpnaqC-1634648730208)]
1.DNS协议:
- 查询和回复
- 消息格式相同
2.消息头部
-
ldentification:16位查询编码,回复使用相同的编号
-
flage
1.查询回复
2.期望递归
3.递归可用
4.权威回答