知识点 - 协议大全

一 广域网通信技术协议

1.1 HDLC 协议

HDLC 协议的全称是高级链路控制协议(High Level Data Link Control),是一种在网上同步传输数据,面向比特的 数据链路层协议,广泛用于公用数据网,支持全双工或半双工传输,使用 后退N帧ARQ流控方案

HDLC定义了3种类型的站(主站、从站、复合站),两种链路配置(不平衡配置、平衡配置),3种数据传输方式(NRM、ABM、ARM)。

HDLC帧格式:
在这里插入图片描述

  1. 帧标志F:HDLC 用一种特殊的位模式 01111110 作为标志以确定帧的边界,采用位填充技术来区分是标志字段还是数据字段,发送站的数据比特序列一旦发现0后有5个1,则在第7位插入0。
  2. 地址字段A:地址字段用于标识从站的地址,用在点对多点的链路中,地址通常是8位长。
  3. 控制字段C:帧编号N(S),捎带的肯定应答序号N®,PF位,P询问、F终止 。

1.2 X.25

X.25是一个面向连接的接口,采用虚电路传递数据分组至网络上的适当终点处。在X.25的网络中,用户的计算机终端设备将与分组/拆装设备(PAD)连接,负责完成分割分组、寻址、重组装分组的工作,而不同的X.25网络之间则要使用X.75协议互联。

X.25是一个基于分组交换技术构建的网络,分组交换本身是适于无连接业务的,要为用户提供面向连接的接口服务,则必须借助虚拟电路技术(VC),虚电路服务具有两种形式,一种是交换虚电路SVC,一种是永久虚电路PVC。

最常见的X.25协议支持的最大传输速率为64Kb/s。

帧格式:
在这里插入图片描述

1.3 ATM

ATM是一种可以将局域网功能、广域网功能、语音、视频和数据,集成进一个统一的协议设计。

在ATM传输中,ATM把用户数据组成53B的信元作为分组交换的信息单位,采用统计时分复用模式,提供面向连接的虚电路服务。

ATM连接可以是点到点的连接,也可以是点到多点的连接,分为PVC和SVC两种虚电路。

ATM通常是在光纤的基础上建立的,典型的数据速率为155.5Mb/s,因此它是不提供应答的,将少量的错误交给高层处理。

ATM的目的是实现实时通信,对于偶然的信元错误是不重传的,对于要重传的信息由高层处理。

分层体系结构:
在这里插入图片描述
在这里插入图片描述

信元头结构:
在这里插入图片描述

二 传输相关协议

2.1 以太网协议

在这里插入图片描述

2.2 IPv4 协议

报文格式:
在这里插入图片描述

  1. 版本号:占4比特,指IP协议的版本,目前广泛使用IPv4。
  2. 首部长度(IHL):IP头长度,占4比特,最大值15个单位(1个单位4字节)。
  3. 服务类型:该字段包括一个3比特的优先级子字段(现在已废弃不用),还包括一个4比特的ToS子字段,最后1比特必须置0。ToS中的4比特分别代表:最小时延(D)、最大吞吐率(T)、最高可靠性(R)和最小费用(C),只能有1比特置1。如果所有4比特均为0,那就是一般服务。
  4. 标识符:由主机指定同样的标识符。当原主机对数据分段时,对同一上层协议数据单元划分出的各个数据报指定同样的标识符,目标主机上层协议用这个字段进行重装配。
  5. 标志:包括三个标志位。一个标志位没有使用;M标志用于分段和重装配;D标志为禁止分段标志。
  6. 段偏置值:指明该段处于原来数据报中的位置,已8字节为单位。
  7. 生存期(TTL):用经过的路由器个数表示,源站设置一个数(32或64),每经过一个路由器减1。如果某个路由器发现TTL字段为0,则丢弃该数据报,不再转发。
  8. 协议:上层协议(TCP或UDP)。
  9. 头检验和:对IP头的检验序列。
  10. 任选数据:可变长,包含发送者想要发送的控制数据。

