《计算机网络》 读书笔记(三) 网络层

本文详细介绍了网络层的核心概念,包括网际协议IP、IP地址的子网划分,以及IP数据报的首部字段解析,如版本、首部长度、区分服务、总长度、标识、标志、片偏移、生存时间和协议等关键信息。同时提到了地址解析协议ARP、逆地址解析协议RARP、网络控制报文协议ICMP和IGMP协议在IP层的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 网络层

            网络层设计思想: 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(也就是IP数据报)独立发送,与其前后的分组无关(不进行编号)。 网络层不提供服务质量的承诺。也就是说,所传输的分组可能出错、丢失、重复和失序(即不按序到达终点),当然也不保证分组交付的时限。由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做的比较的简单,而且价格低廉(同电信网的交换机相比)。如果主机(即端系统)中的进程之间的通讯需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。采用这种设计思想的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
            OSI体系的支持者曾极力主张在网络层使用虚电路服务(即可靠的网络层服务),也推出过网络虚电路服务的著名标准-ITU-T的X.25建议书,但终究成为历史.下表是虚电路服务与数据报服务的主要区别。


1.1 网际协议IP

            网际协议IP是TCP/IP体系中最主要的协议之一,也是最重要的因特网协议标准。与IP协议配套使用的还有4个协议:
             地址解析协议 ARP  (Address Resolution Protocol)
             逆地址解析协议 RARP  (Reverse Address Resolution Protocol)
             网际控制报文协议 ICMP (Internet Control Message Protocol)
             网际组管理协议 IGMP (Internet Group Management Protocol)


1.2 IP地址与子网划分

             IP地址:
            IP地址是个第三层概念。 给电脑配置IP时需要设置IP地址,子网掩码,默认网关,全部和IP层的通讯相关。从IP层看,整个因特网就是一个单一、抽象的网络。IP地址就是给因特网上的每一个接口分配一个在全世界范围是唯一的32位的标识符。
            IP的编址方法经过了三个基本阶段。分别是: 分类的IP地址、子网和超网
            分类的IP地址:就是将IP地址划分为若干个固定类,每一类地址由两个固定长度的字段组成,其中第一个字段是 网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。第二个字段是 主机号(host-id),它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此,一个IP地址在整个因特网范围内是唯一的。
            分类的IP地址是一个两级地址,可以记为:
                        IP地址::={<网络号>,<主机号>}

            具体下图:

            

             A类、B类和C类地址都是 单播地址(一对一通讯), D类地址用于 多播
            A类、B类和C类地址的网络号字段分别为1,2和3字节长,而在网络号字段的最前面有1~3位的类别位,其数值分别规定为0,10和110。
            A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长。
            D类地址(前4位是1110)用于多播(一对多通信).

            一般不使用的特殊IP地址:


            子网的划分:
            分类的IP地址是一个两级的IP地址网络,它存在一些缺点:
             1. IP地址空间的利用率有时很低。每一个A类地址网络可连接的主机数超过1000万,而每一个B类网址可连接的主机数超过6万。然而有些网络对连接在网络上的计算机数目有限制,根本达不到这样大的数值。例如10BASE-T以太网规定其最大节点数只有1024个。这样的以太网若使用一个B类网址就浪费6万多个IP地址,地址空间利用率不到2%.
             2. 给每一个物理网络分配一个网络号会 使路由表变得太大而使网络性能变坏。每一个路由器都应当能从路由表查找出怎样到达其他网络的下一跳路由器。因此,互联网中的网络数越多,路由器的路由表的项目数就越多。这样最终会导致路由器中的路由表中项目过多。增加了路由器成本,也使得查找路由时耗时更多,同时也使路由器之间定期交换的路由信息急剧增加,因而使路由器和因特网的性能下降。
             3. 两级的IP地址不够灵活。有时情况紧急,一个单位需要在新的地点马上开通一个新的网络。但是在申请一个新的IP地址之前,新增加的网络是不可能连接到因特网上的。因此希望有一种方法,使一个单位能够灵活地增加本单位的网络,而不必事先到因特网管理机构去申请新的网络号。
            为了解决上述问题,从1985年起在IP地址中又增加了一个 "子网络字段",使得两级IP地址变成了三级IP地址.这种方法叫做 划分子网,或者 子网路由选择
            划分子网的基本思想如下:
             1)  一个拥有许多物理网络的单位,可以将所属的物理网络划分为若干个 子网(subnet)。划分子网纯属一个单位内部的事情。本网络以外的网络 看不见这个网络是由多少个子网组成,因为这个单位 对外仍然表现为一个网络
             2) 划分子网的方法是从网络的主机号借用若干为作为子网号subnet-id,当然主机号也就相应的减小了同样的位数。于是两级的IP地址 在本单位内部变成了 三级IP地址:网络号、子网号、主机号。也可以用以下记法来表示:
                         IP地址::={<网络号>,<子网号>,<主机号>}
            3)
