Linux——(十二)网络基础(三)

一、网络层

在复杂的网络环境中确定一个合适的路径

1 IP协议

在这里插入图片描述

主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称;

1.1 协议头格式

在这里插入图片描述

  • 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.

  • 4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节.

  • 8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.

  • 16位总长度(total length): IP数据报整体占多少个字节?IP报文包含报头在内最大必须小于64K。
    (2^(16) = 2 ^(6) *2 ^(10) = 64K=65535)。(TCP报文的数据最大不超过64K-40。UDP报文的数据最大不超过64K-8)

  • 16位标识(id): 用于分片重组时,识别当前分片属于哪个原始报文,相同的原始报文的分片具有相同的分片标识(即如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的)
    链路层MTU:最大传输单元,限制了-一个数据帧在网络中的最大传输大小,
    如果-一个报文长度处于网络层允许,但是mtu不允许,mtu<ip报文大小< 64k;则这个包会在网络层会被分片,就指的
    是,将一个大的报文分割成多个小的报文,每个分片封装一个ip报头进行传输,这些分片在对端主机上会进行分片重组,重组为原始的报文向上层交付。

  • 3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到);第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文; 第三位表示"更多分片", 如果分片了的话,最后一个分片置为1, 其他是0。 类似于一个结束标记.

  • 13位分片偏移(framegament offset):标识了当前分片在原始报文中的位置,是以8字节为单位的,如果数据是1,则偏移量实际上是滴8字节处。13个比特位比表示的最大是8192(2^10 = 1024,2 ^ 3 = 8 —>2 ^(13) = 8192),而一个原始报文最大是64K。因此, 除了最后一个报文之外, 其他每个报文的长度肯定是8的整数倍(否则报文就不连续了).

  • 8位生存时间(Time To Live, TTL): 报文在网络上的生命周期,最大数字是255,表示的是所能经过的路由跳数(每经过一个路由器就会-1直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环。)

  • 8位传输层协议: 数据到达对端会进行数据集分用,也就是选择一个传输协议进行数据解析,封装时的上层协议类型。

  • 16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏.

  • 32位源IP地址和32位目标IP地址:用于描述通信的两端主机

  • 选项字段:不定长, 最多40字节,路由信息等等…

1.2 地址管理

1.2.1 IP组成
  • IP地址组成:4个字节——网络号+主机号
    网络号:是一个网络标识,一个网络分配的IP地址具有相同的网络号。
    主机号:是一台主机在当前网络中的标识。同一个网络中具有相同的网络号。但是不能具有相同的主机号。

  • IP地址:用于在网络中唯一标识一台主机
    ipv4:uint32_t类型,IP 地址大致有42亿九千万(2^32 = 4294967296)
    IP地址实际上不够用:DHCP动态地址分配—谁上网给谁分配地址。
    问题:如何分配地址才能保证网络上的IP地址没有重复呢。
    分网络进行地址管理,一个网络中的主机能够被分配到的IP地址都具有这个网络的标识—网络号。这时候只要每个网络的网络号不同,则可以将网络地址管理简单化了。

1.2.1 网络号管理(俗称的网络管理)
(1) 早期网络划分方式

将所有的IP地址分为5大类

  • A类:
    高1位固定是0,7位网络号,24位主机号;
    用于组建超大型网络,一个网络中具有1600W+主机号;
    A类网络号范围 0~127,IP地址范围:0.0.0.0 ~ 127.255.255.255。总共有128(2^7 = 128)个A类网络,其中每个网络中具有255255255=1600+w个主机号;
    例如0号网络IP地址:0.0.0.0 ~0.255.255.255
  • B类:
    高2位固定10,14位网络号,16位主机号;
    用于组件中型网络,一个网络中具有64K主机号;
    B类网络号范围:128.0~ 191.255,其中IP地址范围:128.0.0.0 ~ 191.255.255.255;
    总共有1W+(2^14=16384)个B类网络,其中每个网络有255*255个主机号;
    例如128.0网络的IP地址:128.0.0.0~128.0.255
  • C类:
    高三位固定110,21位网络号,8位主机号;
    用于组建小型网络;一个网络中具有256个主机号;
    C类网络号范围:192.0.0 ~223.255.255,IP地址范围:192.0.0.0 ~ 223.255.255.255;
    总共有2千W+(2^21=2,097,152)个C类网络,其中每个网络具有256个主机号;
    例如192.0.0网络的IP地址范围:192.0.0.0~ 192.0.0.255
  • D/E类:特殊模型
    这种早期网络划分方式,比较粗糙,A类地址浪费较多。
    eg:以下哪个地址是C类网络 ( C )
    A.23.244.23.24;B.156.23.23.23;C.193.23.23.23;D.191.24.24.24
(2) 现在用的—CIDR方案