IP 协议簇:
在这里插入图片描述

2.3 ICMP 协议

ICMP(Internet Control Message Protocol)与IP协议同属于网络层,封装在IP数据报中传输,传送有关网络层通信问题的信息。

ICMP常见应用有:报告访问失效(报告源主机网络不可达);报告网络拥塞(发送源抑制报文给源主机,降低发送速率);帮助排错(利用ICMP回声功能,ping工具);声明报文超时(TraceRoute工具,利用较小的TTL值发现中间设备)。

报文格式:
在这里插入图片描述

2.4 IPv6 协议

IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。

报文格式:
在这里插入图片描述

  1. Version(版本号):4位,IP协议版本号,值= 6。
  2. Traffice Class(通信类别):8位,指示IPv6数据流通信类别或优先级。功能类似于IPv4的服务类型(TOS)字段。
  3. Flow Label(流标记):20位,IPv6新增字段,标记需要IPv6路由器特殊处理的数据流。该字段用于某些对连接的服务质量有特殊要求的通信,诸如音频或视频等实时数据传输。在IPv6中,同一信源和信宿之间可以有多种不同的数据流,彼此之间以非“0”流标记区分。如果不要求路由器做特殊处理,则该字段值置为“0”。
  4. Payload Length(负载长度):16位负载长度。负载长度包括扩展头和上层PDU,16位最多可表示65,535字节负载长度。超过这一字节数的负载,该字段值置为“0”,使用扩展头逐个跳段(Hop-by-Hop)选项中的巨量负载(Jumbo Payload)选项。
  5. Next Header(下一包头):8位,识别紧跟IPv6头后的包头类型,如扩展头(有的话)或某个传输层协议头(诸如TCP,UDP或着ICMPv6)。
  6. Hop Limit(跳段数限制):8位,类似于IPv4的TTL(生命期)字段。与IPv4用时间来限定包的生命期不同,IPv6用包在路由器之间的转发次数来限定包的生命期。包每经过一次转发,该字段减1,减到0时就把这个包丢弃。
  7. Source Address(源地址):128位,发送方主机地址。
  8. Destination Address(目的地址):128位,在大多数情况下,目的地址即信宿地址。但如果存在路由扩展头的话,目的地址可能是发送方路由表中下一个路由器接口。
  9. 扩展首部:IPv6包头设计中对原IPv4包头所做的一项重要改进就是将所有可选字段移出IPv6包头,置于扩展头中。由于除Hop-by-Hop选项扩展头外,其他扩展头不受中转路由器检查或处理,这样就能提高路由器处理包含选项的IPv6分组的性能。

2.5 TCP 协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

报文格式:
在这里插入图片描述

  1. 源端口和目的端口:都是16个比特,分别表示发送方和接收方的端口号。端口号和IP地址构成套接字(socket)地址的主要内容。源端和目的端的套接字合起来唯一地表示一条连接。网络应用程序在通信时直接向套接字发送和接收数据。
  2. 序列号和确认号:都是32位的无符号整数,可以表示0-4G(232)字节的范围。其中,序列号表示数据部分第一个字节的序列号,而确认号表示该数据报的接收者希望对方发送的下一个字节的序号(即序号小于确认号的数据都已正确地被接收)。
  3. 头长度(HLEN):表示TCP报文头的长度。长度以32-bit为单位来计算。所以如果选项部分的长度不是4个字节的整数倍,则要加上填充(padding)。
  4. 保留域:紧接在头长度字段后有6个比特,应该把它设置为0。再后则是6个标志位。标志位特定的含义:
    1. URG(urgent)为紧急数据标志。如果它为1,则表示本数据报中包含紧急数据。此时紧急数据指针表示的值有效。它表示在紧急数据之后的第一个字节的偏侈值(即紧急数据的总长度)。
    2. ACK(acknowledge)为确认标志位。如果ACK为1,则表示报文中的确认号是有效的。否则,报文中的确认号无效,接收端可以忽略它。
    3. PSH(push)标志位。被置位后,要求发送方的TCP协议软件马上发送该数据报,接收方在收到数据后也应该立即上交给应用程序,即使其接收缓冲区尚未填满。
    4. RST(reset)标志位。用来复位一条连接。RST标志置位的报文称为复位报文。一般情况下,如果TCP收到的一个报文明显不是属于该主机上的任何个连接,则向远端发送一个复位报文。
    5. SYN(synchronous)标志位。用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据报为连接请求,如SYN=1而ACK=1则表示是接受连接。
    6. FIN(finish)标志位。表示发送方已经没有数据要传输了,希望释放连接。
      窗口(window)字段。窗口表示的是从被确认的字节开始,发送方最多可以连续发送的字节的个数。接收方通过设置该窗口值的大小,可以调节源端发送数据的速度,从而实现流控。 校验和(checksum)域。是TCP协议提供的一种检错机制。与我们在前面的章节中学过的UDP协议类似,在计算校验和时不仅要计算TCP报文自身(报文头和数据),还要增加一些额外的信息内容 – 12个字节的“伪包头”。

