首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解析IP报头VB.NET中的UDP报头

IP报头是互联网协议(IP)中的一部分,用于在网络中传输数据包。它包含了一系列字段,其中包括源IP地址、目标IP地址、协议类型、数据包长度等信息。UDP报头是IP报头中的一种协议类型,用于在网络中传输用户数据报协议(UDP)的数据包。

在VB.NET中解析IP报头和UDP报头可以通过使用网络编程库来实现。以下是一个简单的示例代码:

代码语言:vb
复制
Imports System.Net
Imports System.Net.Sockets

Module Program
    Sub Main()
        Dim udpClient As New UdpClient()
        Dim ipAddress As IPAddress = IPAddress.Parse("192.168.0.1") ' 设置目标IP地址
        Dim port As Integer = 1234 ' 设置目标端口号

        udpClient.Connect(ipAddress, port)
        Dim udpData As Byte() = udpClient.Receive()

        ' 解析IP报头
        Dim ipHeader As New IPHeader(udpData)

        ' 解析UDP报头
        Dim udpHeader As New UDPHeader(ipHeader.Data)

        ' 输出解析结果
        Console.WriteLine("源IP地址: " & ipHeader.SourceAddress.ToString())
        Console.WriteLine("目标IP地址: " & ipHeader.DestinationAddress.ToString())
        Console.WriteLine("协议类型: " & ipHeader.Protocol.ToString())
        Console.WriteLine("数据包长度: " & ipHeader.TotalLength.ToString())
        Console.WriteLine("源端口号: " & udpHeader.SourcePort.ToString())
        Console.WriteLine("目标端口号: " & udpHeader.DestinationPort.ToString())
        Console.WriteLine("数据长度: " & udpHeader.Length.ToString())

        udpClient.Close()
    End Sub
End Module

' IP报头类
Public Class IPHeader
    Public Version As Byte
    Public HeaderLength As Byte
    Public TypeOfService As Byte
    Public TotalLength As UShort
    Public Identification As UShort
    Public Flags As UShort
    Public FragmentOffset As UShort
    Public TimeToLive As Byte
    Public Protocol As Byte
    Public Checksum As UShort
    Public SourceAddress As IPAddress
    Public DestinationAddress As IPAddress
    Public Data As Byte()

    Public Sub New(packet As Byte())
        Version = packet(0) >> 4
        HeaderLength = (packet(0) And 15) * 4
        TypeOfService = packet(1)
        TotalLength = BitConverter.ToUInt16(packet, 2)
        Identification = BitConverter.ToUInt16(packet, 4)
        Flags = BitConverter.ToUInt16(packet, 6)
        FragmentOffset = BitConverter.ToUInt16(packet, 8)
        TimeToLive = packet(9)
        Protocol = packet(10)
        Checksum = BitConverter.ToUInt16(packet, 12)
        SourceAddress = New IPAddress(BitConverter.ToUInt32(packet, 12))
        DestinationAddress = New IPAddress(BitConverter.ToUInt32(packet, 16))
        Data = New Byte(packet.Length - HeaderLength - 1) {}
        Array.Copy(packet, HeaderLength, Data, 0, packet.Length - HeaderLength)
    End Sub
End Class

' UDP报头类
Public Class UDPHeader
    Public SourcePort As UShort
    Public DestinationPort As UShort
    Public Length As UShort
    Public Checksum As UShort
    Public Data As Byte()

    Public Sub New(packet As Byte())
        SourcePort = BitConverter.ToUInt16(packet, 0)
        DestinationPort = BitConverter.ToUInt16(packet, 2)
        Length = BitConverter.ToUInt16(packet, 4)
        Checksum = BitConverter.ToUInt16(packet, 6)
        Data = New Byte(packet.Length - 7) {}
        Array.Copy(packet, 8, Data, 0, packet.Length - 8)
    End Sub
End Class

这段代码使用了VB.NET的UdpClient类来接收UDP数据包,并通过自定义的IPHeaderUDPHeader类解析IP报头和UDP报头。解析结果包括源IP地址、目标IP地址、协议类型、数据包长度、源端口号、目标端口号和数据长度。

对于这个问题,腾讯云提供了一系列与云计算相关的产品和服务,例如云服务器、云数据库、云存储、人工智能等。您可以根据具体需求选择适合的产品。具体的产品介绍和文档可以在腾讯云官方网站上找到。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

web网络基础「建议收藏」

