传输层 用户数据报协议(UDP)

UDP协议的特点


用户数据报协议(UDP)只在IP的数据报服务之上增加了很少一点功能,就是复用和分用的功能以及差错检测的功能,这里所说的复用和分用,就是使用端口标识不同的应用层协议。

  • UDP协议将应用程序要传的内容原封不动的封装之后发走,不加编号和分段
  • UDP的主要特点是: UDP是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。(计算机域名解析用的就是UDP协议,如果发的数据包失败了,解析没有成功就再发一遍,尝试多次,直到失败或者成功,虽然udp是不可靠的,但是它会尝试多次
  • UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数),通信的两端不用保持连接,因此节省系统资源。
  • UDP是面向报文的,发送方的UDP对应用程序交下来的报文,添加首部后就向下交付给网络层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。(应用程序给我是什么样的就是什么样的,将整个报文发走)
  • UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好适合这种要求。
  • UDP支持一对一、一对多、多对一和多对多的交互通信。 UDP的首部开销小,只有8字节,比TCP的20字节的首部要短。

在udp发送的过程中发送失败在发送一遍是由应用程序来决定

UDP面向应用层报文


不同的应用都使用udp协议,通过加上不同的端口来区分不同的应用。 

可以看到上面应用程序要发的内容就是我要传输的内容,不需要分段,加上upd首部和网络层首部就变成了数据包。

UDP的首部格式


(1)源端口。源端口号。在需要对方回信时选用。不需要时可用全0。

(2)目的端口。目的端口号。在终点交付报文时必须要使用到。(报文以及到达了目的主机,目的主机交由哪个进程来处理,这个需要目标端口,在回给对方也要根据源端口)

(3)长度。UDP用户数据报的长度(UDP首部+UDP数据包数据部分),其最小值是8(仅有首部)。

(4)检验和。检测UDP用户数据报在传输中是否有错。有错就丢弃。

16位端口号占了2B,也就是16位,说明端口号的范围是`0 - 65535`。源端口号可以没有,因为不希望收到对方的回应,可以写全0,目的端口是一定要有的。

16位UDP长度是指`首部+数据的长度`,比如数据2B,首部固定是8B,那么UDP长度就是2+8 = 10B。

16位UDP校验和,是用来校验`首部和数据有错误`,如果有错就丢弃掉。比如说目的主机找不到对应的端口号,就会给发送方返回一个ICMP,`‘端口不可达’`的差错报文。

 

UDP校验和计算


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值