UDP协议和报文格式,校验和,CRC的含义

💖💖💖每日一看,学习动力

一、UDP协议及其报文格式

UDP:特点:无连接,不可靠传输

报头里面有啥呢?

那么首先我要先提问一下?2个字节,可以表示的数据范围有多大?(挺重要的需要记住)

1字节 🌸 🌸

有符号-128------+127

无符号 0------255

2字节 🌸 🌸

有符号 ---32768------32767

无符号 0------65535

4字节

有符号-21亿------21亿

无符号0------42亿94万

报头的内部

合法的端口范围在:0------65535不能再大了,但是我们实际上不用0,1-1024这个范围大端口号,有特殊意义------叫做知名端口号(也不建议使用,1------1024这个范围大端口号有特殊意义,连mysql都是3306🌝🌝🌝当然,你要是非想要的话,你需要有管理员权限,我们CURDboy这么会有管理员呢🌚🌚🌚润)

一次通信,涉及五元组,源端口,目的端口,源IP,目的IP,协议类型,但是上面中名气比较大的服务器,都是上个世纪的情况(这里大部分服务器都已经过气,😜)

二、UDP报头遇到的问题及解决方法

UDP报文长度->2字节换算成单位64kb 如今很小,当年很大(大佬们,也没想到互联网发展这么吊),此时我们该如何把这个报文长度改大呢?分配4个字节可以不呢------相当困难->主要原因政治上困难,网络通信,你改对端就需要改一系列东西,十分复杂(主要是你改动,别人改不改,一个地方不改,你就损失一大块蛋糕了)。

那么可能小可爱会问了,假如真超过64KB咋整啊~

改法1:

在应用层(代码中)把广告拆分成多组,通过多个UDP数据报进行传输

代码的改动会很多,很多地方要改,还要重新测试,拆分之后,传输过去,对面还要进行拼接,改这么拼?,顺序乱了怎么办,某部分丢失又怎么办

改法2:使用Tcp去代替UDP,TCP没有要求报文长度(多长都行)(更实用一些)

三、校验和

校验和:检察数据是否在网络运输的过程中出错了

一个结论:网络传输过程中,收到外界干扰,数据可能出错,本质上,光信号/电信号/电磁波/磁场,高能粒子射线(太阳耀斑这种)

可能你原先输入的是1,就会变成0,0变成1这种------》也叫做比特翻转🍀🍀

我们的校验和就是为了应对这个情况

接收方收到数据的时候,需要确认数据是否错误,校验和是最简单的方式

实际校验和,不仅仅是"长度"而是根据数据的内容生成的,当内容发生改变的时候,就能感知到错误,

UDP的校验和具体是怎么实现的呢,使用一种简单粗暴的CRC校验和算法(循环冗余校验和)

CRC会把累加结果,保存到2个字节的变量中,加着加着,可能就会溢出,溢出也无所谓,所有字节都加了一个遍,最终得到了校验和传输数据的时候,会把原始数据和校验和一起传递过去。接收方收到数据,同时也收到了发送端->送过来的校验和(旧的),接收方会同样再去算一遍,得到新校验和,如果旧的校验和和新的校验和相同,就可以视为数据传输的过程中,是正确的。

如果不同,则视为传输过程中数据出错了,数据相同->校验和不同,校验和不同也就是数据不同,(当然有一些算法进行校验,可以更高精确度,但是要付出更大的代价,简单粗暴就好)

假如说正好巧了,某个字节多了一个,后面一个字节少一个,两种相加,正好抵消(这也没有办法,不用特别严谨,项目中已经很够用了。出错就会进行丢弃。但TCP可要求对方重发数据(更可靠)------下一篇文章

相关推荐
我也要当昏君20 分钟前
4.4 【2014统考真题】
网络·智能路由器
憧憬成为原神糕手21 分钟前
传输层协议 TCP 三次握手/四次挥手 TIME_WAIT
网络·tcp/ip·安全
花阴偷移21 分钟前
逆向基础--汇编基础(CS与IP) (05)
网络·汇编·网络协议·tcp/ip
捷米研发三部1 小时前
全自动化立体仓库巷道堆垛机使用西门子1500PLC通过EtherCAT主站转Profinet实现与EtherCAT协议的伺服进行通讯方案案例
网络
天玺-vains1 小时前
借助Github Action实现通过 HTTP 请求触发邮件通知
网络协议·http·github
王道长服务器 | 亚马逊云1 小时前
帝国CMS + AWS:老牌内容系统的新生之路
服务器·网络·数据库·云计算·aws
ZhengEnCi2 小时前
N2G-为什么90%的人不会计算子网掩码?大厂网络工程师的CIDR与子网掩码完全解析
网络协议
hello_2502 小时前
traceroute工作原理
网络·智能路由器
上海云盾安全满满2 小时前
APP小程序被攻击了该如何应对
网络·小程序
薛之谦_2 小时前
【SSL】什么是自签名证书及使用Java生成SSL自签名证书
java·网络协议·ssl