TCP 三次握手
TCP采用三次握手过程建立连接,首先是发起方发送一个SYN标志置位的段,其中的发送顺序号为某个值X,称为初始顺序号ISN(Initial Sequence Number),接收方以SYN和ACK标志置位的段响应,其中的应答顺序号应为X+1(表示期望从第X+1个字节处开始接收数据),发送顺序号为某个值Y(接收端指定的ISN)。

这个段到达发起端后,发起端以ACK标志置位,应答顺序号为Y+1的段回答,连接就正式建立了,连接建立的同时发起方还可以发送数据。
在这里插入图片描述

流量控制
TCP采用的流控方式与数据链路层的流控方式不同,属于可变大小的滑动窗口协议,也叫信贷(Credit)滑窗协议,它更适合于两个相距遥远的主机在无连接的网络上实现流量控制。

2.6 UDP 协议

用户数据报协议(UDP,User Datagram Protocol),是一个无连接的传输协议。

报文格式:
在这里插入图片描述

  1. 源端口(Source Port)和目的端口(Destination Port)字段包含了16比特的UDP协议端口号,它使得多个应用程序可以多路复用同一个传输层协议 – UDP协议,仅通过不同的端口号来区分不同的应用程序。

  2. 长度(Length)字段记录了该UDP数据包的总长度(以字节为单位),包括8字节的UDP头和其后的数据部分。最小值是8(即报文头的长度),最大值为65,535字节。

  3. UDP检验和(Checksum)的内容超出了UDP数据报文本身的范围,实际上,它的值是通过计算UDP数据报及一个伪包头而得到的。但校验和的计算方法与通用的一样,都是累加求和。

  4. 所谓“伪首部”是因为这种伪首部并不是UDP用户数据报的真正首部。只是在计算检验和时,临时和UDP用户数据报连接在一起,得到一个过渡的UDP用户数据报。检验和就是按照这个过渡的UDP用户数据报来计算的。伪首部既不向下传送也不向上递交,而仅仅是为了计算检验和。

2.7 ARQ 协议

自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。

1. 停等式ARQ
在停等式ARQ中,数据报文发送完成之后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。

停等式ARQ,发送窗口和接收窗口大小均为1,发送方每发送一帧之后就必须停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。该方法所需要的缓冲存储空间最小,缺点是信道效率很低。

2. 回退n帧的ARQ
发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么从那个发生错误的帧开始及其之后所有的帧全部再重新发送。

复杂度低,但是不必要的帧会再重发,所以大幅度范围内使用的话效率是不高的。

3. 选择性重传ARQ
发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么发信侧将只重新发送那个发生错误的帧。

复杂度高,但是不需要发送没必要的帧,所以效率高。

三 路由相关协议

3.1 BGP-4 协议

BGP是一种不同自治系统的路由器之间进行通信的 外部网关协议

