UDP协议(二)

一、栗子

补充一下上一期写到的IP协议中的首部校验值的计算,直接举栗子吧

注意一下,计算的时候是16位计算的不是我们想象的8位计算的!

16'h4500+16'h0032+16'h0000+16'h4000(这里注意计算,标志是高三位,不是高四位)+16'h1011+16'h0000(首部校验和在计算的时候是置零计算的)+16'hc0a8+16'h017b+16'hc0a8+16'h0166=16'h24974

由于是16进制计算所以需要把高位再拿回来进行一次计算,如此重复,直至只有16位

16'h0002+16'h4974=16'h4976

然后就是将得到的结果进行取反就是IP首部校验位了

~16'h4976=16'hb689

二、UDP数据格式

讲到这里就会有点犯懵,为什么udp现在才出现。那我们就看看整个数据的格式就明白了

首先大体上数据格式如下

前导码帧开始目标MAC地址源MAC地址帧类型IP数据段FCS帧间距

然后就是在IP数据段划分为

IP报头IP报文

IP报头就是上面讲的东西,IP报文就是udp协议中对udp的设定和数据的传输,也划分两个部分

udp报头udp报文

udp报头就是对udp协议的设定,udp报文就是我们所说的数据

源端口目的端口
长度校验位
udp报文(数据)

源端口:这个字段占据 UDP 报文头的前 16 位,通常包含发送数据报的应用程序所使用的 UDP 端口。

目的端口:接收端计算机上 UDP 软件使用的端口,占据 16 位。

长度:该字段占据 16 位,表示 UDP 数据报长度,包含 UDP 报文头和 UDP 数据长度。因为 UDP 报文头长度是 8 个字节,所以这个值最小为 8。

校验值:该字段占据 16 位,可以检验数据在传输过程中是否被损坏。16位UDP校验和。UDP计算校验和的方法和计算IP数据报首部校验和的方法相似,但不同的是IP数据报的校验和只检验IP数据报的首部,而UDP校验和包含三个部分:UDP伪首部,UDP首部和UDP的数据部分。伪首部的数据是从IP数据报头和UDP数据报头获取的,包括源IP地址,目的IP地址,协议类型和UDP长度,其目的是让UDP两次检查数据是否已经正确到达目的地,只是单纯为了做校验用的。在大多数使用场景中接收端并不检测UDP校验和,由于UDP本身就不在意安全性,所以一般不会进行校验,感兴趣的就上网查查我就不多述了。

三、结束

好了,UDP就讲完了,那就说说他的优缺点之类的话题吧。

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,用于简单、快速地发送和接收数据包。它不保证数据包的顺序或可靠性,但提供了一种基本的传输服务,可以在网络上进行简单的数据传输。

UDP的主要特点包括:

  1. 无连接:UDP不建立和维持连接,可以直接发送数据,不需要事先建立连接。
  2. 不可靠性:UDP不保证数据的可靠传输,可能会出现数据丢失、重复或乱序的情况。
  3. 简单快速:UDP协议简单,没有复杂的连接和传输控制机制,因此处理速度快。
  4. 面向数据报:UDP的数据传输单位是数据报,数据报具有固定长度,并且独立发送。
  5. 尽最大努力交付:UDP尽力而为地传送数据报,但不会对数据的传输做出任何承诺。

UDP的应用场景包括:

  1. 实时应用:如音频、视频流、游戏等需要快速传输的场景。
  2. 高速数据传输:一些需要高速传输数据的应用,如文件传输、远程登录等。
  3. 多播和广播:UDP支持多播和广播通信,可以用于实现一对多或一对多的通信。
  4. 简单服务:一些简单的服务,如DNS查询、SNMP管理等,也可以使用UDP协议。

总的来说,UDP协议适用于对实时性要求较高、对数据的可靠性和顺序性要求较低的应用场景。

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值