而当前使用的划分方式,是在早期基础上,引入了一个新的字段—子网掩码,进行网络划分:CIDR方案

  • 子网掩码是什么
    (1)uint32_ t类型的数据,不过其中的数据由连续二进制1组成。
    (2)子网掩码取反得到的数据就是一个子网中最大的主机号max, 那么子网的主机号范围就是0~ max。
    (3)子网掩码与IP地址相与,可以得到当前IP地址所属的网络号。
  • 子网掩码的作用:
    (1)子网掩码明确限制了一个网络中的主机号个数(例如我们的虚拟机的子网掩码是255.255.255.0,对它取反是0.0.0.255。那么它代表的我们有子网中的最大主机号就是255,我们子网的主机号范围就是0~ 255)
    (2)子网掩码可以用于辨别一个ip地址是否属于某个网络。(例如,已知ip:192.168.122.138;natmask:255.255.255.0。那么这个IP地址的主机号就是ip和子网掩码相与得到的:192.168.122.0)
  • 子网掩码举例
    例子:有一个公司申请了一个C类网络192.168.2.0/24,公司有4个部门,这时候要将网络平均划分4个子网,请问,每个子网的主机号范围,以及网络号,以及子网掩码是多少?
    解析:
    在这里插入图片描述
1.2.2 特殊IP地址:
  • 一个子网中有两个地址不能分配给主机:
    一个子网中,主机号全为0的地址:实际上就是网络号,是网络的标识
    一个子网中,主机号全为1的地址:是局域网广播地址,UDP相较于tcp多一个功能(局域网广播),将数据发送给局域网广播地址,则表示将数据发送给了局域网中的所有主机
  • 特殊IP地址:
    IP地址全为0:0.0.0.0 ——>用于表示本机所有网卡地址,常用于服务器绑定监听地址。
    IP地址全为1:255.255.255.255——>全网广播地址 255.255.255.255 ,常用于DHCP请求。
    127.0.0.1:127整个网段都是用于本地回环的,而127.0.0.1是最为典型的虚拟回环网卡地址。
    在地址管理中,只有DHCP动态分配是不够的,IP地址还是不够分,因此还有一个非常重要的管理方式——NAT/NAPT
1.2.3 公网与私网
  • RFC191 8文档规定:用于组建私网,只能用以下IP地址
    10.* .* .* :1个大型私网网段
    172.16. * .* ~ 172.31.. :16个中兴私网网段
    192.168. * .*:256个小型私网网段用于组建私网
  • 私网:我们自己所搭建的一个内部的私有网络
  • 公网:也叫外网,就是我们通常所说的上网上的互联网
1.2.4 NAT/NAPT

NAT/NAPT技术:网络地址转换技术,用于组建私有网络,对于私网中向外通信的数据,将其源端私网IP地址进行地址转换,替换为对外的公网IP地址。
使用NAT/NAPT方式组建私网,对流经网关的数据进行源端地址替换,替换为对外地址,这样的话私网中的很多主机实际上就只用了一个对外的IP地址在上网。私网主机的请求数据,出去的时候都被转换为对外地址了,这种情况,不同的私网使用的地址就可以重复了,因为数据出去的时候被转换的这个地址和端口是不会重复的。
具体在三中3.3详细介绍。

1.2.5 路由选择

一条数据要达到对端主机需要经过很多路由器的转发,但是网络是一个非常复杂的星型结构,因此一条数据如何转发能够最快到达对端。
每一台节点设备上都有一个东西——路由表
路由表可以使用route命令查看:
在这里插入图片描述
路由表的Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址,Iface是发送接口,Flags中的U标志表示此条目有效(可以禁用某些 条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;
在这里插入图片描述
一个路由器拿到一个数据后,会取出目标IP地址,然后在自己所有的路由表中进行查看,逐个与每个路由表中的网络进行对比。
1,与对应网络子网掩码进行相与
2,拿相与的结果于对应网络的网络号相比
(1)一样则数据目标主机属于此网络
(2)不一样则对标喜爱一个路由表象
3,若所有路由表项都没有,则将数据转发给自己的网关设备。

二、数据链路层

  • 链路层:是负责相邻设备之间的数据帧传输。
    一个数据从一段主机发出,到达另一端主机上,其中传输层描述了端口表示哪两个进程处理。网络层描述了IP地址,也就是通信两端主机,但是数据无法从一端直接到达另一端,实际上是通过了很多相邻节点设备之间的传输完成的。

前置知识:

  • MAC地址

(1)MAC地址用来识别数据链路层中相连的节点;
(2)长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
(3)MAC地址在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

  • 对比理解MAC地址和IP地址
    IP地址描述的是路途总体的 起点和终点;而MAC地址描述的是路途上的每一个区间的起点和终点。

2.1 eth-以太网协议

2.1.1 以太网数据帧格式

在这里插入图片描述

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址), 长度是48位,是在网卡出厂时固化的;
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
  • 帧末尾是CRC校验码。