BGP的主要功能是控制路由策略,BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略。

BGP是一个距离向量协议,支持无类别的域间路由(CIDR)

1. 报文类型

  1. .建立(open):建立邻居关系
  2. 保持活动状态(keepalive):对open报文的应答/周期的确认邻居关系
  3. 更新:发送新的路由信息
  4. 通告:报告检测到的错误

2. 传输协议
BGP邻居之间通过TCP连接交换路由信息,使用端口号为179。

3. 维护与更新
BGP 通过定期发送keepalive报文给其邻站来检测TCP连接对端的链路或主机失败。

初始连接建立时要发送全部路由信息,以后只发送改变了的路由信息。

BGP路由器不需要进行周期性路由更新。

3.2 RIP 协议

RIP协议的全称是路由信息协议,它是一种内部网关协议(IGP),用于一个自治系统(AS)内的路由信息的传递。

RIP协议是基于距离矢量算法(Bellman-ford)的,它使用“跳数”,衡量到达目标地址的路由距离。

RIP使用非常广泛,简单可靠便于配置。RIPv2支持CIDR、VLSM和不连续子网,使用组播地址(224.0.0.9)而不是广播传播路由更新报文,并且采用了触发更新机制来加速路由收敛。RIPv2支持认证,使用经过散的口令字来限制更新信息的传播。

RIP只适用小型同构网络,允许的最大跳数为15,任何超过15个站点的目的地均被标记为不可达。

1. 传输协议

使用UDP作为其传输层协议,端口为520 。

2. 维护与更新
RIP的更新是经过定时广播实现的,在默认情况下,路由器每隔 30秒 向相联的网络广播自己的路由表,收到广播的路由器将收到的信息添加到自身的路由表,每个路由器都如此广播,最终网络上的路由器将得知全网的路由信息。

正常情况下,路由器每 50秒 就可以得到一条路由的信息确认,经过180秒6个更新周期一个路由项没有被确认,路由器就认为该路由器失效,若经过240秒路由项没有得到确认,就将该路由器从路由表中删除。

3.3 IGRP 协议

内部网关路由协议(IGRP)是一种动态的、长跨度(最大可支持255跳)的路由协议,使用度量(向量)来确定到达一个网络的最佳路由,由延时、带宽、可靠性和负载等来计算最优路由,它在同个自治系统内具有高跨度,适合复杂的网络,但本质上讲,IGRP还是一种距离矢量路由协议。

1. 传输协议
IGRP使用UDP发送路由表项。

2. 维护与更新

默认情况下,IGRP路由器每隔90s更新一次路由信息,如果270s内没有收到某路由器的回应,则认为该路由器不可到达;如果630s内仍未收到应答,则IGRP进程将从路由表中删除该路由。

3.4 OSPF

开放式最短路径优先(OSPF)是一种链路状态选择协议,是由IETF开发的内部网关路由协议,基于Dijkstra算法。

OSPF的链路状态信息通过链路状态公告(LSA)发布到网上的每台路由器,每台路由器通过LSA建立一个关于网络的拓扑数据库。

在一个区域(Area)中的路由器(区域边界路由器除外),都应具有相同的链路状态数据库。

OSPF是一种层次化的路由选择协议,区域0(也称主干区域)是OSPF网络中必须具有的区域,其他所有区域要求与区域0互连到一起。OSPF采用触发更新,支持VLSM及CIDR,对跳数没有限制。

1. 报文类型

  1. Hello数据包:用于建立和维护邻居关系,在广播网络中Hello分组还用于动态发现邻居路由器
  2. 链路状态更新数据包:向邻居路由器发送链路状态公告(LSA)
  3. 链路状态应答数据包:对链路状态更新数据包的应答
  4. 数据库描述数据包:描述一个路由器OSPF链路状态数据库的内容
  5. 链路状态请求数据包:请求相邻路由器发送其链路数据库中的具体条目

2. 传输协议

OSPF路由信息利用 IP 数据报 直接传送,IP数据报的报头中“协议”字段的值为89 (即协议号为89)。

