网络协议单元完整性的确定的制作方法

文档序号:7637879阅读:128来源:国知局
专利名称:网络协议单元完整性的确定的制作方法
网络协议单元完整性的确定
领域
在此公开的主题涉及对网络协议单元完整性的确定。 相关技术
计算机之间基于网络的通信速度正在提高。然而网络速度的提升尚未被完全 利用,这部分是由于与计算机内的数据传输和协议处理相关联的等待时间引起的。
至少一种类型的协议处理包括循环冗余校验(CRC)。需要能够加快计算机内的数 据传输和协议处理速度的技术。
附图简述


图1A描绘了在其中可以使用本发明的某些实施例的合适系统。 图1B描绘了网络协议单元的示例。
图2A根据本发明一个实施例描绘了网络接口各部分的一个示例性实现。 图2B描绘了可以在本发明一个实施例内使用的主机存储器的内容的一个示 例性实现。
图3描绘了能够用于对一部分内容执行CRC确认的进程的流程图,该内容的
边界被推测性地确定并且该内容位于网络协议单元内。
图4描绘了能够用于对先前可能已经进行过推测性CRC确定的网络协议单元 的内容执行CRC确认的进程的流程图,
注意,在不同附图中使用相同的标号来指示相同或类似的元素。
详细描述
本说明书通篇对"一个实施例"或"某个实施例"的引用指的是结合该实施 例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因而,在本 说明书通篇各处出现的短语"在一个实施例中"或"在某一实施例中"不必都指代 同一实施例。此外,在一个或多个实施例中,可组合这些特定的特征、结构或特性。
图1A在计算机系统100内描绘了在其中可以使用本发明的某些实施例的合适
系统。计算机系统100可以包括主机系统102、总线116和网络接口 118。
主机系统102可以在任何计算环境中使用,这些计算环境包括但不限于个人 计算机、服务器、交换机、路由器、个人数字助理和/或移动电话。主机系统102 的一个实施例包括芯片组105、处理器110、主机存储器112和存储114。芯片组 105可以提供处理器110、主机存储器112、存储114、总线116以及图形适配器之 间的相互通信,上述图形适配器可用于传输图形和信息以供在显示设备上显示(两 者都未示出)。例如,芯片组105可以包括能够提供与存储114的相互通信的存储 适配器(未示出)。例如,存储适配器能够遵守以下任何协议来与存储114通信 小型计算机系统接口 (SCSI)、光纤通道(FC)和/或串行高级技术附件(S-ATA)。 在某些实施例中,芯片组105可包括用以对主机存储器内的信息执行直接存储器访 问(DMA)的直接存储器访问引擎。
处理器110可以被实现为复杂指令集计算机(CISC)或精简指令集计算机 (RISC)处理器、多核、或者任何其他微处理器或中央处理单元。
主机存储器112可以被实现为易失性存储设备,诸如但不限于随机存取存储 器(RAM)、动态随机存取存储器(DRAM)或静态RAM (SRAM)。
存储114可以被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘 驱动器、磁带驱动器、内部存储设备、附加存储设备和/或网络可访问存储设备。
总线116可以提供至少是在主机系统102和网络接口 118以及其他外围设备 之间的相互通信。总线116可以支持串行或并行通信。总线116可以支持节点对节 点或者节点对多节点通信。总线116例如可以与在可从美国俄勒冈州波特兰市的 PCI Special Interest Group (PCI特殊利益集团)获得的Peripheral Component Interconnect (PCI) Local Bus Specification, Revision2.2, December 18, 1998 (于1998 年12月18日发布的外围部件互连(PCI)本地总线规范版本2.2)(及其修订) 中描述的外围部件互连(PCI);在PCI Special Interest Group的PCI Express Base Specification of the Revision 1.0a (PCI Express基础规范版本1.0a)(及其修订) 中描述的PCI Express;在可从前述美国俄勒冈州波特兰市的PCI Special Interest Group获得的PCI-X Specification Rev. 1.0a, July 24, 2000 (于2000年7月2日发布 的PCI-X规范版本1.0a)(及其修订)中描述的PCI-x;和/或通用串行总线(USB) (及其相关标准)以及其他互连标准相兼容。
网络接口 118能够在主机系统102和网络120之间提供遵守由网络120支持的协议的相互通信。网络接口 118可以使用总线U6与主机系统102通信。在一个 实施例中,网络接口 118可以被集成到芯片组105中。
网络120可以是任何网络,诸如因特网、内联网、局域网(LAN)、存储区 域网(SAN)、广域网(WAN)或无线网络。网络120可以使用以太网标准(在 IEEE 802.3及其相关标准中描述)或任何通信标准与网络接口 118交换话务。
在某些实施例中,计算机系统100可以利用RDMA协议。RDMA协议可以使 用TCP/IP之上的被称为MPA的层来从TCP/IP网络协议单元的入站流中恢复帧边 界并提供对所恢复的帧的CRC确认。例如,RDMA可以是在能从RDMA Consortium (RDMA联盟)获得的"An RDMA Protocol Specification" (version 1.0) (2002)" (RDMA协议规范(版本l.O) (2002))中所描述的。例如,TCP/IP协议是至少 在为Defense Advanced Projects Research Agency (国防先进技术研究计划署)(RFC 793, 1981年9月出版)准备的题为"Transmission Control Protocol: DARPA Internet Program Protocol Specification"(传输控制协议DARPA因特网程序协议规范) 的出版物中所描述的。例如,MPA可以是至少在来自IETF working forum Remote Direct Data Placement Work Group (IETF工作论坛,远程直接数据放置工作小组) (2004年2月)的"Marker PDU Aligned Framing for TCP Specification"(针对TCP 规范的标记PDU对齐成帧)及其修订(以下称为"MPA规范")中所描述的。在 此使用的"网络协议单元"可以包括根据任何协议规范形成的带有报头和净荷部分 的任何分组或帧或其他格式的信息。
根据本发明的一个实施例,网络接口可以推测性地确定在网络协议单元内接 收到的内容的边界并且对一部分该推测性地定位的内容执行CRC确认。在某些实 施例中,该内容可以包括MPA帧。当然,也可以推测性地确定其他类型的净荷、 分组和帧的边界。如果内容的定位被正确地推测,则主机系统就能够在无需进一步 确认(例如,CRC或其他的比特奇偶校验处理)的情况下使用该内容。藉此,主 机系统内的处理周期就可用于执行除CRC确认或其他比特奇偶校验处理以外的操 作。同样还能够避免由于为CRC操作或其他比特奇偶校验处理而将网络协议单元 排队所造成的网络协议单元可用性的延迟,从而可以縮短对网络协议单元可用性的 等待时间。
计算机系统100可以被实现为以下各项的任一项或组合使用主板互连的微 芯片或集成电路、硬连线逻辑、由存储器设备存储并由处理器执行的软件、固件、 专用集成电路(ASIC)、和/或现场可编程门阵列(FPGA)。术语"逻辑"作为
示例可以包括软件或硬件,和/或软件和硬件的组合。
图IB描绘了遵守TCP/IP协议的网络协议单元的示例,并且每个网络协议单 元都在TCP净荷部分内载有MPA帧。例如,在某些实施例中,每个网络协议单元 可以包括IP和TCP报头部分以及封装在TCP净荷部分内的MPA帧。MPA帧可 以包括MPA长度字段、MPA帧内容、以及相关联的MPA CRC字段。TCP净荷 部分(和MPA帧)如图所示大小可变。在示出的实施例中,MPA帧边界与TCP 净荷部分的边界相匹配,然而MPA帧边界也可以不与TCP净荷部分的边界相匹配。 对于更多的MPA帧封装示例,参见MPA规范。
图2A根据本发明的一个实施例描绘了网络接口的各部分的示例性实现。例 如,网络接口至少可以包括收发机202、内容标识器204、 CRC逻辑206、 CRC累 加器208、网络协议单元(NPU)状态寄存器210、以及总线接口212。虽然没有 详细描述,但是网络接口可以包括能够将网络协议单元传送至网络的逻辑。
收发机202可以包括媒体访问控制(MAC)和物理层接口 (PHY)(皆未示 出),它们能够以遵守适用的协议(诸如在IEEE 802.3及其相关标准中描述的以 太网,虽然也可以使用其他的协议)的任何速率从网络接收网络协议单元并向网络 发送网络协议单元。例如,收发机202可以使用物理线路和/或无线技术接收来自 网络120的网络协议单元并向网络发送网络协议单元。
内容标识器204可以从收发机202中接收网络协议单元并将其边界被推测性 地确定并定位在每个网络协议单元的净荷部分内的内容提供给CRC逻辑206。例 如,当网络协议单元遵守TCP/IP时,内容标识器204可以根据TCP/IP规范来确定 TCP净荷位置。在某些实施例中,内容标识器204可以推测内容的边界与TCP净 荷的边界相同。例如,在某些实施例中,其边界被推测性地确定的内容可以包括 MPA帧。当然,也能够推测其他类型的帧、分组或其他信息的边界。内容标识器 204可以将其边界被推测性地确定的至少一部分内容提供给CRC逻辑206并且指 示CRC确认何时开始和停止。
CRC逻辑206可以对内容标识器204 (或另一源)提供的内容执行CRC确认 操作。例如,提供的内容可以包括MPACRC字段、MPA长度字段和MPA帧内容 的组合、或者整个MPA帧。CRC逻辑206可以将CRC确认操作的中间结果存储 在CRC累加器208中并且使用来自CRC累加器208的中间结果来确定所提供内容 的CRC确认。在某些实施例中,CRC累加器208可以存储对内容执行的CRC计 算的中间和最终版本。例如,CRC确认可以包括根据MPA规范的CRC32c值的计 算。CRC逻辑206可以指示对所提供内容的CRC确认操作是有效还是无效。
网络协议单元(NPU)状态寄存器210可以指示对其边界被推测性地确定的 网络协议单元内容的CRC确认操作是有效还是无效。寄存器210内的CRC有效/ 无效结果可以作为元数据被传送至主机计算机(或其他目的地)。元数据可以被存 储在主机存储器中与相关联网络协议单元相同的区域内,也可以被存储在主机存储 器的另一区域内。
总线接口 212可以提供与总线的相互通信。该总线可包括但不限于类似于总 线116 (图1A)的总线。例如,总线可以在网络接口和主机系统之间提供相互通 信。总线接口 212可以遵守该总线所支持的标准(但是也可以使用其他的互连标 准)。例如,总线接口 212可以包括并利用直接存储器访问(DMA)引擎(未示 出)来对从主机存储器和/或主机存储到网络接口和/或从网络接口到主机存储器和 /或主机存储的信息执行直接存储器访问。例如,总线接口 212至少可用于将网络 协议单元和元数据传送至主机系统。
图2B描绘了可在本发明一个实施例中使用的由主机系统利用的主机存储器 的内容的示例性实现。例如,主机存储器可以存储操作系统(OS) 250、堆栈252、 设备驱动程序254、目的地缓冲器256和应用程序258。例如,主机系统至少可以 接收来自网络接口的网络协议单元和元数据。元数据可以指示对网络协议单元的一 部分内容所执行的CRC确认操作提供的是有效还是无效的结果,其中上述内容的 边界是被推测性地确定的。
OS 250的合适实施例包括但不限于与LinuxTM或Microsoft Windows⑧兼容的 操作系统。
堆栈252至少可以对从网络中接收的网络协议单元和/或要传送给网络的信息 (它们都依照RDMA、 TCP/IP和/或MPA协议规范)执行协议处理。例如,在某 些实施例中,堆栈252可以对从网络中接收的网络协议单元的净荷部分执行CRC 确认操作。在某些实施例中,堆栈252可以被集成到OS 250中。
设备驱动程序254可以是用于网络接口的设备驱动程序。设备驱动程序254 至少可以协同在主机系统和网络接口之间的网络协议单元(或其部分)以及其他信 息的传输。
目的地缓冲器256可以存储由网络接口例如从网络中接收的数据(例如,网 络协议单元(或其部分))。
应用程序258可以是至少利用接收自网络或向网络传输的数据的一个或多个 逻辑。应用程序包括但不限于,例如web浏览器、输入/输出过滤器、电子邮件服
务应用程序、文件服务应用程序或数据库应用程序。
图3描绘了能够由网络接口或其他逻辑使用以对一部分内容执行CRC确认的 进程的流程图,该内容的边界被推测性地确定,并且该内容被定位在网络协议单元 内。例如,该内容可包括MPA帧(或其他信息)。图3的进程300可以由能够从
网络中接收网络协议单元并向另一计算逻辑(诸如,主机系统)提供网络协议单元 的任何计算逻辑来执行。
在框302,进程300可以初始化CRC累加器值。CRC累加器值可以表示在对 其边界被推测性地确定的一部分内容执行CRC之前的CRC的值。例如,被初始化 的累加器值可以是表示依照MPA规范的初始化值的OxFFFFFFFF,虽然也可以在 初始化时使用其他的值。
在框304,进程300可以定位网络协议单元的净荷部分的边界。例如,网络协 议单元可以包括TCP报头和TCP净荷部分,并且该净荷部分可以是TCP净荷部分。 在框304,进程300可以确定TCP报头的大小并且基于该确定,定位TCP净荷部 分的开始。例如,在某些实施例中,TCP报头的长度可以在四十(40)至六十(60)字 节之间变化,虽然也可以使用其他的大小。例如,TCP报头内的一个或多个比特 可以指示TCP报头的长度。基于该指示,可以确定该TCP报头的长度以及TCP 净荷的开始。例如,从所确定的TCP净荷的开始到网络协议单元的结尾的那一部 分可以是TCP净荷。
在框306,进程300可以对来自网络协议单元的净荷部分的带有被推测的边界 的一部分内容执行CRC计算。例如,在某些实施例中,进程300可以推测包括 MPA长度字段、MPA帧内容、以及MPA CRC字段的组合在内的MPA帧的边界 与TCP净荷的边界相同。在某些实施例中,对其执行CRC计算的该部分内容可以 仅仅是MPA CRC字段、MPA长度字段和MPA帧内容的组合、或者整个MPA帧。 例如,MPA长度字段和MPA CRC字段可以在MPA帧内具有已知的大小和位置。 例如,MPACRC字段可以是MPA帧的最后四个字节。
CRC计算的结果可以在CRC累加器内提供。CRC计算可以按字节或字执行。 例如, 一种合适的CRC计算方案例如可以在MPA规范中描述,虽然也可以使用 其他的CRC计算方案。
在框308,进程300可以确定对其边界被推测的部分内容的CRC计算是否成 功。例如,当在CRC计算中使用MPA CRC字段或整个MPA帧(包括MPA CRC
字段)时,CRC计算的结果可以指示有效CRC是与期望质量相匹配的结果。例如, 当在CRC计算中使用了将MPA CRC字段排除在外的MPA帧时,CRC计算的结 果在该结果与被排除的MPA CRC字段相匹配的情况下可以指示有效CRC。如果 得到有效CRC,则框308之后是框310。如果没有得到有效CRC,则则框308之 后是框312。在框312,网络协议单元状态可以被指示为CRC无效。在框310和 312之后则是框314。
在框314,进程300可以将网络协议单元状态传送给主机。例如,可以将带有 与网络协议单元相关联的元数据的网络协议单元传送给主机。元数据可以指示对其 边界被推测性地确定的部分内容执行的CRC是有效还是无效。
图4描绘了可由协议处理堆栈用来对先前可能己经对其进行过CRC确认的网 络协议单元的一部分内容执行CRC确认的进程的流程图。例如,进程400可以由 堆栈152利用,虽然其他逻辑也可以利用进程400。图4的进程400可以由任何计 算逻辑执行。
在框402,进程400可以确定网络协议单元的净荷部分的内容的边界被正确推 测。例如,网络接口或其他计算逻辑可能已经推测了网络协议单元的净荷部分的内 容的边界。例如,净荷部分的内容可以与一MPA帧相对应。
例如,框402可以确定网络协议单元的净荷部分的内容的边界。例如,当该 内容是MPA帧时,框402可以确定(1) TCP净荷的开头是否与MPA帧的开头相 匹配,以及(2) TCP净荷的结尾是否与该MPA帧的结尾相匹配。如果(1)或(2) 中的任一个为假,则内容的边界没有被正确地推测,并且在框402之后是框404。 如果(1)和(2)都为真,则内容的边界被正确地推测,并且在框402之后是框 406。例如,框406可以跟随内容边界被正确推测的条件。
例如,在框402,进程400可以根据TCP/IP规范来计算TCP净荷的边界。例 如,在框402,进程400可以根据MPA规范和MPA状态信息来计算MPA帧的边 界。MPA状态信息可以包括与在其中传输网络协议单元的会话有关的信息。例如, MPA状态可以指示MPA帧的TCP序列号以及MPA帧的帧边界。例如,会话可 以与RDMA连接相对应。例如,MPA状态可以根据MPA规范来计算。
例如,TCP净荷可能在发送者发送未对准(或被压縮的)MPA帧或者在向网 络接口转发该分组之前执行了重新分段由此导致MPA帧对准丧失的情况下不与 MPA帧的边界相匹配。
在框404,进程400可以对网络协议单元的净荷内的内容的一部分正确边界计
算CRC。例如,MPA帧的正确边界可能己经在框402被确定。例如,CRC确认可 以包括使用与在图3的框302中所描述的技术相类似的CRC计算技术。
在框406,进程400可以确定对所关注内容应用的CRC是否与有效CRC相对 应。所关注内容可以与执行了 CRC的那部分内容相对应。例如,如果主机确定 MPA帧的边界与TCP净荷的边界相对应(正像在框402所确定的那样),则对被 正确推测的边界的有效CRC的指示可以与有关该内容的有效CRC相对应。例如, 对于在框404执行的CRC计算而言,有关该关注内容的有效CRC可以按在框308 所描述的方式相类似的方式来确定。如果有关该关注内容的CRC无效,则框406 之后是框408。如果有关该关注内容的CRC有效,则框406之后是框410。
在框408,进程400可以对该内容执行差错恢复。例如,可以对MPA帧执行 差错恢复。例如,差错恢复可以包括根据MPA规范的MPA差错恢复方案。在框 410,进程400可以提供CRC有效内容以供应用程序或其他协议处理层使用。例如, 内容可以包括MPA帧。
本发明的实施例可以被实现为以下各项中的任一项或组合使用主板互连的 微芯片或集成电路、硬连线逻辑、由存储器设备存储并由处理器执行的软件、固件、 专用集成电路(ASIC)、和/或现场可编程门阵列(FPGA)。
附图和以上描述给出了本发明的示例。虽然被描绘成多个离散的功能项,但 是本领域普通技术人员应该认识到,这些元素的一个或多个也可以被组合成单个功 能元素。可选地,某些元素也可以被分成多个功能元素。来自一个实施例的元素可 被添加至另一实施例。例如,在此描述的各进程的次序可以被改变并且不限于在此 描述的方式。然而本发明的范围决不受到这些特定示例的限制。无论是在说明书中 显式还是隐式给出的各种变化,诸如结构、尺寸和使用材料上的差异都是可能的。 本发明的范围至少与所附权利要求给出的一样宽。
权利要求
1.一种方法,包括在第一计算逻辑处接收来自网络的网络协议单元;在所述第一计算逻辑处,推测所述网络协议单元的内容的边界;在所述第一计算逻辑处,对具有所推测的边界的一部分所述内容执行循环冗余校验(CRC)确认;以及在所述第一计算逻辑处,提供所述内容的所述CRC是有效还是无效的指示。
2. 如权利要求l所述的方法,其特征在于,所述推测边界包括将所述内容的边界设置为所述网络协议单元的净荷部分的边界。
3. 如权利要求1所述的方法,其特征在于,所述内容的所述部分包括MPA CRC字段。
4. 如权利要求1所述的方法,其特征在于,所述内容的所述部分包括MPA 长度字段和MPA帧内容的组合。
5. 如权利要求l所述的方法,其特征在于,还包括在第二计算逻辑处,接收来自所述第一计算逻辑的所述网络协议单元和所述 指示;以及在所述第二计算逻辑处,响应于所推测的边界被正确确定以及所述CRC有效 的指示来选择性地提供所述内容。
6. 如权利要求1所述的方法,其特征在于,还包括在第二计算逻辑处,接收来自所述第一计算逻辑的所述网络协议单元和所述 指示;以及在所述第二计算逻辑处,响应于所述推测性边界被正确确定以及所述CRC无 效的指示来对所述内容选择性地执行MPA差错恢复。
7. 如权利要求l所述的方法,其特征在于,还包括在第二计算逻辑处,接收来自所述第一计算逻辑的所述网络协议单元和所述 指示;以及在所述第二计算逻辑处,响应于所述内容的边界被不正确地推测来使用所述 内容的正确边界选择性地执行CRC确认。
8. —种方法,包括接收网络协议单元以及对带有被推测的边界的内容的循环冗余校验(CRC) 确认是有效还是无效的指示;以及确定所述内容的边界是否被正确地推测。
9. 如权利要求8所述的方法,其特征在于,所推测的边界包括所述网络协议 单元的净荷部分的边界。
10. 如权利要求8所述的方法,其特征在于,还包括响应于所述内容的边界被不正确地推测来使用所述内容的正确边界选择性地 执行另一CRC确认。
11. 如权利要求8所述的方法,其特征在于,还包括响应于所推测的边界被正确确定以及所述CRC有效的所述指示来选择性地提 供所述内容。
12. 如权利要求8所述的方法,其特征在于,还包括 响应于所述CRC无效的所述指示来选择性地执行MPA差错恢复。
13. —种包括其上存储的指令的计算机可读介质,所述指令在被机器执行时 会使得所述机器在第一计算逻辑处,接收来自网络的网络协议单元; 在所述第一计算逻辑处,推测所述网络协议单元的内容的边界; 在所述第一计算逻辑处,对具有所推测的边界的一部分所述内容执行循环冗 余校验(CRC)确认;以及在所述第一计算逻辑处,提供所述内容的所述CRC是有效还是无效的指示。
14. 如权利要求13所述的计算机可读介质,其特征在于,所述用于推测的指令包括用于执行以下动作的指令将所述内容的边界设置为所述网络协议单元的净荷部分的边界。
15. 如权利要求13所述的计算机可读介质,其特征在于,所述内容的所述部 分包括MPA CRC字段。
16. 如权利要求13所述的计算机可读介质,其特征在于,所述内容的所述部 分包括MPA长度字段和MPA帧内容的组合。
17. —种包括其上存储的指令的计算机可读介质,所述指令在被机器执行时 会使得所述机器接收网络协议单元以及对带有被推测的边界的内容的循环冗余校验(CRC) 确认是有效还是无效的指示;以及确定所述内容的边界是否被正确地推测。
18. 如权利要求17所述的计算机可读介质,其特征在于,所推测的边界包括 所述网络协议单元的净荷部分的边界。
19. 如权利要求17所述的计算机可读介质,其特征在于,还包括其上存储的指令,所述指令在被机器执行时会使得所述机器响应于所述内容的边界被不正确地推测来使用所述内容的正确边界选择性地执行另一CRC确认。
20. 如权利要求17所述的计算机可读介质,其特征在于,还包括其上存储的指令,所述指令在被机器执行时会使得所述机器响应于所推测的边界被正确确定以及所述CRC有效的所述指示来选择性地提 供所述内容。
21. 如权利要求17所述的计算机可读介质,其特征在于,还包括其上存储的指令,所述指令在被机器执行时会使得所述机器响应于所述CRC无效的所述指示来选择性地执行MPA差错恢复。
22. —种系统,包括 包括处理器和存储器设备的主机系统; 总线;以及把所述主机系统通信耦合至所述总线的芯片组,其中所述芯片组包括网络接口,并且其中所述网络接口包括用于执行以下动 作的逻辑接收来自网络的网络协议单元; 推测所述网络协议单元的内容的边界;对具有所推测边界的一部分所述内容执行循环冗余校验(CRC)确认;以及提供所述内容的CRC是有效还是无效的指示。
23,如权利要求22所述的系统,其特征在于,所述主机系统包括用于执行以 下动作的逻辑接收所述网络协议单元以及对带有所推测边界的内容的所述CRC确认是有效 还是无效的指示;以及确定所述内容的边界是否被正确地推测。
全文摘要
推测网络协议单元的净荷的内容边界并对该内容执行循环冗余校验(CRC)的技术。对该内容的CRC确认可以在诸如网络接口等计算逻辑内执行。可以使得网络协议单元对诸如主机系统等其他计算逻辑可用。该主机系统可以确定是否对该网络协议单元执行另一CRC确认操作。
文档编号H04L1/00GK101208892SQ200680019719
公开日2008年6月25日 申请日期2006年4月28日 优先权日2005年5月3日
发明者F·贝瑞, S·金 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1