mac地址:物理硬件地址,是一个网卡在出厂的时候设定的地址(以前都是不可更改的,现在好像可以了)
unit8_t mac[6] 一个Mac地址占据的比特位是48位,用于表示指定的相邻网卡设备。

  • 简易版本以太网数据帧格式:

在这里插入图片描述
6字节对端-源端 mac地址:用于描述指定相邻的两个设备(其他网卡就是收到了数据一看不是自己发送给自己的就会丢弃)、
2字节数据所采用的协议:0800表示IP协议;0806表示ARP报文
4字节帧尾校验和:差错一致性校验

  • 存在一个问题:我怎么知道指定相邻设备的Mac地址呢?
    引入了ARP协议-地址解析协议。

注意: ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议;

2.2 ARP协议

通过IP地址获取指定设备的MAC地址。是一个介于数据链路层和网络层之间的协议。

2.2.1 ARP协议格式

在这里插入图片描述

  • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 硬件类型指链路层网络类型,1为以太网;
  • 协议类型指要转换的地址类型,0x0800为IP地址;
  • 硬件地址长度对于以太网地址为6字节;
  • 协议地址长度对于和IP地址为4字节;
  • op字段为1表示ARP请求,op字段为2表示ARP应答。

2.2.2 ARP协议解析流程

  1. 组织arp请求(填入自己的mac-ip地址信息,以及指定相邻设备的IP地址信息)
  2. 将arp请求广播到局域网中,局域网中其他设备收到arp请求进行解析,发现目标IP地址不是自己,则丢弃请求
  3. 若arp请求中的目标IP地址就是自己地址,则组织arp应答将自己的mac地址填充,进行响应
  4. 两端都会将对应的mac-ip映射信息,缓存起来-arp缓存表,每隔一段时间(20~30分钟)重新请求进行更新
  • 常见问题:
  1. arp缓存为什么只有很短的一段时间?
    因为先的IP地址分配方式都是动态地址分配,有可能过上一端时间有些主机的IP地址就发生 了改变
  2. arp欺骗攻击
    arp的机制,假设你去相亲,相亲对象叫小红,但是你不知道小红长什么样子,只知道在饭店里周围,如果在公众场合喊一声小红,容易泄露隐私,所以得先找到小红,逐个去问下你是不是小红,小红就会回答你,然后单独私聊。
    欺骗攻击就是你问谁谁谁你是不是小红,这个人可能是小绿,但是她伪装自己说自己就是小红。
    攻击者会伪造网关IP地址,向局域网中广播大量的arp响应,覆盖掉其他主机的arp缓存表中的信息,其他主机就会认为你是网关。
    解决方案: ARP防火墙,路由器上边设置静态IP地址-MAC地址映射表。

2.3 MTU

2.3.1 MTU是什么

在这里插入图片描述

MTU——最大传输单元,限制了一个数据帧的最大的大小。

  • MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制.
  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
  • 不同的数据链路层标准的MTU是不同的;

2.3.2 MTU对于上层传输层的影响

  1. tcp
    (1)tcp传输会在传输层,协商一个mss 最大数据段大小,然后每次从发送缓冲区中取出不大于mss大小的数据进行封装传输。
    (2)而mss就是根据mtu计算而得到的: mss = mtu -最小ip报头长度-最小tcp报头长度=mtu-40。
    (3)以太网mtu默认大小1500,则tcp最大数据段下通常都是1460;
    (4)tcp在网络层不会进行数据分片,因为tcp以mss进行传输数据,因此我们说tcp会在传输层自动进行数据分段。
  2. udp
    (1)udp通信的时候可没有mss协商的说法,只要最大数据长度小于64k-28,就可以传输,但是如果大于mtu就会在网络层进行数据分片。
    (2)然而数据一旦分片, 在对端主机上就会进行分片重组,问题来了,只要有任意一个分片出现问题,这个原始报文就不一致了,就会被丢弃掉。而udp又是不可靠传输,数据没了就没了。
    (3)所以基于这么一个原因,我们要尽可能的去减少udp传输时的分片。
    因此需要程序员在应用层去考虑udp的mss = mtu-28
    (4)因为以太网默认mtu是1500,因此udp我们sendto发送的数据大小最大,尽量不要超过1472。

三、其他重要协议或技术

3.1 DNS(Domain Name System)

早期网络还不发达的时候,我们访问的服务器不多,因此记忆常用服务器地址,难度不高,但是随着网络的发展,我们需要的网络服务越来越多,作为一个人类,想要记住很多很多的服务器IP地址就不容易。这时候就有个大佬,就干了一件事,给自己电脑上的一个文本文档中记录了一个映射关系表(域名&服务器IP地址)