3. 维护与更新

  1. OSPF路由器以固定的时间间隔,通常为 10秒,发送Hello数据包建立和维护邻居路由器间的关系。
  2. 如果 40 秒没有从特定邻居收到Hello分组,路由器就认为那个邻居不存在了,并且产生声明该邻居丢失的LSA。

3.5 EIGRP

EIGRP是增强型的IGRP协议,是典型的平衡混合路由选择协议,融合了距离矢量和链路状态两种路由选择协议的优点,使用弥散修正算法(DUAL)快速收敛,采用不定期更新(触发更新)以减少带宽消耗。

EIGRP支持VLSM及不连续子网。EIGRP最大的跳数限制为224。支持对自动路由汇总功能的设定,支持多种网络层协议,支持IP、IPX、AppleTalk、Novell等。

1. 报文类型

  1. hello包:用于邻居发现与恢复,组播方式发送(224.0.0.10)
  2. 更新包:当路由器发现新邻居时使用更新包(单播)
  3. 确认包:对更新包的确认
  4. 查询包:当EIGRP路由器想从特定邻居或所有邻居那里获得特定的信息,EIGRP路由器使用查询包(单播或多播)
  5. 响应包:对查询包的响应

2. 传输协议
使用RTP(可靠的传输层协议)传输数据包,不依赖TCP/IP协议。RTP支持多播、组播和单播。

3. 维护与更新
EIGRP通过使用hello数据包与邻居路由器建立联系,缺省情况下,hello数据包每间隔5秒发送一次。

四 网络管理相关协议

4.1 SNMP 协议

依赖 UDP 数据报服务,端口号 161 来接受 get/set 操作,端口号 162 接受 trap 操作。

1. SNMPv1

5种操作类型:

  1. get-request 查询一个或多个变量的值
  2. get-net-request 在 MIB 树上检索下一个变量
  3. set-request 设置一个或多个变量的值
  4. get-response 对get/set - request 进行回应
  5. trap 向管理进程报告代理发送的事件

基本认证和控制机制,是通过 团体名验证 实现。但团体名(Community)是明文传输,不安全。

2. SNMPv2

SNMPv2 在 SNMPv1 基础上增加了两个协议操作:GetBulk 和 inform 。

  1. GetBulk:快速获取大块数据。
  2. Inform:允许一个 NMS 向宁一个 NMS 发送 Trap信息和接收响应信息。

3. SNMPv3

SNMPv3 在前两个版本的基础上重新定义了 网络管理框架和安全机制 。

安全机制:认证和加密传输:

  1. 时间序列模块:通过重放攻击防护。
  2. 认证模块:完整性和数据源认证,使用 SHA 或 MD5。
  3. 加密模块:防止内容泄漏,使用 DES 算法。

拒绝服务和通信分析两种威胁是安全体系结构不必防护的。

五 网络安全相关协议

5.1 PPP 协议

