网络应用层(上)

计算机网络应用层上的应用简单介绍,如: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客户端

  1. 邮件服务器
  • 邮箱:存储发给该用户的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.权威回答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值