3.1.1 域名

就是服务器的一个别名,是一个便于记忆的字符串(不区分大小写)。baidu & 112.80.248.76。然后大佬写了一个程序,当访问某个服务器的时候,输入域名,这个程序会把域名解析成为服务器的地址后,进行访问。因为这个方式简单有效,因此就有组织搭建了域名服务器,专门用于干域名解析这事。

  • 域名的分类:顶级/一级域名,二级域名,三级域名…
    (1)顶级域名: .com;.org; .gov;… .cn; .en; jp; .us
    (2)二级域名: .baidu.com;.qq.com
    (3)三级域名:image

3.1.2 域名服务器:

全世界几十亿的访问量,一组服务器压力太大,因此就对域名服务器和要管理的域名进行了分类,分布式进行管理。

  • 域名服务器的分类:根域名服务器,顶级/- 级域名服务器,二级域名服务器,三级域名服务器…
    (1)根域名服务器:管理一部分域名, 最主要是管理顶级域名服务器的地址,根域名服务器在全世界只有13组
    (2)顶级域名服务器: .com域名服务器,
    (3)二级域名服务器:…

3.1.3 域名解析流程:

在这里插入图片描述

  1. 查看缓存信息;
  2. 查看hosts文件;
  3. 请求本地域名服务器;
  4. 由本地域名服务器请求域名服务器;
  5. 请求指定顶级域名服务器;
  6. 请求指定的二级域名服务器。
    当你有时候上不了网页但是QQ可以正常进行通信,那通常就是DNS出问题了。

3.1.4 典型面试题:浏览器中输入url后, 发生的事情.

1、域名解析,获取服务器IP地址(域名解析流程是什么样的?);
2、搭建tcp客户。端连接服务器(tcp客户端服务器搭建流程是什么样的?);
3.连接成功后,根据http协议格式,组织http请求数据,发送给服务器(http协议格式是什么样的? 格式版本?get和post区别?长连接与短连接区别?响应状态码?);
4.等待响应,得到响应之后,根据http协议格式解析响应,根据正文类型决定正文的处理方式。

3.2 ICMP协议

  • 是一个网络层协议,作用是用于进行网络的探测。
    发送icmp请求,要求对端进行响应。(本质上还是一个ip报文。)
  • 一个坑
    ssh协议用的是22号端口,telnet协议用的是23号端口,ping用的是多少?
    ping 是一个工具,是基于icmp协议实现的,而ICMP是一个网络层协议,它只用ip,不用端口,所以并没有设计到传输层,因此不用端口。

3.3 NAT/NAPT技术

网络地址转换技术,NAPT相较于NAT多了一个端口映射的功能。
NAT/NAPT常用于组件私网,工作于网络层,对于流经网关设备的私网数据,进行源端口地址替换,替换为对外地址。

3.3.1 NAT技术背景

NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能;
NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法:
很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP;
全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;

3.3.2 NAT IP转换过程

在这里插入图片描述
路由器将源地址从192.168.2.2:9000 替换成全局的23.23.23.23:8000;
NAT路由器收到外部的数据时, 又会把目标IP从23.23.23.23:8000替换回192.168.2.2:9000;
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
当 192.168.2.2:9000 第一次向 23.23.23.23:8000 发送数据时就会生成表中的映射关系;

在这里插入图片描述
NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

3.3.3 NAPT

如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?
NAPT就是来解决这个问题的. 使用IP+port来建立这个关联关系
在这里插入图片描述
这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项

3.3.4 NAT技术的缺陷

由于NAT依赖这个转换表, 所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接;
  • 装换表的生成和销毁都需要额外开销;
  • 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

(UDP的)内网穿透:基于NAPT的映射关系,在映射能保存一段时间的情况下,将一段的对外的地址端口告诉另一端,另一端就直接发送数据给指定的地址和端口。而对应的路由器收到数据就会根据映射关系逐层往内发送到对应的内网主机上。
在这里插入图片描述

3.3.5 NAT和代理服务器

路由器往往都具备NAT设备的功能, 通过NAT设备进行中转, 完成子网设备和其他子网设备的通信过程.
代理服务器看起来和NAT设备有一点像. 客户端像代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务器; 服务器返回结果后, 代理服务器又把结果回传给客户端.
在这里插入图片描述

  • NAT服务和代理服务器的区别?
  1. 从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器.
  2. 从底层实现上讲, NAT是工作在网络层, 直接对IP地址进行替换. 代理服务器往往工作在应用层.
  3. 从使用范围上讲, NAT一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网.
  4. 从部署位置上看, NAT一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上.

代理服务器是一种应用比较广的技术.
翻墙: 广域网中的代理.
负载均衡: 局域网中的代理.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值