点对点协议(Point to Point Protocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。

在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。

报文格式:
在这里插入图片描述

认证方式:

  1. 口令认证协议(PAP:二次握手,使用明文发送用户名和密码。
  2. 挑战一握手验证协议(CHAP):三次握手,不以明文发送认证信息,使用经摘要算法加工的随机序列码,身份认证可以随时进行。

5.2 IPSec 协议

IPSec (IP Security)是IETF 定义的一组协议,用于增强 IP 网络的安全性。

1. 提供服务

  1. 数据完整性(Data Integrity):保持数据的一致性,防止未授权地生成、修改或删除
    数据。
  2. 认证 (Authentication):保证接收的数据与发送的相同,保证实际发送者就是声称的
    发送者。
  3. 保密性(Confidentiality):传输的数据是经过加密的,只有预定的接收者知道发送的
    内容。
  4. 应用透明的安全性 (Application-transparent Security)。IPSec 的安全头插入在标准的IP
    头和上层协议(例如TCP)之间,任何网络服务和网络应用都可以不经修改地从标准 IP 转换为 IPSec。同时,IPSec 通信也可以透明地通过现有的I路由器。

2. 功能功能

  1. 认证头 (Authentication Header, AH):用于数据完整性认证和数据源认证。
  2. 封装安全负荷 (Encapsullating Security Payload, ESP):提供数据保密性和数据完整性认证,ESP 也包括了防止重放攻击的顺序号。
  3. Internet 密钥交换协议 (Internet Key Exchange, IKE):用于生成和分发在 ESP 和 AH 中使用的密钥,飞E也对远程系统进行初始认证。

3. 模式分类

传输模式:IPSec 认证头插入原来的 IP 头之后,IP 数据和 IP 头用来计算 AH 认证值。
在这里插入图片描述

隧道模式:IPSec 用新的 IP 头封装了原来的 IP 数据报(包括原来的 IP 头)。
在这里插入图片描述

5.3 SSL 安全套接层

安全套接层(Secure Socket Layer, SSL)是Netscape 于 1994 年开发的传输层安全协议,用于实现 Web 安全通信。

SSI 的基本目标是实现两个应用实体之间安全可靠的通信。SSL 协议分为两层:

  1. 底层是 SSL 记录协议,运行在传输层协议 TCP 之上,用于封装各种上层协议。
  2. 上层协议是SSL 握手协议,由服务器和客户端用来进行身份认证,并且协商通信中使用的加密算法和密钥。

在这里插入图片描述

5.4 S-HTTP 协议

安全的超文本传输协议 (Secure HTTP, S-HTTP)是一个面向报文的安全通信协议,是HTTP 协议的扩展。

S-HTTP 的语法与 HTTP 一样,由请求行(Request Line)和状态行 (Status Line)组成,后跟报文头和报文体(Message Body),然而报文头有所区别,报文体经过了加密。

六 冲突检测

6.1 CSMA/CD 协议

CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波监听多路访问/冲突检测协议)主要应用在以太网中,CSMA/CD的标准为IEEE802.3或者ISO8802/3。

CSMA 基本原理为:在发送数据前,先监听信道上是否有人在发送。若有,则信道处于繁忙中;否则信道是空闲状态,然后根据预定的策略决定是否发送。

  1. 若信道空闲,是否立即发送。
  2. 若信道繁忙,是否继续监听。

如果连续发送 16 次 监听都是冲突,则认为网络繁忙,不再尝试发送。

多路访问(Multiple Access),意思是网络上所有工作站收发数据,共同使用同一条总线,且发送数据是广播式。

“冲突检测” 是指发送结点在发出信息帧的同时,还必须监听媒体,判断是否发生冲突(同一时刻,有无其他结点也在发送信息帧)。

三种监听算法:

  1. 非坚持型监听算法:后退随机时间由于随机时延后退,从而减少了冲突的概率。问题是因为后退而使信道闲置一段时间,这使信道的利用率降低,而且增加了发送时延。
  2. 1-坚待型监听算法:继续监听,不等待有利于抢占信道,减少信道空闲时间。但是,多个站同时都在监听信道时必然会发生冲突。冲突概率和利用率都高(双高)。
  3. P-坚持型监听算法:若信道空闲 ,以概率P发送,以概率(1-P)延迟一个时间单位,P大小可调整。

6.2 CSMA/CA 协议

CSMA/CA载波监听多路访问/冲突避免协议,支持竞争访问。主要为解决隐蔽终端问题。

基本的操作过程如下:

  1. 如果一个站有数据要发送并且监听到信道忙,则产生一个随机数设置自己的后退计数器并坚持监听。
  2. 听到信道空闲后等待 IFS 时间,然后开始计数。最先计数完的站开始发送。
  3. 其他站在听到有新的站开始发送后暂停计数,在新的站发送完成后再等待一个IFS时间继续计数,直到计数完成开始发送。

这个算法对参与竞争的站是公平的,基本上是按先来先服务的顺序获得发送的机会。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mooddance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值