应用层——计算机网络

1.应用层原理

  • 网络核心设备并不在应用层上起作用,尽在较低层上起作用,特别是在网络层及一下的层,该设计是将然健限制在端系统,从而促进大量的网络应用层程序快速的研发和部署。

2.网络应用的体系结构

  • 用操作系统的术语来说,进行通信的实质上是进程,而不是程序,一个进程可以被认为是运行在端系统中的一个程序。
  • 在不同的端系统上的进程,通过跨越计算机网络交换报文而相互通信。
  • 网络应用程序是由成对的进程组成,这些进程通过网络相互发送报文。
  • 文件从一个对等方中的进程传输到另一个对等方中的进程,对每对通信进程,我们通常将这两个进程之一标识为客户进程,另一个进程标识为服务器进程

进程通过一个称为套接字的软件接口,向网络发送报文和从网络接收报文,进程类似于一个房子,套接字就类似于门。

  • 套接字是同一台主机内应用层与运输层之间的接口,由于套接字的建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口。
  • 开发者可以控制套接字接口在应用层一端的一切,但是几乎不能控制套接字在运输层端。
  1. 客户/服务器模式 C/S
  2. 对等模式P2P
  3. 混合体( C/S + P2P)

客户/服务器模型

  • 客户之间不能直接通信(web两个浏览器之间不能直接通信)
  • 服务器是在**固定(固定IP)**的端口上,先于客户端跑起来
  • 客户端可以运行在运动的或固定的IP上,请求资源,服务器相应资源
  • 可扩展性比较差(随着用户数量的增加,服务能力是断崖似的下降

传输速度瓶颈

  1. C/S模式
    • 主机个数少时:主机的下载带宽为瓶颈
    • 主机个数多时:服务器的上载带宽为瓶颈
    • 下载时间随着用户数量的增加为线性增加
  2. P2P模式

对等模式P2P

  • 每个结点既可以是客户又可以是服务器
  • 可扩展性(结点增加,请求节点和服务节点都增加,随着用户数量的增加,服务能力缓慢的降低
  • 管理困难
  1. P2P分类:非结构化P2P、结构化P2P(DHT)

BitTorrent(bit洪流)

  • 一种用于文件分发的流行P2P协议
  • 参与一个特定文件分发的所有对等方的集合,被称为一个洪流,一个洪流中的对等方,彼此下载等长的文件块儿,典型文件快是256KB。
  • 每当洪流具有一定基础设施,节点称为追踪器,当一个对等方加入某洪流时,他向追踪器注册自己并周期性的通知追踪器,它仍在洪流中。

进程寻址

  • 一台主机上的运行的进程被向另一台主机运行的进程发送分组,接收方需要一个地址来标识它自己的进程,需要定义两种信息,1.主机的地址(IP地址)2.是在目的主机中指定接收进程的标识符。

端口号

在TCP/IP协议上寻址包括但部分

  1. 你在哪个终端设备(IP)上
  2. 在终端上的TCP上还是UDP上
  3. 在TCP上有好多应用进程,在那个端口上
  • 有端口号还区分不同的应用进程
  • 标识应用进程做起码两个信息1主机IP,2应用进程的端口号

socket

  • 每次发送接收消息都要传输谁收谁接和信息,为减少每次发送的信息量

  • socket是在面向连接当中本地连接的本地端口的本地标识,对方连接的对方端口的本地标识

  • 使得发送消息穿过的层间最少

  • 一个进程用IP地址和端口号来标识

可供应用程序使用的运输服务

  1. 可靠数据传输
    运输层协议能够潜在的向应用程序提供可靠数据传输的服务。当一个运输协议提供这种服务时,发送进程,只要将数据传递进套接字就可以完全相信该数据能够无差错的传递到进程。
    2.可用吞吐量
    可用吞吐量就是发送进程,能够向接收进程交付比特的速率。
  2. 定时
    运输层协议也能提供定时保证。确定每个比特到达接收方的套接字不得迟于多少毫秒。
  3. 安全性
    运输层协议能够在将数据交付给接收进程之前,解密这些数据运输协议,还能提供除了解密性以外的其他安全性服务,包括数据完整性和端点鉴别。

因特网提供的运输服务

1. TCP服务
  • 面向连接的服务:TCP让客户和服务器相互交换运输层信息,这个所谓的握手过程提醒用户和服务器,让他们为大量分组的到来做好准备,在握手阶段之后,TCP连接就在两个进程的套接字之间建立。这条连接是全双工的,双方都可以在连接上同时进行报文发送。当应用进程结束报文发送时,必须拆除该链接
  • 可靠的数据传输服务通信进程能够依靠TCP无差别适当顺序交付所有发送的数据,而没有字节的丢失和冗余。
  • TCP协议还提供拥塞控制机制。该服务不一定能为通信进程带来直接好处,但能为因特网带来整体好处。当发送方与接收方之间网络出现拥塞时,TCP的拥塞控制机制会一直发送进程。
1. UDP服务

UDP是一种不提供不必要服务的,轻量级运输协议是无连接的,没有握手过程,UDP协议提供不可靠的数据传输,也就是说当UDP协议不保证该报文将到达接收进程。并且UDP没有拥塞控制机制。

  • 无论是TCP还是UDP,都没有提供任何加密机制。因特网界已经制定了TCP的加强版本,称为安全套接字层(SSL),用SSL加强后的TCP,不仅能做传统TCP所做的一切,而且提供关键的进程到进程的安全性服务,包括加密,数据完整性,端点鉴别,我们强调SSL不是TCP和UDP在相同层次上的三种因特网协议,而是对TCP的加强,这种强化是在应用层上实现的。

3. 应用层协议

应用层协议定义了运行在不同端系统上的应用程序进程,如何相互传递报文。

  • 交换的报文类型,例如如何请求报文和响应报文。
  • 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
  • 字段的语义记,这些字段中的信息的含义。
  • 确定一个进程何时以及如何发送报文,对报文进行相应的规则。

3.域名解析系统 DNS

DNS不是一个直接和用户打交道的应用,相反DNS是为因特网上用户应用程序以及其他软件提供一种核心功能(机名转换为背后的IP地址)

  • 实现域名到IP地址的转化
    IP地址:121.7.106.83 域名www.someschool.edu
  • 许多应用软件直接使用域名系统,而有些用户只能间接的使用域名系统
  • 互联网采用层次结构的命名树作文书记得名字,比采用分布式的域名系统DNS
  • 若干个服务器远程完成对名字到IP地址的解析
  • 域名服务器在专设的节点上运行,运行程序的机器叫域名服务器

DNS通常是由应用程序使用的,包括:HTTP,SMTP,FTP将用户提供的主机名转换为 IP地址。

一个域名解析过程的例子:

用户主机上浏览器请求页面URL www.someschool.edu/index.html 就必须获得www.someschool.edu的IP地址。

  1. 同一台用户主机上运行着DNS应用的客户端
  2. 浏览器从上述URL中抽取出主机名www.someschool.edu,并将这台主机名传递给DNS应用的客户端。
  3. DNS客户向DNS服务器发送一个包含主机名的请求。
  4. DNS客户最终会收到一份回答报文,其中包含对应该主机名的IP地址。
  5. 一旦浏览器收到,来自DNS的该IP地址,它能够向位于IP地址80号端口的HTTP服务器进程发起一个TCP连接。
    DNS系统会带来一定的延迟,为减缓这一问题,获得IP地址后通常就缓存在附近DNS服务器中,这有助于减少DNS网络流量和DNS平均时延。

域名结构

  • 层次树状结构的命名方法
  • 任何一个连接在互联网上的主机或路由器都有唯一一个域名
  • 域名的结构有符号序列组成:…三级域名.二级域名.顶级域名()

顶级域名TLD

  • .cn:表示中国
  • .su:美国
  • .uk:英国
通用的顶级域名gTLD
  • .com:公司企业
  • .net:网络服务机构
  • .org:非营利性组织
  • .int:国际组织

服务器的分层

  1. 根DNS服务器:
    全球有400多个根域名,服务器遍及全球。根域名服务器提供**顶级域(TLD)**服务器的IP地址。

  2. 顶级域名服务器(TLD)
    对于每个顶级域和所有的国家的顶级域名都有TLD服务器。他提供权威服务器的IP地址。

  3. 权威服务器
    在因特网上具有公共可访问主机的每个组织机构都必须提供公共访问的DNS记录,权威服务器将记录这些主机名所映射的IP地址。

  4. 本地DNS服务器
    每一个ISP都有一台本地DNS服务器,当主机和某个ISP连接时,该ISP提供一台主机IP地址,该主机具有一台或多台其他本地DNS服务器的IP地址通过访问用户能够容易地获取本地DNS服务器的IP地址。

DNS解析过程

假设主机A要知道主机gain.cs.umass.edu的IP地址,A的本地域名服务器是AD,顶级域名服务器是TLD,

  1. 主机A先向AD发送查询DNS的查询报文。
  2. AD向根域名服务器转发该报文。
  3. 跟域名服务器注意到请求地址的edu前缀,并向AD返回负责这个edu前缀的TLD的IP地址列表。
  4. TLD顶级域名服务器看到umass.edu,并用权威DNS服务器的IP地址进行响应,该权威DNS服务器域名是dns.umass.edu
  5. 最后本地DNS服务器直接向dns.umass.edu权威服务器重发查询报文,dns.umass.edu权威服务器用gain.cs.umass.edu的IP地址进行相应。

为获得一台主机名的映射,共发送了8份DNS报文,4份查询报文和4份回答报文。

迭代查询

花型查询路线

递归查询

倒U型查询路线

DNS记录与报文

资源记录(RR):实现DNS分布式数据库的所有DNS服务器储存在资源记录中资源记录中,RR提供了主机名到IP地址的映射。
资源记录主要包括下列字段的4元组:
(name,value,type,TTL )

  • name:主机名
  • valud:是该主机名对应的IP地址
  • type:类型
  • TTS记录生存时间,他决定了资源记录应从缓存中删除的时间。
  1. type=A类型资源记录提供了标准的主机名的IP地址的映射。
  2. type=NS类这个记录用于沿着查询电路来路由DNS查询。
  3. type=CNAME该记录能够查询主机,提供一个主机名到对应规范主机名。
  4. type=MX记录允许邮件服务器主机名具有简单的别名。

DNS报文

标识符标志
问题数回答RR
权威RR数附加RR数
问题(问题的变量数)
权威(资源记录的变量数)
附加信息(资源记录的变量数)

4.文件传送协议

FTP

  • 允许提供交互的访问,允许客户之间文件的类型和格式,并允许
  • 主要功能是较少或消除不同操作系统之间处理不同文件的不兼容性

TFTP协议

  • 很小很简单的文本传输协议
  • 需要有自己的差错检验措施
  • 只需要文件传输不支持交互
  • TFTP没有一个庞大的命令集合,没有列目录的功能,也不能对用户进行身份鉴别

3.远程终端协议TELNET

  • TELNET是一个简单的远程终端协议,也是互联网的正式协议
  • 用户用TELNET就可以通过TCP连接注册连接到另一个主机上

5.万维网WWW

  • 万维网并不是一种网络,而是一种大规模、联机式的信息储存方式
  • 万维网用连接的方法从一个站访问另一个站
  • 客户-服务器的方式工作
  • 浏览器是用户计算机上的万维网客户程序
  • 万维网文档所驻留的计算机则运行服务器程序
    • 客户程序向服务器程序发送请求,服务器程序向客户程序发送回客户所要的万维网文档。
  • 页面:客户程序主窗口上显示的万维网文档

6.HTTP协议

  • HTTP是超文本传输协议。(HTTP是web的核心)
  1. HTTP有两个程序实现,一个是客户程序,一个是服务器程序。
  2. 客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话,HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。
  • HTTP协议是一个应用层协议,使用TCP连接进行可靠传输
  • 无状态的协议
  • HTML:超文本标记语言

URL格式

  • 协议名://用户名:口令+主机名+路径名+端口
  • Port://user:pew@www.someSchool.edu/someDept/pic.gif:prot
  • Port:协议名
  • user:pew 用户名:口令
  • www.someSchool.edu 主机名
  • someDept/pic.gif 路径名
  • prot 端口

Web页面是由对象组成一个对象,只是一个HTML文件,JPEG图形,Java小程序视频片段这样的文件,且他们通过一个URL地址寻址。

持续连接与非持续连接

非持续连接

非持续连接:每一个请求响应都经一个单股的TCP连接发送请求,响应时间为两个RTT

非持续连接的例子

假设外部网页中含有一个HTML基本文件和10个JPEG图形。并且这11个对象位于同一台服务器以上。 HTML的文件的URL为:http://www.someschool.edu/some

  1. HTTP客户进程在端口号80发起一个到服务器www.someschool.edu的TCP连接,该端口号是HTTP的默认端口。在客户和服务器上分别有一个套接字与该连接相关联。
  2. HTTP客户经过他的套接字,向服务器发送一个HTTP请求报文请求报文包含路径名/some
  3. HTTP服务器经过它的套接字接收请求报文,从其储存器中检索出对象www.someschool.edu/some,在一个HTTP响应报文中封装对象,并通过其套接字向客户发送响应报文。
  4. HTTP服务器进程通知TCP断开该TCP连接。(直到TCP确认客户已经完整,收到响应报文后为止,他才会实际中断连接。)
  5. HTTP客户接收响应报文TCP连接关闭。
  6. 对每个引用的JPEG图形对象重复前4个步骤。
    当浏览器收到web网页后,向用户显示给网页两个不同的浏览器,也许会以不同的方式解释改网页 HTTP与客户如何解释一个web网页毫无关系。

每一个TCP只传输一个请求报文和一个响应报文,该次连接有11个对象,要产生11个TCP连接。

  • 非持续连接有一些缺点,1. 必须为每个请求的对象建立和维护一个全新的连接,客户和服务器中都要分配TCP缓冲区和保持TCP变量。2. 像我们刚刚描述的那样,每一个对象经受两倍RTT的交付时延(一个RTT用于建立TCP连接,另一个RTT用于请求和接受一个对象。)。

持续连接

持续连接:请求响应经相同的TCP连接发送请求

  • HTTP1.1持续连接:服务器在发送响应后保持TCP连接打开,在相同的客户和服务器之间,后续的请求和响应报文能通过相同的连接进行发送。特别是一个完整的web网页,可以用单个持续TCP连接进行传送,甚至可以同一台服务器多个web网页在从该服务器发送给同一客户时,可以在单个持续TCP连接上进行, 如果一条连接经过一定时间间隔,仍未被使用,HTTP服务器就关闭该连接。
  • HTTP/2是在HTTP1.1的基础上建立的,它允许在相同连接中多个请求和回答交错并增加了在该链接中优化HTTP报文请求和回答机智。

HTTP的交付过程

  1. 1.0版本(非持续):客户向服务器发送TCP连接建立请求,服务器传回连接确认,客户发送HTTP连接请求,服务器传回连接确认,服务器接着传回相应报文,最后服务器发出连接拆除请求,客户传回连接拆除的确认
  2. 2.0版本(持续):客户向服务器发送TCP连接建立请求,服务器传回连接确认,客户发送HTTP连接请求,服务器传回连接确认,服务器接着传回相应报文,最后连接不关闭(持久性连接),如果还有其他的请求会在这个连接上继续发送

cookie

  • HTTP协议是无状态的协议,cookies可以记录一下HTTP的状态,下次发在使用HTTP的时候可以调用使用。
  • cookie允许站点对用户进行跟踪,(可以限制用户的访问,把内容与用户身份联系起来)
  • cookie技术的4个组件:
    1. 在HTTP响应报文中的一个cookie首部行
    2. 在HTTP请求报文中的一个cookie首部行
    3. 用户端系统中保留一个cookie文件,并由用户的浏览器进行管理
    4. 位于web网点的一个后端数据库

HTTP报文格式

  1. HTTP请求报文的第1行叫做请求行,行于后的行叫做首部行
  2. 请求行有三个字段:方法字段,URL字段和HTTP版本字段,其中方法字段可以有几种不同的值,包括GET,POST,HEAD,PUT,DELETE,绝大多数的HTTP请求报文使用GET方法。

HTTP请求报文

  1. HTTP请求报文第一行为请求行后续的首部行
GET / somedir/page.htme THHP/1.1 //请求行三个字段:方法字段/URL字段/HTTP版本字段
/*余下都为首部行*/
Host:www.someschool.edu  // 指明对象所在主机
connection: close       //告诉服务器不要使用持续连接       
User-agent: Mozilla/5.0  //用于指明用户代理(浏览器类型),该浏览器型为Mozilla/5.0
Acceptplanguage:fr       //用户想得到的语言版本(fr表示法语) 

  1. 请求行有三个字段:方法字段,URL字段,HTTP版本字段
    1. 方法字段例如 GET(实体为空) POST(使用该实体体) HEAD 等

HTTP响应报文

  • 响应报文分为三部分:1个初始状态行(三部分:协议版本字段,状态码,相应的状态信息),6个首部行,然后是实体体
HTTP/1.1 200 OK
Connection :close     //发送完报文后将关闭TCP连接
Date: Tue, 18 Aug 2015 15:44:04 GMT     //Date表示服务器产生并发送报文的日期和时间
Server :Apache/2.2.3 (Centos)     //该报文是由一台Apache web服务器产生。类似于User-agent
Last-Modified: Tue, 18 Aug 2015 15:11:03 GMT    //对象最后创建或者修改的时间
Content-Length:6821     //被发送对象的字节数
Content-Type:TECT/html      实体体中的对象是HTML文本。
{  date   date   date  .....}
  • Date:表示时间为服务器发送报文的时间,而不是对象创建或者修改的时间。
  • Last-Modified:对即可能在本地客户有可能在网络缓存服务器上的对象缓存非常重要。
  • Server:首部行指示该报文是一台Apache Web服务器产生的,它类似于HTTP请求报文中的User-agent:首部行。
  • Content-Length:首部行指示了,被发送对象中的字节数。
  • Content-Type:首部行指示了,实体体中的对象是HTML文本。

状态码和相关的短语包括:

  • 200 OK:请求成功,信息在返回的响应报文中。
  • 301 Moved Permanently:请求的对象已经被永久转移了新的URL定义,在响应报文的Location:首部行中客户软件将自动获取新的URL。
  • 400 Bad Request:一个通用差错代码,只是该请求不能被服务器理解。
  • 404 Not Found:被请求的文档不在服务器上。
  • 505HTTP Version Not Supported:服务器不支持请求报文使用HTTP协议版本。

web缓存器

  • 也叫代理服务器,它是能够代表初始web服务器来满足HTTP请求的网络实体。
  • Web缓存器用自己的磁盘存储空间存储近期访问对象的副本,一旦某浏览器被设置,每个对某对象的浏览器请求,首先被定向到该外部缓存器。
  • 一个例子:假设浏览器正在请求对象http:/www.someschool.edu/campaus.fif
  1. 浏览器创建一个到Web缓存器的TCP连接,并向Web缓存器中的对象发送一个HTTP请求。
  2. Web缓存器进行检查,看本地是否存储该对象的副本,如果有Web缓存器就向客户浏览器用HTTP响应报文返回该对象。
  3. 如果没有,就打开一个该对象的初始服务器(www.someschool.edu)的TCP连接,web缓存器则在这个缓存器到服务器的TCP连接上发送一个对该对象的HTTP请求,在收到该请求后,初始服务器向该外部缓存器发送具有该对象的HTTP响应。
  4. 当web缓存器收到该对象时,他在本地缓存空间储存一个副本,并向客户的浏览器用HTTP响应报文发送该副本。
  • 部署web缓存器的两个原因: 1. 缓存器可以大大减少对客户请求的响应时间,2. web缓存器能大大减少一个机构的接入链接到因特网的通信量。

条件GET方法

虽然缓存器中保存对象的副本,但是该副本可能是陈旧的,为解决这一问题HTTP有一种机制,允许缓存器,证实他的对象是最新的这种机制就是条件GET方法

7.Emile

  • 电子邮件系统主要组成部分:用户代理,邮件服务器(核心),简单邮件传输协议

SMTP

  • SMTP是因特网电子邮件的主要应用层协议核心
  • 依靠TCP可靠的数据连接
  • 组成部分:1.客户端(运行在发送方邮件服务器上)2.服务器端(运行在接收方邮件服务器上)
  • SMTP一般不使用中间的服务器发送文件,
  • 与服务器的25号端口建立TCP连接

SMTP连接的建立

  1. 客户SMTP与服务器SMTP建立TCP连接(在服务器25号端口、若服务器关机,客户会稍后再次尝试)
  2. 建立连接后,客户服务器捂手(通知发送地址)
  3. 客户发送报文
  4. 如果还有报文要发送,重复上述步骤
  5. 无报文传输后,关闭TCP连接

邮件报文格式

  • 每一个首部必须包含一个(Form:首部行)和一个(To:首部行)
  • 也许还包含一个(Subject:首部行),及其他首行。
From: alice@crepes.fr
To:bob@hamburger.edu
Subject:searching for the meaning fo life

POP3

  • 极其简单的邮件访问协议
  • 作用将邮件从接收方服务器传送到接收方的用户代理(浏览器、搜索引擎等)

POP3工作过程分3个阶段

  1. 特许阶段:用户代理发送用户名口令,以鉴别用户。
  2. 事务处理:用户代理取回报文,同时对报文做删除标记的标记,获得统计信息
  3. 更新阶段:客户发出quite命令后,结束POP3回话,邮件服务器会删除第二阶段被标记删除的报文。

IMAP

  • 是一个邮件访问协议,比POP3跟复杂,更有特色。

SMTP与HTTP对比

传输对象协议模式报文格式处理一个文件包含不同类型的数据(文字、图片)
TTTPweb服务器向web客户拉协议(用户用HTTP从服务器拉取信息)不限制数据形式把每个对象封装到他自己的报文当中
SMTP邮件服务器向邮件服务器推协议(邮件服务器把信息推给另一个邮件服务器)必须7比特ASCII码把所有报文放到一个报文当中

视频流和内容分发

视频流

  • 用户观看互联网上的视频,这些视频都是提前录制好放置在服务器上,用户按需向服务器发出请求。
  • 视频可以被压缩,,如今压缩算法可以把一个视频压缩成任何比特率,比特率越高,画质越好。
  1. 对流视频影响最大的是平均端到端的吞吐量
  2. 网络必须为流视频提供平均吞吐量,这个流式应用至少与压缩视频的比特率一样大

一副未压缩的,数字编码的图像由像素点阵组成,其中每个像素是由一些比特编码来表示亮点和颜色视频的一个重要特征,是它能够被压缩因而可用比特率来衡量视频质量,今天形成的压缩算法能够将一个视频压缩成所希望的任何比特。

HTTP流与DASH

HTTP流

  1. HTTP流中,视频只是储存在HTTP服务器中作为一个普通文件,每个文件有一个特定的URL(同一资源定位系统)
  2. 当用户查看视频时,客户与服务器建立一个TCP连接,并发送对该URL的HTTP GET请求。
  3. 服务器则以底层网络协议和流量条件允许的,尽可能快的速率,在一个HTTP响应报文中发送视频。
  4. 在客户一侧字节被收集在客户应用缓存中,一旦缓存中的字节数量超过预先设定的门限客户应用程序就开始播放,特别是流式视频应用周期的从客户应用程序缓存中抓取针对这些帧解压缩,并且在用户屏幕上展现。
  5. 因此流式视频应用接收到视频就进行播放,同时缓存该视频后面部分的真。

DASH

尽管HTTP流在实践中已经得到广泛部署,但它有严重的缺陷,就是所有客户接收到相同编码的视频,尽管对不同用户或对于相同客户的不同时间而言,客户可用的带宽大小有很大的不同,这导致一个新型的基于 HTTP流的研发被称为经HTTP的动态适应性流 DASH

  • DASH允许客户使用不同的以太网接入速率流式播放具有不同编码速率的视频。
  • 接入不同速率获得不同比特率版本的数据。(3G以下连接的用户能够接收到低比特率的版本,光纤连接的用户能够接收高质量的版本)
  • 使用DASH之后,每个视频版本储存在HTTP服务器中,每个版本都有一个不同的URL。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值