幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

如何计算UDP头的checksum

  UDP报头只有4个字段,分别是:源端口号、目的端口号、报文长度和报头checksum,其中的报头checksum这个字段在IPv4中并不是强制的,但在IPv6中是强制的,本文介绍UDP报头中checksum的计算方法,并给出相应的源程序。1。UDP报文结构UDP报文为两部分,报头数据;在Linux下,UDP报头定义在头文件linuxudp。h中;structudphdr{be16be16be16sum16};source来源端口号,可选项,如果不使用,填充0;dest目的端口号;len报文长度;check报头的校验和,在IPv4中是可选的,IPv6中是强制的,如果不使用,应填充0;
  图1:UDP数据报结构2。IP报头结构之所以在这里介绍IP报头,是因为在计算UDP报头checksum时会用到IP头中的一些字段;在Linux下,IP报头定义在头文件linuxip。h中,可以自行查看,我们这里仅给出图示;
  图2:IP报头结构3。UDP报头checksum的计算UDP报头checksum的定义及计算方法在〔RFC768〕(http:www。faqs。orgrfcsrfc768。html)中有明确的说明;UDP报头checksum的具体算法在〔RFC1071〕(http:www。faqs。orgrfcsrfc1071。html)有明确的说明;在计算UDP报头checksum前要首先为UDP报头加上一个伪报头;加上伪报头的UDP报文格式如下:
  图3:伪报头伪报头中源IP地址(SourceIPaddress)、目的IP地址(DestinationIPaddress)和协议(Protocol)这三个字段都是从IP报头中取过来的;源IP地址和目的IP地址是32bit的IP地址,Protocol字段是网络协议号,UDP协议号为17(0X11);如果checksum中没有加入伪报头,UDP报文也是可以安全送达的,但是,如果IP报头有损坏或者被认为修改,报文有可能被送到错误的地址;伪报头中加入protocol字段是为了保证报文为UDP报文,正常情况下protocol为17(0x11),如果传输中这个字段变化了,那么在接收端计算出的checksum就会不正确,接收端会丢弃这个出现错误的报文;checksum计算规则:UDP报头中的check字段填充0;(伪报头UDP报头DATA)的长度应该为16bit字的整数倍,如果不是,DATA的最后部分要填充1个字节0,以使其为16bit字的整数倍;(伪报头UDP报头DATA)看作是很多个16bit字,并逐一相加,结果仍为16bit字,如果出现溢出,则结果1,然后继续,直至完成;结果求反即为所需的在RFC768中定义的UDP的checksum为:(伪报头UDP报头DATA)按16bit字进行反码求和的结果就是但实际上原码求和再取反和反码求和是一样的结果,因为求反码再求和的方法对每一组16bit字都要做一次求反运算,因此其运算量更大一些,在实际中没有人使用;以上两种运算方法在本文给出的范例中均有体现,可以用来验证其结果的一致性;按照RFC768的说明,当checksum的运算结果为0时,checksum应该作为全1来传输,因为在UDP协议中,checksum为0表示没有使用checksum,UDP的checksum在ipv4中并不是强制使用的。下面是计算udp报头checksum的完整源代码:includestdio。hincludestdlib。hincludeunistd。hincludestdint。hincludeincludelinuxudp。hudppseudoheaderstructurestructpseudohdr{uint32uint32uint8uint8uint16};udppacketstructureforcalculatingchecksumstructudpcheckhdr{unsignedchardata〔16〕;};initialpseudoheadervoidinitpseudohdr(structudpcheckhdrp){ppseudohdr。sourceipinetaddr(152。1。51。27);0X01980X1B33ppseudohdr。destinationipinetaddr(152。14。94。75);0X0E980X4B5Eppseudohdr。zero0;0X000X1100ppseudohdr。protocol17;0X11ppseudohdr。udplen13;0X000D}initialudpheadervoidinitudphdr(structudpcheckhdrp){pudphdr。source56020;0xDAD4pudphdr。dest8000;0X1F40pudphdr。len13;0X000Dpudphdr。check0;0X0000}initialudpdatavoidinitudpdata(structudpcheckhdrp){pdata〔0〕h;0X680X6568pdata〔1〕e;0X65pdata〔2〕l;0X6C0X6C6Cpdata〔3〕l;0X6Cpdata〔4〕o;0X6F0X006Fpdata〔5〕0;}uint16tchecksum1(uint16tp,intcount){registerlongsum0;uint16uint16ti0;while(count1){Thisistheinnerlooptemp(unsignedshort)(unsignedshort)p;printf(Step02d:0X08lX0X04X,i,sum,temp);count2;}Addleftoverbyte,ifanyif(count0){temp(unsignedshort)(unsignedshort)p;printf(Step02d:0X08lX0X04X,i,sum,temp);sum(unsignedchar)p;}printf(Resultbeforefolding:0X08lX,sum);Fold32bitsumto16bitswhile(sum16)sum(sum0xffff)(sum16);printf(Resultafterfolding:0X08lX,sum);checksum(unsignedshort)printf(Checksum0x04X,checksum);}uint16tchecksum2(uint16tp,intcount){registerlongsum0;uint16uint16ti0;while(count1){Thisistheinnerlooptemp(unsignedshort)(unsignedshort)p;printf(Step02d:0X08lX0X04X(0X04X),i,sum,(uint16t)temp,temp);sum(uint16t)count2;}Addleftoverbyte,ifanyif(count0){temp(unsignedshort)(unsignedshort)p;printf(Step02d:0X08lX0X04X(0X04X),i,sum,(uint16t)temp,temp);sum(uint16t)}printf(Resultbeforefolding:0X08lX,sum);Fold32bitsumto16bitswhile(sum16)sum(sum0xffff)(sum16);printf(Resultafterfolding:0X08lX,sum);checksum(unsignedshort)printf(Checksum0x04X,checksum);}intmain(intargc,charargv){initpseudohdr(udppacket);initudphdr(udppacket);initudpdata(udppacket);unsignedshortp(unsignedshort)intcountsizeof(structpseudohdr)udppacket。udphdr。printf(Theonescomplementcodeof16bittruecodesum);checksum1(p,count);printf(Theonescomplementsum);checksum2(p,count);return0;}其中在计算checksum的程序中参考了RFC1071中给出的源代码;checksum1()使用的常规的算法,checksum2()使用的把每个16bit字求反在相加的算法进行的运算,两种算法的结果是一样的。读者可以根据需要适当第调整数据,以使其计算出不同的结果;下面是我的机器上的运行结果截屏
  图4:程序运行截屏4。UDP报头checksum的验证UDP报文的接收端是需要对checksum字段进行验证的,方法如下:加入伪报头;将(伪报头UDP头DATA)按16bit分成若干个16bit字,如果最后一个字节无法组成一个16bit字,要在DATA的最后补0;将所有的16bit字相加(包括checksum字段),其结果仍然是16bit字,如果出现溢出则结果1;如果最后结果为全1,即:0XFFFF,则表示UDP报文正确,否则应该认为UDP报文有错误,应该丢弃。
  欢迎访问我的博客:https:whowin。cn

