UDP协议

一、UDP协议端格式

 

1、 源端口号和目的端口号

        端口号我们都熟悉,取值是0~65535,最多占用16个比特位,因此用16个比特位,即2个字节表示端口号。

2、 UDP长度

        UDP长度表示整个数据报的最大长度(报头+载荷部分),最大值为65535,单位是字节,即一个UDP数据报的最大长度是64kb;

3、 UDP校验和

        校验和用来检测网络数据在传输的过程中,是否发生差错,即发送的数据和接收的数据是否相同。        

        UDP校验和使用CRC算法(循环冗余校验)来检测:把UDP报文中的每一个字节的值进行累加,并把加和放到一个大小为2个子节的数字中,不关心加和溢出问题~最终得到的结果就是校验和

        发送方发送的时候,会先计算一个校验和存放在报头中,接收方收到数据后,按照同样的规则再计算一次校验和,然后比较两个校验和是否相同,相同则接收数据;不同则直接丢弃数据。

二、UDP协议的特点

1、无连接

        客户端只要知道服务器的IP和地址,就可以直接进行数据传输,不需要建立连接。

2、不可靠

        发送端发送数据报以后,如果因为网络故障等问题无法发送给接收端,UDP协议也不会给应用层返回任何错误信息。

3、面向数据报

        接收和发送数据的单位是一个数据报。应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并。

        例如:发送端一次发送500个字节的数据,那么接收端也必须一次接收500个字节;不能分成多次接收:100*5,250*2,20*25......

4、全双工

        UDP的Socket既能写数据,也能读数据。

5、缓冲区

UDP只有接收缓冲区:

        注意:网络传输环境错综复杂,可能会出现先发后至,后发先至的情况,UDP的接收缓冲区不能保证收到的UDP数据报的顺序和发送方发送数据报时的顺序一样;

        如果接收缓冲区满了,后序到达缓冲区的UDP数据将会被丢弃。

UDP没有发送缓冲区:

        UDP发送的数据会直接交给操作系统内核,再由内核将数据传给网络层协议进行后续的操作;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃点橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值