(一)网络应用的体系结构
1. 网络应用体系结构种类
- 客户机/服务器结构(C/S结构)
- 点对点结构(P2P结构)
- 混合结构
2. 客户机/服务器结构
客户机:
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不会与其他客户机进行通信
服务器:
- 7*24小时提供服务
- 永久性访问地址/域名
- 利用大量服务器可实现可扩展性
3. P2P结构
特点:
- 没有永远在线的服务器
- 任意端系统之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理
(二)网络应用进程通信
进程:主机上运行的程序
同一主机上进程间通信:操作系统提供了一套进程间的通信机制
不同主机上进程间通信:消息交换/报文交换
客户机进程:发起通信的进程
服务器进程:等待通信请求的进程
套接字:进程间通信利用套接字socket实现发送/接收信息
1. 寻址进程
标识符:不同主机上的进程间通信,那么每个进程必须拥有标识符
主机寻址:利用IP地址
进程寻址:利用端口号(Port number)
进程的标识符:IP地址 + 端口号
(三)应用层协议
公开协议:由RFC定义,允许互操作,例如HTTP,SMTP,……
私有协议:多数P2P文件共享应用
1. 应用层协议内容
应用层协议内容:
- 消息的类型
- 请求消息
- 相应消息
- 消息的语法/格式
- 消息中包含的字段
- 字段的描述
- 字段的语义
- 字段中消息的含义
- 规则
- 进程如何以及何时发送/响应消息
(四)网络应用的需求与传输层服务
1. 网络应用需求
网络应用需求种类:
- 数据丢失/可靠性
- 时间/延迟
- 带宽
- 安全性
2. 传输层服务
2.1 TCP服务
- 面向连接:客户机和服务器进程之间需要建立连接
- 一种可靠的数据传输
- 有流量控制:发送方不会发送速度过快,从而超过接收方的处理能力
- 有拥塞控制:当网络负载过重时限制发送方的发送速度
- 不提供时间/延迟保障
- 不提供最小带宽保障
2.2 UDP服务
- 无连接
- 是一种不可靠的数据传输
- 啥基本上都不提供
(五)Web应用
Web组成:网页及网页间的互相链接
网页组成:
- 对象:HTML文件,JPEG图片
- 基本HTML文件:包含对其他对象引用的连接
对象的寻址:
- URL:统一资源定位器
- 格式:Scheme://host:port/path
- 格式:协议://主机地址:端口号/资源路径
- 浏览器中显示的双斜杠后面的是域名,之后电脑会将域名解析为主机的IP地址
应用层遵循协议:HTTP协议(超文本传输协议)
Web应用网络架构:C/S架构
- 客户(Brower):请求、接收、展示Web对象
- 服务器(Web Server):响应客户的请求、发送对象
传输层遵循协议:TCP协议
HTTP连接类型:
- 非持久性连接
- 持久性连接
一、HTTP连接
(一)非持久性连接
1.具体过程
- 首先是用户在浏览器中输入URL:www.zhihu.com/question/511451839
- HTTP客户端向地址为www.zhihu.com的HTTP服务器进程(端口为80)发送TCP连接请求
- HTTP服务器在端口80等待TCP连接请求,接收连接并通知客户端
- HTTP客户端将HTTP请求消息(包含URL地址)通过TCP连接的套接字发送给HTTP服务器,消息中包含的URL表明客户端需要对象question/511451839
- HTTP服务器收到请求消息,解析,产生包含所需要对象的响应消息,并通过套接字发送给客户端
- 在消息发出后,HTTP服务器关闭TCP连接
- HTTP客户端收到响应消息,解析html文件,发现有多个指向jepg对象的超链接
- 为每一个jepg对象重复步骤1-5
(二)持久性连接
1.无流水的持久性连接
概念:客户端只有在收到前一个响应之后才会发送新的请求,因此,每个被引用的对象消耗一个RTT
2.带有流水机制的持久性连接
概念:客户端只要遇到一个引用对象就尽快发出请求
(三)HTTP消息格式
1. HTTP消息类型
- 请求消息
- 响应消息
2. 请求消息
-
采用ASCII码的形式编写,人直接可读
-
- 第一行:请求行;GET为请求命令;后面是URL以及HTTP的版本
- 第二~五行:头部行;分别是:主机域名、浏览器类型及版本、连接状态以及语言
3. 上传输入
上传输入使用场合:浏览器输入中包含了类似用户名与密码等需要向服务器输入的信息
上传输入方法:
- POST方法
- 使用场景:网页中需要用户填写表格
- 在请求消息的消息体中上传客户端的输入
- URL方法
- 使用GET方法
- 在请求消息的请求行中的URL字段中上传
4. 响应消息
- 第一行:状态行;包括HTTP版本、状态代码及解释
- 第二~七行:头部行
(四)Cookie技术
cookie技术:某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
cookie组件:
- HTTP请求消息的cookie头部行
- HTTP响应消息的cookie头部行
- 保存在客户端主机上的cookie文件,由浏览器管理
- 服务器端的后台数据库
(六)DNS应用
1. DNS记录与消息格式
1.1 DNS记录
DNS记录(又称为资源记录):RR
RR的格式:RR format:(name, value, type, ttl)
- Type A
- name:主机域名
- value:IP地址
- Type NS
- name:域(edu.cn)
- value:该域权威域名解析服务器的主机域名
- Type CNAME
- name:某真实域名的别名
- value:真实域名
- Type MX
- value是与name对应的邮件服务器
1.2 DNS协议与消息
DNS协议主要用于查询和回复消息,其消息格式是相同的
DNS消息格式
- 消息头部
- identifiction:16位查询编号,回复使用相同的编号
(七)P2P应用
1. 索引技术
P2P系统的索引:信息到节点信息(IP地址+端口号)的映射
索引种类:
- 集中索引:节点加入时,通知中央服务器其IP地址及内容
- 首先是请求方通过中央服务器确定响应者位置,之后再与响应者建立连接
- 洪泛式查询:完全分布式架构,每个节点对它且只对它共享的文件进行索引
- 查询信息通过已有的TCP连接发送
- 节点转发查询消息
- 如果查询命中,则利用反向路径发回查询节点
- 层次式覆盖网络:整个网络由节点与超级节点组成,节点与超级节点之间维持TCP连接,超级节点之间维持TCP连接,超级节点负责跟踪子节点内容