[发明专利]UDP数据包的分割方法和发送方法有效
申请号: | 201710219325.2 | 申请日: | 2017-04-06 |
公开(公告)号: | CN107104911B | 公开(公告)日: | 2020-02-14 |
发明(设计)人: | 阿涅卢齐·帕塔查里亚;张云雷;钟晓峰;王京 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L12/951 | 分类号: | H04L12/951;H04L29/06 |
代理公司: | 11201 北京清亦华知识产权代理事务所(普通合伙) | 代理人: | 张润 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | udp 数据包 分割 方法 发送 | ||
1.一种在超长数据负载条件下的UDP数据包分割方法,其特征在于,包括以下步骤:
S1:编写IPPROTO_FRAGMENT函数,根据发送的数据协议类型、长度和最大数据包长度确定所需以太网帧数量;
S2:编写Ioctl请求,获取硬件地址;
S3:定义数据传输常量;
S4:用Ioctl函数查找接口名,获取接口MAC地址;通过接口名查找接口索引,并存储在结构体中;
S5:指定IPv4源地址、IPv6源地址、目标IPv4地址,并获取目的URL或者IPv6地址;
S6:将IPv6数据包分段并增加分段扩展报头,并在每段放置IPv4报头;
S7:设置不分段头标和分段头标;
S8:在缓冲阵列中构建分段内容;
S9:填充分段扩展报头和相应数据段,并复制到以太网帧;
S10:发送以太网帧到套接字;
S11:接收端从套接字接收,计算以太网校验和;
S12:建立IPv6 UDP伪包头,调用校验函数进行校验;
S13:对接收数据按照分段包头进行组装。
2.根据权利要求1所述的在超长数据负载条件下的UDP数据包分割方法,其特征在于,使用SIOCGIFHWADDR函数获取所述硬件地址。
3.根据权利要求1所述的在超长数据负载条件下的UDP数据包分割方法,其特征在于,所述数据传输常量包括以太网帧头长度、IPv4报头长度、IPv6报头长度、UDP报头长度、IPv6分段长度和最大分段数。
4.根据权利要求1所述的在超长数据负载条件下的UDP数据包分割方法,其特征在于,调用getaddrinfo函数获取所述目的URL或者IPv6地址。
5.根据权利要求1所述的在超长数据负载条件下的UDP数据包分割方法,其特征在于,Pv6数据包分段长度为1280字节。
6.一种向特定MAC地址发送“cooked”UDP数据包的方法,其特征在于,包括以下步骤:
A:定义IP_MAXPACKET,发起ioctl请求;
B:定义IPv6报头长度和UDP报头长度;
C:为不同阵列分配存储空间;
D:获得发送包接口,并为套接字描述接口发送查找请求;
E:用ioctl函数查找接口名,获得MAC地址;
F:通过接口名查找接口索引,并存储在结构体中;
G:指定接收方的MAC地址和IPv6源地址,并获取所述接收方的URL或IPv6地址;
H:填充sockaddr_ll.UDP数据;
I:将所述sockaddr_ll.UDP数据发送到套接字;
J:所述接收方从套接字接收,并计算接口检验和;
K:相邻两字节重复求和,直到没有或仅剩1个字节为止;
L:建立IPv6 UDP伪包头,调用校验函数进行校验。
7.根据权利要求6所述的向特定MAC地址发送“cooked”UDP数据包的方法,其特征在于,调用getaddrinfo函数获取所述接收方的URL或IPv6地址。
8.根据权利要求6所述的向特定MAC地址发送“cooked”UDP数据包的方法,其特征在于,所述sockaddr_ll.UDP数据包括IPv6版本号,流量等级和流标签。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710219325.2/1.html,转载请声明来源钻瓜专利网。