特斯拉又出事了,智能系统还需完善我们先看看事情的起因:杭州陈女士3月15日定了一辆特斯拉MODELY,8月13日提车。支付全款并办理保险。提车回家的路上,突然在等红绿灯时没办法挂档和启动。关键还是没有任何报错……趣味八十一难,各类搭配,重组出完全不一样的西游体验天天RPG昨天给大家介绍的《九九八十一》没想到这么快就与大家见面了,大家都已经体验过了吗?正好假期还有余额,没有体验过的小伙伴赶紧打开对战平台去开上一局。不过现在小……杨超越侯明昊是真亲吗其实,看视频,杨超越侯明昊是真亲,镜头放的很近,很容易就能辨别真亲和假亲,粉丝则解释说是演戏,演员演吻戏很多都是真亲的,但也有网友表示:拍综艺不至于这么牺牲吧!在节目《平……侯明昊杨超越什么综艺侯明昊和杨超越参加的综艺名字叫《平行时空遇见你》,这是芒果的综艺节目。《平行时空遇见你》将真人秀与偶像剧双线结合,创造一种追剧式综艺,男女嘉宾在平行时空演偶像剧。《平行时……杨超越不想恋爱啥情况杨超越不想恋爱梗出自节目《心动的信号》中,节目中,戚薇顿喊话超越,你快去谈恋爱。杨超越回答称,我一点都不想谈恋爱,我就只想挣钱。在最近一档综艺节目里,嘉宾戚薇和杨超越在聊……几乎零差评,目前这4部手机可以闭眼入手,轻松用三五年没问题一部手机可以闭眼入手,我自认为一定要满足配置强悍的要求,这样才能用得久。甭管价格多与少,其实每个价位都有好的手机,最后的选择都是取决于你的预算。几乎零差评,目前这4部手机……莲花山周末专线旅游大巴,每时段3台车同时发!上周末(8月13日、14日),乘坐莲花山免费旅游专线大巴的游客们意犹未尽,在上周日最后一趟车返程后,大家纷纷提出宝贵意见:下周还有这个免费专线大巴吗?还是这个时间不……35岁的李易峰为啥不结婚,不好好谈恋爱,非要瞎折腾?头条创作挑战赛看到有人说,李易峰没必要pc,自愿献身的粉丝还会少吗?真的不是。疑似李易峰前女友发博,表示自己曾经和李易峰恋爱三年,我特别想知道,所谓的湾湾女士,如果在泰国……以家人之名有没有小说以家人之名没有原著小说,这是一部原创剧本,编剧是水阡墨、王雄成。主要讲述的是三个异父异母的兄妹组成了一个家庭,彼此之间相亲相爱,互帮互助,一起治愈彼此。虽然在血缘上他们没有关系……汪藏海为什么对付张家汪藏海对付张家其实是因为长生的秘密。在500年前汪藏海被逼修建万奴王的陵墓时无意间发现了青铜门背后的长生秘密,而一直以来守护这个秘密的家族便是张家。张家的势力很大,汪藏海……好酒不一定价高,行家称赞物超所值的四款酒,你都喝过吗?导语:好酒不一定价高,行家称赞物超所值的四款酒,你都喝过吗?虽然这几年大家的消费水平一直在升级,但是疯狂消费等武力值的小小正在慢慢减少,更多的消费者更在乎品质,力求物有所……林依轮老婆是谁林依轮老婆叫西华。曾经西华是一名出色的超模,获得过《美在花城》的亚军,和林依轮结婚后便退出了演艺圈,安心的相夫教子。1林依轮老婆是谁林依轮不仅很有才华,颜值也是非常……
排队上万人?逆水寒四周年涌入10万玩家,第一主播都差点没挤进当下社会,事物火爆与否的衡量标准通常是看其是否排队,网络游戏自然也是一样。对于网游来说,排队玩家人数可以直观的体现一款游戏的热度。《逆水寒》4年前开服就造就了万人排队的盛况,令……维他奶CEO苏强确认4月底离职,任职期间曾扭亏为盈红星资本局4月19日消息,维他奶国际集团有限公司(0345。HK以下简称维他奶)向红星资本局证实了苏强将离职的消息:维他奶国际集团有限公司近日收到集团首席运营官苏强先生递交的辞……省药监局局长黄东红来岳调研生物医药产业发展和药品监管工作湖南日报新湖南客户端4月18日讯(通讯员许国刚)4月14日,省药品监管局局长黄东红带队赴华容县调研生物医药产业发展和药品监管工作,并召开企业座谈会议。华容县委书记陶伟军,岳阳市……理念制度与人如何破解国企三项制度改革中的难题1三改的背景国企掌握了国家的经济命脉,为提高国企的产出效率,国企改革自1978年改革开放以来便一直处于探索与实践中。三项制度改革是国企改革的重要举措,主要指劳动、人……晨读宁白与美相随美对人的影响是潜移默化的,会进入你们的心灵深处。森林、湖泊、高山、大漠引导着你,走着走着,便进入了你想要的画面,这时,咔嚓一声,你执意要留住的美,在你手机的小屏上定格了。……比蛋糕还甜虞书欣虞书欣黑色深V吊带裙来袭,美丽动人,性感妩媚的萝莉御姐风让你心动了没?作为内娱当下最炙手可热的明星,虞书欣真的好漂亮!没有谁的成功是偶然的,所有成功的人都要付出别人看不到……山东玻纤倚铑卖铑,大赚2。4亿后,又要出手200千克山东玻纤(605006。SH)近日公告称,拟择机出售200千克铑粉以盘活存量资产。值得一提的是,2022年9月起,公司分3次择机出售铑粉共计100千克,总收入高达3。13……深度分析同样是丑闻,为何张继科和李梦区别对待?近半个月,体坛不断暴雷,前不久女篮队员李梦被曝插足他人婚姻,知三当三,导致他人家人破解,女方因男方拒付孩子抚养费被迫曝光。近日又曝出前男乒奥运冠军张继科借款百万赌博,私自……大片!这几个汉服打卡地舞动了千年时光!摄影:刘宏滨、封晖、王啸古人云:汉服之美谓之华。汉服是云想衣裳花想容,春风拂槛露华浓的美艳繁华;是织为云外秋雁行,染作江南春水色的动人绝色;又或是越罗衫袂迎春风,玉刻麒麟……盘点中国体育正在衰退的九大体育项目,冰雪九金或成绝唱!在国外一直唱衰中国奥运军团会兵败东京东京奥运会时,力拔山河的奥运健儿依旧拿到了金牌、奖牌第二;而在家门口冬奥会更是创造了9金的奇迹。但眼前的事实是,这样的成绩,在未来一段时间内……免费的路由器刷机,获得更好使用体验(五)这节主要是开启Telnet和SSH服务,挂载64G内部存储,便于后期局域网访问。刷机成功后的京东云无线宝已经变身为功能强大的路由器,可玩性非常高。在浏览器输入管理地址变为……物联网安全解决方案背景:随着互联网、大数据、人工智能云计算、物联网、5G等新需求和新技术的推动下,相关支持鼓励政策不断出台,物联网迎来了前所未有的发展高峰期。随着物联网设备的急剧增长,物联……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网