凡是从其他网络发送给本单位某个主机的IP数据包,仍然是根据IP数据包的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网络号找到目的子网,把IP数据报交付给目标主机。
            实现三级IP地址的关键,即子网掩码。子网掩码是一个32位的int值,由一串1和随后的一串0组成。子网掩码中的1对应于IP地址中的net-id加上subnet-id,而子网掩码中的0对应于修改后的host-id。这样路由器通过"与"运算,可以很方便的找到子网的网络地址。

            具体见下图:

            



            目前子网掩码已经成为因特网的标准: 所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码。路由器在和相邻路由器交换路由信息时,必须把自己所有网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。


1.3 IP层转发分组的流程:

            在划分子网的情况下,路由器转发分组的算法如下:
             1. 从收到的数据报的首部提取目的IP地址D。
             2. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相 "与",看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把D转换为物理地址,把数据报分装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
            3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行(4)。
             4. 对路由表中的每一行(目的网络地址、子网掩码、下一跳地址),用其中的子网掩码和D逐位相 "与",其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
             5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
             6. 报告转发分组出错。


1.4 IP数据报的格式:

            IP数据报格式见下图:


            下面介绍首部各字段的意义。
            1. 版本
            占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4.
            2. 首部长度
            占4位,可表示的最大十进制数值是15。注意:这个字段所表示数的单位是32位字(4个字节)。当IP的首部长度为1111时(即10进制的15),首部长度就达到最大值60(15*4)个字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。
            3. 区分服务
            占8位,用来获取更好的服务。这个字段实际上并未使用。
            4. 总长度
            总长度指首部和数据之和的长度,单位为字节。总长度的字段为16位,因此数据报的最大长度为2^16-1=65535字节。在IP层下面的每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传输单元MTU(Maximum Transfer Unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。虽然使用尽可能长的数据报会使传输效率提高,但由于以太网的普遍应用,所以实际上使用的数据报长度很有超过1500字节的。为了不使IP数据报的传输效率降低,有关IP的标准文档规定,所有的主机和路由器必须能够处理的IP数据报不得小于576字节。当数据报长度超过网络所容许的最大传送单元MTU时,就必须把过长的数据报进行分片才能在网络上传送。这时,数据报首部中的"总长度"字段不是指未分片前的数据报长度,而是指分片后的每一个分片的首部长度与数据长度的总和。
            5. 标识
            占16位。 IP软件在存储器中维护一个计数器,每产生一个数据报,计数器就加1,并将此赋值给标识字段。但这个"标识"并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能够正确的重装成为原来的数据报文。
            6. 标志
            占3位,目前只有两位有意义。
            标志字段中最低位记为MF(More Fragment)。MF=1即表示后面"还有分片"的数据报。MF=0表示这已是若干数据报片中的最后一片。
            标志字段中间的一位记为DF(Don't Fragment),意思是"不能分片"。只有当DF=0时才允许分片。
            7. 片偏移
            占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。也就是说,该值*8为实际偏移字节数。
            8. 生存时间
            占8位,生存时间字段通常用英文缩写TTL(Time To Live)表示。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据包无限制的在因特网中兜圈子。最初的设计是以秒作为TTL值的单位。但现在TTL字段的功能为"跳数限制"。路由器在转发数据包之前就把TTL值减1.若TTL值为0,则丢弃这个数据包,不转发。因此,现在TTL的单位不是秒,而是跳数。TTL的意义是指明数据包在因特网中至多可经过多少个路由器。显然,数据包能在因特网中经过的路由器数最大是255.若把TTL的初始值设置为1,就表示这个数据包只能在本局域网中传输。因为这个数据报一传送到局域网的某个路由器,在转发之间TTL值就减小到零,因而会被这个路由器丢弃。
            9. 协议
            占8位,协议字段指出此数据报携带的数据使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
            常用的一些协议和相应的协议字段值如下:

             10. 首部检验和
            占16位。这个字段 只检验数据报的首部,但不包括数据部分。之所以不检验数据是为了,减小检验的计算量。为了进一步减小计算量,IP的首部检验和不使用CRC算法。
             11. 源地址  占32位。
             12. 目的地址  占32位。


1.5 地址解析协议ARP

            我们知道,网络层使用IP地址,但是实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。但是IP地址和下面的网络的硬件地址之间由于格式不同而不存在简单的映射关系(IP地址32位,局域网硬件地址是48位)。此外,在一个网络上可能经常会有新的主机加入进来,或者撤走一些主机。更换网络适配器也会使主机的硬件地址改变。 地址解析协议ARP解决这个问题的方法是在主机ARP高速缓冲中存放一个从IP地址到硬件地址的映射表,并且这个映射表还需要经常动态更新(新增或超时删除)。
            当主机A要向 本局域网上的某个主机B发送IP数据报是,就先在其ARP高速缓冲中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发送此硬件地址。
            也有可能查不到主机B的IP地址的项目。这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。在这种情况下,主机A就自动运行ARP,然后按下列步骤找出主机B的硬件地址。
             1. ARP进程在本局域网上广播一个ARP请求分组。ARP请求分组的主要内容是表明:"我的IP地址是x.x.x.x,硬件地址是x.x.x.x.x.x。我想知道IP地址为y.y.y.y的主机的硬件地址"。
             2. 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
             3. 主机B在ARP请求分组中见到自己的IP地址,就像主机A发送ARP相应分组,并写入自己的硬件地址。其余的所有主机都不理会这个ARP请求分组。ARP相应分组的主要内容是:"我的主机IP是y.y.y.y,我的硬件地址是y.y.y.y.y.y"。注意:虽然ARP请求分组是广播发送的,但ARP相应分组是普通的单播,即从一个源地址发送到一个目标地址。
             4. 主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
            当主机A向B发送数据报文时,很可能以后不久主机B还要向A发送数据报,因此主机B也可能像A发送ARP请求分组。为了减少网络上的通讯量,主机A在发送其ARP请求分组时,就把自己的IP到硬件的地址的映射写入了ARP请求分组。
            ARP把保存在高速缓存中的每一个映射地址项目都设置 生存时间。凡超过生存时间的项目就从高速缓存中删除掉。
             ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。从IP地址到硬件地址的解析是自动进行的, 主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个以知IP的主机或者路由器进行通讯,ARP协议就会自动的把这个IP地址解析为链路层所需要的硬件地址。
            下面归纳了使用ARP的四种典型情况:
             1. 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。
             2. 发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器完成。
             3. 发送方是路由器,要把IP数据报发送到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。
             4. 发送方是路由器,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器完成。


1.6 逆地址解析协议RARP

            逆地址解析协议RARP目前的代替品是 DHCP协议,目前很少有人单独的使用RARP协议。


1.7 网络控制报文协议ICMP

            为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol).ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告。ICMP是因特网的标准协议。但ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据包的数据,加上数据包的首部,组成IP数据报发送出去。ICMP报文格式如下图:

           

             1.   类型:占8位
             2.   代码:占8位
             3.   检验和:占16位,包括数据在内的整个ICMP数据包的检验和;其计算方法和IP头部检验和的计算方法一样的。
            说明:ICMP所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。
             4.   其它字段都ICMP报文类型不同而不同。

            ICMP报文具体分为 查询报文和差错报文
            ICMP差错报文共有5种,即:
             1>  终点不可达:终点不可达分为:网络不可达,主机不可达,协议不可达,端口不可达,需要分片但DF比特已置为1,以及源路由失败等六种情况,其代码字段分别置为0至5。当出现以上六种情况时就向源站发送终点不可达报文。
            说明: 端口不可达:UDP的规则之一是:如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。
             2>  源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。
             3>  时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。
             4>  参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。
             5>  改变路由(重定向)路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
            说明:
            以下几种情况都不会导致产生ICMP差错报文
             1>ICMP差错报文(但是,ICMP查询报文可能会产生ICMP差错报文)
             2>目的地址是广播地址或多播地址的IP数据报
             3>作为链路层广播的数据报
             4>不是IP分片的第一片
             5>源地址不是单个主机的数据报。即源地址不能为零地址、环回地址、广播地址或多播地址。
            这些规则是为了防止过去允许ICMP差错报文对广播分组响应所带来的广播风暴。

            所有的ICMP差错报告报文中的数据字段都具有同样的格式。将收到的需要进行差错报告IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上响应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。提取收到的数据报的数据字段的前8个字节是为了得到运输层的端口号(对于TCP和UDP)以及运输层报文的发送序号(对于TCP)。见下图:

            ICMP询问报文有四种 回送请求和回答,时间戳请求和回答,掩码地址请求和回答,以及路由器询问和通过
            1>ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
             2>ICMP时间戳请求允许系统向另一个系统查询当前的时间。该ICMP报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间只能提供秒级的分辨率。请求端填写发起时间,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。大多数的实现是把后面两个字段都设成相同的值。
             3>主机使用ICMP地址掩码请求报文可向子网掩码服务器得到某个接口的地址掩码。系统广播它的ICMP请求报文。ICMP报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回,这样,发送端就可以把应答与请求进行匹配。
             4>主机使用ICMP路由器询问和通过报文可了解连接在本网络上的路由器是否正常工作。主机将路由器询问报文进行广播(或多播)。收到询问报文的一个或几个路由器就使用路由器通过报文广播其路由选择信息

            ICMP的应用:
            1. Ping
            2. Traceroute(Unit)和(tracert)



1.8 IGMP协议

            IGMP协议最常见的应用就是 多播。多播是指把信息同时传递给一组目的地址。它使用策略是最高效的,因为在消息在每条网络链路上 只需传递一次,而且只有在链路分叉的时,消息才会被复制。与多播相比,常规的点到单点的传递被称作单播。当以单播的形式把消息传递给多个接收方时,必须向每个接收者都发送一份数据副本。由此产生的多余副本将导致发送方效率低下,且缺乏可扩展性。
             多播是个第三层概念,需要路由器支持。能够运行多播协议的路由器称为 多播路由器。当多播组的主机数很大时,采用多播方式就可以很明显的减轻网络中各种资源的消耗。

            实现多播需要两种协议:
            1. IGMP协议,这个协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。正如ICMP一样, IGMP 也被当作IP 层的一部分。IGMP报文通过IP数据报进行传输。不像我们已经见到的其他协议, IGMP有固定的报文长度,没有可选数据。
            2. 多播路由选择协议。这个协议负责在连接因特网上的局域网之间实现多播传输。它有如下一些要求:
             a) 多播转发必须动态的适应多播组成员的变化(这时网络拓扑结构并未变化)
             b) 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。
             c) 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