表 C/S与B/S的比较 TCP/IP协议与UDP协议 TCP与UDP协议都是属于传输层协议,用于保证网络层数据传输。   ...IP协议接收由更低层(网络接口层,例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或UDP层;相反,IP协议也把从TCP或UDP层接收来的数据包传送到更低层。...UDP通讯时不需要接收方确认,属于不可靠传输,可能会出现丢包现象,实际应用中要求开发者编程验证。   UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。...每个UDP报文分UDP报头和UDP数据区两部分。...在生活中,大家经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息能及时反馈回来

35210
  • 【IP协议】IP协议报头结构

    IP 协议报头结构 4位版本 实际上只有两个取值 4 ==> IPv4(主流) 6 ==> IPv6 IPv2,IPv5 在实际中是没有的,可能是理论上/实验室中存在 4位首部长度 IP 协议报头也是变长的...其中一个为 1,那么其他的都得为 0。IP 协议拥有变身技能! 16位总长度 IP 数据报的长度 UDP 也是 16 位(2 个字节,64KB)。...正常情况下,64 这样的 TTL 是非常充裕的 六度空间理论(社会科学中的理论) 而且发送数据的时候,还有 128 这样的 TTL 8位协议 IP 数据包中,携带的载荷,是哪种传输层协议的数据包...通过这里的不同数值,感知到接下来要把数据给 TCP 解析,还是 UDP 解析,还是其他协议解析 类似于 TCP/UDP 报头中的“端口号”,决定要将这个数据交个哪个应用程序,也就是要将这个数据交给哪个应用层的具体协议进行处理...报头) 载荷部分 TCP/UDP 都有自己的校验和,此处就不需要再次进行验证了 32源 IP 地址、32位目的 IP 地址 IP 数据报中最关键的信息:数据包从哪里来,到哪里去 输入:ipconfig

    11810

    【JavaEE】——初始网络原理

    —UDP数据包=UDP报头(header)+载荷(payload) UDP报头:承载一些关键的用来转发数据的信息,最重要的信息就是源端口和目的端口 添加报头的过程就是对数据包进行封装成API...3:网络层 网络层涉及到最核心的协议,IP协议 同样,网络层调用传输层封装好的API,拿到UDP数据包,在IP(主要)协议的基础山,对数据包添加上报头,构造成一个IP数据包。...IP报头:承载一些辅助转发的关键信息,最关键的信息就是源IP和目的IP了 4:数据链路层 数据链路层涉及到最核心的协议,以太网 注:以太网就是我们日常中见到的有线网络,用到的网线也叫做“以太网线...4:传输层UDP协议 按照UDP协议格式来解析,取出载荷,再交给上层协议 5:应用层 按照应用层相应的应用协议解析数据 九:经典交换机的封装分用 ①交换机,拿到信号,进行二进制解析后...比交换机多了一层协议 ①物理层拿到信号,转化成二进制以太网数据包,发给数据链路层 ②数据链路层,解析拿到载荷,发给网络层 ③网络层根据IP协议解析报头,取出载荷,重新封装,发送给数据链路层

    3700

    TCPIP协议详解

    SMTP协议(Simple Mail Transfer Protocol): 用于电子邮件的发送。 DNS协议(Domain Name System): 用于将域名解析为IP地址。 2....假如是 IP 数据报,IP 再根据 IP 报头中的“上层协议”字段确定该数据报的有效载荷是 TCP、UDP、ICMP 或 IGMP,然后交给相应的协议处理。...假如是 TCP 段或 UDP 段,TCP 或 UDP 再根据 TCP 报头或 UDP 报头的“端口号”字段确定应该将应用层数据交给哪个用户进程。...经过 UDP 封装的数据将会加上 UDP 报头,此时的 PDU 被称为 UDP 报文段。该层的数据单元也可以统称为段。TCP/UDP 报头主要包含源进程端口号和目的进程端口号。...当目的主机收到一个以太网数据帧时,通过匹配帧中的 MAC 地址发现目的地是本机,数据就开始在协议栈中由底向上升,同时去掉各层协议加上的报头。

    3.2K21

    浅谈面向数据报的协议-UDP协议

    但是这个模型比较复杂并且不实用,最常用的其实是TCP/IP协议。 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇....例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层. 传输层: 负责两台主机之间的数据传输....这也就解释了自定义UDP服务器时,端口号port的数据类型为什么是uint6_t了。 还有两个小问题: 1.UDP协议是如何解决报头和有效载荷的分离问题? UDP使用报头定长8字节来解决。...,那么再将data指针前移8个字节,再将报头及有效载荷放入这个空间,这就是OS对报文的管理,也叫做UDP报文的封装。...3.6 基于UDP的应用层协议 NFS: 网络文件系统 TFTP: 简单文件传输协议 DHCP: 动态主机配置协议 BOOTP: 启动协议(用于无盘设备启动) DNS: 域名解析协议 当然

    21610

    【计网】从零开始理解UDP协议 --- 理解端口号和UDP结构

    从零开始理解UDP协议 1 再谈端口号 之前我们讲过服务器上的端口号和服务器的进程是绑定的!客户端的进程与客户端的端口号也是绑定的!再通过IP地址,就可以快速找到网络中需要进行通信的进程!...根据UDP报头中的16位端口号就可以找到对应的进程,然后进行分用! 我们来看源代码中的UDP报头结构: 这个结构体十分的简单奥!...3 UDP 的特点 UDP 传输的过程类似于寄信: 无连接:知道目的端的 IP 和端口号就直接进行传输,不需要建立连接!...UDP的发送与接收是独立的,那么自然就支持全双工通信了! 在网络通信过程中,操作系统会不断的接收报文,应用层产生报文。所以OS中可能同时存在大量的报文,这些报文可能正在被向上交付,也可能被向下交付!...当报文向下传输时,会先将报文内部的数据写到下一层的一个缓冲区中,注意是写到缓冲区的中间位置。然后将head指针向前移动相应报头大小,之后就可以在head这片空间内写入新的报头了!

    34010

    网络编程原理:回显服务器与客户端通信交互功能

    在应用层的基础上进行拼接传输层的报头 UDP报头的关键信息:源端口和目的端口 网络层 网络层最主要的协议:IP协议,在原有的传输层的基础上进行拼接打包。...IP报头中包含的最重要的熟悉:源IP和目的IP。 数据链路层 以太网:传输给数据链路层之后,通过以太网再次进行打包,通过拼接以太网报头来打包。...2.数据链路层 通过以太网协议对物理层传输过来的数据报进行解析,得到报头和报尾和中间的载荷。 3.网络层 通过IP协议对数据对数据链路层传输过来的数据报进行解析,去掉IP报头得到载荷。...4.传输层 通过UDP协议,针对网络层传输的数据报进行解析,拿到载荷,去掉UDP报头,得到载荷。...在传输层中,提供的网络协议主要由两个,UDP和TCP UDP和TCP的区别 1.TCP可以进行连接,UPD不可以连接。 在计算机中,通过与双方建立连接,各自保存双方的信息。

    8410

    【JavaEE初阶】深入理解TCP协议中的封装分用以及UDP和TCP在网络编程的区别

    TCP数据包,即添加TCP的报头 如图所示: 此时就将这里的应用层数据包进行了封装,其中TCP部分为报头,后面部分为“载荷”,并且这里的TCP报头承载这关键的传输信息; 实现TCP数据包的转送:这里就是通过调用网络层提供的...IP报头; 图示如下: 此时黄色部分就是IP数据包的报头,红色和和黑色部分即是IP数据包的载荷;并且这里的IP报头承载了重要的源IP和目的IP; 实现IP数据包的转送:这里就是通过调用数据链路层提供的API...,传给上层的协议; 2.3网络层分用 就是按照IP协议的格式进行解析,将IP数据包的载荷取出来传给上层协议; 2.4传输层分用 就是按照TCP协议进行解析,取出TCP数据包的载荷部分,然后将这部分传给上层协议...2.然后将这的数据链路层进行解析,拿出载荷,传给网络层; 3.在网络层,IP协议就会对这个IP数据包进行解析,取出载荷,拿到数据后进行新的IP报头的封装,即如下: 4.然后继续传给是数据链路层, 继续新的以太网数据帧的封装...;最后在网络编程小编提出了客户端与服务器的概念,以及TCP与UDP的区别~~~ ~~~~最后希望与诸君共勉,共同进步!!

    14910

    【Linux网络】网络基础:传输层UDPTCP协议(一)

    这使得TCP在需要高可靠性数据传输的场景中,如文件传输、网页浏览等,成为首选的协议。 本问旨在帮助广大读者深入了解UDP/TCP协议的原理和应用。...我们将从协议的基本概念入手,逐步深入协议的内部机制,解析协议的报文结构。 端口号 在之前的学习中,我们简单的了解了一下端口号,这次让我们来重新对端口号有个新的认识。...在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信 端口号范围划分: 0 - 1023:知名端口号, HTTP, FTP...UDP协议端格式 16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度 如果校验和出错, 就会直接丢弃 UDP报头是固定的8字节,我们直接提取前8字节的数据,解析16位UDP长度,然后截断得到报文数据...TCP的报头并没有像UDP那样有固定的长度,出去选项报头的定长是20字节,报头的真实大小需要通过4位首部长度来确定,而首部长度只有4位,但它的取值绝对不是0000->1111(0->15),必然是要乘上它的单位

    14610

    UDP协议

    先看看报头: udp协议的头部结构 UDP协议的报头比TCP协议的报头简单很多。它的报头里面只有一个源端口,还有一个目标端口。这个和TCP里面一样,TCP里面也有一个源端口和目标端口。...它的报头只有这四个部分,后面是数据部分了。 既然没有序号、确认号、标志位,它是怎么建立连接的呢?没有这些东西是没办法建立连接的,所以UDP协议和TCP协议有很大的不一样。 UDP协议不会建立连接。...DNS(域名解析协议):通过域名寻找IP地址的这样一个协议,它常用的是UDP协议。其实它可以用TCP也可以用UDP,自己可以去控制的,但是默认用的是UDP协议。 SNMP:简单网络管理协议。...动态获取IP地址的。 除了可以静态配置IP地址,还可以动态获取IP地址。有些电脑,如果有管理员,只要你配个动态获取,会有一个DHCP的服务器,会给你自动发配一个IP地址,这就是DHCP协议。...除标明“图片来自网络” 的图片,其它文章中的图片皆为本人所画,计算机知识都一样,如有雷同,纯属巧合。

    65010

    【JavaEE初阶】网络初识

    传输层(进入操作系统内核) 在传输层中,要把上述应用层程序构造成传输层的 数据报。 传输层使用到的协议:最知名的UDP和TCP。 比如此处使用UDP,就需要构造出UDP数据报。...(在应用层基础上,加上UDP报头) 此处相当于字符串拼接,将报头和后面数据拼接在一起。 所谓“报头”就是一个“标签” 通过标签标示出当前要把这个消息怎样进行传输。...(3)网络层,IP写针对这里进行解析,解析出IP报头,取出IP协议的载荷,把这里得到的数据层数据报,交给上层传输层。...IP报头里会记录载荷是UDP还是TCP (4)传输层:UDP再进行解析,取出报头,取出载荷,再把这个载荷交给对应的应用程序层。...UDP报头中有一个重要字段“目的端口”,目的端口是一个具体的应用程序,关联在一起的。因此就可以根据这个端口来把数据交给应用程序了。

    17120

    传输层协议UDP详解

    五元组标识一个通信: 在TCP/IP协议中,用“源IP地址”、“源端口号”、“目的IP地址”、“目的端口号”、“协议号”这样一个五元组来标识一个通信。...像上图这样,有多台主机访问服务器,这些主机中可能有多个进程在同时访问服务器。...客户端程序的端口号, 就是由操作系统从这个范围分配的。 协议号 VS 端口号: 协议号是存在于IP报头当中的,其长度是8位。...协议号指明了数据报所携带的数据是使用的何种协议,以便让目的主机的IP层知道应该将该数据交付给传输层的哪个协议进行处理。 端口号是存在于UDP和TCP报头当中的,其长度是16位。...BOOTP: 启动协议(用于无盘设备启动) DNS: 域名解析协议 当然, 也包括你自己写 UDP 程序时自定义的应用层协议。

    21310

    【Linux网络编程】传输协议UDP

    再谈端口号 端口号标识了一个主机上进行通信的不同的应用程序 TCP/IP 协议中,使用 五元组 (5-tuple) 来唯一标识一条网络通信。...这个五元组包含以下五个信息元素: 源 IP 地址:发送方设备的 IP 地址,用于标识通信的源。 源端口号:发送方应用程序的端口号,标识发送方在其设备上的具体应用进程。...UDP协议 UDP协议格式 UDP报头一定是一个结构体 16 位 UDP 长度, 表示整个数据报(UDP 首部+UDP 数据)的最大长度 UDP特点 无连接: 知道对端的 IP 和端口号就直接进行传输,...但是这个接收缓冲区不能保证收到的 UDP 报的顺序和发送 UDP 报的顺序一致; 如果缓冲区满了, 再到达的 UDP 数据就会被丢弃 UDP不需要可靠性保证,不需要丢包重传,只需要添加报头,UDP的报头很简单只有...基于UDP的应用层协议 NFS: 网络文件系统 TFTP: 简单文件传输协议 DHCP: 动态主机配置协议 BOOTP: 启动协议(用于无盘设备启动) DNS: 域名解析协议 进一步理解UDP报头 UDP

    12310

    Python与套接字

    使用UDP的应用:域名系统 (DNS); 视频流;IP语音(VoIP)。...udp_server_sock.bind(ip_port)#你对外提供服务的端口就是这一个,所有的客户端都是通过这个端口和你进行通信的 while True: qq_msg,addr=udp_server_sock.recvfrom...header = phone.recv(4) # 2,解析报头 total_size = struct.unpack('i', header)[0] # 3...我们在网络上传输的所有数据 都叫做数据包,数据包里的所有数据都叫做报文,报文里面不止有你的数 据,还有ip地址、mac地址、端口号等等,其实所有的报文都有报头,这个报头是协议规定的,看一下 发送时:...先发报头长度 再编码报头内容然后发送 最后发真实内容 接收时: 先手报头长度,用struct取出来 根据取出的长度收取报头内容,然后解码,反序列化 从反序列化的结果中取出待取数据的描述信息,然后去取真实的数据内容

    2.4K30

    你知道TCPIP协议如何测试吗?

    为网络提供了流量控制,错误控制和确认服务 在 TCP / IP 协议族中有两个互不相同的传输协议:TCP(传输控制协议)和 UDP(用户数据报协议). 4) 应用层: 为网络排错,文件传输,远程控制和... Internet 操作提供具体的应用程序 二、TCP/IP协议核心与应用程序关系 TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现...3.在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。...6.网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。...6、 用nslookup测试DNS解析是否正确,输入如nslookup www.163.com,查看是否能解析。 如果你的计算机通过了全部测试,则说明网络正常,否则网络可能有不同程度的问题。

    7.2K30

    TCP和UDP的区别

    本文将以下面5个点进行对比: 连接特点 交互通信 数据处理 传输服务 报头开销 UDP和TCP在TCP/IP模型中的位置 在比较这两者的区别之前,有必要了解下TCP/IP模型,这有利于我们理解下面的内容...TCP/IP 协议就是基于此模型设计。...发送端的传输层对应用层交下来的报文,在添加报头后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界。接收端传输层接收到报文会去掉报头,将数据部分交给应用层。...报头开销 UDP UDP传输的段有8个字节的报头和有效载荷字段构成。UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据报长度、校验和。...例如视频直播、IP电话,QQ语音和QQ视频就是使用UDP的协议。

    67220

    ICMP协议报文_三菱mc协议报文格式

    它是IPv4协议族中的一个子协议,用于IP主机、路由器之间传递控制消息。控制消息是在网络通不通、主机是否可达、路由是否可用等网络本身的消息。...报头中的“协议”字段与当前使用的IPv4客户端协议相匹配时会发送“无法访问协议”消息 无法访问端口 IPv4节点在UDP报头中的“目标端口”字段与使用该UDP端口的应用程序相匹配时发送“无法访问端口”消息...ICMP消息是以未确认的IPv4数据报传送的,它们自己也不可靠。 ICMP报头格式 ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。...一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。...校验和:这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与在我们介绍IP报头中的校验和计算方法是一样的。

    55710

    python基础之socket编程

    由于IP协议使用了ARP协议,所以经常把ARP协议划到网络层,但是ARP协议是为了从网络层使用的IP地址解析出在数据链路层使用的MAC地址,所以有些地方也把ARP协议划分到数据链路层,但是一般情况下,我们还是把...在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。   ...也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序...补充问题一:为何tcp是可靠传输,udp是不可靠传输 tcp在数据传输时,发送端先把数据发送到自己的缓存中,然后协议控制将缓存中的数据发往对端,对端返回一个ack=1,发送端则清理缓存中的数据,对端返回...: 先手报头长度,用struct取出来 根据取出的长度收取报头内容,然后解码,反序列化 从反序列化的结果中取出待取数据的详细信息,然后去取真实的数据内容 import socket,struct,json

    2.9K100

    UDP的FPGA实现(中) | UDP段、IP包、MAC帧结构

    表明UDP头部和数据的总长度字节。 UDP的长度是指包括包头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。...理论上,包含报头在内的数据报的最大长度为65535字节,实际上,UDP的MTU一般为1500,这与CDMA/CS机制有关系,即使巨型包也不会超过65535,在基于USO和UFO层次时,可对UDP进行拆包处理...数据: 用户数据是打包在UDP协议中,UDP协议是基于IP协议之上的,IP协议又是走MAC层发送的,即从包含关系来说:MAC帧中的数据段为IP数据报,IP报文中的数据段为UDP报文,UDP报文中的数据段为用户希望传输的数据内容...指示该封包所使用的网络协议类型,如ICMP、DNS等,常用的协议号: 16’d00:IP 16’d01:ICMP 16’d06:TCP 16’d17:UDP 报头校验和: 2Byte。...IP报头的校验和,不对首部后面的的和数据进行计算,在发送数据时,为了计算IP数据报的校验和,步骤为: (1)、将校验和字段置0,然后将IP包头按照16bit分成更多单元,如包头长度不是16bit整数倍,

    3.3K30
    领券