1.9 IP层的其他一些概念

             专用互联网(本地互联网)
            由于IP地址的紧缺,一些机构能够申请到的IP地址数往往小于本机构所拥有的主机数。考虑到因特网并不是很安全,一个机构内也并不需要把所有的主机接入到外部的因特网。实际上,在许多的情况下,很多主机主要还是和本机构内的其他主机进行通讯。假定在一个机构内部的计算机通信也是采用TCP/IP协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其IP地址。这就是说,让这些计算机使用仅在本机构有效的IP地址(这种地址称为 本地地址),而不需要向因特网的管理机构申请全球唯一的IP地址(这称为 全球地址)。
            但是,如果任意选择一些IP地址作为本机构内部使用的本地地址,那么在某种情况下会产生一些麻烦。例如:有时候机构内部的某个主机需要和因特网连接时,有可能出现本地地址和因特网中某个IP地址重合的情况。
            为了解决这个问题,RFC 1918指明了一些 专用地址(private address).这些地址只能用于一个机构的内部通讯,而不能用于和因特网上的主机通信。 在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。RFC 1918指明的专用地址是:
             1. 10.0.0.0到10.255.255.255
             2. 172.16.0.0到172.31.255.255
             3. 192.168.0.0到192.168.255.255
            上面3个地址分别相当于一个A类网络、16个连续的B类网络和256个连续的C类网络。采用这样的专用IP地址的互联网称为 专用互联网或本地互联网


             虚拟专用网络VPN

            有时一个很大的机构有很多部门分布在相距很远的地方,而在每个地方都有自己的专用网。在这些不同地点的专用网之间需要进行通讯。解决的方法之一就是虚拟专用网络。显而易见的,每个场所至少要有一个路由器具有合法的全球IP地址。具体见下图:

             

            虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台,如Internet、ATM(异步传输模式〉、Frame Relay (帧中继)等之上的逻辑网络,用户数据在逻辑链路中传输。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展。

             网络地址转换 NAT
            网络地址转换解决的是在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网使用的专用地址),但又想和因特网上的主机通信的问题。该方法在1994年提出。这种方法需要在专用网连接到以因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做 NAT路由器,它至少要有一个有效的外部全球IP地址。这样所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换为全球IP地址,才能和因特网连接。
            显然,通过NAT路由器的通信必须由专用网内的主机发起。为了更加有效的利用NAT路由器的全球IP地址,现在常用的NAT转换表把运输层的端口号也利用上了。这样,就可以使多个拥有本地地址的主机,公用一个NAT路由器上的全球IP地址,因而可以同时和因特网上的不同主机进行通讯。

1.10 总结

            IP层完成了两个工作:
             1. 路径的选择,即数据传输时的路径选择,通过何种路由器。

            2. 屏蔽了数据链路层的异构网络,对上层提供了统一的接口。这其中包括了数据的分片和和还原工作。


(版权所有,转载时请注明作者和出处  http://blog.youkuaiyun.com/arau_sh/article/details/9904649

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值